{"version":3,"file":"ngx-easy-i18n-js-bootstrap.mjs","sources":["../../../projects/bootstrap/src/lib/easy-i18n-bootstrap.component.ts","../../../projects/bootstrap/src/lib/easy-i18n-bootstrap.component.html","../../../projects/bootstrap/src/public-api.ts","../../../projects/bootstrap/src/ngx-easy-i18n-js-bootstrap.ts"],"sourcesContent":["import { Component, ComponentRef, Inject, InjectionToken, Injector, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { CdkPortalOutlet, ComponentPortal, PortalModule } from '@angular/cdk/portal';\r\nimport { tap } from 'rxjs/operators';\r\nimport { ComponentType } from '@angular/cdk/overlay';\r\nimport { EasyI18nService, LocaleStatus } from '@ngx-easy-i18n-js/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nexport const BOOTSTRAP = new InjectionToken<ComponentType<any>>('BOOTSTRAP');\r\nexport const LOADING_COMPONENT = new InjectionToken<ComponentType<any>>('LOADING_COMPONENT');\r\n\r\n@Component({\n    selector: 'ngx-easy-i18n',\n    templateUrl: './easy-i18n-bootstrap.component.html',\n    standalone: false\n})\r\nexport class EasyI18nBootstrapComponent implements OnInit, OnDestroy {\r\n\r\n  @ViewChild(CdkPortalOutlet, { static: true })\r\n  portalOutlet?: CdkPortalOutlet;\r\n\r\n  localeStatus$?: Observable<LocaleStatus>;\r\n\r\n  loadingPortal?: ComponentPortal<any> | null;\r\n\r\n  private containerRef?: ComponentRef<any> | null;\r\n\r\n  constructor(\r\n    private injector: Injector,\r\n    @Inject(BOOTSTRAP) private bootstrap: ComponentType<any>,\r\n    @Inject(LOADING_COMPONENT) private loadingComponent: ComponentType<any>,\r\n    private easyI18nService: EasyI18nService\r\n  ) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    const injector = Injector.create({\r\n      providers: [],\r\n      parent: this.injector\r\n    });\r\n    this.loadingPortal = this.loadingComponent != null ?\r\n      new ComponentPortal<any>(this.loadingComponent, undefined, injector) : null;\r\n\r\n    const bootstrapPortal = new ComponentPortal<any>(this.bootstrap, undefined, injector);\r\n\r\n    this.localeStatus$ = this.easyI18nService.localeStatus$.pipe(\r\n      tap(res => {\r\n        if (res === 'ready') {\r\n          if (this.containerRef != null) {\r\n            this.portalOutlet?.detach();\r\n            this.containerRef = null;\r\n          }\r\n          this.containerRef = this.portalOutlet?.attachComponentPortal(bootstrapPortal);\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.portalOutlet?.dispose();\r\n  }\r\n}","<ng-template cdkPortalOutlet></ng-template>\n<ng-container *ngIf=\"localeStatus$ | async as localeStatus\">\n    <div *ngIf=\"localeStatus === 'loading'\"\n         style=\"pointer-events: all; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 10000;\">\n        <ng-container *ngIf=\"loadingPortal; else defaultLoadingTemplate\">\n            <ng-template [cdkPortalOutlet]=\"loadingPortal\"></ng-template>\n        </ng-container>\n        <ng-template #defaultLoadingTemplate>\n            <div style=\"display: grid; height: 100vh; place-content: center; background-color: #FFFFFF77\">\n                <div style=\"font-weight: 300; font-size: 3.5rem; line-height: 1.2;\">Loading languages...</div>\n                <div style=\"text-align: center;\">\n                    <svg xmlns=\"http://www.w3.org/2000/svg\"\n                         style=\"margin: auto; background: rgba(0, 0, 0, 0); display: block; shape-rendering: auto;\" width=\"100px\"\n                         height=\"100px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n                        <rect x=\"19\" y=\"19\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"40\" y=\"19\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.125s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"61\" y=\"19\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.25s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"19\" y=\"40\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.875s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"61\" y=\"40\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.375s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"19\" y=\"61\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.75s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"40\" y=\"61\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.625s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                        <rect x=\"61\" y=\"61\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\" fill=\"#1d3f72\">\n                            <animate attributeName=\"fill\" values=\"#5699d2;#1d3f72;#1d3f72\" keyTimes=\"0;0.125;1\" dur=\"1s\"\n                                     repeatCount=\"indefinite\" begin=\"0.5s\" calcMode=\"discrete\"></animate>\n                        </rect>\n                    </svg>\n                </div>\n            </div>\n        </ng-template>\n    </div>\n</ng-container>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { BOOTSTRAP, EasyI18nBootstrapComponent, LOADING_COMPONENT } from './lib/easy-i18n-bootstrap.component';\r\nimport { ComponentType } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\nexport * from './lib/easy-i18n-bootstrap.component';\r\n\r\nexport interface EasyI18nBootstrapModuleConfig {\r\n  bootstrap: ComponentType<any>;\r\n  loadingComponent?: ComponentType<any>;\r\n}\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    PortalModule\r\n  ],\r\n  declarations: [\r\n    EasyI18nBootstrapComponent\r\n  ],\r\n  exports: [\r\n    EasyI18nBootstrapComponent\r\n  ]\r\n})\r\nexport class EasyI18nBootstrapModule {\r\n\r\n  static forRoot(config: EasyI18nBootstrapModuleConfig): ModuleWithProviders<EasyI18nBootstrapModule> {\r\n    return {\r\n      ngModule: EasyI18nBootstrapModule,\r\n      providers: [\r\n        { provide: BOOTSTRAP, useValue: config.bootstrap },\r\n        { provide: LOADING_COMPONENT, useValue: config.loadingComponent }\r\n      ]\r\n    };\r\n  }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}