{"version":3,"file":"gewd-ng-utils-bootstrap-component.mjs","sources":["../../../../libs/ng-utils/bootstrap-component/bootstrap-component.module.ts","../../../../libs/ng-utils/bootstrap-component/gewd-ng-utils-bootstrap-component.ts"],"sourcesContent":["import {\n  ApplicationRef,\n  ComponentFactoryResolver,\n  Inject,\n  InjectionToken,\n  Injector,\n  ModuleWithProviders,\n  NgModule,\n  Type\n} from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\n\nexport interface BootstrapComponentConfig {\n  elementName: string;\n  component: Type<any>;\n}\n\nexport const BOOTSTRAP_COMPONENT_TOKEN = new InjectionToken<BootstrapComponentConfig>('@gewd/ng-utils/BootstrapComponentConfig');\n\nexport function bootstrapComponent(\n  document: Document,\n  resolver: ComponentFactoryResolver,\n  injector: Injector,\n  appRef: ApplicationRef,\n  bootstrapConfig: BootstrapComponentConfig\n): void  {\n    const domElement = document.createElement(bootstrapConfig.elementName);\n\n    document.body.append(domElement);\n\n    const factory = resolver.resolveComponentFactory(bootstrapConfig.component);\n    const ref = factory.create(injector, [], domElement);\n\n    appRef.attachView(ref.hostView);\n}\n\n/** @dynamic - allows Document in ngc build */\n@NgModule({\n  declarations: [],\n  imports: [\n    CommonModule\n  ]\n})\nexport class BootstrapComponentModule {\n  static component (useValue: BootstrapComponentConfig): ModuleWithProviders<BootstrapComponentModule> {\n    return {\n      ngModule: BootstrapComponentModule,\n      providers: [\n        { provide: BOOTSTRAP_COMPONENT_TOKEN, useValue, multi: true }\n      ]\n    };\n  }\n\n  constructor (@Inject(DOCUMENT) document: Document,\n               resolver: ComponentFactoryResolver,\n               injector: Injector,\n               appRef: ApplicationRef,\n               @Inject(BOOTSTRAP_COMPONENT_TOKEN) bootstrapConfigs: BootstrapComponentConfig[]) {\n    for (const bootstrapConfig of bootstrapConfigs) {\n      bootstrapComponent(document, resolver, injector, appRef, bootstrapConfig);\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;MAiBa,yBAAyB,GAAG,IAAI,cAAc,CAA2B,yCAAyC,EAAE;AAE3H,SAAU,kBAAkB,CAChC,QAAkB,EAClB,QAAkC,EAClC,QAAkB,EAClB,MAAsB,EACtB,eAAyC,EAAA;IAEvC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;AAEvE,IAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAEjC,MAAM,OAAO,GAAG,QAAQ,CAAC,uBAAuB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;AAC5E,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;AAErD,IAAA,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;MAOa,wBAAwB,CAAA;IACnC,OAAO,SAAS,CAAE,QAAkC,EAAA;QAClD,OAAO;AACL,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;AAC9D,aAAA;SACF,CAAC;KACH;IAED,WAA+B,CAAA,QAAkB,EACpC,QAAkC,EAClC,QAAkB,EAClB,MAAsB,EACa,gBAA4C,EAAA;AAC1F,QAAA,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE;YAC9C,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;AAC3E,SAAA;KACF;iIAlBU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAUd,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAIR,yBAAyB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAdnC,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAHjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAGH,uBAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,YAHjC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBANpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;AACF,iBAAA,CAAA;;0BAWe,MAAM;2BAAC,QAAQ,CAAA;;0BAIf,MAAM;2BAAC,yBAAyB,CAAA;;;ACzDhD;;AAEG;;;;"}