{"version":3,"file":"index4.mjs","sources":["../../../src/hooks/use-namespace.ts"],"sourcesContent":["import { DEFAULT_COMPONENT_PREFIX } from '../tokens'\nimport { camelize, capitalize } from '../utils'\nimport { useGlobalConfig } from './use-global-config'\n\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) cls += `-${blockSuffix}`\n\n  if (element) cls += `__${element}`\n\n  if (modifier) cls += `--${modifier}`\n\n  return cls\n}\n\nexport const useNamespace = (block: string) => {\n  const namespace = useGlobalConfig('namespace', DEFAULT_COMPONENT_PREFIX)\n  /** config-provider => TaConfigProvider */\n  const n = `${capitalize(DEFAULT_COMPONENT_PREFIX)}${camelize(block)}`\n  /** config-provider => ta-config-provider */\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]) styles[`--${namespace.value}-${key}`] = object[key]\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    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    n,\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":["statePrefix","_bem","namespace","block","blockSuffix","element","modifier","cls","useNamespace","useGlobalConfig","DEFAULT_COMPONENT_PREFIX","n","capitalize","camelize","name","args","state","object","styles","key"],"mappings":";;;AAIA,MAAMA,IAAc,OAEdC,IAAO,CACXC,GACAC,GACAC,GACAC,GACAC,MACG;AACC,MAAAC,IAAM,GAAGL,KAAaC;AACtB,SAAAC,MAAaG,KAAO,IAAIH,MAExBC,MAASE,KAAO,KAAKF,MAErBC,MAAUC,KAAO,KAAKD,MAEnBC;AACT,GAEaC,IAAe,CAACL,MAAkB;AACvC,QAAAD,IAAYO,EAAgB,aAAaC,CAAwB,GAEjEC,IAAI,GAAGC,EAAWF,CAAwB,IAAIG,EAASV,CAAK;AAuD3D,SAAA;AAAA,IACL,WAAAD;AAAA,IACA,GAAAS;AAAA,IACA,GAxDQ,CAACP,IAAc,OACvBH,EAAKC,EAAU,OAAOC,GAAOC,GAAa,IAAI,EAAE;AAAA,IAwDhD,GAvDQ,CAACC,MACTA,IAAUJ,EAAKC,EAAU,OAAOC,GAAO,IAAIE,GAAS,EAAE,IAAI;AAAA,IAuD1D,GAtDQ,CAACC,MACTA,IAAWL,EAAKC,EAAU,OAAOC,GAAO,IAAI,IAAIG,CAAQ,IAAI;AAAA,IAsD5D,IArDS,CAACF,GAAsBC,MAChCD,KAAeC,IACXJ,EAAKC,EAAU,OAAOC,GAAOC,GAAaC,GAAS,EAAE,IACrD;AAAA,IAmDJ,IAlDS,CAACA,GAAkBC,MAC5BD,KAAWC,IACPL,EAAKC,EAAU,OAAOC,GAAO,IAAIE,GAASC,CAAQ,IAClD;AAAA,IAgDJ,IA/CS,CAACF,GAAsBE,MAChCF,KAAeE,IACXL,EAAKC,EAAU,OAAOC,GAAOC,GAAa,IAAIE,CAAQ,IACtD;AAAA,IA6CJ,KA5CU,CAACF,GAAsBC,GAAkBC,MACnDF,KAAeC,KAAWC,IACtBL,EAAKC,EAAU,OAAOC,GAAOC,GAAaC,GAASC,CAAQ,IAC3D;AAAA,IA0CJ,IAtCE,CAACQ,MAAiBC,MAAqC;AACzD,YAAMC,IAAQD,EAAK,UAAU,IAAIA,EAAK,KAAM;AAC5C,aAAOD,KAAQE,IAAQ,GAAGhB,IAAcc,MAAS;AAAA,IAAA;AAAA,IAsCjD,QAjCa,CAACG,MAAmC;AACjD,YAAMC,IAAiC,CAAA;AACvC,iBAAWC,KAAOF;AAChB,QAAIA,EAAOE,OAAMD,EAAO,KAAKhB,EAAU,SAASiB,OAASF,EAAOE;AAE3D,aAAAD;AAAA,IAAA;AAAA,IA6BP,YAjBiB,CAACJ,MAAiB,KAAKZ,EAAU,SAASY;AAAA,IAkB3D,aA3BkB,CAACG,MAAmC;AACtD,YAAMC,IAAiC,CAAA;AACvC,iBAAWC,KAAOF;AAChB,QAAIA,EAAOE,OACTD,EAAO,KAAKhB,EAAU,SAASC,KAASgB,OAASF,EAAOE;AAErD,aAAAD;AAAA,IAAA;AAAA,IAsBP,iBAlBsB,CAACJ,MACvB,KAAKZ,EAAU,SAASC,KAASW;AAAA,EAiBjC;AAEJ;"}