{"version":3,"file":"aiao-lazy-module.mjs","sources":["../../../../libs/lazy-module/src/lib/LazyModuleLoaderBase.ts","../../../../libs/lazy-module/src/lib/lazy-module-loader.ts","../../../../libs/lazy-module/src/lib/lazy-module-registry.ts","../../../../libs/lazy-module/src/lib/util.ts","../../../../libs/lazy-module/src/lib/lazy-module.module.ts","../../../../libs/lazy-module/src/aiao-lazy-module.ts"],"sourcesContent":["import { LoadChildrenCallback } from '@angular/router';\n\nimport { LazyRoutes } from './lazy-module-registry';\n\nexport abstract class LazyModuleLoaderBase {\n  protected toLoad: Map<string, LoadChildrenCallback> = new Map();\n  protected loading = new Map<string, Promise<any>>();\n\n  protected toLoadKeys() {\n    return Array.from(this.toLoad.keys());\n  }\n\n  add(lazyRoutes: LazyRoutes[]) {\n    lazyRoutes.forEach(routes =>\n      routes.forEach(({ name, loadChildren }) => {\n        if (!this.loading.has(name)) {\n          this.toLoad.set(name, loadChildren);\n        }\n      })\n    );\n  }\n}\n","import { Injectable, NgModuleRef, Type, createNgModule } from '@angular/core';\n\nimport { LazyModuleLoaderBase } from './LazyModuleLoaderBase';\n\n@Injectable({ providedIn: 'root' })\nexport class LazyModuleLoader extends LazyModuleLoaderBase {\n  constructor(private moduleRef: NgModuleRef<any>) {\n    super();\n  }\n\n  async load(name: string): Promise<NgModuleRef<any>> {\n    if (this.loading.has(name)) {\n      return this.loading.get(name);\n    }\n    const moduleLoader = this.toLoad.get(name);\n    if (!moduleLoader) {\n      throw new Error(`module not found:${name}`);\n    }\n    const loadedAndRegistered = (moduleLoader() as Promise<Type<any>>)\n      .then(module => {\n        this.toLoad.delete(name);\n        return createNgModule(module, this.moduleRef.injector);\n      })\n      .catch(err => {\n        this.loading.delete(name);\n        return Promise.reject(err);\n      });\n    this.loading.set(name, loadedAndRegistered);\n    return loadedAndRegistered;\n  }\n}\n","import { InjectionToken } from '@angular/core';\nimport { LoadChildrenCallback } from '@angular/router';\n\nexport interface LazyRoute {\n  name: string;\n  loadChildren: LoadChildrenCallback;\n}\nexport type LazyRoutes = LazyRoute[];\n\nexport const LAZY_ROUTES_TOKEN = new InjectionToken<LazyRoutes>('LAZY_ROUTES_TOKEN');\n","export function matcher() {\n  return null;\n}\n","import { Inject, ModuleWithProviders, NgModule, Optional } from '@angular/core';\nimport { ROUTES } from '@angular/router';\n\nimport { LazyModuleLoader } from './lazy-module-loader';\nimport { LAZY_ROUTES_TOKEN, LazyRoutes } from './lazy-module-registry';\nimport { matcher } from './util';\n\n@NgModule()\nexport class LazyModule {\n  constructor(\n    lazyModuleLoader: LazyModuleLoader,\n    @Optional() @Inject(LAZY_ROUTES_TOKEN) lazyModuleRoutes: LazyRoutes[]\n  ) {\n    if (lazyModuleRoutes) {\n      lazyModuleLoader.add(lazyModuleRoutes);\n    }\n  }\n\n  public static register(routes: LazyRoutes): ModuleWithProviders<LazyModule> {\n    return {\n      ngModule: LazyModule,\n      providers: [\n        {\n          provide: LAZY_ROUTES_TOKEN,\n          useValue: routes,\n          multi: true\n        },\n        {\n          provide: ROUTES,\n          useValue: routes.map(d => ({ ...d, matcher })),\n          multi: true\n        }\n      ]\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}