{"version":3,"file":"with-install.mjs","sources":["../../../../packages/utils/with-install.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\r\nimport type { App, Directive } from 'vue'\r\nimport type { SFCWithInstall } from './types'\r\n\r\nexport const withInstall = <T, E extends Record<string, any>>(\r\n  main: T,\r\n  extra?: E\r\n) => {\r\n  ;(main as SFCWithInstall<T>).install = (app): void => {\r\n    for (const comp of [main, ...Object.values(extra ?? {})]) {\r\n      app.component(comp.name, comp)\r\n    }\r\n  }\r\n\r\n  if (extra) {\r\n    for (const [key, comp] of Object.entries(extra)) {\r\n      ;(main as any)[key] = comp\r\n    }\r\n  }\r\n  return main as SFCWithInstall<T> & E\r\n}\r\n\r\nexport const withInstallFunction = <T>(fn: T, name: string) => {\r\n  ;(fn as SFCWithInstall<T>).install = (app) => {\r\n    app.config.globalProperties[name] = fn\r\n  }\r\n\r\n  return fn as SFCWithInstall<T>\r\n}\r\n\r\nexport const withInstallDirective = <T extends Directive>(\r\n  directive: T,\r\n  name: string\r\n) => {\r\n  ;(directive as SFCWithInstall<T>).install = (app: App): void => {\r\n    app.directive(name, directive)\r\n  }\r\n\r\n  return directive as SFCWithInstall<T>\r\n}\r\n\r\nexport const withNoopInstall = <T>(component: T) => {\r\n  ;(component as SFCWithInstall<T>).install = NOOP\r\n\r\n  return component as SFCWithInstall<T>\r\n}\r\n"],"names":[],"mappings":";;AACY,MAAC,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AAC5C,EAAE,CAAC;AACH,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK;AAC1B,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC,CAAC,EAAE;AAC7E,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,MAAM,CAAC;AACP,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACvB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC;AACd,EAAE;AACU,MAAC,mBAAmB,GAAG,CAAC,EAAE,EAAE,IAAI,KAAK;AACjD,EAAE,CAAC;AACH,EAAE,EAAE,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK;AACxB,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3C,GAAG,CAAC;AACJ,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE;AACU,MAAC,oBAAoB,GAAG,CAAC,SAAS,EAAE,IAAI,KAAK;AACzD,EAAE,CAAC;AACH,EAAE,SAAS,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK;AAC/B,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACnC,GAAG,CAAC;AACJ,EAAE,OAAO,SAAS,CAAC;AACnB,EAAE;AACU,MAAC,eAAe,GAAG,CAAC,SAAS,KAAK;AAC9C,EAAE,CAAC;AACH,EAAE,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3B,EAAE,OAAO,SAAS,CAAC;AACnB;;;;"}