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