{"version":3,"file":"install.mjs","sources":["../../../../components/install.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-extra-semi */\nimport type { App, AppContext, Component, Plugin } from 'vue'\nimport '@fusion-ui-vue/theme'\n\nexport type SFCWithInstall<T> = T & Plugin\n\nexport type SFCInstallWithContext<T> = SFCWithInstall<T> & {\n  _context: AppContext | null\n}\n// export type SFCWithInstall<T> = T & Plugin\n\nexport function withInstall<T extends Component>(comp: T, name: string) {\n  ;(comp as SFCWithInstall<T>).install = (app: App) => {\n    app.component(name, comp)\n  }\n  return comp as SFCWithInstall<T>\n}\nexport const withInstallFunction = <T>(fn: T, name: string) => {\n  ;(fn as SFCWithInstall<T>).install = (app: App) => {\n    ;(fn as SFCInstallWithContext<T>)._context = app._context\n    app.config.globalProperties[name] = fn\n  }\n\n  return fn as SFCInstallWithContext<T>\n}\n"],"names":[],"mappings":";;AAWgB,SAAA,WAAA,CAAiC,MAAS,IAAc,EAAA;AACtE,EAAA,CAAA;AAAC,EAAC,IAAA,CAA2B,OAAU,GAAA,CAAC,GAAa,KAAA;AACnD,IAAI,GAAA,CAAA,SAAA,CAAU,MAAM,IAAI,CAAA,CAAA;AAAA,GAC1B,CAAA;AACA,EAAO,OAAA,IAAA,CAAA;AACT,CAAA;AACa,MAAA,mBAAA,GAAsB,CAAI,EAAA,EAAO,IAAiB,KAAA;AAC7D,EAAA,CAAA;AAAC,EAAC,EAAA,CAAyB,OAAU,GAAA,CAAC,GAAa,KAAA;AACjD,IAAA,CAAA;AAAC,IAAC,EAAA,CAAgC,WAAW,GAAI,CAAA,QAAA,CAAA;AACjD,IAAI,GAAA,CAAA,MAAA,CAAO,gBAAiB,CAAA,IAAI,CAAI,GAAA,EAAA,CAAA;AAAA,GACtC,CAAA;AAEA,EAAO,OAAA,EAAA,CAAA;AACT;;;;"}