{"version":3,"file":"create.mjs","sources":["../../src/_hooks/create.ts"],"sourcesContent":["import { ref, watch, type Ref } from 'vue'\n\nconst prefixName = ``\n\n/**\n *\n * @param componentName 组件名，例如 button\n * @returns\n */\nexport const useCreate = (\n  componentName: string,\n  args?: Ref<{ [x: string]: any }>\n) => {\n  // 例如 naive-button\n  const name = `${prefixName ? `-${prefixName}` : ''}${componentName}`\n  /**\n   * const { name, bemClass } = useCreate('back-top', toRef({ visible }))\n   * // name = 'prefix-back-top'\n   * // bemClass = 'prefix-back-top prefix-back-top-visible'\n   */\n  const bemClass = ref(name)\n  watch(\n    () => args,\n    () => {\n      const extClass = Object.keys(args?.value || {})\n        .filter((key) => !!args?.value[key])\n        .map((key) => `${name}-${key}`)\n        .join(' ')\n      bemClass.value = `${name} ${extClass}`\n    },\n    {\n      immediate: true,\n      deep: true,\n    }\n  )\n  return {\n    prefixName,\n    name,\n    bemClass,\n  }\n}\n"],"names":[],"mappings":";;AAEA,MAAM,UAAa,GAAA,CAAA,CAAA,CAAA;AAON,MAAA,SAAA,GAAY,CACvB,aAAA,EACA,IACG,KAAA;AAEH,EAAM,MAAA,IAAA,GAAO,GAAG,UAAa,GAAA,CAAA,CAAA,EAAI,UAAU,CAAK,CAAA,GAAA,EAAE,GAAG,aAAa,CAAA,CAAA,CAAA;AAMlE,EAAM,MAAA,QAAA,GAAW,IAAI,IAAI,CAAA,CAAA;AACzB,EAAA,KAAA;AAAA,IACE,MAAM,IAAA;AAAA,IACN,MAAM;AACJ,MAAA,MAAM,QAAW,GAAA,MAAA,CAAO,IAAK,CAAA,IAAA,EAAM,KAAS,IAAA,EAAE,CAAA,CAC3C,MAAO,CAAA,CAAC,GAAQ,KAAA,CAAC,CAAC,IAAA,EAAM,KAAM,CAAA,GAAG,CAAC,CAAA,CAClC,GAAI,CAAA,CAAC,GAAQ,KAAA,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAC7B,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AACX,MAAA,QAAA,CAAS,KAAQ,GAAA,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,CAAA;AAAA,KACtC;AAAA,IACA;AAAA,MACE,SAAW,EAAA,IAAA;AAAA,MACX,IAAM,EAAA,IAAA;AAAA,KACR;AAAA,GACF,CAAA;AACA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,GACF,CAAA;AACF;;;;"}