You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
9.7 KiB

{"ast":null,"code":"import { getCurrentInstance, inject, ref, computed, unref } from 'vue';\nconst defaultNamespace = \"el\";\nconst statePrefix = \"is-\";\nconst _bem = (namespace, block, blockSuffix, element, modifier) => {\n let cls = `${namespace}-${block}`;\n if (blockSuffix) {\n cls += `-${blockSuffix}`;\n }\n if (element) {\n cls += `__${element}`;\n }\n if (modifier) {\n cls += `--${modifier}`;\n }\n return cls;\n};\nconst namespaceContextKey = Symbol(\"namespaceContextKey\");\nconst useGetDerivedNamespace = namespaceOverrides => {\n const derivedNamespace = namespaceOverrides || (getCurrentInstance() ? inject(namespaceContextKey, ref(defaultNamespace)) : ref(defaultNamespace));\n const namespace = computed(() => {\n return unref(derivedNamespace) || defaultNamespace;\n });\n return namespace;\n};\nconst useNamespace = (block, namespaceOverrides) => {\n const namespace = useGetDerivedNamespace(namespaceOverrides);\n const b = (blockSuffix = \"\") => _bem(namespace.value, block, blockSuffix, \"\", \"\");\n const e = element => element ? _bem(namespace.value, block, \"\", element, \"\") : \"\";\n const m = modifier => modifier ? _bem(namespace.value, block, \"\", \"\", modifier) : \"\";\n const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, \"\") : \"\";\n const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, \"\", element, modifier) : \"\";\n const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, \"\", modifier) : \"\";\n const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : \"\";\n const is = (name, ...args) => {\n const state = args.length >= 1 ? args[0] : true;\n return name && state ? `${statePrefix}${name}` : \"\";\n };\n const cssVar = object => {\n const styles = {};\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${key}`] = object[key];\n }\n }\n return styles;\n };\n const cssVarBlock = object => {\n const styles = {};\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${block}-${key}`] = object[key];\n }\n }\n return styles;\n };\n const cssVarName = name => `--${namespace.value}-${name}`;\n const cssVarBlockName = name => `--${namespace.value}-${block}-${name}`;\n return {\n namespace,\n b,\n e,\n m,\n be,\n em,\n bm,\n bem,\n is,\n cssVar,\n cssVarName,\n cssVarBlock,\n cssVarBlockName\n };\n};\nexport { defaultNamespace, namespaceContextKey, useGetDerivedNamespace, useNamespace };","map":{"version":3,"names":["defaultNamespace","statePrefix","_bem","namespace","block","blockSuffix","element","modifier","cls","namespaceContextKey","Symbol","useGetDerivedNamespace","namespaceOverrides","derivedNamespace","getCurrentInstance","inject","ref","computed","unref","useNamespace","b","value","e","m","be","em","bm","bem","is","name","args","state","length","cssVar","object","styles","key","cssVarBlock","cssVarName","cssVarBlockName"],"sources":["../../../../../packages/hooks/use-namespace/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, ref, unref } from 'vue'\n\nimport type { InjectionKey, Ref } from 'vue'\n\nexport const defaultNamespace = 'el'\nconst statePrefix = 'is-'\n\nconst _bem = (\n namespace: string,\n block: string,\n blockSuffix: string,\n element: string,\n modifier: string\n) => {\n let cls = `${namespace}-${block}`\n if (blockSuffix) {\n cls += `-${blockSuffix}`\n }\n if (element) {\n cls += `__${element}`\n }\n if (modifier) {\n cls += `--${modifier}`\n }\n return cls\n}\n\nexport const namespaceContextKey: InjectionKey<Ref<string | undefined>> =\n Symbol('namespaceContextKey')\n\nexport const useGetDerivedNamespace = (\n namespaceOverrides?: Ref<string | undefined>\n) => {\n const derivedNamespace =\n namespaceOverrides ||\n (getCurrentInstance()\n ? inject(namespaceContextKey, ref(defaultNamespace))\n : ref(defaultNamespace))\n const namespace = computed(() => {\n return unref(derivedNamespace) || defaultNamespace\n })\n return namespace\n}\n\nexport const useNamespace = (\n block: string,\n namespaceOverrides?: Ref<string | undefined>\n) => {\n const namespace = useGetDerivedNamespace(namespaceOverrides)\n const b = (blockSuffix = '') =>\n _bem(namespace.value, block, blockSuffix, '', '')\n const e = (element?: string) =>\n element ? _bem(namespace.value, block, '', element, '') : ''\n const m = (modifier?: string) =>\n modifier ? _bem(namespace.value, block, '', '', modifier) : ''\n const be = (blockSuffix?: string, element?: string) =>\n blockSuffix && element\n ? _bem(namespace.value, block, blockSuffix, element, '')\n : ''\n const em = (element?: string, modifier?: string) =>\n element && modifier\n ? _bem(namespace.value, block, '', element, modifier)\n : ''\n const bm = (blockSuffix?: string, modifier?: string) =>\n blockSuffix && modifier\n ? _bem(namespace.value, block, blockSuffix, '', modifier)\n : ''\n const bem = (blockSuffix?: string, element?: string, modifier?: string) =>\n blockSuffix && element && modifier\n ? _bem(namespace.value, block, blockSuffix, element, modifier)\n : ''\n const is: {\n (name: string, state: boolean | undefined): string\n (name: string): string\n } = (name: string, ...args: [boolean | undefined] | []) => {\n const state = args.length >= 1 ? args[0]! : true\n return name && state ? `${statePrefix}${name}` : ''\n }\n\n // for css var\n // --el-xxx: value;\n const cssVar = (object: Record<string, string>) => {\n const styles: Record<string, string> = {}\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${key}`] = object[key]\n }\n }\n return styles\n }\n // with block\n const cssVarBlock = (object: Record<string, string>) => {\n const styles: Record<string, string> = {}\n for (const key in object) {\n if (object[key]) {\n styles[`--${namespace.value}-${block}-${key}`] = object[key]\n }\n }\n return styles\n }\n\n const cssVarName = (name: string) => `--${namespace.value}-${name}`\n const cssVarBlockName = (name: string) =>\n `--${namespace.value}-${block}-${name}`\n\n return {\n namespace,\n b,\n e,\n m,\n be,\n em,\n bm,\n bem,\n is,\n // css\n cssVar,\n cssVarName,\n cssVarBlock,\n cssVarBlockName,\n }\n}\n\nexport type UseNamespaceReturn = ReturnType<typeof useNamespace>\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}