element-plus
Version:
A Component Library for Vue 3
1 lines • 6.79 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","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"],"names":[],"mappings":"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"}