{"version":3,"file":"with-install.mjs","sources":["../../../../packages/utils/with-install.ts"],"sourcesContent":["import { PREFIX } from './constants'\n\nimport type { SFCWithInstall } from './types'\n\nexport const withInstall = <T, E extends Record<string, any>>(\n  main: T,\n  extra?: E,\n) => {\n  (main as SFCWithInstall<T>).install = (app): void => {\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\n      app.component(PREFIX + comp.name, comp)\n    }\n  }\n\n  if (extra) {\n    for (const [key, comp] of Object.entries(extra)) {\n      (main as any)[key] = comp\n    }\n  }\n  return main as SFCWithInstall<T> & E\n}\n\n\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n  (fn as SFCWithInstall<T>).install = app => {\n    app.config.globalProperties[name] = fn\n  }\n\n  return fn as SFCWithInstall<T>\n}\n\nexport const withNoopInstall = <T>(component: T) => {\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  (component as SFCWithInstall<T>).install = () => {}\n\n  return component as SFCWithInstall<T>\n}\n\n"],"names":[],"mappings":";;AAIa,MAAA,WAAA,GAAc,CACzB,IAAA,EACA,KACG,KAAA;AACH,EAAC,IAAA,CAA2B,OAAU,GAAA,CAAC,GAAc,KAAA;AACnD,IAAA,KAAA,MAAW,QAAQ,CAAC,IAAA,EAAM,GAAG,MAAO,CAAA,MAAA,CAAO,wBAAS,EAAM,CAAA,CAAA,EAAA;AACxD,MAAI,GAAA,CAAA,SAAA,CAAU,MAAS,GAAA,IAAA,CAAK,IAAM,EAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAItC,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,KAAA,MAAW,CAAC,GAAA,EAAK,IAAS,CAAA,IAAA,MAAA,CAAO,QAAQ,KAAQ,CAAA,EAAA;AAC/C,MAAC,KAAa,GAAO,CAAA,GAAA,IAAA,CAAA;AAAA,KAAA;AAAA,GAAA;AAGzB,EAAO,OAAA,IAAA,CAAA;AAAA,EAAA;AAII,MAAA,mBAAA,GAAsB,CAAI,EAAA,EAAO,IAAiB,KAAA;AAC7D,EAAC,EAAA,CAAyB,UAAU,CAAO,GAAA,KAAA;AACzC,IAAI,GAAA,CAAA,MAAA,CAAO,iBAAiB,IAAQ,CAAA,GAAA,EAAA,CAAA;AAAA,GAAA,CAAA;AAGtC,EAAO,OAAA,EAAA,CAAA;AAAA,EAAA;AAGI,MAAA,eAAA,GAAkB,CAAI,SAAiB,KAAA;AAElD,EAAC,SAAA,CAAgC,UAAU,MAAM;AAAA,GAAA,CAAA;AAEjD,EAAO,OAAA,SAAA,CAAA;AAAA;;;;"}