` parent tag\n * when the URL is either '/user/jim' or '/user/bob'.\n *\n * ```\n *
\n * ```\n *\n * The `RouterLinkActive` directive can also be used to set the aria-current attribute\n * to provide an alternative distinction for active elements to visually impaired users.\n *\n * For example, the following code adds the 'active' class to the Home Page link when it is\n * indeed active and in such case also sets its aria-current attribute to 'page':\n *\n * ```\n *
Home Page\n * ```\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLinkActive {\n get isActive() {\n return this._isActive;\n }\n constructor(router, element, renderer, cdr, link) {\n this.router = router;\n this.element = element;\n this.renderer = renderer;\n this.cdr = cdr;\n this.link = link;\n this.classes = [];\n this._isActive = false;\n /**\n * Options to configure how to determine if the router link is active.\n *\n * These options are passed to the `Router.isActive()` function.\n *\n * @see {@link Router#isActive}\n */\n this.routerLinkActiveOptions = {\n exact: false\n };\n /**\n *\n * You can use the output `isActiveChange` to get notified each time the link becomes\n * active or inactive.\n *\n * Emits:\n * true -> Route is active\n * false -> Route is inactive\n *\n * ```\n *
Bob\n * ```\n */\n this.isActiveChange = new EventEmitter();\n this.routerEventsSubscription = router.events.subscribe(s => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n /** @nodoc */\n ngAfterContentInit() {\n // `of(null)` is used to force subscribe body to execute once immediately (like `startWith`).\n of(this.links.changes, of(null)).pipe(mergeAll()).subscribe(_ => {\n this.update();\n this.subscribeToEachLinkOnChanges();\n });\n }\n subscribeToEachLinkOnChanges() {\n this.linkInputChangesSubscription?.unsubscribe();\n const allLinkChanges = [...this.links.toArray(), this.link].filter(link => !!link).map(link => link.onChanges);\n this.linkInputChangesSubscription = from(allLinkChanges).pipe(mergeAll()).subscribe(link => {\n if (this._isActive !== this.isLinkActive(this.router)(link)) {\n this.update();\n }\n });\n }\n set routerLinkActive(data) {\n const classes = Array.isArray(data) ? data : data.split(' ');\n this.classes = classes.filter(c => !!c);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this.update();\n }\n /** @nodoc */\n ngOnDestroy() {\n this.routerEventsSubscription.unsubscribe();\n this.linkInputChangesSubscription?.unsubscribe();\n }\n update() {\n if (!this.links || !this.router.navigated) return;\n queueMicrotask(() => {\n const hasActiveLinks = this.hasActiveLinks();\n if (this._isActive !== hasActiveLinks) {\n this._isActive = hasActiveLinks;\n this.cdr.markForCheck();\n this.classes.forEach(c => {\n if (hasActiveLinks) {\n this.renderer.addClass(this.element.nativeElement, c);\n } else {\n this.renderer.removeClass(this.element.nativeElement, c);\n }\n });\n if (hasActiveLinks && this.ariaCurrentWhenActive !== undefined) {\n this.renderer.setAttribute(this.element.nativeElement, 'aria-current', this.ariaCurrentWhenActive.toString());\n } else {\n this.renderer.removeAttribute(this.element.nativeElement, 'aria-current');\n }\n // Emit on isActiveChange after classes are updated\n this.isActiveChange.emit(hasActiveLinks);\n }\n });\n }\n isLinkActive(router) {\n const options = isActiveMatchOptions(this.routerLinkActiveOptions) ? this.routerLinkActiveOptions :\n // While the types should disallow `undefined` here, it's possible without strict inputs\n this.routerLinkActiveOptions.exact || false;\n return link => {\n const urlTree = link.urlTree;\n return urlTree ? router.isActive(urlTree, options) : false;\n };\n }\n hasActiveLinks() {\n const isActiveCheckFn = this.isLinkActive(this.router);\n return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);\n }\n static {\n this.ɵfac = function RouterLinkActive_Factory(t) {\n return new (t || RouterLinkActive)(i0.ɵɵdirectiveInject(Router), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(RouterLink, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: RouterLinkActive,\n selectors: [[\"\", \"routerLinkActive\", \"\"]],\n contentQueries: function RouterLinkActive_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, RouterLink, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.links = _t);\n }\n },\n inputs: {\n routerLinkActiveOptions: \"routerLinkActiveOptions\",\n ariaCurrentWhenActive: \"ariaCurrentWhenActive\",\n routerLinkActive: \"routerLinkActive\"\n },\n outputs: {\n isActiveChange: \"isActiveChange\"\n },\n exportAs: [\"routerLinkActive\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RouterLinkActive, [{\n type: Directive,\n args: [{\n selector: '[routerLinkActive]',\n exportAs: 'routerLinkActive',\n standalone: true\n }]\n }], () => [{\n type: Router\n }, {\n type: i0.ElementRef\n }, {\n type: i0.Renderer2\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: RouterLink,\n decorators: [{\n type: Optional\n }]\n }], {\n links: [{\n type: ContentChildren,\n args: [RouterLink, {\n descendants: true\n }]\n }],\n routerLinkActiveOptions: [{\n type: Input\n }],\n ariaCurrentWhenActive: [{\n type: Input\n }],\n isActiveChange: [{\n type: Output\n }],\n routerLinkActive: [{\n type: Input\n }]\n });\n})();\n/**\n * Use instead of `'paths' in options` to be compatible with property renaming\n */\nfunction isActiveMatchOptions(options) {\n return !!options.paths;\n}\n\n/**\n * @description\n *\n * Provides a preloading strategy.\n *\n * @publicApi\n */\nclass PreloadingStrategy {}\n/**\n * @description\n *\n * Provides a preloading strategy that preloads all modules as quickly as possible.\n *\n * ```\n * RouterModule.forRoot(ROUTES, {preloadingStrategy: PreloadAllModules})\n * ```\n *\n * @publicApi\n */\nclass PreloadAllModules {\n preload(route, fn) {\n return fn().pipe(catchError(() => of(null)));\n }\n static {\n this.ɵfac = function PreloadAllModules_Factory(t) {\n return new (t || PreloadAllModules)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreloadAllModules,\n factory: PreloadAllModules.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PreloadAllModules, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/**\n * @description\n *\n * Provides a preloading strategy that does not preload any modules.\n *\n * This strategy is enabled by default.\n *\n * @publicApi\n */\nclass NoPreloading {\n preload(route, fn) {\n return of(null);\n }\n static {\n this.ɵfac = function NoPreloading_Factory(t) {\n return new (t || NoPreloading)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoPreloading,\n factory: NoPreloading.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoPreloading, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/**\n * The preloader optimistically loads all router configurations to\n * make navigations into lazily-loaded sections of the application faster.\n *\n * The preloader runs in the background. When the router bootstraps, the preloader\n * starts listening to all navigation events. After every such event, the preloader\n * will check if any configurations can be loaded lazily.\n *\n * If a route is protected by `canLoad` guards, the preloaded will not load it.\n *\n * @publicApi\n */\nclass RouterPreloader {\n constructor(router, compiler, injector, preloadingStrategy, loader) {\n this.router = router;\n this.injector = injector;\n this.preloadingStrategy = preloadingStrategy;\n this.loader = loader;\n }\n setUpPreloading() {\n this.subscription = this.router.events.pipe(filter(e => e instanceof NavigationEnd), concatMap(() => this.preload())).subscribe(() => {});\n }\n preload() {\n return this.processRoutes(this.injector, this.router.config);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n processRoutes(injector, routes) {\n const res = [];\n for (const route of routes) {\n if (route.providers && !route._injector) {\n route._injector = createEnvironmentInjector(route.providers, injector, `Route: ${route.path}`);\n }\n const injectorForCurrentRoute = route._injector ?? injector;\n const injectorForChildren = route._loadedInjector ?? injectorForCurrentRoute;\n // Note that `canLoad` is only checked as a condition that prevents `loadChildren` and not\n // `loadComponent`. `canLoad` guards only block loading of child routes by design. This\n // happens as a consequence of needing to descend into children for route matching immediately\n // while component loading is deferred until route activation. Because `canLoad` guards can\n // have side effects, we cannot execute them here so we instead skip preloading altogether\n // when present. Lastly, it remains to be decided whether `canLoad` should behave this way\n // at all. Code splitting and lazy loading is separate from client-side authorization checks\n // and should not be used as a security measure to prevent loading of code.\n if (route.loadChildren && !route._loadedRoutes && route.canLoad === undefined || route.loadComponent && !route._loadedComponent) {\n res.push(this.preloadConfig(injectorForCurrentRoute, route));\n }\n if (route.children || route._loadedRoutes) {\n res.push(this.processRoutes(injectorForChildren, route.children ?? route._loadedRoutes));\n }\n }\n return from(res).pipe(mergeAll());\n }\n preloadConfig(injector, route) {\n return this.preloadingStrategy.preload(route, () => {\n let loadedChildren$;\n if (route.loadChildren && route.canLoad === undefined) {\n loadedChildren$ = this.loader.loadChildren(injector, route);\n } else {\n loadedChildren$ = of(null);\n }\n const recursiveLoadChildren$ = loadedChildren$.pipe(mergeMap(config => {\n if (config === null) {\n return of(void 0);\n }\n route._loadedRoutes = config.routes;\n route._loadedInjector = config.injector;\n // If the loaded config was a module, use that as the module/module injector going\n // forward. Otherwise, continue using the current module/module injector.\n return this.processRoutes(config.injector ?? injector, config.routes);\n }));\n if (route.loadComponent && !route._loadedComponent) {\n const loadComponent$ = this.loader.loadComponent(route);\n return from([recursiveLoadChildren$, loadComponent$]).pipe(mergeAll());\n } else {\n return recursiveLoadChildren$;\n }\n });\n }\n static {\n this.ɵfac = function RouterPreloader_Factory(t) {\n return new (t || RouterPreloader)(i0.ɵɵinject(Router), i0.ɵɵinject(i0.Compiler), i0.ɵɵinject(i0.EnvironmentInjector), i0.ɵɵinject(PreloadingStrategy), i0.ɵɵinject(RouterConfigLoader));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RouterPreloader,\n factory: RouterPreloader.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RouterPreloader, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [{\n type: Router\n }, {\n type: i0.Compiler\n }, {\n type: i0.EnvironmentInjector\n }, {\n type: PreloadingStrategy\n }, {\n type: RouterConfigLoader\n }], null);\n})();\nconst ROUTER_SCROLLER = new InjectionToken('');\nclass RouterScroller {\n /** @nodoc */\n constructor(urlSerializer, transitions, viewportScroller, zone, options = {}) {\n this.urlSerializer = urlSerializer;\n this.transitions = transitions;\n this.viewportScroller = viewportScroller;\n this.zone = zone;\n this.options = options;\n this.lastId = 0;\n this.lastSource = 'imperative';\n this.restoredId = 0;\n this.store = {};\n // Default both options to 'disabled'\n options.scrollPositionRestoration ||= 'disabled';\n options.anchorScrolling ||= 'disabled';\n }\n init() {\n // we want to disable the automatic scrolling because having two places\n // responsible for scrolling results race conditions, especially given\n // that browser don't implement this behavior consistently\n if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.setHistoryScrollRestoration('manual');\n }\n this.routerEventsSubscription = this.createScrollEvents();\n this.scrollEventsSubscription = this.consumeScrollEvents();\n }\n createScrollEvents() {\n return this.transitions.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n // store the scroll position of the current stable navigations.\n this.store[this.lastId] = this.viewportScroller.getScrollPosition();\n this.lastSource = e.navigationTrigger;\n this.restoredId = e.restoredState ? e.restoredState.navigationId : 0;\n } else if (e instanceof NavigationEnd) {\n this.lastId = e.id;\n this.scheduleScrollEvent(e, this.urlSerializer.parse(e.urlAfterRedirects).fragment);\n } else if (e instanceof NavigationSkipped && e.code === NavigationSkippedCode.IgnoredSameUrlNavigation) {\n this.lastSource = undefined;\n this.restoredId = 0;\n this.scheduleScrollEvent(e, this.urlSerializer.parse(e.url).fragment);\n }\n });\n }\n consumeScrollEvents() {\n return this.transitions.events.subscribe(e => {\n if (!(e instanceof Scroll)) return;\n // a popstate event. The pop state event will always ignore anchor scrolling.\n if (e.position) {\n if (this.options.scrollPositionRestoration === 'top') {\n this.viewportScroller.scrollToPosition([0, 0]);\n } else if (this.options.scrollPositionRestoration === 'enabled') {\n this.viewportScroller.scrollToPosition(e.position);\n }\n // imperative navigation \"forward\"\n } else {\n if (e.anchor && this.options.anchorScrolling === 'enabled') {\n this.viewportScroller.scrollToAnchor(e.anchor);\n } else if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n }\n });\n }\n scheduleScrollEvent(routerEvent, anchor) {\n this.zone.runOutsideAngular(() => {\n // The scroll event needs to be delayed until after change detection. Otherwise, we may\n // attempt to restore the scroll position before the router outlet has fully rendered the\n // component by executing its update block of the template function.\n setTimeout(() => {\n this.zone.run(() => {\n this.transitions.events.next(new Scroll(routerEvent, this.lastSource === 'popstate' ? this.store[this.restoredId] : null, anchor));\n });\n }, 0);\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this.routerEventsSubscription?.unsubscribe();\n this.scrollEventsSubscription?.unsubscribe();\n }\n static {\n this.ɵfac = function RouterScroller_Factory(t) {\n i0.ɵɵinvalidFactory();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RouterScroller,\n factory: RouterScroller.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RouterScroller, [{\n type: Injectable\n }], () => [{\n type: UrlSerializer\n }, {\n type: NavigationTransitions\n }, {\n type: i3.ViewportScroller\n }, {\n type: i0.NgZone\n }, {\n type: undefined\n }], null);\n})();\n\n/**\n * Sets up providers necessary to enable `Router` functionality for the application.\n * Allows to configure a set of routes as well as extra features that should be enabled.\n *\n * @usageNotes\n *\n * Basic example of how you can add a Router to your application:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent, {\n * providers: [provideRouter(appRoutes)]\n * });\n * ```\n *\n * You can also enable optional features in the Router by adding functions from the `RouterFeatures`\n * type:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes,\n * withDebugTracing(),\n * withRouterConfig({paramsInheritanceStrategy: 'always'}))\n * ]\n * }\n * );\n * ```\n *\n * @see {@link RouterFeatures}\n *\n * @publicApi\n * @param routes A set of `Route`s to use for the application routing table.\n * @param features Optional features to configure additional router behaviors.\n * @returns A set of providers to setup a Router.\n */\nfunction provideRouter(routes, ...features) {\n return makeEnvironmentProviders([{\n provide: ROUTES,\n multi: true,\n useValue: routes\n }, typeof ngDevMode === 'undefined' || ngDevMode ? {\n provide: ROUTER_IS_PROVIDED,\n useValue: true\n } : [], {\n provide: ActivatedRoute,\n useFactory: rootRoute,\n deps: [Router]\n }, {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useFactory: getBootstrapListener\n }, features.map(feature => feature.ɵproviders)]);\n}\nfunction rootRoute(router) {\n return router.routerState.root;\n}\n/**\n * Helper function to create an object that represents a Router feature.\n */\nfunction routerFeature(kind, providers) {\n return {\n ɵkind: kind,\n ɵproviders: providers\n };\n}\n/**\n * An Injection token used to indicate whether `provideRouter` or `RouterModule.forRoot` was ever\n * called.\n */\nconst ROUTER_IS_PROVIDED = new InjectionToken('', {\n providedIn: 'root',\n factory: () => false\n});\nconst routerIsProvidedDevModeCheck = {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => {\n if (!inject(ROUTER_IS_PROVIDED)) {\n console.warn('`provideRoutes` was called without `provideRouter` or `RouterModule.forRoot`. ' + 'This is likely a mistake.');\n }\n };\n }\n};\n/**\n * Registers a [DI provider](guide/glossary#provider) for a set of routes.\n * @param routes The route configuration to provide.\n *\n * @usageNotes\n *\n * ```\n * @NgModule({\n * providers: [provideRoutes(ROUTES)]\n * })\n * class LazyLoadedChildModule {}\n * ```\n *\n * @deprecated If necessary, provide routes using the `ROUTES` `InjectionToken`.\n * @see {@link ROUTES}\n * @publicApi\n */\nfunction provideRoutes(routes) {\n return [{\n provide: ROUTES,\n multi: true,\n useValue: routes\n }, typeof ngDevMode === 'undefined' || ngDevMode ? routerIsProvidedDevModeCheck : []];\n}\n/**\n * Enables customizable scrolling behavior for router navigations.\n *\n * @usageNotes\n *\n * Basic example of how you can enable scrolling feature:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withInMemoryScrolling())\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n * @see {@link ViewportScroller}\n *\n * @publicApi\n * @param options Set of configuration parameters to customize scrolling behavior, see\n * `InMemoryScrollingOptions` for additional information.\n * @returns A set of providers for use with `provideRouter`.\n */\nfunction withInMemoryScrolling(options = {}) {\n const providers = [{\n provide: ROUTER_SCROLLER,\n useFactory: () => {\n const viewportScroller = inject(ViewportScroller);\n const zone = inject(NgZone);\n const transitions = inject(NavigationTransitions);\n const urlSerializer = inject(UrlSerializer);\n return new RouterScroller(urlSerializer, transitions, viewportScroller, zone, options);\n }\n }];\n return routerFeature(4 /* RouterFeatureKind.InMemoryScrollingFeature */, providers);\n}\nfunction getBootstrapListener() {\n const injector = inject(Injector);\n return bootstrappedComponentRef => {\n const ref = injector.get(ApplicationRef);\n if (bootstrappedComponentRef !== ref.components[0]) {\n return;\n }\n const router = injector.get(Router);\n const bootstrapDone = injector.get(BOOTSTRAP_DONE);\n if (injector.get(INITIAL_NAVIGATION) === 1 /* InitialNavigation.EnabledNonBlocking */) {\n router.initialNavigation();\n }\n injector.get(ROUTER_PRELOADER, null, InjectFlags.Optional)?.setUpPreloading();\n injector.get(ROUTER_SCROLLER, null, InjectFlags.Optional)?.init();\n router.resetRootComponentType(ref.componentTypes[0]);\n if (!bootstrapDone.closed) {\n bootstrapDone.next();\n bootstrapDone.complete();\n bootstrapDone.unsubscribe();\n }\n };\n}\n/**\n * A subject used to indicate that the bootstrapping phase is done. When initial navigation is\n * `enabledBlocking`, the first navigation waits until bootstrapping is finished before continuing\n * to the activation phase.\n */\nconst BOOTSTRAP_DONE = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'bootstrap done indicator' : '', {\n factory: () => {\n return new Subject();\n }\n});\nconst INITIAL_NAVIGATION = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'initial navigation' : '', {\n providedIn: 'root',\n factory: () => 1 /* InitialNavigation.EnabledNonBlocking */\n});\n/**\n * Configures initial navigation to start before the root component is created.\n *\n * The bootstrap is blocked until the initial navigation is complete. This value is required for\n * [server-side rendering](guide/ssr) to work.\n *\n * @usageNotes\n *\n * Basic example of how you can enable this navigation behavior:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withEnabledBlockingInitialNavigation())\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n *\n * @publicApi\n * @returns A set of providers for use with `provideRouter`.\n */\nfunction withEnabledBlockingInitialNavigation() {\n const providers = [{\n provide: INITIAL_NAVIGATION,\n useValue: 0 /* InitialNavigation.EnabledBlocking */\n }, {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: injector => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve());\n return () => {\n return locationInitialized.then(() => {\n return new Promise(resolve => {\n const router = injector.get(Router);\n const bootstrapDone = injector.get(BOOTSTRAP_DONE);\n afterNextNavigation(router, () => {\n // Unblock APP_INITIALIZER in case the initial navigation was canceled or errored\n // without a redirect.\n resolve(true);\n });\n injector.get(NavigationTransitions).afterPreactivation = () => {\n // Unblock APP_INITIALIZER once we get to `afterPreactivation`. At this point, we\n // assume activation will complete successfully (even though this is not\n // guaranteed).\n resolve(true);\n return bootstrapDone.closed ? of(void 0) : bootstrapDone;\n };\n router.initialNavigation();\n });\n });\n };\n }\n }];\n return routerFeature(2 /* RouterFeatureKind.EnabledBlockingInitialNavigationFeature */, providers);\n}\n/**\n * Disables initial navigation.\n *\n * Use if there is a reason to have more control over when the router starts its initial navigation\n * due to some complex initialization logic.\n *\n * @usageNotes\n *\n * Basic example of how you can disable initial navigation:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withDisabledInitialNavigation())\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withDisabledInitialNavigation() {\n const providers = [{\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: () => {\n const router = inject(Router);\n return () => {\n router.setUpLocationChangeListener();\n };\n }\n }, {\n provide: INITIAL_NAVIGATION,\n useValue: 2 /* InitialNavigation.Disabled */\n }];\n return routerFeature(3 /* RouterFeatureKind.DisabledInitialNavigationFeature */, providers);\n}\n/**\n * Enables logging of all internal navigation events to the console.\n * Extra logging might be useful for debugging purposes to inspect Router event sequence.\n *\n * @usageNotes\n *\n * Basic example of how you can enable debug tracing:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withDebugTracing())\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withDebugTracing() {\n let providers = [];\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n providers = [{\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory: () => {\n const router = inject(Router);\n return () => router.events.subscribe(e => {\n // tslint:disable:no-console\n console.group?.(`Router Event: ${e.constructor.name}`);\n console.log(stringifyEvent(e));\n console.log(e);\n console.groupEnd?.();\n // tslint:enable:no-console\n });\n }\n }];\n } else {\n providers = [];\n }\n return routerFeature(1 /* RouterFeatureKind.DebugTracingFeature */, providers);\n}\nconst ROUTER_PRELOADER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'router preloader' : '');\n/**\n * Allows to configure a preloading strategy to use. The strategy is configured by providing a\n * reference to a class that implements a `PreloadingStrategy`.\n *\n * @usageNotes\n *\n * Basic example of how you can configure preloading:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withPreloading(PreloadAllModules))\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n *\n * @param preloadingStrategy A reference to a class that implements a `PreloadingStrategy` that\n * should be used.\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withPreloading(preloadingStrategy) {\n const providers = [{\n provide: ROUTER_PRELOADER,\n useExisting: RouterPreloader\n }, {\n provide: PreloadingStrategy,\n useExisting: preloadingStrategy\n }];\n return routerFeature(0 /* RouterFeatureKind.PreloadingFeature */, providers);\n}\n/**\n * Allows to provide extra parameters to configure Router.\n *\n * @usageNotes\n *\n * Basic example of how you can provide extra configuration options:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withRouterConfig({\n * onSameUrlNavigation: 'reload'\n * }))\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n *\n * @param options A set of parameters to configure Router, see `RouterConfigOptions` for\n * additional information.\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withRouterConfig(options) {\n const providers = [{\n provide: ROUTER_CONFIGURATION,\n useValue: options\n }];\n return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);\n}\n/**\n * Provides the location strategy that uses the URL fragment instead of the history API.\n *\n * @usageNotes\n *\n * Basic example of how you can use the hash location option:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withHashLocation())\n * ]\n * }\n * );\n * ```\n *\n * @see {@link provideRouter}\n * @see {@link HashLocationStrategy}\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withHashLocation() {\n const providers = [{\n provide: LocationStrategy,\n useClass: HashLocationStrategy\n }];\n return routerFeature(6 /* RouterFeatureKind.RouterHashLocationFeature */, providers);\n}\n/**\n * Subscribes to the Router's navigation events and calls the given function when a\n * `NavigationError` happens.\n *\n * This function is run inside application's [injection context](guide/dependency-injection-context)\n * so you can use the [`inject`](api/core/inject) function.\n *\n * @usageNotes\n *\n * Basic example of how you can use the error handler option:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withNavigationErrorHandler((e: NavigationError) =>\n * inject(MyErrorTracker).trackError(e)))\n * ]\n * }\n * );\n * ```\n *\n * @see {@link NavigationError}\n * @see {@link core/inject}\n * @see {@link runInInjectionContext}\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withNavigationErrorHandler(fn) {\n const providers = [{\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n const injector = inject(EnvironmentInjector);\n inject(Router).events.subscribe(e => {\n if (e instanceof NavigationError) {\n runInInjectionContext(injector, () => fn(e));\n }\n });\n }\n }];\n return routerFeature(7 /* RouterFeatureKind.NavigationErrorHandlerFeature */, providers);\n}\n/**\n * Enables binding information from the `Router` state directly to the inputs of the component in\n * `Route` configurations.\n *\n * @usageNotes\n *\n * Basic example of how you can enable the feature:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withComponentInputBinding())\n * ]\n * }\n * );\n * ```\n *\n * @returns A set of providers for use with `provideRouter`.\n */\nfunction withComponentInputBinding() {\n const providers = [RoutedComponentInputBinder, {\n provide: INPUT_BINDER,\n useExisting: RoutedComponentInputBinder\n }];\n return routerFeature(8 /* RouterFeatureKind.ComponentInputBindingFeature */, providers);\n}\n/**\n * Enables view transitions in the Router by running the route activation and deactivation inside of\n * `document.startViewTransition`.\n *\n * Note: The View Transitions API is not available in all browsers. If the browser does not support\n * view transitions, the Router will not attempt to start a view transition and continue processing\n * the navigation as usual.\n *\n * @usageNotes\n *\n * Basic example of how you can enable the feature:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withViewTransitions())\n * ]\n * }\n * );\n * ```\n *\n * @returns A set of providers for use with `provideRouter`.\n * @see https://developer.chrome.com/docs/web-platform/view-transitions/\n * @see https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API\n * @experimental\n */\nfunction withViewTransitions(options) {\n const providers = [{\n provide: CREATE_VIEW_TRANSITION,\n useValue: createViewTransition\n }, {\n provide: VIEW_TRANSITION_OPTIONS,\n useValue: {\n skipNextTransition: !!options?.skipInitialTransition,\n ...options\n }\n }];\n return routerFeature(9 /* RouterFeatureKind.ViewTransitionsFeature */, providers);\n}\n\n/**\n * The directives defined in the `RouterModule`.\n */\nconst ROUTER_DIRECTIVES = [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent];\n/**\n * @docsNotRequired\n */\nconst ROUTER_FORROOT_GUARD = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'router duplicate forRoot guard' : 'ROUTER_FORROOT_GUARD');\n// TODO(atscott): All of these except `ActivatedRoute` are `providedIn: 'root'`. They are only kept\n// here to avoid a breaking change whereby the provider order matters based on where the\n// `RouterModule`/`RouterTestingModule` is imported. These can/should be removed as a \"breaking\"\n// change in a major version.\nconst ROUTER_PROVIDERS = [Location, {\n provide: UrlSerializer,\n useClass: DefaultUrlSerializer\n}, Router, ChildrenOutletContexts, {\n provide: ActivatedRoute,\n useFactory: rootRoute,\n deps: [Router]\n}, RouterConfigLoader,\n// Only used to warn when `provideRoutes` is used without `RouterModule` or `provideRouter`. Can\n// be removed when `provideRoutes` is removed.\ntypeof ngDevMode === 'undefined' || ngDevMode ? {\n provide: ROUTER_IS_PROVIDED,\n useValue: true\n} : []];\n/**\n * @description\n *\n * Adds directives and providers for in-app navigation among views defined in an application.\n * Use the Angular `Router` service to declaratively specify application states and manage state\n * transitions.\n *\n * You can import this NgModule multiple times, once for each lazy-loaded bundle.\n * However, only one `Router` service can be active.\n * To ensure this, there are two ways to register routes when importing this module:\n *\n * * The `forRoot()` method creates an `NgModule` that contains all the directives, the given\n * routes, and the `Router` service itself.\n * * The `forChild()` method creates an `NgModule` that contains all the directives and the given\n * routes, but does not include the `Router` service.\n *\n * @see [Routing and Navigation guide](guide/router) for an\n * overview of how the `Router` service should be used.\n *\n * @publicApi\n */\nclass RouterModule {\n constructor(guard) {}\n /**\n * Creates and configures a module with all the router providers and directives.\n * Optionally sets up an application listener to perform an initial navigation.\n *\n * When registering the NgModule at the root, import as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forRoot(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the application.\n * @param config An `ExtraOptions` configuration object that controls how navigation is performed.\n * @return The new `NgModule`.\n *\n */\n static forRoot(routes, config) {\n return {\n ngModule: RouterModule,\n providers: [ROUTER_PROVIDERS, typeof ngDevMode === 'undefined' || ngDevMode ? config?.enableTracing ? withDebugTracing().ɵproviders : [] : [], {\n provide: ROUTES,\n multi: true,\n useValue: routes\n }, {\n provide: ROUTER_FORROOT_GUARD,\n useFactory: provideForRootGuard,\n deps: [[Router, new Optional(), new SkipSelf()]]\n }, {\n provide: ROUTER_CONFIGURATION,\n useValue: config ? config : {}\n }, config?.useHash ? provideHashLocationStrategy() : providePathLocationStrategy(), provideRouterScroller(), config?.preloadingStrategy ? withPreloading(config.preloadingStrategy).ɵproviders : [], config?.initialNavigation ? provideInitialNavigation(config) : [], config?.bindToComponentInputs ? withComponentInputBinding().ɵproviders : [], config?.enableViewTransitions ? withViewTransitions().ɵproviders : [], provideRouterInitializer()]\n };\n }\n /**\n * Creates a module with all the router directives and a provider registering routes,\n * without creating a new Router service.\n * When registering for submodules and lazy-loaded submodules, create the NgModule as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forChild(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the submodule.\n * @return The new NgModule.\n *\n */\n static forChild(routes) {\n return {\n ngModule: RouterModule,\n providers: [{\n provide: ROUTES,\n multi: true,\n useValue: routes\n }]\n };\n }\n static {\n this.ɵfac = function RouterModule_Factory(t) {\n return new (t || RouterModule)(i0.ɵɵinject(ROUTER_FORROOT_GUARD, 8));\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RouterModule,\n imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent],\n exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RouterModule, [{\n type: NgModule,\n args: [{\n imports: ROUTER_DIRECTIVES,\n exports: ROUTER_DIRECTIVES\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ROUTER_FORROOT_GUARD]\n }]\n }], null);\n})();\n/**\n * For internal use by `RouterModule` only. Note that this differs from `withInMemoryRouterScroller`\n * because it reads from the `ExtraOptions` which should not be used in the standalone world.\n */\nfunction provideRouterScroller() {\n return {\n provide: ROUTER_SCROLLER,\n useFactory: () => {\n const viewportScroller = inject(ViewportScroller);\n const zone = inject(NgZone);\n const config = inject(ROUTER_CONFIGURATION);\n const transitions = inject(NavigationTransitions);\n const urlSerializer = inject(UrlSerializer);\n if (config.scrollOffset) {\n viewportScroller.setOffset(config.scrollOffset);\n }\n return new RouterScroller(urlSerializer, transitions, viewportScroller, zone, config);\n }\n };\n}\n// Note: For internal use only with `RouterModule`. Standalone setup via `provideRouter` should\n// provide hash location directly via `{provide: LocationStrategy, useClass: HashLocationStrategy}`.\nfunction provideHashLocationStrategy() {\n return {\n provide: LocationStrategy,\n useClass: HashLocationStrategy\n };\n}\n// Note: For internal use only with `RouterModule`. Standalone setup via `provideRouter` does not\n// need this at all because `PathLocationStrategy` is the default factory for `LocationStrategy`.\nfunction providePathLocationStrategy() {\n return {\n provide: LocationStrategy,\n useClass: PathLocationStrategy\n };\n}\nfunction provideForRootGuard(router) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && router) {\n throw new ɵRuntimeError(4007 /* RuntimeErrorCode.FOR_ROOT_CALLED_TWICE */, `The Router was provided more than once. This can happen if 'forRoot' is used outside of the root injector.` + ` Lazy loaded modules should use RouterModule.forChild() instead.`);\n }\n return 'guarded';\n}\n// Note: For internal use only with `RouterModule`. Standalone router setup with `provideRouter`\n// users call `withXInitialNavigation` directly.\nfunction provideInitialNavigation(config) {\n return [config.initialNavigation === 'disabled' ? withDisabledInitialNavigation().ɵproviders : [], config.initialNavigation === 'enabledBlocking' ? withEnabledBlockingInitialNavigation().ɵproviders : []];\n}\n// TODO(atscott): This should not be in the public API\n/**\n * A [DI token](guide/glossary/#di-token) for the router initializer that\n * is called after the app is bootstrapped.\n *\n * @publicApi\n */\nconst ROUTER_INITIALIZER = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'Router Initializer' : '');\nfunction provideRouterInitializer() {\n return [\n // ROUTER_INITIALIZER token should be removed. It's public API but shouldn't be. We can just\n // have `getBootstrapListener` directly attached to APP_BOOTSTRAP_LISTENER.\n {\n provide: ROUTER_INITIALIZER,\n useFactory: getBootstrapListener\n }, {\n provide: APP_BOOTSTRAP_LISTENER,\n multi: true,\n useExisting: ROUTER_INITIALIZER\n }];\n}\n\n/**\n * Maps an array of injectable classes with canMatch functions to an array of equivalent\n * `CanMatchFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nfunction mapToCanMatch(providers) {\n return providers.map(provider => (...params) => inject(provider).canMatch(...params));\n}\n/**\n * Maps an array of injectable classes with canActivate functions to an array of equivalent\n * `CanActivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nfunction mapToCanActivate(providers) {\n return providers.map(provider => (...params) => inject(provider).canActivate(...params));\n}\n/**\n * Maps an array of injectable classes with canActivateChild functions to an array of equivalent\n * `CanActivateChildFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nfunction mapToCanActivateChild(providers) {\n return providers.map(provider => (...params) => inject(provider).canActivateChild(...params));\n}\n/**\n * Maps an array of injectable classes with canDeactivate functions to an array of equivalent\n * `CanDeactivateFn` for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='CanActivate'}\n *\n * @publicApi\n * @see {@link Route}\n */\nfunction mapToCanDeactivate(providers) {\n return providers.map(provider => (...params) => inject(provider).canDeactivate(...params));\n}\n/**\n * Maps an injectable class with a resolve function to an equivalent `ResolveFn`\n * for use in a `Route` definition.\n *\n * Usage {@example router/utils/functional_guards.ts region='Resolve'}\n *\n * @publicApi\n * @see {@link Route}\n */\nfunction mapToResolve(provider) {\n return (...params) => inject(provider).resolve(...params);\n}\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the router package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('17.1.3');\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultTitleStrategy, DefaultUrlSerializer, EventType, GuardsCheckEnd, GuardsCheckStart, NavigationCancel, NavigationCancellationCode, NavigationEnd, NavigationError, NavigationSkipped, NavigationSkippedCode, NavigationStart, NoPreloading, OutletContext, PRIMARY_OUTLET, PreloadAllModules, PreloadingStrategy, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, ROUTES, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, Router, RouterEvent, RouterLink, RouterLinkActive, RouterLink as RouterLinkWithHref, RouterModule, RouterOutlet, RouterPreloader, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, TitleStrategy, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VERSION, convertToParamMap, createUrlTreeFromSnapshot, defaultUrlMatcher, mapToCanActivate, mapToCanActivateChild, mapToCanDeactivate, mapToCanMatch, mapToResolve, provideRouter, provideRoutes, withComponentInputBinding, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, withViewTransitions, ɵEmptyOutletComponent, ROUTER_PROVIDERS as ɵROUTER_PROVIDERS, afterNextNavigation as ɵafterNextNavigation, loadChildren as ɵloadChildren };\n"],
- "mappings": "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",
- "names": ["last", "tree", "match", "res", "commands", "noMatch", "EventType", "NavigationCancellationCode", "NavigationSkippedCode", "t", "c", "node", "map", "contexts", "canActivate", "last", "s", "tree", "from", "t", "NavigationResult", "e"]
-}
diff --git a/my-app/.angular/cache/17.1.3/vite/deps_temp_f5a2fd8f/chunk-JNM7CA4Q.js b/my-app/.angular/cache/17.1.3/vite/deps_temp_f5a2fd8f/chunk-JNM7CA4Q.js
deleted file mode 100755
index 95731b7d..00000000
--- a/my-app/.angular/cache/17.1.3/vite/deps_temp_f5a2fd8f/chunk-JNM7CA4Q.js
+++ /dev/null
@@ -1,23966 +0,0 @@
-var __defProp = Object.defineProperty;
-var __defProps = Object.defineProperties;
-var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
-var __getOwnPropSymbols = Object.getOwnPropertySymbols;
-var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __propIsEnum = Object.prototype.propertyIsEnumerable;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __spreadValues = (a, b) => {
- for (var prop in b ||= {})
- if (__hasOwnProp.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- if (__getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(b)) {
- if (__propIsEnum.call(b, prop))
- __defNormalProp(a, prop, b[prop]);
- }
- return a;
-};
-var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
-var __objRest = (source, exclude) => {
- var target = {};
- for (var prop in source)
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
- target[prop] = source[prop];
- if (source != null && __getOwnPropSymbols)
- for (var prop of __getOwnPropSymbols(source)) {
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
- target[prop] = source[prop];
- }
- return target;
-};
-var __async = (__this, __arguments, generator) => {
- return new Promise((resolve, reject) => {
- var fulfilled = (value) => {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- };
- var rejected = (value) => {
- try {
- step(generator.throw(value));
- } catch (e) {
- reject(e);
- }
- };
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
- step((generator = generator.apply(__this, __arguments)).next());
- });
-};
-
-// node_modules/@angular/core/fesm2022/primitives/signals.mjs
-function defaultEquals(a, b) {
- return Object.is(a, b);
-}
-var activeConsumer = null;
-var inNotificationPhase = false;
-var epoch = 1;
-var SIGNAL = Symbol("SIGNAL");
-function setActiveConsumer(consumer) {
- const prev = activeConsumer;
- activeConsumer = consumer;
- return prev;
-}
-function getActiveConsumer() {
- return activeConsumer;
-}
-function isInNotificationPhase() {
- return inNotificationPhase;
-}
-var REACTIVE_NODE = {
- version: 0,
- lastCleanEpoch: 0,
- dirty: false,
- producerNode: void 0,
- producerLastReadVersion: void 0,
- producerIndexOfThis: void 0,
- nextProducerIndex: 0,
- liveConsumerNode: void 0,
- liveConsumerIndexOfThis: void 0,
- consumerAllowSignalWrites: false,
- consumerIsAlwaysLive: false,
- producerMustRecompute: () => false,
- producerRecomputeValue: () => {
- },
- consumerMarkedDirty: () => {
- },
- consumerOnSignalRead: () => {
- }
-};
-function producerAccessed(node) {
- if (inNotificationPhase) {
- throw new Error(typeof ngDevMode !== "undefined" && ngDevMode ? `Assertion error: signal read during notification phase` : "");
- }
- if (activeConsumer === null) {
- return;
- }
- activeConsumer.consumerOnSignalRead(node);
- const idx = activeConsumer.nextProducerIndex++;
- assertConsumerNode(activeConsumer);
- if (idx < activeConsumer.producerNode.length && activeConsumer.producerNode[idx] !== node) {
- if (consumerIsLive(activeConsumer)) {
- const staleProducer = activeConsumer.producerNode[idx];
- producerRemoveLiveConsumerAtIndex(staleProducer, activeConsumer.producerIndexOfThis[idx]);
- }
- }
- if (activeConsumer.producerNode[idx] !== node) {
- activeConsumer.producerNode[idx] = node;
- activeConsumer.producerIndexOfThis[idx] = consumerIsLive(activeConsumer) ? producerAddLiveConsumer(node, activeConsumer, idx) : 0;
- }
- activeConsumer.producerLastReadVersion[idx] = node.version;
-}
-function producerIncrementEpoch() {
- epoch++;
-}
-function producerUpdateValueVersion(node) {
- if (consumerIsLive(node) && !node.dirty) {
- return;
- }
- if (!node.dirty && node.lastCleanEpoch === epoch) {
- return;
- }
- if (!node.producerMustRecompute(node) && !consumerPollProducersForChange(node)) {
- node.dirty = false;
- node.lastCleanEpoch = epoch;
- return;
- }
- node.producerRecomputeValue(node);
- node.dirty = false;
- node.lastCleanEpoch = epoch;
-}
-function producerNotifyConsumers(node) {
- if (node.liveConsumerNode === void 0) {
- return;
- }
- const prev = inNotificationPhase;
- inNotificationPhase = true;
- try {
- for (const consumer of node.liveConsumerNode) {
- if (!consumer.dirty) {
- consumerMarkDirty(consumer);
- }
- }
- } finally {
- inNotificationPhase = prev;
- }
-}
-function producerUpdatesAllowed() {
- return activeConsumer?.consumerAllowSignalWrites !== false;
-}
-function consumerMarkDirty(node) {
- node.dirty = true;
- producerNotifyConsumers(node);
- node.consumerMarkedDirty?.(node);
-}
-function consumerBeforeComputation(node) {
- node && (node.nextProducerIndex = 0);
- return setActiveConsumer(node);
-}
-function consumerAfterComputation(node, prevConsumer) {
- setActiveConsumer(prevConsumer);
- if (!node || node.producerNode === void 0 || node.producerIndexOfThis === void 0 || node.producerLastReadVersion === void 0) {
- return;
- }
- if (consumerIsLive(node)) {
- for (let i = node.nextProducerIndex; i < node.producerNode.length; i++) {
- producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
- }
- }
- while (node.producerNode.length > node.nextProducerIndex) {
- node.producerNode.pop();
- node.producerLastReadVersion.pop();
- node.producerIndexOfThis.pop();
- }
-}
-function consumerPollProducersForChange(node) {
- assertConsumerNode(node);
- for (let i = 0; i < node.producerNode.length; i++) {
- const producer = node.producerNode[i];
- const seenVersion = node.producerLastReadVersion[i];
- if (seenVersion !== producer.version) {
- return true;
- }
- producerUpdateValueVersion(producer);
- if (seenVersion !== producer.version) {
- return true;
- }
- }
- return false;
-}
-function consumerDestroy(node) {
- assertConsumerNode(node);
- if (consumerIsLive(node)) {
- for (let i = 0; i < node.producerNode.length; i++) {
- producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
- }
- }
- node.producerNode.length = node.producerLastReadVersion.length = node.producerIndexOfThis.length = 0;
- if (node.liveConsumerNode) {
- node.liveConsumerNode.length = node.liveConsumerIndexOfThis.length = 0;
- }
-}
-function producerAddLiveConsumer(node, consumer, indexOfThis) {
- assertProducerNode(node);
- assertConsumerNode(node);
- if (node.liveConsumerNode.length === 0) {
- for (let i = 0; i < node.producerNode.length; i++) {
- node.producerIndexOfThis[i] = producerAddLiveConsumer(node.producerNode[i], node, i);
- }
- }
- node.liveConsumerIndexOfThis.push(indexOfThis);
- return node.liveConsumerNode.push(consumer) - 1;
-}
-function producerRemoveLiveConsumerAtIndex(node, idx) {
- assertProducerNode(node);
- assertConsumerNode(node);
- if (typeof ngDevMode !== "undefined" && ngDevMode && idx >= node.liveConsumerNode.length) {
- throw new Error(`Assertion error: active consumer index ${idx} is out of bounds of ${node.liveConsumerNode.length} consumers)`);
- }
- if (node.liveConsumerNode.length === 1) {
- for (let i = 0; i < node.producerNode.length; i++) {
- producerRemoveLiveConsumerAtIndex(node.producerNode[i], node.producerIndexOfThis[i]);
- }
- }
- const lastIdx = node.liveConsumerNode.length - 1;
- node.liveConsumerNode[idx] = node.liveConsumerNode[lastIdx];
- node.liveConsumerIndexOfThis[idx] = node.liveConsumerIndexOfThis[lastIdx];
- node.liveConsumerNode.length--;
- node.liveConsumerIndexOfThis.length--;
- if (idx < node.liveConsumerNode.length) {
- const idxProducer = node.liveConsumerIndexOfThis[idx];
- const consumer = node.liveConsumerNode[idx];
- assertConsumerNode(consumer);
- consumer.producerIndexOfThis[idxProducer] = idx;
- }
-}
-function consumerIsLive(node) {
- return node.consumerIsAlwaysLive || (node?.liveConsumerNode?.length ?? 0) > 0;
-}
-function assertConsumerNode(node) {
- node.producerNode ??= [];
- node.producerIndexOfThis ??= [];
- node.producerLastReadVersion ??= [];
-}
-function assertProducerNode(node) {
- node.liveConsumerNode ??= [];
- node.liveConsumerIndexOfThis ??= [];
-}
-function createComputed(computation) {
- const node = Object.create(COMPUTED_NODE);
- node.computation = computation;
- const computed2 = () => {
- producerUpdateValueVersion(node);
- producerAccessed(node);
- if (node.value === ERRORED) {
- throw node.error;
- }
- return node.value;
- };
- computed2[SIGNAL] = node;
- return computed2;
-}
-var UNSET = Symbol("UNSET");
-var COMPUTING = Symbol("COMPUTING");
-var ERRORED = Symbol("ERRORED");
-var COMPUTED_NODE = (() => {
- return __spreadProps(__spreadValues({}, REACTIVE_NODE), {
- value: UNSET,
- dirty: true,
- error: null,
- equal: defaultEquals,
- producerMustRecompute(node) {
- return node.value === UNSET || node.value === COMPUTING;
- },
- producerRecomputeValue(node) {
- if (node.value === COMPUTING) {
- throw new Error("Detected cycle in computations.");
- }
- const oldValue = node.value;
- node.value = COMPUTING;
- const prevConsumer = consumerBeforeComputation(node);
- let newValue;
- try {
- newValue = node.computation();
- } catch (err) {
- newValue = ERRORED;
- node.error = err;
- } finally {
- consumerAfterComputation(node, prevConsumer);
- }
- if (oldValue !== UNSET && oldValue !== ERRORED && newValue !== ERRORED && node.equal(oldValue, newValue)) {
- node.value = oldValue;
- return;
- }
- node.value = newValue;
- node.version++;
- }
- });
-})();
-function defaultThrowError() {
- throw new Error();
-}
-var throwInvalidWriteToSignalErrorFn = defaultThrowError;
-function throwInvalidWriteToSignalError() {
- throwInvalidWriteToSignalErrorFn();
-}
-function setThrowInvalidWriteToSignalError(fn) {
- throwInvalidWriteToSignalErrorFn = fn;
-}
-var postSignalSetFn = null;
-function createSignal(initialValue) {
- const node = Object.create(SIGNAL_NODE);
- node.value = initialValue;
- const getter = () => {
- producerAccessed(node);
- return node.value;
- };
- getter[SIGNAL] = node;
- return getter;
-}
-function signalSetFn(node, newValue) {
- if (!producerUpdatesAllowed()) {
- throwInvalidWriteToSignalError();
- }
- if (!node.equal(node.value, newValue)) {
- node.value = newValue;
- signalValueChanged(node);
- }
-}
-function signalUpdateFn(node, updater) {
- if (!producerUpdatesAllowed()) {
- throwInvalidWriteToSignalError();
- }
- signalSetFn(node, updater(node.value));
-}
-var SIGNAL_NODE = (() => {
- return __spreadProps(__spreadValues({}, REACTIVE_NODE), {
- equal: defaultEquals,
- value: void 0
- });
-})();
-function signalValueChanged(node) {
- node.version++;
- producerIncrementEpoch();
- producerNotifyConsumers(node);
- postSignalSetFn?.();
-}
-function createWatch(fn, schedule, allowSignalWrites) {
- const node = Object.create(WATCH_NODE);
- if (allowSignalWrites) {
- node.consumerAllowSignalWrites = true;
- }
- node.fn = fn;
- node.schedule = schedule;
- const registerOnCleanup = (cleanupFn) => {
- node.cleanupFn = cleanupFn;
- };
- function isWatchNodeDestroyed(node2) {
- return node2.fn === null && node2.schedule === null;
- }
- function destroyWatchNode(node2) {
- if (!isWatchNodeDestroyed(node2)) {
- consumerDestroy(node2);
- node2.cleanupFn();
- node2.fn = null;
- node2.schedule = null;
- node2.cleanupFn = NOOP_CLEANUP_FN;
- }
- }
- const run = () => {
- if (node.fn === null) {
- return;
- }
- if (isInNotificationPhase()) {
- throw new Error(`Schedulers cannot synchronously execute watches while scheduling.`);
- }
- node.dirty = false;
- if (node.hasRun && !consumerPollProducersForChange(node)) {
- return;
- }
- node.hasRun = true;
- const prevConsumer = consumerBeforeComputation(node);
- try {
- node.cleanupFn();
- node.cleanupFn = NOOP_CLEANUP_FN;
- node.fn(registerOnCleanup);
- } finally {
- consumerAfterComputation(node, prevConsumer);
- }
- };
- node.ref = {
- notify: () => consumerMarkDirty(node),
- run,
- cleanup: () => node.cleanupFn(),
- destroy: () => destroyWatchNode(node),
- [SIGNAL]: node
- };
- return node.ref;
-}
-var NOOP_CLEANUP_FN = () => {
-};
-var WATCH_NODE = (() => {
- return __spreadProps(__spreadValues({}, REACTIVE_NODE), {
- consumerIsAlwaysLive: true,
- consumerAllowSignalWrites: false,
- consumerMarkedDirty: (node) => {
- if (node.schedule !== null) {
- node.schedule(node.ref);
- }
- },
- hasRun: false,
- cleanupFn: NOOP_CLEANUP_FN
- });
-})();
-
-// node_modules/tslib/tslib.es6.mjs
-var extendStatics = function(d, b) {
- extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) {
- d2.__proto__ = b2;
- } || function(d2, b2) {
- for (var p in b2)
- if (Object.prototype.hasOwnProperty.call(b2, p))
- d2[p] = b2[p];
- };
- return extendStatics(d, b);
-};
-function __extends(d, b) {
- if (typeof b !== "function" && b !== null)
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
- extendStatics(d, b);
- function __() {
- this.constructor = d;
- }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-}
-function __awaiter(thisArg, _arguments, P, generator) {
- function adopt(value) {
- return value instanceof P ? value : new P(function(resolve) {
- resolve(value);
- });
- }
- return new (P || (P = Promise))(function(resolve, reject) {
- function fulfilled(value) {
- try {
- step(generator.next(value));
- } catch (e) {
- reject(e);
- }
- }
- function rejected(value) {
- try {
- step(generator["throw"](value));
- } catch (e) {
- reject(e);
- }
- }
- function step(result) {
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
- }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
-}
-function __generator(thisArg, body) {
- var _ = { label: 0, sent: function() {
- if (t[0] & 1)
- throw t[1];
- return t[1];
- }, trys: [], ops: [] }, f, y, t, g;
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
- return this;
- }), g;
- function verb(n) {
- return function(v) {
- return step([n, v]);
- };
- }
- function step(op) {
- if (f)
- throw new TypeError("Generator is already executing.");
- while (g && (g = 0, op[0] && (_ = 0)), _)
- try {
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
- return t;
- if (y = 0, t)
- op = [op[0] & 2, t.value];
- switch (op[0]) {
- case 0:
- case 1:
- t = op;
- break;
- case 4:
- _.label++;
- return { value: op[1], done: false };
- case 5:
- _.label++;
- y = op[1];
- op = [0];
- continue;
- case 7:
- op = _.ops.pop();
- _.trys.pop();
- continue;
- default:
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
- _ = 0;
- continue;
- }
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
- _.label = op[1];
- break;
- }
- if (op[0] === 6 && _.label < t[1]) {
- _.label = t[1];
- t = op;
- break;
- }
- if (t && _.label < t[2]) {
- _.label = t[2];
- _.ops.push(op);
- break;
- }
- if (t[2])
- _.ops.pop();
- _.trys.pop();
- continue;
- }
- op = body.call(thisArg, _);
- } catch (e) {
- op = [6, e];
- y = 0;
- } finally {
- f = t = 0;
- }
- if (op[0] & 5)
- throw op[1];
- return { value: op[0] ? op[1] : void 0, done: true };
- }
-}
-function __values(o) {
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
- if (m)
- return m.call(o);
- if (o && typeof o.length === "number")
- return {
- next: function() {
- if (o && i >= o.length)
- o = void 0;
- return { value: o && o[i++], done: !o };
- }
- };
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-}
-function __read(o, n) {
- var m = typeof Symbol === "function" && o[Symbol.iterator];
- if (!m)
- return o;
- var i = m.call(o), r, ar = [], e;
- try {
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
- ar.push(r.value);
- } catch (error) {
- e = { error };
- } finally {
- try {
- if (r && !r.done && (m = i["return"]))
- m.call(i);
- } finally {
- if (e)
- throw e.error;
- }
- }
- return ar;
-}
-function __spreadArray(to, from2, pack) {
- if (pack || arguments.length === 2)
- for (var i = 0, l = from2.length, ar; i < l; i++) {
- if (ar || !(i in from2)) {
- if (!ar)
- ar = Array.prototype.slice.call(from2, 0, i);
- ar[i] = from2[i];
- }
- }
- return to.concat(ar || Array.prototype.slice.call(from2));
-}
-function __await(v) {
- return this instanceof __await ? (this.v = v, this) : new __await(v);
-}
-function __asyncGenerator(thisArg, _arguments, generator) {
- if (!Symbol.asyncIterator)
- throw new TypeError("Symbol.asyncIterator is not defined.");
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
- return this;
- }, i;
- function verb(n) {
- if (g[n])
- i[n] = function(v) {
- return new Promise(function(a, b) {
- q.push([n, v, a, b]) > 1 || resume(n, v);
- });
- };
- }
- function resume(n, v) {
- try {
- step(g[n](v));
- } catch (e) {
- settle(q[0][3], e);
- }
- }
- function step(r) {
- r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
- }
- function fulfill(value) {
- resume("next", value);
- }
- function reject(value) {
- resume("throw", value);
- }
- function settle(f, v) {
- if (f(v), q.shift(), q.length)
- resume(q[0][0], q[0][1]);
- }
-}
-function __asyncValues(o) {
- if (!Symbol.asyncIterator)
- throw new TypeError("Symbol.asyncIterator is not defined.");
- var m = o[Symbol.asyncIterator], i;
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
- return this;
- }, i);
- function verb(n) {
- i[n] = o[n] && function(v) {
- return new Promise(function(resolve, reject) {
- v = o[n](v), settle(resolve, reject, v.done, v.value);
- });
- };
- }
- function settle(resolve, reject, d, v) {
- Promise.resolve(v).then(function(v2) {
- resolve({ value: v2, done: d });
- }, reject);
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isFunction.js
-function isFunction(value) {
- return typeof value === "function";
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js
-function createErrorClass(createImpl) {
- var _super = function(instance) {
- Error.call(instance);
- instance.stack = new Error().stack;
- };
- var ctorFunc = createImpl(_super);
- ctorFunc.prototype = Object.create(Error.prototype);
- ctorFunc.prototype.constructor = ctorFunc;
- return ctorFunc;
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js
-var UnsubscriptionError = createErrorClass(function(_super) {
- return function UnsubscriptionErrorImpl(errors) {
- _super(this);
- this.message = errors ? errors.length + " errors occurred during unsubscription:\n" + errors.map(function(err, i) {
- return i + 1 + ") " + err.toString();
- }).join("\n ") : "";
- this.name = "UnsubscriptionError";
- this.errors = errors;
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/util/arrRemove.js
-function arrRemove(arr, item) {
- if (arr) {
- var index = arr.indexOf(item);
- 0 <= index && arr.splice(index, 1);
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/Subscription.js
-var Subscription = function() {
- function Subscription2(initialTeardown) {
- this.initialTeardown = initialTeardown;
- this.closed = false;
- this._parentage = null;
- this._finalizers = null;
- }
- Subscription2.prototype.unsubscribe = function() {
- var e_1, _a, e_2, _b;
- var errors;
- if (!this.closed) {
- this.closed = true;
- var _parentage = this._parentage;
- if (_parentage) {
- this._parentage = null;
- if (Array.isArray(_parentage)) {
- try {
- for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {
- var parent_1 = _parentage_1_1.value;
- parent_1.remove(this);
- }
- } catch (e_1_1) {
- e_1 = { error: e_1_1 };
- } finally {
- try {
- if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return))
- _a.call(_parentage_1);
- } finally {
- if (e_1)
- throw e_1.error;
- }
- }
- } else {
- _parentage.remove(this);
- }
- }
- var initialFinalizer = this.initialTeardown;
- if (isFunction(initialFinalizer)) {
- try {
- initialFinalizer();
- } catch (e) {
- errors = e instanceof UnsubscriptionError ? e.errors : [e];
- }
- }
- var _finalizers = this._finalizers;
- if (_finalizers) {
- this._finalizers = null;
- try {
- for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {
- var finalizer = _finalizers_1_1.value;
- try {
- execFinalizer(finalizer);
- } catch (err) {
- errors = errors !== null && errors !== void 0 ? errors : [];
- if (err instanceof UnsubscriptionError) {
- errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));
- } else {
- errors.push(err);
- }
- }
- }
- } catch (e_2_1) {
- e_2 = { error: e_2_1 };
- } finally {
- try {
- if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return))
- _b.call(_finalizers_1);
- } finally {
- if (e_2)
- throw e_2.error;
- }
- }
- }
- if (errors) {
- throw new UnsubscriptionError(errors);
- }
- }
- };
- Subscription2.prototype.add = function(teardown) {
- var _a;
- if (teardown && teardown !== this) {
- if (this.closed) {
- execFinalizer(teardown);
- } else {
- if (teardown instanceof Subscription2) {
- if (teardown.closed || teardown._hasParent(this)) {
- return;
- }
- teardown._addParent(this);
- }
- (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);
- }
- }
- };
- Subscription2.prototype._hasParent = function(parent) {
- var _parentage = this._parentage;
- return _parentage === parent || Array.isArray(_parentage) && _parentage.includes(parent);
- };
- Subscription2.prototype._addParent = function(parent) {
- var _parentage = this._parentage;
- this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;
- };
- Subscription2.prototype._removeParent = function(parent) {
- var _parentage = this._parentage;
- if (_parentage === parent) {
- this._parentage = null;
- } else if (Array.isArray(_parentage)) {
- arrRemove(_parentage, parent);
- }
- };
- Subscription2.prototype.remove = function(teardown) {
- var _finalizers = this._finalizers;
- _finalizers && arrRemove(_finalizers, teardown);
- if (teardown instanceof Subscription2) {
- teardown._removeParent(this);
- }
- };
- Subscription2.EMPTY = function() {
- var empty2 = new Subscription2();
- empty2.closed = true;
- return empty2;
- }();
- return Subscription2;
-}();
-var EMPTY_SUBSCRIPTION = Subscription.EMPTY;
-function isSubscription(value) {
- return value instanceof Subscription || value && "closed" in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe);
-}
-function execFinalizer(finalizer) {
- if (isFunction(finalizer)) {
- finalizer();
- } else {
- finalizer.unsubscribe();
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/config.js
-var config = {
- onUnhandledError: null,
- onStoppedNotification: null,
- Promise: void 0,
- useDeprecatedSynchronousErrorHandling: false,
- useDeprecatedNextContext: false
-};
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js
-var timeoutProvider = {
- setTimeout: function(handler, timeout2) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- var delegate = timeoutProvider.delegate;
- if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {
- return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout2], __read(args)));
- }
- return setTimeout.apply(void 0, __spreadArray([handler, timeout2], __read(args)));
- },
- clearTimeout: function(handle) {
- var delegate = timeoutProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js
-function reportUnhandledError(err) {
- timeoutProvider.setTimeout(function() {
- var onUnhandledError = config.onUnhandledError;
- if (onUnhandledError) {
- onUnhandledError(err);
- } else {
- throw err;
- }
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/noop.js
-function noop() {
-}
-
-// node_modules/rxjs/dist/esm5/internal/NotificationFactories.js
-var COMPLETE_NOTIFICATION = function() {
- return createNotification("C", void 0, void 0);
-}();
-function errorNotification(error) {
- return createNotification("E", void 0, error);
-}
-function nextNotification(value) {
- return createNotification("N", value, void 0);
-}
-function createNotification(kind, value, error) {
- return {
- kind,
- value,
- error
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/errorContext.js
-var context = null;
-function errorContext(cb) {
- if (config.useDeprecatedSynchronousErrorHandling) {
- var isRoot = !context;
- if (isRoot) {
- context = { errorThrown: false, error: null };
- }
- cb();
- if (isRoot) {
- var _a = context, errorThrown = _a.errorThrown, error = _a.error;
- context = null;
- if (errorThrown) {
- throw error;
- }
- }
- } else {
- cb();
- }
-}
-function captureError(err) {
- if (config.useDeprecatedSynchronousErrorHandling && context) {
- context.errorThrown = true;
- context.error = err;
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/Subscriber.js
-var Subscriber = function(_super) {
- __extends(Subscriber2, _super);
- function Subscriber2(destination) {
- var _this = _super.call(this) || this;
- _this.isStopped = false;
- if (destination) {
- _this.destination = destination;
- if (isSubscription(destination)) {
- destination.add(_this);
- }
- } else {
- _this.destination = EMPTY_OBSERVER;
- }
- return _this;
- }
- Subscriber2.create = function(next, error, complete) {
- return new SafeSubscriber(next, error, complete);
- };
- Subscriber2.prototype.next = function(value) {
- if (this.isStopped) {
- handleStoppedNotification(nextNotification(value), this);
- } else {
- this._next(value);
- }
- };
- Subscriber2.prototype.error = function(err) {
- if (this.isStopped) {
- handleStoppedNotification(errorNotification(err), this);
- } else {
- this.isStopped = true;
- this._error(err);
- }
- };
- Subscriber2.prototype.complete = function() {
- if (this.isStopped) {
- handleStoppedNotification(COMPLETE_NOTIFICATION, this);
- } else {
- this.isStopped = true;
- this._complete();
- }
- };
- Subscriber2.prototype.unsubscribe = function() {
- if (!this.closed) {
- this.isStopped = true;
- _super.prototype.unsubscribe.call(this);
- this.destination = null;
- }
- };
- Subscriber2.prototype._next = function(value) {
- this.destination.next(value);
- };
- Subscriber2.prototype._error = function(err) {
- try {
- this.destination.error(err);
- } finally {
- this.unsubscribe();
- }
- };
- Subscriber2.prototype._complete = function() {
- try {
- this.destination.complete();
- } finally {
- this.unsubscribe();
- }
- };
- return Subscriber2;
-}(Subscription);
-var _bind = Function.prototype.bind;
-function bind(fn, thisArg) {
- return _bind.call(fn, thisArg);
-}
-var ConsumerObserver = function() {
- function ConsumerObserver2(partialObserver) {
- this.partialObserver = partialObserver;
- }
- ConsumerObserver2.prototype.next = function(value) {
- var partialObserver = this.partialObserver;
- if (partialObserver.next) {
- try {
- partialObserver.next(value);
- } catch (error) {
- handleUnhandledError(error);
- }
- }
- };
- ConsumerObserver2.prototype.error = function(err) {
- var partialObserver = this.partialObserver;
- if (partialObserver.error) {
- try {
- partialObserver.error(err);
- } catch (error) {
- handleUnhandledError(error);
- }
- } else {
- handleUnhandledError(err);
- }
- };
- ConsumerObserver2.prototype.complete = function() {
- var partialObserver = this.partialObserver;
- if (partialObserver.complete) {
- try {
- partialObserver.complete();
- } catch (error) {
- handleUnhandledError(error);
- }
- }
- };
- return ConsumerObserver2;
-}();
-var SafeSubscriber = function(_super) {
- __extends(SafeSubscriber2, _super);
- function SafeSubscriber2(observerOrNext, error, complete) {
- var _this = _super.call(this) || this;
- var partialObserver;
- if (isFunction(observerOrNext) || !observerOrNext) {
- partialObserver = {
- next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : void 0,
- error: error !== null && error !== void 0 ? error : void 0,
- complete: complete !== null && complete !== void 0 ? complete : void 0
- };
- } else {
- var context_1;
- if (_this && config.useDeprecatedNextContext) {
- context_1 = Object.create(observerOrNext);
- context_1.unsubscribe = function() {
- return _this.unsubscribe();
- };
- partialObserver = {
- next: observerOrNext.next && bind(observerOrNext.next, context_1),
- error: observerOrNext.error && bind(observerOrNext.error, context_1),
- complete: observerOrNext.complete && bind(observerOrNext.complete, context_1)
- };
- } else {
- partialObserver = observerOrNext;
- }
- }
- _this.destination = new ConsumerObserver(partialObserver);
- return _this;
- }
- return SafeSubscriber2;
-}(Subscriber);
-function handleUnhandledError(error) {
- if (config.useDeprecatedSynchronousErrorHandling) {
- captureError(error);
- } else {
- reportUnhandledError(error);
- }
-}
-function defaultErrorHandler(err) {
- throw err;
-}
-function handleStoppedNotification(notification, subscriber) {
- var onStoppedNotification = config.onStoppedNotification;
- onStoppedNotification && timeoutProvider.setTimeout(function() {
- return onStoppedNotification(notification, subscriber);
- });
-}
-var EMPTY_OBSERVER = {
- closed: true,
- next: noop,
- error: defaultErrorHandler,
- complete: noop
-};
-
-// node_modules/rxjs/dist/esm5/internal/symbol/observable.js
-var observable = function() {
- return typeof Symbol === "function" && Symbol.observable || "@@observable";
-}();
-
-// node_modules/rxjs/dist/esm5/internal/util/identity.js
-function identity(x) {
- return x;
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/pipe.js
-function pipe() {
- var fns = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- fns[_i] = arguments[_i];
- }
- return pipeFromArray(fns);
-}
-function pipeFromArray(fns) {
- if (fns.length === 0) {
- return identity;
- }
- if (fns.length === 1) {
- return fns[0];
- }
- return function piped(input2) {
- return fns.reduce(function(prev, fn) {
- return fn(prev);
- }, input2);
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/Observable.js
-var Observable = function() {
- function Observable2(subscribe) {
- if (subscribe) {
- this._subscribe = subscribe;
- }
- }
- Observable2.prototype.lift = function(operator) {
- var observable2 = new Observable2();
- observable2.source = this;
- observable2.operator = operator;
- return observable2;
- };
- Observable2.prototype.subscribe = function(observerOrNext, error, complete) {
- var _this = this;
- var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);
- errorContext(function() {
- var _a = _this, operator = _a.operator, source = _a.source;
- subscriber.add(operator ? operator.call(subscriber, source) : source ? _this._subscribe(subscriber) : _this._trySubscribe(subscriber));
- });
- return subscriber;
- };
- Observable2.prototype._trySubscribe = function(sink) {
- try {
- return this._subscribe(sink);
- } catch (err) {
- sink.error(err);
- }
- };
- Observable2.prototype.forEach = function(next, promiseCtor) {
- var _this = this;
- promiseCtor = getPromiseCtor(promiseCtor);
- return new promiseCtor(function(resolve, reject) {
- var subscriber = new SafeSubscriber({
- next: function(value) {
- try {
- next(value);
- } catch (err) {
- reject(err);
- subscriber.unsubscribe();
- }
- },
- error: reject,
- complete: resolve
- });
- _this.subscribe(subscriber);
- });
- };
- Observable2.prototype._subscribe = function(subscriber) {
- var _a;
- return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);
- };
- Observable2.prototype[observable] = function() {
- return this;
- };
- Observable2.prototype.pipe = function() {
- var operations = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- operations[_i] = arguments[_i];
- }
- return pipeFromArray(operations)(this);
- };
- Observable2.prototype.toPromise = function(promiseCtor) {
- var _this = this;
- promiseCtor = getPromiseCtor(promiseCtor);
- return new promiseCtor(function(resolve, reject) {
- var value;
- _this.subscribe(function(x) {
- return value = x;
- }, function(err) {
- return reject(err);
- }, function() {
- return resolve(value);
- });
- });
- };
- Observable2.create = function(subscribe) {
- return new Observable2(subscribe);
- };
- return Observable2;
-}();
-function getPromiseCtor(promiseCtor) {
- var _a;
- return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;
-}
-function isObserver(value) {
- return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
-}
-function isSubscriber(value) {
- return value && value instanceof Subscriber || isObserver(value) && isSubscription(value);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/lift.js
-function hasLift(source) {
- return isFunction(source === null || source === void 0 ? void 0 : source.lift);
-}
-function operate(init) {
- return function(source) {
- if (hasLift(source)) {
- return source.lift(function(liftedSource) {
- try {
- return init(liftedSource, this);
- } catch (err) {
- this.error(err);
- }
- });
- }
- throw new TypeError("Unable to lift unknown Observable type");
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js
-function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {
- return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);
-}
-var OperatorSubscriber = function(_super) {
- __extends(OperatorSubscriber2, _super);
- function OperatorSubscriber2(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {
- var _this = _super.call(this, destination) || this;
- _this.onFinalize = onFinalize;
- _this.shouldUnsubscribe = shouldUnsubscribe;
- _this._next = onNext ? function(value) {
- try {
- onNext(value);
- } catch (err) {
- destination.error(err);
- }
- } : _super.prototype._next;
- _this._error = onError ? function(err) {
- try {
- onError(err);
- } catch (err2) {
- destination.error(err2);
- } finally {
- this.unsubscribe();
- }
- } : _super.prototype._error;
- _this._complete = onComplete ? function() {
- try {
- onComplete();
- } catch (err) {
- destination.error(err);
- } finally {
- this.unsubscribe();
- }
- } : _super.prototype._complete;
- return _this;
- }
- OperatorSubscriber2.prototype.unsubscribe = function() {
- var _a;
- if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {
- var closed_1 = this.closed;
- _super.prototype.unsubscribe.call(this);
- !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));
- }
- };
- return OperatorSubscriber2;
-}(Subscriber);
-
-// node_modules/rxjs/dist/esm5/internal/operators/refCount.js
-function refCount() {
- return operate(function(source, subscriber) {
- var connection = null;
- source._refCount++;
- var refCounter = createOperatorSubscriber(subscriber, void 0, void 0, void 0, function() {
- if (!source || source._refCount <= 0 || 0 < --source._refCount) {
- connection = null;
- return;
- }
- var sharedConnection = source._connection;
- var conn = connection;
- connection = null;
- if (sharedConnection && (!conn || sharedConnection === conn)) {
- sharedConnection.unsubscribe();
- }
- subscriber.unsubscribe();
- });
- source.subscribe(refCounter);
- if (!refCounter.closed) {
- connection = source.connect();
- }
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/ConnectableObservable.js
-var ConnectableObservable = function(_super) {
- __extends(ConnectableObservable2, _super);
- function ConnectableObservable2(source, subjectFactory) {
- var _this = _super.call(this) || this;
- _this.source = source;
- _this.subjectFactory = subjectFactory;
- _this._subject = null;
- _this._refCount = 0;
- _this._connection = null;
- if (hasLift(source)) {
- _this.lift = source.lift;
- }
- return _this;
- }
- ConnectableObservable2.prototype._subscribe = function(subscriber) {
- return this.getSubject().subscribe(subscriber);
- };
- ConnectableObservable2.prototype.getSubject = function() {
- var subject = this._subject;
- if (!subject || subject.isStopped) {
- this._subject = this.subjectFactory();
- }
- return this._subject;
- };
- ConnectableObservable2.prototype._teardown = function() {
- this._refCount = 0;
- var _connection = this._connection;
- this._subject = this._connection = null;
- _connection === null || _connection === void 0 ? void 0 : _connection.unsubscribe();
- };
- ConnectableObservable2.prototype.connect = function() {
- var _this = this;
- var connection = this._connection;
- if (!connection) {
- connection = this._connection = new Subscription();
- var subject_1 = this.getSubject();
- connection.add(this.source.subscribe(createOperatorSubscriber(subject_1, void 0, function() {
- _this._teardown();
- subject_1.complete();
- }, function(err) {
- _this._teardown();
- subject_1.error(err);
- }, function() {
- return _this._teardown();
- })));
- if (connection.closed) {
- this._connection = null;
- connection = Subscription.EMPTY;
- }
- }
- return connection;
- };
- ConnectableObservable2.prototype.refCount = function() {
- return refCount()(this);
- };
- return ConnectableObservable2;
-}(Observable);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/performanceTimestampProvider.js
-var performanceTimestampProvider = {
- now: function() {
- return (performanceTimestampProvider.delegate || performance).now();
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/animationFrameProvider.js
-var animationFrameProvider = {
- schedule: function(callback) {
- var request = requestAnimationFrame;
- var cancel = cancelAnimationFrame;
- var delegate = animationFrameProvider.delegate;
- if (delegate) {
- request = delegate.requestAnimationFrame;
- cancel = delegate.cancelAnimationFrame;
- }
- var handle = request(function(timestamp2) {
- cancel = void 0;
- callback(timestamp2);
- });
- return new Subscription(function() {
- return cancel === null || cancel === void 0 ? void 0 : cancel(handle);
- });
- },
- requestAnimationFrame: function() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = animationFrameProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.requestAnimationFrame) || requestAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
- },
- cancelAnimationFrame: function() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = animationFrameProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.cancelAnimationFrame) || cancelAnimationFrame).apply(void 0, __spreadArray([], __read(args)));
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/observable/dom/animationFrames.js
-function animationFramesFactory(timestampProvider) {
- return new Observable(function(subscriber) {
- var provider = timestampProvider || performanceTimestampProvider;
- var start = provider.now();
- var id = 0;
- var run = function() {
- if (!subscriber.closed) {
- id = animationFrameProvider.requestAnimationFrame(function(timestamp2) {
- id = 0;
- var now = provider.now();
- subscriber.next({
- timestamp: timestampProvider ? now : timestamp2,
- elapsed: now - start
- });
- run();
- });
- }
- };
- run();
- return function() {
- if (id) {
- animationFrameProvider.cancelAnimationFrame(id);
- }
- };
- });
-}
-var DEFAULT_ANIMATION_FRAMES = animationFramesFactory();
-
-// node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js
-var ObjectUnsubscribedError = createErrorClass(function(_super) {
- return function ObjectUnsubscribedErrorImpl() {
- _super(this);
- this.name = "ObjectUnsubscribedError";
- this.message = "object unsubscribed";
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/Subject.js
-var Subject = function(_super) {
- __extends(Subject2, _super);
- function Subject2() {
- var _this = _super.call(this) || this;
- _this.closed = false;
- _this.currentObservers = null;
- _this.observers = [];
- _this.isStopped = false;
- _this.hasError = false;
- _this.thrownError = null;
- return _this;
- }
- Subject2.prototype.lift = function(operator) {
- var subject = new AnonymousSubject(this, this);
- subject.operator = operator;
- return subject;
- };
- Subject2.prototype._throwIfClosed = function() {
- if (this.closed) {
- throw new ObjectUnsubscribedError();
- }
- };
- Subject2.prototype.next = function(value) {
- var _this = this;
- errorContext(function() {
- var e_1, _a;
- _this._throwIfClosed();
- if (!_this.isStopped) {
- if (!_this.currentObservers) {
- _this.currentObservers = Array.from(_this.observers);
- }
- try {
- for (var _b = __values(_this.currentObservers), _c = _b.next(); !_c.done; _c = _b.next()) {
- var observer = _c.value;
- observer.next(value);
- }
- } catch (e_1_1) {
- e_1 = { error: e_1_1 };
- } finally {
- try {
- if (_c && !_c.done && (_a = _b.return))
- _a.call(_b);
- } finally {
- if (e_1)
- throw e_1.error;
- }
- }
- }
- });
- };
- Subject2.prototype.error = function(err) {
- var _this = this;
- errorContext(function() {
- _this._throwIfClosed();
- if (!_this.isStopped) {
- _this.hasError = _this.isStopped = true;
- _this.thrownError = err;
- var observers = _this.observers;
- while (observers.length) {
- observers.shift().error(err);
- }
- }
- });
- };
- Subject2.prototype.complete = function() {
- var _this = this;
- errorContext(function() {
- _this._throwIfClosed();
- if (!_this.isStopped) {
- _this.isStopped = true;
- var observers = _this.observers;
- while (observers.length) {
- observers.shift().complete();
- }
- }
- });
- };
- Subject2.prototype.unsubscribe = function() {
- this.isStopped = this.closed = true;
- this.observers = this.currentObservers = null;
- };
- Object.defineProperty(Subject2.prototype, "observed", {
- get: function() {
- var _a;
- return ((_a = this.observers) === null || _a === void 0 ? void 0 : _a.length) > 0;
- },
- enumerable: false,
- configurable: true
- });
- Subject2.prototype._trySubscribe = function(subscriber) {
- this._throwIfClosed();
- return _super.prototype._trySubscribe.call(this, subscriber);
- };
- Subject2.prototype._subscribe = function(subscriber) {
- this._throwIfClosed();
- this._checkFinalizedStatuses(subscriber);
- return this._innerSubscribe(subscriber);
- };
- Subject2.prototype._innerSubscribe = function(subscriber) {
- var _this = this;
- var _a = this, hasError = _a.hasError, isStopped = _a.isStopped, observers = _a.observers;
- if (hasError || isStopped) {
- return EMPTY_SUBSCRIPTION;
- }
- this.currentObservers = null;
- observers.push(subscriber);
- return new Subscription(function() {
- _this.currentObservers = null;
- arrRemove(observers, subscriber);
- });
- };
- Subject2.prototype._checkFinalizedStatuses = function(subscriber) {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, isStopped = _a.isStopped;
- if (hasError) {
- subscriber.error(thrownError);
- } else if (isStopped) {
- subscriber.complete();
- }
- };
- Subject2.prototype.asObservable = function() {
- var observable2 = new Observable();
- observable2.source = this;
- return observable2;
- };
- Subject2.create = function(destination, source) {
- return new AnonymousSubject(destination, source);
- };
- return Subject2;
-}(Observable);
-var AnonymousSubject = function(_super) {
- __extends(AnonymousSubject2, _super);
- function AnonymousSubject2(destination, source) {
- var _this = _super.call(this) || this;
- _this.destination = destination;
- _this.source = source;
- return _this;
- }
- AnonymousSubject2.prototype.next = function(value) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.next) === null || _b === void 0 ? void 0 : _b.call(_a, value);
- };
- AnonymousSubject2.prototype.error = function(err) {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.call(_a, err);
- };
- AnonymousSubject2.prototype.complete = function() {
- var _a, _b;
- (_b = (_a = this.destination) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a);
- };
- AnonymousSubject2.prototype._subscribe = function(subscriber) {
- var _a, _b;
- return (_b = (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber)) !== null && _b !== void 0 ? _b : EMPTY_SUBSCRIPTION;
- };
- return AnonymousSubject2;
-}(Subject);
-
-// node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
-var BehaviorSubject = function(_super) {
- __extends(BehaviorSubject2, _super);
- function BehaviorSubject2(_value) {
- var _this = _super.call(this) || this;
- _this._value = _value;
- return _this;
- }
- Object.defineProperty(BehaviorSubject2.prototype, "value", {
- get: function() {
- return this.getValue();
- },
- enumerable: false,
- configurable: true
- });
- BehaviorSubject2.prototype._subscribe = function(subscriber) {
- var subscription = _super.prototype._subscribe.call(this, subscriber);
- !subscription.closed && subscriber.next(this._value);
- return subscription;
- };
- BehaviorSubject2.prototype.getValue = function() {
- var _a = this, hasError = _a.hasError, thrownError = _a.thrownError, _value = _a._value;
- if (hasError) {
- throw thrownError;
- }
- this._throwIfClosed();
- return _value;
- };
- BehaviorSubject2.prototype.next = function(value) {
- _super.prototype.next.call(this, this._value = value);
- };
- return BehaviorSubject2;
-}(Subject);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js
-var dateTimestampProvider = {
- now: function() {
- return (dateTimestampProvider.delegate || Date).now();
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/ReplaySubject.js
-var ReplaySubject = function(_super) {
- __extends(ReplaySubject2, _super);
- function ReplaySubject2(_bufferSize, _windowTime, _timestampProvider) {
- if (_bufferSize === void 0) {
- _bufferSize = Infinity;
- }
- if (_windowTime === void 0) {
- _windowTime = Infinity;
- }
- if (_timestampProvider === void 0) {
- _timestampProvider = dateTimestampProvider;
- }
- var _this = _super.call(this) || this;
- _this._bufferSize = _bufferSize;
- _this._windowTime = _windowTime;
- _this._timestampProvider = _timestampProvider;
- _this._buffer = [];
- _this._infiniteTimeWindow = true;
- _this._infiniteTimeWindow = _windowTime === Infinity;
- _this._bufferSize = Math.max(1, _bufferSize);
- _this._windowTime = Math.max(1, _windowTime);
- return _this;
- }
- ReplaySubject2.prototype.next = function(value) {
- var _a = this, isStopped = _a.isStopped, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow, _timestampProvider = _a._timestampProvider, _windowTime = _a._windowTime;
- if (!isStopped) {
- _buffer.push(value);
- !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
- }
- this._trimBuffer();
- _super.prototype.next.call(this, value);
- };
- ReplaySubject2.prototype._subscribe = function(subscriber) {
- this._throwIfClosed();
- this._trimBuffer();
- var subscription = this._innerSubscribe(subscriber);
- var _a = this, _infiniteTimeWindow = _a._infiniteTimeWindow, _buffer = _a._buffer;
- var copy = _buffer.slice();
- for (var i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {
- subscriber.next(copy[i]);
- }
- this._checkFinalizedStatuses(subscriber);
- return subscription;
- };
- ReplaySubject2.prototype._trimBuffer = function() {
- var _a = this, _bufferSize = _a._bufferSize, _timestampProvider = _a._timestampProvider, _buffer = _a._buffer, _infiniteTimeWindow = _a._infiniteTimeWindow;
- var adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
- _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
- if (!_infiniteTimeWindow) {
- var now = _timestampProvider.now();
- var last3 = 0;
- for (var i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {
- last3 = i;
- }
- last3 && _buffer.splice(0, last3 + 1);
- }
- };
- return ReplaySubject2;
-}(Subject);
-
-// node_modules/rxjs/dist/esm5/internal/AsyncSubject.js
-var AsyncSubject = function(_super) {
- __extends(AsyncSubject2, _super);
- function AsyncSubject2() {
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this._value = null;
- _this._hasValue = false;
- _this._isComplete = false;
- return _this;
- }
- AsyncSubject2.prototype._checkFinalizedStatuses = function(subscriber) {
- var _a = this, hasError = _a.hasError, _hasValue = _a._hasValue, _value = _a._value, thrownError = _a.thrownError, isStopped = _a.isStopped, _isComplete = _a._isComplete;
- if (hasError) {
- subscriber.error(thrownError);
- } else if (isStopped || _isComplete) {
- _hasValue && subscriber.next(_value);
- subscriber.complete();
- }
- };
- AsyncSubject2.prototype.next = function(value) {
- if (!this.isStopped) {
- this._value = value;
- this._hasValue = true;
- }
- };
- AsyncSubject2.prototype.complete = function() {
- var _a = this, _hasValue = _a._hasValue, _value = _a._value, _isComplete = _a._isComplete;
- if (!_isComplete) {
- this._isComplete = true;
- _hasValue && _super.prototype.next.call(this, _value);
- _super.prototype.complete.call(this);
- }
- };
- return AsyncSubject2;
-}(Subject);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/Action.js
-var Action = function(_super) {
- __extends(Action2, _super);
- function Action2(scheduler, work) {
- return _super.call(this) || this;
- }
- Action2.prototype.schedule = function(state, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return this;
- };
- return Action2;
-}(Subscription);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js
-var intervalProvider = {
- setInterval: function(handler, timeout2) {
- var args = [];
- for (var _i = 2; _i < arguments.length; _i++) {
- args[_i - 2] = arguments[_i];
- }
- var delegate = intervalProvider.delegate;
- if (delegate === null || delegate === void 0 ? void 0 : delegate.setInterval) {
- return delegate.setInterval.apply(delegate, __spreadArray([handler, timeout2], __read(args)));
- }
- return setInterval.apply(void 0, __spreadArray([handler, timeout2], __read(args)));
- },
- clearInterval: function(handle) {
- var delegate = intervalProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearInterval) || clearInterval)(handle);
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js
-var AsyncAction = function(_super) {
- __extends(AsyncAction2, _super);
- function AsyncAction2(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- _this.pending = false;
- return _this;
- }
- AsyncAction2.prototype.schedule = function(state, delay2) {
- var _a;
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (this.closed) {
- return this;
- }
- this.state = state;
- var id = this.id;
- var scheduler = this.scheduler;
- if (id != null) {
- this.id = this.recycleAsyncId(scheduler, id, delay2);
- }
- this.pending = true;
- this.delay = delay2;
- this.id = (_a = this.id) !== null && _a !== void 0 ? _a : this.requestAsyncId(scheduler, this.id, delay2);
- return this;
- };
- AsyncAction2.prototype.requestAsyncId = function(scheduler, _id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay2);
- };
- AsyncAction2.prototype.recycleAsyncId = function(_scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 != null && this.delay === delay2 && this.pending === false) {
- return id;
- }
- if (id != null) {
- intervalProvider.clearInterval(id);
- }
- return void 0;
- };
- AsyncAction2.prototype.execute = function(state, delay2) {
- if (this.closed) {
- return new Error("executing a cancelled action");
- }
- this.pending = false;
- var error = this._execute(state, delay2);
- if (error) {
- return error;
- } else if (this.pending === false && this.id != null) {
- this.id = this.recycleAsyncId(this.scheduler, this.id, null);
- }
- };
- AsyncAction2.prototype._execute = function(state, _delay) {
- var errored = false;
- var errorValue;
- try {
- this.work(state);
- } catch (e) {
- errored = true;
- errorValue = e ? e : new Error("Scheduled action threw falsy error");
- }
- if (errored) {
- this.unsubscribe();
- return errorValue;
- }
- };
- AsyncAction2.prototype.unsubscribe = function() {
- if (!this.closed) {
- var _a = this, id = _a.id, scheduler = _a.scheduler;
- var actions = scheduler.actions;
- this.work = this.state = this.scheduler = null;
- this.pending = false;
- arrRemove(actions, this);
- if (id != null) {
- this.id = this.recycleAsyncId(scheduler, id, null);
- }
- this.delay = null;
- _super.prototype.unsubscribe.call(this);
- }
- };
- return AsyncAction2;
-}(Action);
-
-// node_modules/rxjs/dist/esm5/internal/util/Immediate.js
-var nextHandle = 1;
-var resolved;
-var activeHandles = {};
-function findAndClearHandle(handle) {
- if (handle in activeHandles) {
- delete activeHandles[handle];
- return true;
- }
- return false;
-}
-var Immediate = {
- setImmediate: function(cb) {
- var handle = nextHandle++;
- activeHandles[handle] = true;
- if (!resolved) {
- resolved = Promise.resolve();
- }
- resolved.then(function() {
- return findAndClearHandle(handle) && cb();
- });
- return handle;
- },
- clearImmediate: function(handle) {
- findAndClearHandle(handle);
- }
-};
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/immediateProvider.js
-var setImmediate = Immediate.setImmediate;
-var clearImmediate = Immediate.clearImmediate;
-var immediateProvider = {
- setImmediate: function() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var delegate = immediateProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.setImmediate) || setImmediate).apply(void 0, __spreadArray([], __read(args)));
- },
- clearImmediate: function(handle) {
- var delegate = immediateProvider.delegate;
- return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearImmediate) || clearImmediate)(handle);
- },
- delegate: void 0
-};
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AsapAction.js
-var AsapAction = function(_super) {
- __extends(AsapAction2, _super);
- function AsapAction2(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- AsapAction2.prototype.requestAsyncId = function(scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 !== null && delay2 > 0) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2);
- }
- scheduler.actions.push(this);
- return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, void 0)));
- };
- AsapAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) {
- var _a;
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 != null ? delay2 > 0 : this.delay > 0) {
- return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2);
- }
- var actions = scheduler.actions;
- if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
- immediateProvider.clearImmediate(id);
- if (scheduler._scheduled === id) {
- scheduler._scheduled = void 0;
- }
- }
- return void 0;
- };
- return AsapAction2;
-}(AsyncAction);
-
-// node_modules/rxjs/dist/esm5/internal/Scheduler.js
-var Scheduler = function() {
- function Scheduler2(schedulerActionCtor, now) {
- if (now === void 0) {
- now = Scheduler2.now;
- }
- this.schedulerActionCtor = schedulerActionCtor;
- this.now = now;
- }
- Scheduler2.prototype.schedule = function(work, delay2, state) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return new this.schedulerActionCtor(this, work).schedule(state, delay2);
- };
- Scheduler2.now = dateTimestampProvider.now;
- return Scheduler2;
-}();
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js
-var AsyncScheduler = function(_super) {
- __extends(AsyncScheduler2, _super);
- function AsyncScheduler2(SchedulerAction, now) {
- if (now === void 0) {
- now = Scheduler.now;
- }
- var _this = _super.call(this, SchedulerAction, now) || this;
- _this.actions = [];
- _this._active = false;
- return _this;
- }
- AsyncScheduler2.prototype.flush = function(action) {
- var actions = this.actions;
- if (this._active) {
- actions.push(action);
- return;
- }
- var error;
- this._active = true;
- do {
- if (error = action.execute(action.state, action.delay)) {
- break;
- }
- } while (action = actions.shift());
- this._active = false;
- if (error) {
- while (action = actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AsyncScheduler2;
-}(Scheduler);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AsapScheduler.js
-var AsapScheduler = function(_super) {
- __extends(AsapScheduler2, _super);
- function AsapScheduler2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- AsapScheduler2.prototype.flush = function(action) {
- this._active = true;
- var flushId = this._scheduled;
- this._scheduled = void 0;
- var actions = this.actions;
- var error;
- action = action || actions.shift();
- do {
- if (error = action.execute(action.state, action.delay)) {
- break;
- }
- } while ((action = actions[0]) && action.id === flushId && actions.shift());
- this._active = false;
- if (error) {
- while ((action = actions[0]) && action.id === flushId && actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AsapScheduler2;
-}(AsyncScheduler);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/asap.js
-var asapScheduler = new AsapScheduler(AsapAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/async.js
-var asyncScheduler = new AsyncScheduler(AsyncAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/QueueAction.js
-var QueueAction = function(_super) {
- __extends(QueueAction2, _super);
- function QueueAction2(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- QueueAction2.prototype.schedule = function(state, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 > 0) {
- return _super.prototype.schedule.call(this, state, delay2);
- }
- this.delay = delay2;
- this.state = state;
- this.scheduler.flush(this);
- return this;
- };
- QueueAction2.prototype.execute = function(state, delay2) {
- return delay2 > 0 || this.closed ? _super.prototype.execute.call(this, state, delay2) : this._execute(state, delay2);
- };
- QueueAction2.prototype.requestAsyncId = function(scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 != null && delay2 > 0 || delay2 == null && this.delay > 0) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2);
- }
- scheduler.flush(this);
- return 0;
- };
- return QueueAction2;
-}(AsyncAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/QueueScheduler.js
-var QueueScheduler = function(_super) {
- __extends(QueueScheduler2, _super);
- function QueueScheduler2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- return QueueScheduler2;
-}(AsyncScheduler);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/queue.js
-var queueScheduler = new QueueScheduler(QueueAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameAction.js
-var AnimationFrameAction = function(_super) {
- __extends(AnimationFrameAction2, _super);
- function AnimationFrameAction2(scheduler, work) {
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- return _this;
- }
- AnimationFrameAction2.prototype.requestAsyncId = function(scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 !== null && delay2 > 0) {
- return _super.prototype.requestAsyncId.call(this, scheduler, id, delay2);
- }
- scheduler.actions.push(this);
- return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(function() {
- return scheduler.flush(void 0);
- }));
- };
- AnimationFrameAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) {
- var _a;
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (delay2 != null ? delay2 > 0 : this.delay > 0) {
- return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay2);
- }
- var actions = scheduler.actions;
- if (id != null && ((_a = actions[actions.length - 1]) === null || _a === void 0 ? void 0 : _a.id) !== id) {
- animationFrameProvider.cancelAnimationFrame(id);
- scheduler._scheduled = void 0;
- }
- return void 0;
- };
- return AnimationFrameAction2;
-}(AsyncAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/AnimationFrameScheduler.js
-var AnimationFrameScheduler = function(_super) {
- __extends(AnimationFrameScheduler2, _super);
- function AnimationFrameScheduler2() {
- return _super !== null && _super.apply(this, arguments) || this;
- }
- AnimationFrameScheduler2.prototype.flush = function(action) {
- this._active = true;
- var flushId = this._scheduled;
- this._scheduled = void 0;
- var actions = this.actions;
- var error;
- action = action || actions.shift();
- do {
- if (error = action.execute(action.state, action.delay)) {
- break;
- }
- } while ((action = actions[0]) && action.id === flushId && actions.shift());
- this._active = false;
- if (error) {
- while ((action = actions[0]) && action.id === flushId && actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- return AnimationFrameScheduler2;
-}(AsyncScheduler);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/animationFrame.js
-var animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);
-
-// node_modules/rxjs/dist/esm5/internal/scheduler/VirtualTimeScheduler.js
-var VirtualTimeScheduler = function(_super) {
- __extends(VirtualTimeScheduler2, _super);
- function VirtualTimeScheduler2(schedulerActionCtor, maxFrames) {
- if (schedulerActionCtor === void 0) {
- schedulerActionCtor = VirtualAction;
- }
- if (maxFrames === void 0) {
- maxFrames = Infinity;
- }
- var _this = _super.call(this, schedulerActionCtor, function() {
- return _this.frame;
- }) || this;
- _this.maxFrames = maxFrames;
- _this.frame = 0;
- _this.index = -1;
- return _this;
- }
- VirtualTimeScheduler2.prototype.flush = function() {
- var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;
- var error;
- var action;
- while ((action = actions[0]) && action.delay <= maxFrames) {
- actions.shift();
- this.frame = action.delay;
- if (error = action.execute(action.state, action.delay)) {
- break;
- }
- }
- if (error) {
- while (action = actions.shift()) {
- action.unsubscribe();
- }
- throw error;
- }
- };
- VirtualTimeScheduler2.frameTimeFactor = 10;
- return VirtualTimeScheduler2;
-}(AsyncScheduler);
-var VirtualAction = function(_super) {
- __extends(VirtualAction2, _super);
- function VirtualAction2(scheduler, work, index) {
- if (index === void 0) {
- index = scheduler.index += 1;
- }
- var _this = _super.call(this, scheduler, work) || this;
- _this.scheduler = scheduler;
- _this.work = work;
- _this.index = index;
- _this.active = true;
- _this.index = scheduler.index = index;
- return _this;
- }
- VirtualAction2.prototype.schedule = function(state, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (Number.isFinite(delay2)) {
- if (!this.id) {
- return _super.prototype.schedule.call(this, state, delay2);
- }
- this.active = false;
- var action = new VirtualAction2(this.scheduler, this.work);
- this.add(action);
- return action.schedule(state, delay2);
- } else {
- return Subscription.EMPTY;
- }
- };
- VirtualAction2.prototype.requestAsyncId = function(scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- this.delay = scheduler.frame + delay2;
- var actions = scheduler.actions;
- actions.push(this);
- actions.sort(VirtualAction2.sortActions);
- return 1;
- };
- VirtualAction2.prototype.recycleAsyncId = function(scheduler, id, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return void 0;
- };
- VirtualAction2.prototype._execute = function(state, delay2) {
- if (this.active === true) {
- return _super.prototype._execute.call(this, state, delay2);
- }
- };
- VirtualAction2.sortActions = function(a, b) {
- if (a.delay === b.delay) {
- if (a.index === b.index) {
- return 0;
- } else if (a.index > b.index) {
- return 1;
- } else {
- return -1;
- }
- } else if (a.delay > b.delay) {
- return 1;
- } else {
- return -1;
- }
- };
- return VirtualAction2;
-}(AsyncAction);
-
-// node_modules/rxjs/dist/esm5/internal/observable/empty.js
-var EMPTY = new Observable(function(subscriber) {
- return subscriber.complete();
-});
-
-// node_modules/rxjs/dist/esm5/internal/util/isScheduler.js
-function isScheduler(value) {
- return value && isFunction(value.schedule);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/args.js
-function last(arr) {
- return arr[arr.length - 1];
-}
-function popResultSelector(args) {
- return isFunction(last(args)) ? args.pop() : void 0;
-}
-function popScheduler(args) {
- return isScheduler(last(args)) ? args.pop() : void 0;
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js
-var isArrayLike = function(x) {
- return x && typeof x.length === "number" && typeof x !== "function";
-};
-
-// node_modules/rxjs/dist/esm5/internal/util/isPromise.js
-function isPromise(value) {
- return isFunction(value === null || value === void 0 ? void 0 : value.then);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js
-function isInteropObservable(input2) {
- return isFunction(input2[observable]);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js
-function isAsyncIterable(obj) {
- return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js
-function createInvalidObservableTypeError(input2) {
- return new TypeError("You provided " + (input2 !== null && typeof input2 === "object" ? "an invalid object" : "'" + input2 + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
-}
-
-// node_modules/rxjs/dist/esm5/internal/symbol/iterator.js
-function getSymbolIterator() {
- if (typeof Symbol !== "function" || !Symbol.iterator) {
- return "@@iterator";
- }
- return Symbol.iterator;
-}
-var iterator = getSymbolIterator();
-
-// node_modules/rxjs/dist/esm5/internal/util/isIterable.js
-function isIterable(input2) {
- return isFunction(input2 === null || input2 === void 0 ? void 0 : input2[iterator]);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js
-function readableStreamLikeToAsyncGenerator(readableStream) {
- return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {
- var reader, _a, value, done;
- return __generator(this, function(_b) {
- switch (_b.label) {
- case 0:
- reader = readableStream.getReader();
- _b.label = 1;
- case 1:
- _b.trys.push([1, , 9, 10]);
- _b.label = 2;
- case 2:
- if (false)
- return [3, 8];
- return [4, __await(reader.read())];
- case 3:
- _a = _b.sent(), value = _a.value, done = _a.done;
- if (!done)
- return [3, 5];
- return [4, __await(void 0)];
- case 4:
- return [2, _b.sent()];
- case 5:
- return [4, __await(value)];
- case 6:
- return [4, _b.sent()];
- case 7:
- _b.sent();
- return [3, 2];
- case 8:
- return [3, 10];
- case 9:
- reader.releaseLock();
- return [7];
- case 10:
- return [2];
- }
- });
- });
-}
-function isReadableStreamLike(obj) {
- return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js
-function innerFrom(input2) {
- if (input2 instanceof Observable) {
- return input2;
- }
- if (input2 != null) {
- if (isInteropObservable(input2)) {
- return fromInteropObservable(input2);
- }
- if (isArrayLike(input2)) {
- return fromArrayLike(input2);
- }
- if (isPromise(input2)) {
- return fromPromise(input2);
- }
- if (isAsyncIterable(input2)) {
- return fromAsyncIterable(input2);
- }
- if (isIterable(input2)) {
- return fromIterable(input2);
- }
- if (isReadableStreamLike(input2)) {
- return fromReadableStreamLike(input2);
- }
- }
- throw createInvalidObservableTypeError(input2);
-}
-function fromInteropObservable(obj) {
- return new Observable(function(subscriber) {
- var obs = obj[observable]();
- if (isFunction(obs.subscribe)) {
- return obs.subscribe(subscriber);
- }
- throw new TypeError("Provided object does not correctly implement Symbol.observable");
- });
-}
-function fromArrayLike(array) {
- return new Observable(function(subscriber) {
- for (var i = 0; i < array.length && !subscriber.closed; i++) {
- subscriber.next(array[i]);
- }
- subscriber.complete();
- });
-}
-function fromPromise(promise) {
- return new Observable(function(subscriber) {
- promise.then(function(value) {
- if (!subscriber.closed) {
- subscriber.next(value);
- subscriber.complete();
- }
- }, function(err) {
- return subscriber.error(err);
- }).then(null, reportUnhandledError);
- });
-}
-function fromIterable(iterable) {
- return new Observable(function(subscriber) {
- var e_1, _a;
- try {
- for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {
- var value = iterable_1_1.value;
- subscriber.next(value);
- if (subscriber.closed) {
- return;
- }
- }
- } catch (e_1_1) {
- e_1 = { error: e_1_1 };
- } finally {
- try {
- if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return))
- _a.call(iterable_1);
- } finally {
- if (e_1)
- throw e_1.error;
- }
- }
- subscriber.complete();
- });
-}
-function fromAsyncIterable(asyncIterable) {
- return new Observable(function(subscriber) {
- process(asyncIterable, subscriber).catch(function(err) {
- return subscriber.error(err);
- });
- });
-}
-function fromReadableStreamLike(readableStream) {
- return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));
-}
-function process(asyncIterable, subscriber) {
- var asyncIterable_1, asyncIterable_1_1;
- var e_2, _a;
- return __awaiter(this, void 0, void 0, function() {
- var value, e_2_1;
- return __generator(this, function(_b) {
- switch (_b.label) {
- case 0:
- _b.trys.push([0, 5, 6, 11]);
- asyncIterable_1 = __asyncValues(asyncIterable);
- _b.label = 1;
- case 1:
- return [4, asyncIterable_1.next()];
- case 2:
- if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done))
- return [3, 4];
- value = asyncIterable_1_1.value;
- subscriber.next(value);
- if (subscriber.closed) {
- return [2];
- }
- _b.label = 3;
- case 3:
- return [3, 1];
- case 4:
- return [3, 11];
- case 5:
- e_2_1 = _b.sent();
- e_2 = { error: e_2_1 };
- return [3, 11];
- case 6:
- _b.trys.push([6, , 9, 10]);
- if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return)))
- return [3, 8];
- return [4, _a.call(asyncIterable_1)];
- case 7:
- _b.sent();
- _b.label = 8;
- case 8:
- return [3, 10];
- case 9:
- if (e_2)
- throw e_2.error;
- return [7];
- case 10:
- return [7];
- case 11:
- subscriber.complete();
- return [2];
- }
- });
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js
-function executeSchedule(parentSubscription, scheduler, work, delay2, repeat2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- if (repeat2 === void 0) {
- repeat2 = false;
- }
- var scheduleSubscription = scheduler.schedule(function() {
- work();
- if (repeat2) {
- parentSubscription.add(this.schedule(null, delay2));
- } else {
- this.unsubscribe();
- }
- }, delay2);
- parentSubscription.add(scheduleSubscription);
- if (!repeat2) {
- return scheduleSubscription;
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/observeOn.js
-function observeOn(scheduler, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return operate(function(source, subscriber) {
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- return executeSchedule(subscriber, scheduler, function() {
- return subscriber.next(value);
- }, delay2);
- }, function() {
- return executeSchedule(subscriber, scheduler, function() {
- return subscriber.complete();
- }, delay2);
- }, function(err) {
- return executeSchedule(subscriber, scheduler, function() {
- return subscriber.error(err);
- }, delay2);
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js
-function subscribeOn(scheduler, delay2) {
- if (delay2 === void 0) {
- delay2 = 0;
- }
- return operate(function(source, subscriber) {
- subscriber.add(scheduler.schedule(function() {
- return source.subscribe(subscriber);
- }, delay2));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js
-function scheduleObservable(input2, scheduler) {
- return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler));
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js
-function schedulePromise(input2, scheduler) {
- return innerFrom(input2).pipe(subscribeOn(scheduler), observeOn(scheduler));
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js
-function scheduleArray(input2, scheduler) {
- return new Observable(function(subscriber) {
- var i = 0;
- return scheduler.schedule(function() {
- if (i === input2.length) {
- subscriber.complete();
- } else {
- subscriber.next(input2[i++]);
- if (!subscriber.closed) {
- this.schedule();
- }
- }
- });
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js
-function scheduleIterable(input2, scheduler) {
- return new Observable(function(subscriber) {
- var iterator2;
- executeSchedule(subscriber, scheduler, function() {
- iterator2 = input2[iterator]();
- executeSchedule(subscriber, scheduler, function() {
- var _a;
- var value;
- var done;
- try {
- _a = iterator2.next(), value = _a.value, done = _a.done;
- } catch (err) {
- subscriber.error(err);
- return;
- }
- if (done) {
- subscriber.complete();
- } else {
- subscriber.next(value);
- }
- }, 0, true);
- });
- return function() {
- return isFunction(iterator2 === null || iterator2 === void 0 ? void 0 : iterator2.return) && iterator2.return();
- };
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js
-function scheduleAsyncIterable(input2, scheduler) {
- if (!input2) {
- throw new Error("Iterable cannot be null");
- }
- return new Observable(function(subscriber) {
- executeSchedule(subscriber, scheduler, function() {
- var iterator2 = input2[Symbol.asyncIterator]();
- executeSchedule(subscriber, scheduler, function() {
- iterator2.next().then(function(result) {
- if (result.done) {
- subscriber.complete();
- } else {
- subscriber.next(result.value);
- }
- });
- }, 0, true);
- });
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js
-function scheduleReadableStreamLike(input2, scheduler) {
- return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input2), scheduler);
-}
-
-// node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js
-function scheduled(input2, scheduler) {
- if (input2 != null) {
- if (isInteropObservable(input2)) {
- return scheduleObservable(input2, scheduler);
- }
- if (isArrayLike(input2)) {
- return scheduleArray(input2, scheduler);
- }
- if (isPromise(input2)) {
- return schedulePromise(input2, scheduler);
- }
- if (isAsyncIterable(input2)) {
- return scheduleAsyncIterable(input2, scheduler);
- }
- if (isIterable(input2)) {
- return scheduleIterable(input2, scheduler);
- }
- if (isReadableStreamLike(input2)) {
- return scheduleReadableStreamLike(input2, scheduler);
- }
- }
- throw createInvalidObservableTypeError(input2);
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/from.js
-function from(input2, scheduler) {
- return scheduler ? scheduled(input2, scheduler) : innerFrom(input2);
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/of.js
-function of() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- return from(args, scheduler);
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/throwError.js
-function throwError(errorOrErrorFactory, scheduler) {
- var errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : function() {
- return errorOrErrorFactory;
- };
- var init = function(subscriber) {
- return subscriber.error(errorFactory());
- };
- return new Observable(scheduler ? function(subscriber) {
- return scheduler.schedule(init, 0, subscriber);
- } : init);
-}
-
-// node_modules/rxjs/dist/esm5/internal/Notification.js
-var NotificationKind;
-(function(NotificationKind2) {
- NotificationKind2["NEXT"] = "N";
- NotificationKind2["ERROR"] = "E";
- NotificationKind2["COMPLETE"] = "C";
-})(NotificationKind || (NotificationKind = {}));
-var Notification = function() {
- function Notification2(kind, value, error) {
- this.kind = kind;
- this.value = value;
- this.error = error;
- this.hasValue = kind === "N";
- }
- Notification2.prototype.observe = function(observer) {
- return observeNotification(this, observer);
- };
- Notification2.prototype.do = function(nextHandler, errorHandler, completeHandler) {
- var _a = this, kind = _a.kind, value = _a.value, error = _a.error;
- return kind === "N" ? nextHandler === null || nextHandler === void 0 ? void 0 : nextHandler(value) : kind === "E" ? errorHandler === null || errorHandler === void 0 ? void 0 : errorHandler(error) : completeHandler === null || completeHandler === void 0 ? void 0 : completeHandler();
- };
- Notification2.prototype.accept = function(nextOrObserver, error, complete) {
- var _a;
- return isFunction((_a = nextOrObserver) === null || _a === void 0 ? void 0 : _a.next) ? this.observe(nextOrObserver) : this.do(nextOrObserver, error, complete);
- };
- Notification2.prototype.toObservable = function() {
- var _a = this, kind = _a.kind, value = _a.value, error = _a.error;
- var result = kind === "N" ? of(value) : kind === "E" ? throwError(function() {
- return error;
- }) : kind === "C" ? EMPTY : 0;
- if (!result) {
- throw new TypeError("Unexpected notification kind " + kind);
- }
- return result;
- };
- Notification2.createNext = function(value) {
- return new Notification2("N", value);
- };
- Notification2.createError = function(err) {
- return new Notification2("E", void 0, err);
- };
- Notification2.createComplete = function() {
- return Notification2.completeNotification;
- };
- Notification2.completeNotification = new Notification2("C");
- return Notification2;
-}();
-function observeNotification(notification, observer) {
- var _a, _b, _c;
- var _d = notification, kind = _d.kind, value = _d.value, error = _d.error;
- if (typeof kind !== "string") {
- throw new TypeError('Invalid notification, missing "kind"');
- }
- kind === "N" ? (_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value) : kind === "E" ? (_b = observer.error) === null || _b === void 0 ? void 0 : _b.call(observer, error) : (_c = observer.complete) === null || _c === void 0 ? void 0 : _c.call(observer);
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/isObservable.js
-function isObservable(obj) {
- return !!obj && (obj instanceof Observable || isFunction(obj.lift) && isFunction(obj.subscribe));
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/EmptyError.js
-var EmptyError = createErrorClass(function(_super) {
- return function EmptyErrorImpl() {
- _super(this);
- this.name = "EmptyError";
- this.message = "no elements in sequence";
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/util/ArgumentOutOfRangeError.js
-var ArgumentOutOfRangeError = createErrorClass(function(_super) {
- return function ArgumentOutOfRangeErrorImpl() {
- _super(this);
- this.name = "ArgumentOutOfRangeError";
- this.message = "argument out of range";
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/util/NotFoundError.js
-var NotFoundError = createErrorClass(function(_super) {
- return function NotFoundErrorImpl(message) {
- _super(this);
- this.name = "NotFoundError";
- this.message = message;
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/util/SequenceError.js
-var SequenceError = createErrorClass(function(_super) {
- return function SequenceErrorImpl(message) {
- _super(this);
- this.name = "SequenceError";
- this.message = message;
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/operators/timeout.js
-var TimeoutError = createErrorClass(function(_super) {
- return function TimeoutErrorImpl(info) {
- if (info === void 0) {
- info = null;
- }
- _super(this);
- this.message = "Timeout has occurred";
- this.name = "TimeoutError";
- this.info = info;
- };
-});
-
-// node_modules/rxjs/dist/esm5/internal/operators/map.js
-function map(project, thisArg) {
- return operate(function(source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- subscriber.next(project.call(thisArg, value, index++));
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js
-var isArray = Array.isArray;
-function callOrApply(fn, args) {
- return isArray(args) ? fn.apply(void 0, __spreadArray([], __read(args))) : fn(args);
-}
-function mapOneOrManyArgs(fn) {
- return map(function(args) {
- return callOrApply(fn, args);
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js
-var isArray2 = Array.isArray;
-var getPrototypeOf = Object.getPrototypeOf;
-var objectProto = Object.prototype;
-var getKeys = Object.keys;
-function argsArgArrayOrObject(args) {
- if (args.length === 1) {
- var first_1 = args[0];
- if (isArray2(first_1)) {
- return { args: first_1, keys: null };
- }
- if (isPOJO(first_1)) {
- var keys = getKeys(first_1);
- return {
- args: keys.map(function(key) {
- return first_1[key];
- }),
- keys
- };
- }
- }
- return { args, keys: null };
-}
-function isPOJO(obj) {
- return obj && typeof obj === "object" && getPrototypeOf(obj) === objectProto;
-}
-
-// node_modules/rxjs/dist/esm5/internal/util/createObject.js
-function createObject(keys, values) {
- return keys.reduce(function(result, key, i) {
- return result[key] = values[i], result;
- }, {});
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js
-function combineLatest() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- var scheduler = popScheduler(args);
- var resultSelector = popResultSelector(args);
- var _a = argsArgArrayOrObject(args), observables = _a.args, keys = _a.keys;
- if (observables.length === 0) {
- return from([], scheduler);
- }
- var result = new Observable(combineLatestInit(observables, scheduler, keys ? function(values) {
- return createObject(keys, values);
- } : identity));
- return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
-}
-function combineLatestInit(observables, scheduler, valueTransform) {
- if (valueTransform === void 0) {
- valueTransform = identity;
- }
- return function(subscriber) {
- maybeSchedule(scheduler, function() {
- var length = observables.length;
- var values = new Array(length);
- var active = length;
- var remainingFirstValues = length;
- var _loop_1 = function(i2) {
- maybeSchedule(scheduler, function() {
- var source = from(observables[i2], scheduler);
- var hasFirstValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- values[i2] = value;
- if (!hasFirstValue) {
- hasFirstValue = true;
- remainingFirstValues--;
- }
- if (!remainingFirstValues) {
- subscriber.next(valueTransform(values.slice()));
- }
- }, function() {
- if (!--active) {
- subscriber.complete();
- }
- }));
- }, subscriber);
- };
- for (var i = 0; i < length; i++) {
- _loop_1(i);
- }
- }, subscriber);
- };
-}
-function maybeSchedule(scheduler, execute, subscription) {
- if (scheduler) {
- executeSchedule(subscription, scheduler, execute);
- } else {
- execute();
- }
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js
-function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand2, innerSubScheduler, additionalFinalizer) {
- var buffer2 = [];
- var active = 0;
- var index = 0;
- var isComplete = false;
- var checkComplete = function() {
- if (isComplete && !buffer2.length && !active) {
- subscriber.complete();
- }
- };
- var outerNext = function(value) {
- return active < concurrent ? doInnerSub(value) : buffer2.push(value);
- };
- var doInnerSub = function(value) {
- expand2 && subscriber.next(value);
- active++;
- var innerComplete = false;
- innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, function(innerValue) {
- onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);
- if (expand2) {
- outerNext(innerValue);
- } else {
- subscriber.next(innerValue);
- }
- }, function() {
- innerComplete = true;
- }, void 0, function() {
- if (innerComplete) {
- try {
- active--;
- var _loop_1 = function() {
- var bufferedValue = buffer2.shift();
- if (innerSubScheduler) {
- executeSchedule(subscriber, innerSubScheduler, function() {
- return doInnerSub(bufferedValue);
- });
- } else {
- doInnerSub(bufferedValue);
- }
- };
- while (buffer2.length && active < concurrent) {
- _loop_1();
- }
- checkComplete();
- } catch (err) {
- subscriber.error(err);
- }
- }
- }));
- };
- source.subscribe(createOperatorSubscriber(subscriber, outerNext, function() {
- isComplete = true;
- checkComplete();
- }));
- return function() {
- additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js
-function mergeMap(project, resultSelector, concurrent) {
- if (concurrent === void 0) {
- concurrent = Infinity;
- }
- if (isFunction(resultSelector)) {
- return mergeMap(function(a, i) {
- return map(function(b, ii) {
- return resultSelector(a, b, i, ii);
- })(innerFrom(project(a, i)));
- }, concurrent);
- } else if (typeof resultSelector === "number") {
- concurrent = resultSelector;
- }
- return operate(function(source, subscriber) {
- return mergeInternals(source, subscriber, project, concurrent);
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js
-function mergeAll(concurrent) {
- if (concurrent === void 0) {
- concurrent = Infinity;
- }
- return mergeMap(identity, concurrent);
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/concatAll.js
-function concatAll() {
- return mergeAll(1);
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/concat.js
-function concat() {
- var args = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- args[_i] = arguments[_i];
- }
- return concatAll()(from(args, popScheduler(args)));
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/defer.js
-function defer(observableFactory) {
- return new Observable(function(subscriber) {
- innerFrom(observableFactory()).subscribe(subscriber);
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/observable/never.js
-var NEVER = new Observable(noop);
-
-// node_modules/rxjs/dist/esm5/internal/util/argsOrArgArray.js
-var isArray3 = Array.isArray;
-
-// node_modules/rxjs/dist/esm5/internal/operators/filter.js
-function filter(predicate, thisArg) {
- return operate(function(source, subscriber) {
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- return predicate.call(thisArg, value, index++) && subscriber.next(value);
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/catchError.js
-function catchError(selector) {
- return operate(function(source, subscriber) {
- var innerSub = null;
- var syncUnsub = false;
- var handledResult;
- innerSub = source.subscribe(createOperatorSubscriber(subscriber, void 0, void 0, function(err) {
- handledResult = innerFrom(selector(err, catchError(selector)(source)));
- if (innerSub) {
- innerSub.unsubscribe();
- innerSub = null;
- handledResult.subscribe(subscriber);
- } else {
- syncUnsub = true;
- }
- }));
- if (syncUnsub) {
- innerSub.unsubscribe();
- innerSub = null;
- handledResult.subscribe(subscriber);
- }
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/scanInternals.js
-function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) {
- return function(source, subscriber) {
- var hasState = hasSeed;
- var state = seed;
- var index = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- var i = index++;
- state = hasState ? accumulator(state, value, i) : (hasState = true, value);
- emitOnNext && subscriber.next(state);
- }, emitBeforeComplete && function() {
- hasState && subscriber.next(state);
- subscriber.complete();
- }));
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/concatMap.js
-function concatMap(project, resultSelector) {
- return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1);
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/defaultIfEmpty.js
-function defaultIfEmpty(defaultValue) {
- return operate(function(source, subscriber) {
- var hasValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- hasValue = true;
- subscriber.next(value);
- }, function() {
- if (!hasValue) {
- subscriber.next(defaultValue);
- }
- subscriber.complete();
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/take.js
-function take(count2) {
- return count2 <= 0 ? function() {
- return EMPTY;
- } : operate(function(source, subscriber) {
- var seen = 0;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- if (++seen <= count2) {
- subscriber.next(value);
- if (count2 <= seen) {
- subscriber.complete();
- }
- }
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/mapTo.js
-function mapTo(value) {
- return map(function() {
- return value;
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/throwIfEmpty.js
-function throwIfEmpty(errorFactory) {
- if (errorFactory === void 0) {
- errorFactory = defaultErrorFactory;
- }
- return operate(function(source, subscriber) {
- var hasValue = false;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- hasValue = true;
- subscriber.next(value);
- }, function() {
- return hasValue ? subscriber.complete() : subscriber.error(errorFactory());
- }));
- });
-}
-function defaultErrorFactory() {
- return new EmptyError();
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/finalize.js
-function finalize(callback) {
- return operate(function(source, subscriber) {
- try {
- source.subscribe(subscriber);
- } finally {
- subscriber.add(callback);
- }
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/first.js
-function first(predicate, defaultValue) {
- var hasDefaultValue = arguments.length >= 2;
- return function(source) {
- return source.pipe(predicate ? filter(function(v, i) {
- return predicate(v, i, source);
- }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function() {
- return new EmptyError();
- }));
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/takeLast.js
-function takeLast(count2) {
- return count2 <= 0 ? function() {
- return EMPTY;
- } : operate(function(source, subscriber) {
- var buffer2 = [];
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- buffer2.push(value);
- count2 < buffer2.length && buffer2.shift();
- }, function() {
- var e_1, _a;
- try {
- for (var buffer_1 = __values(buffer2), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {
- var value = buffer_1_1.value;
- subscriber.next(value);
- }
- } catch (e_1_1) {
- e_1 = { error: e_1_1 };
- } finally {
- try {
- if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return))
- _a.call(buffer_1);
- } finally {
- if (e_1)
- throw e_1.error;
- }
- }
- subscriber.complete();
- }, void 0, function() {
- buffer2 = null;
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/last.js
-function last2(predicate, defaultValue) {
- var hasDefaultValue = arguments.length >= 2;
- return function(source) {
- return source.pipe(predicate ? filter(function(v, i) {
- return predicate(v, i, source);
- }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function() {
- return new EmptyError();
- }));
- };
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/scan.js
-function scan(accumulator, seed) {
- return operate(scanInternals(accumulator, seed, arguments.length >= 2, true));
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/startWith.js
-function startWith() {
- var values = [];
- for (var _i = 0; _i < arguments.length; _i++) {
- values[_i] = arguments[_i];
- }
- var scheduler = popScheduler(values);
- return operate(function(source, subscriber) {
- (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/switchMap.js
-function switchMap(project, resultSelector) {
- return operate(function(source, subscriber) {
- var innerSubscriber = null;
- var index = 0;
- var isComplete = false;
- var checkComplete = function() {
- return isComplete && !innerSubscriber && subscriber.complete();
- };
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- innerSubscriber === null || innerSubscriber === void 0 ? void 0 : innerSubscriber.unsubscribe();
- var innerIndex = 0;
- var outerIndex = index++;
- innerFrom(project(value, outerIndex)).subscribe(innerSubscriber = createOperatorSubscriber(subscriber, function(innerValue) {
- return subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue);
- }, function() {
- innerSubscriber = null;
- checkComplete();
- }));
- }, function() {
- isComplete = true;
- checkComplete();
- }));
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js
-function takeUntil(notifier) {
- return operate(function(source, subscriber) {
- innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function() {
- return subscriber.complete();
- }, noop));
- !subscriber.closed && source.subscribe(subscriber);
- });
-}
-
-// node_modules/rxjs/dist/esm5/internal/operators/tap.js
-function tap(observerOrNext, error, complete) {
- var tapObserver = isFunction(observerOrNext) || error || complete ? { next: observerOrNext, error, complete } : observerOrNext;
- return tapObserver ? operate(function(source, subscriber) {
- var _a;
- (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
- var isUnsub = true;
- source.subscribe(createOperatorSubscriber(subscriber, function(value) {
- var _a2;
- (_a2 = tapObserver.next) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, value);
- subscriber.next(value);
- }, function() {
- var _a2;
- isUnsub = false;
- (_a2 = tapObserver.complete) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver);
- subscriber.complete();
- }, function(err) {
- var _a2;
- isUnsub = false;
- (_a2 = tapObserver.error) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver, err);
- subscriber.error(err);
- }, function() {
- var _a2, _b;
- if (isUnsub) {
- (_a2 = tapObserver.unsubscribe) === null || _a2 === void 0 ? void 0 : _a2.call(tapObserver);
- }
- (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);
- }));
- }) : identity;
-}
-
-// node_modules/@angular/core/fesm2022/core.mjs
-var ERROR_DETAILS_PAGE_BASE_URL = "https://angular.io/errors";
-var XSS_SECURITY_URL = "https://g.co/ng/security#xss";
-var RuntimeError = class extends Error {
- constructor(code, message) {
- super(formatRuntimeError(code, message));
- this.code = code;
- }
-};
-function formatRuntimeError(code, message) {
- const fullCode = `NG0${Math.abs(code)}`;
- let errorMessage = `${fullCode}${message ? ": " + message : ""}`;
- if (ngDevMode && code < 0) {
- const addPeriodSeparator = !errorMessage.match(/[.,;!?\n]$/);
- const separator = addPeriodSeparator ? "." : "";
- errorMessage = `${errorMessage}${separator} Find more at ${ERROR_DETAILS_PAGE_BASE_URL}/${fullCode}`;
- }
- return errorMessage;
-}
-var REQUIRED_UNSET_VALUE = Symbol("InputSignalNode#UNSET");
-var INPUT_SIGNAL_NODE = (() => {
- return __spreadProps(__spreadValues({}, SIGNAL_NODE), {
- transformFn: void 0,
- applyValueToInputSignal(node, value) {
- signalSetFn(node, value);
- }
- });
-})();
-var ɵINPUT_SIGNAL_BRAND_READ_TYPE = Symbol();
-var ɵINPUT_SIGNAL_BRAND_WRITE_TYPE = Symbol();
-function createInputSignal(initialValue, options) {
- const node = Object.create(INPUT_SIGNAL_NODE);
- node.value = initialValue;
- node.transformFn = options?.transform;
- function inputValueFn() {
- producerAccessed(node);
- if (node.value === REQUIRED_UNSET_VALUE) {
- throw new RuntimeError(-950, ngDevMode && "Input is required but no value is available yet.");
- }
- return node.value;
- }
- inputValueFn[SIGNAL] = node;
- return inputValueFn;
-}
-function inputFunction(initialValue, opts) {
- return createInputSignal(initialValue, opts);
-}
-function inputRequiredFunction(opts) {
- return createInputSignal(REQUIRED_UNSET_VALUE, opts);
-}
-var input = (() => {
- inputFunction.required = inputRequiredFunction;
- return inputFunction;
-})();
-function getClosureSafeProperty(objWithPropertyToExtract) {
- for (let key in objWithPropertyToExtract) {
- if (objWithPropertyToExtract[key] === getClosureSafeProperty) {
- return key;
- }
- }
- throw Error("Could not find renamed property on target object.");
-}
-function fillProperties(target, source) {
- for (const key in source) {
- if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {
- target[key] = source[key];
- }
- }
-}
-function stringify(token) {
- if (typeof token === "string") {
- return token;
- }
- if (Array.isArray(token)) {
- return "[" + token.map(stringify).join(", ") + "]";
- }
- if (token == null) {
- return "" + token;
- }
- if (token.overriddenName) {
- return `${token.overriddenName}`;
- }
- if (token.name) {
- return `${token.name}`;
- }
- const res = token.toString();
- if (res == null) {
- return "" + res;
- }
- const newLineIndex = res.indexOf("\n");
- return newLineIndex === -1 ? res : res.substring(0, newLineIndex);
-}
-function concatStringsWithSpace(before, after) {
- return before == null || before === "" ? after === null ? "" : after : after == null || after === "" ? before : before + " " + after;
-}
-function truncateMiddle(str, maxLength = 100) {
- if (!str || maxLength < 1 || str.length <= maxLength)
- return str;
- if (maxLength == 1)
- return str.substring(0, 1) + "...";
- const halfLimit = Math.round(maxLength / 2);
- return str.substring(0, halfLimit) + "..." + str.substring(str.length - halfLimit);
-}
-var __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });
-function forwardRef(forwardRefFn) {
- forwardRefFn.__forward_ref__ = forwardRef;
- forwardRefFn.toString = function() {
- return stringify(this());
- };
- return forwardRefFn;
-}
-function resolveForwardRef(type) {
- return isForwardRef(type) ? type() : type;
-}
-function isForwardRef(fn) {
- return typeof fn === "function" && fn.hasOwnProperty(__forward_ref__) && fn.__forward_ref__ === forwardRef;
-}
-function isEnvironmentProviders(value) {
- return value && !!value.ɵproviders;
-}
-var NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });
-var NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });
-var NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });
-var NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });
-var NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });
-var NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });
-var NG_ENV_ID = getClosureSafeProperty({ __NG_ENV_ID__: getClosureSafeProperty });
-function renderStringify(value) {
- if (typeof value === "string")
- return value;
- if (value == null)
- return "";
- return String(value);
-}
-function stringifyForError(value) {
- if (typeof value === "function")
- return value.name || value.toString();
- if (typeof value === "object" && value != null && typeof value.type === "function") {
- return value.type.name || value.type.toString();
- }
- return renderStringify(value);
-}
-function debugStringifyTypeForError(type) {
- let componentDef = type[NG_COMP_DEF] || null;
- if (componentDef !== null && componentDef.debugInfo) {
- return stringifyTypeFromDebugInfo(componentDef.debugInfo);
- }
- return stringifyForError(type);
-}
-function stringifyTypeFromDebugInfo(debugInfo) {
- if (!debugInfo.filePath || !debugInfo.lineNumber) {
- return debugInfo.className;
- } else {
- return `${debugInfo.className} (at ${debugInfo.filePath}:${debugInfo.lineNumber})`;
- }
-}
-function throwCyclicDependencyError(token, path) {
- const depPath = path ? `. Dependency path: ${path.join(" > ")} > ${token}` : "";
- throw new RuntimeError(-200, ngDevMode ? `Circular dependency in DI detected for ${token}${depPath}` : token);
-}
-function throwMixedMultiProviderError() {
- throw new Error(`Cannot mix multi providers and regular providers`);
-}
-function throwInvalidProviderError(ngModuleType, providers, provider) {
- if (ngModuleType && providers) {
- const providerDetail = providers.map((v) => v == provider ? "?" + provider + "?" : "...");
- throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}' - only instances of Provider and Type are allowed, got: [${providerDetail.join(", ")}]`);
- } else if (isEnvironmentProviders(provider)) {
- if (provider.ɵfromNgModule) {
- throw new RuntimeError(207, `Invalid providers from 'importProvidersFrom' present in a non-environment injector. 'importProvidersFrom' can't be used for component providers.`);
- } else {
- throw new RuntimeError(207, `Invalid providers present in a non-environment injector. 'EnvironmentProviders' can't be used for component providers.`);
- }
- } else {
- throw new Error("Invalid provider");
- }
-}
-function throwProviderNotFoundError(token, injectorName) {
- const errorMessage = ngDevMode && `No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ""}`;
- throw new RuntimeError(-201, errorMessage);
-}
-function assertNumber(actual, msg) {
- if (!(typeof actual === "number")) {
- throwError2(msg, typeof actual, "number", "===");
- }
-}
-function assertNumberInRange(actual, minInclusive, maxInclusive) {
- assertNumber(actual, "Expected a number");
- assertLessThanOrEqual(actual, maxInclusive, "Expected number to be less than or equal to");
- assertGreaterThanOrEqual(actual, minInclusive, "Expected number to be greater than or equal to");
-}
-function assertString(actual, msg) {
- if (!(typeof actual === "string")) {
- throwError2(msg, actual === null ? "null" : typeof actual, "string", "===");
- }
-}
-function assertFunction(actual, msg) {
- if (!(typeof actual === "function")) {
- throwError2(msg, actual === null ? "null" : typeof actual, "function", "===");
- }
-}
-function assertEqual(actual, expected, msg) {
- if (!(actual == expected)) {
- throwError2(msg, actual, expected, "==");
- }
-}
-function assertNotEqual(actual, expected, msg) {
- if (!(actual != expected)) {
- throwError2(msg, actual, expected, "!=");
- }
-}
-function assertSame(actual, expected, msg) {
- if (!(actual === expected)) {
- throwError2(msg, actual, expected, "===");
- }
-}
-function assertNotSame(actual, expected, msg) {
- if (!(actual !== expected)) {
- throwError2(msg, actual, expected, "!==");
- }
-}
-function assertLessThan(actual, expected, msg) {
- if (!(actual < expected)) {
- throwError2(msg, actual, expected, "<");
- }
-}
-function assertLessThanOrEqual(actual, expected, msg) {
- if (!(actual <= expected)) {
- throwError2(msg, actual, expected, "<=");
- }
-}
-function assertGreaterThan(actual, expected, msg) {
- if (!(actual > expected)) {
- throwError2(msg, actual, expected, ">");
- }
-}
-function assertGreaterThanOrEqual(actual, expected, msg) {
- if (!(actual >= expected)) {
- throwError2(msg, actual, expected, ">=");
- }
-}
-function assertDefined(actual, msg) {
- if (actual == null) {
- throwError2(msg, actual, null, "!=");
- }
-}
-function throwError2(msg, actual, expected, comparison) {
- throw new Error(`ASSERTION ERROR: ${msg}` + (comparison == null ? "" : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));
-}
-function assertDomNode(node) {
- if (!(node instanceof Node)) {
- throwError2(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);
- }
-}
-function assertElement(node) {
- if (!(node instanceof Element)) {
- throwError2(`The provided value must be an element but got ${stringify(node)}`);
- }
-}
-function assertIndexInRange(arr, index) {
- assertDefined(arr, "Array must be defined.");
- const maxLen = arr.length;
- if (index < 0 || index >= maxLen) {
- throwError2(`Index expected to be less than ${maxLen} but got ${index}`);
- }
-}
-function assertOneOf(value, ...validValues) {
- if (validValues.indexOf(value) !== -1)
- return true;
- throwError2(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);
-}
-function ɵɵdefineInjectable(opts) {
- return {
- token: opts.token,
- providedIn: opts.providedIn || null,
- factory: opts.factory,
- value: void 0
- };
-}
-var defineInjectable = ɵɵdefineInjectable;
-function ɵɵdefineInjector(options) {
- return { providers: options.providers || [], imports: options.imports || [] };
-}
-function getInjectableDef(type) {
- return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);
-}
-function isInjectable(type) {
- return getInjectableDef(type) !== null;
-}
-function getOwnDefinition(type, field) {
- return type.hasOwnProperty(field) ? type[field] : null;
-}
-function getInheritedInjectableDef(type) {
- const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);
- if (def) {
- ngDevMode && console.warn(`DEPRECATED: DI is instantiating a token "${type.name}" that inherits its @Injectable decorator but does not provide one itself.
-This will become an error in a future version of Angular. Please add @Injectable() to the "${type.name}" class.`);
- return def;
- } else {
- return null;
- }
-}
-function getInjectorDef(type) {
- return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ? type[NG_INJ_DEF] : null;
-}
-var NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });
-var NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });
-var NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });
-var NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });
-var InjectFlags;
-(function(InjectFlags2) {
- InjectFlags2[InjectFlags2["Default"] = 0] = "Default";
- InjectFlags2[InjectFlags2["Host"] = 1] = "Host";
- InjectFlags2[InjectFlags2["Self"] = 2] = "Self";
- InjectFlags2[InjectFlags2["SkipSelf"] = 4] = "SkipSelf";
- InjectFlags2[InjectFlags2["Optional"] = 8] = "Optional";
-})(InjectFlags || (InjectFlags = {}));
-var _injectImplementation;
-function getInjectImplementation() {
- return _injectImplementation;
-}
-function setInjectImplementation(impl) {
- const previous = _injectImplementation;
- _injectImplementation = impl;
- return previous;
-}
-function injectRootLimpMode(token, notFoundValue, flags) {
- const injectableDef = getInjectableDef(token);
- if (injectableDef && injectableDef.providedIn == "root") {
- return injectableDef.value === void 0 ? injectableDef.value = injectableDef.factory() : injectableDef.value;
- }
- if (flags & InjectFlags.Optional)
- return null;
- if (notFoundValue !== void 0)
- return notFoundValue;
- throwProviderNotFoundError(token, "Injector");
-}
-function assertInjectImplementationNotEqual(fn) {
- ngDevMode && assertNotEqual(_injectImplementation, fn, "Calling ɵɵinject would cause infinite recursion");
-}
-var _global = globalThis;
-function ngDevModeResetPerfCounters() {
- const locationString = typeof location !== "undefined" ? location.toString() : "";
- const newCounters = {
- namedConstructors: locationString.indexOf("ngDevMode=namedConstructors") != -1,
- firstCreatePass: 0,
- tNode: 0,
- tView: 0,
- rendererCreateTextNode: 0,
- rendererSetText: 0,
- rendererCreateElement: 0,
- rendererAddEventListener: 0,
- rendererSetAttribute: 0,
- rendererRemoveAttribute: 0,
- rendererSetProperty: 0,
- rendererSetClassName: 0,
- rendererAddClass: 0,
- rendererRemoveClass: 0,
- rendererSetStyle: 0,
- rendererRemoveStyle: 0,
- rendererDestroy: 0,
- rendererDestroyNode: 0,
- rendererMoveNode: 0,
- rendererRemoveNode: 0,
- rendererAppendChild: 0,
- rendererInsertBefore: 0,
- rendererCreateComment: 0,
- hydratedNodes: 0,
- hydratedComponents: 0,
- dehydratedViewsRemoved: 0,
- dehydratedViewsCleanupRuns: 0,
- componentsSkippedHydration: 0
- };
- const allowNgDevModeTrue = locationString.indexOf("ngDevMode=false") === -1;
- if (!allowNgDevModeTrue) {
- _global["ngDevMode"] = false;
- } else {
- if (typeof _global["ngDevMode"] !== "object") {
- _global["ngDevMode"] = {};
- }
- Object.assign(_global["ngDevMode"], newCounters);
- }
- return newCounters;
-}
-function initNgDevMode() {
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- if (typeof ngDevMode !== "object" || Object.keys(ngDevMode).length === 0) {
- ngDevModeResetPerfCounters();
- }
- return typeof ngDevMode !== "undefined" && !!ngDevMode;
- }
- return false;
-}
-var InjectionToken = class {
- /**
- * @param _desc Description for the token,
- * used only for debugging purposes,
- * it should but does not need to be unique
- * @param options Options for the token's usage, as described above
- */
- constructor(_desc, options) {
- this._desc = _desc;
- this.ngMetadataName = "InjectionToken";
- this.ɵprov = void 0;
- if (typeof options == "number") {
- (typeof ngDevMode === "undefined" || ngDevMode) && assertLessThan(options, 0, "Only negative numbers are supported here");
- this.__NG_ELEMENT_ID__ = options;
- } else if (options !== void 0) {
- this.ɵprov = ɵɵdefineInjectable({
- token: this,
- providedIn: options.providedIn || "root",
- factory: options.factory
- });
- }
- }
- /**
- * @internal
- */
- get multi() {
- return this;
- }
- toString() {
- return `InjectionToken ${this._desc}`;
- }
-};
-var _injectorProfilerContext;
-function getInjectorProfilerContext() {
- !ngDevMode && throwError2("getInjectorProfilerContext should never be called in production mode");
- return _injectorProfilerContext;
-}
-function setInjectorProfilerContext(context2) {
- !ngDevMode && throwError2("setInjectorProfilerContext should never be called in production mode");
- const previous = _injectorProfilerContext;
- _injectorProfilerContext = context2;
- return previous;
-}
-var injectorProfilerCallback = null;
-var setInjectorProfiler = (injectorProfiler2) => {
- !ngDevMode && throwError2("setInjectorProfiler should never be called in production mode");
- injectorProfilerCallback = injectorProfiler2;
-};
-function injectorProfiler(event) {
- !ngDevMode && throwError2("Injector profiler should never be called in production mode");
- if (injectorProfilerCallback != null) {
- injectorProfilerCallback(event);
- }
-}
-function emitProviderConfiguredEvent(eventProvider, isViewProvider = false) {
- !ngDevMode && throwError2("Injector profiler should never be called in production mode");
- let token;
- if (typeof eventProvider === "function") {
- token = eventProvider;
- } else if (eventProvider instanceof InjectionToken) {
- token = eventProvider;
- } else {
- token = resolveForwardRef(eventProvider.provide);
- }
- let provider = eventProvider;
- if (eventProvider instanceof InjectionToken) {
- provider = eventProvider.ɵprov || eventProvider;
- }
- injectorProfiler({
- type: 2,
- context: getInjectorProfilerContext(),
- providerRecord: { token, provider, isViewProvider }
- });
-}
-function emitInstanceCreatedByInjectorEvent(instance) {
- !ngDevMode && throwError2("Injector profiler should never be called in production mode");
- injectorProfiler({
- type: 1,
- context: getInjectorProfilerContext(),
- instance: { value: instance }
- });
-}
-function emitInjectEvent(token, value, flags) {
- !ngDevMode && throwError2("Injector profiler should never be called in production mode");
- injectorProfiler({
- type: 0,
- context: getInjectorProfilerContext(),
- service: { token, value, flags }
- });
-}
-function runInInjectorProfilerContext(injector, token, callback) {
- !ngDevMode && throwError2("runInInjectorProfilerContext should never be called in production mode");
- const prevInjectContext = setInjectorProfilerContext({ injector, token });
- try {
- callback();
- } finally {
- setInjectorProfilerContext(prevInjectContext);
- }
-}
-var _THROW_IF_NOT_FOUND = {};
-var THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;
-var DI_DECORATOR_FLAG = "__NG_DI_FLAG__";
-var NG_TEMP_TOKEN_PATH = "ngTempTokenPath";
-var NG_TOKEN_PATH = "ngTokenPath";
-var NEW_LINE = /\n/gm;
-var NO_NEW_LINE = "ɵ";
-var SOURCE = "__source";
-var _currentInjector = void 0;
-function getCurrentInjector() {
- return _currentInjector;
-}
-function setCurrentInjector(injector) {
- const former = _currentInjector;
- _currentInjector = injector;
- return former;
-}
-function injectInjectorOnly(token, flags = InjectFlags.Default) {
- if (_currentInjector === void 0) {
- throw new RuntimeError(-203, ngDevMode && `inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with \`runInInjectionContext\`.`);
- } else if (_currentInjector === null) {
- return injectRootLimpMode(token, void 0, flags);
- } else {
- const value = _currentInjector.get(token, flags & InjectFlags.Optional ? null : void 0, flags);
- ngDevMode && emitInjectEvent(token, value, flags);
- return value;
- }
-}
-function ɵɵinject(token, flags = InjectFlags.Default) {
- return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);
-}
-function ɵɵinvalidFactoryDep(index) {
- throw new RuntimeError(202, ngDevMode && `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.
-This can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.
-
-Please check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.`);
-}
-function inject(token, flags = InjectFlags.Default) {
- return ɵɵinject(token, convertToBitFlags(flags));
-}
-function convertToBitFlags(flags) {
- if (typeof flags === "undefined" || typeof flags === "number") {
- return flags;
- }
- return 0 | // comment to force a line break in the formatter
- (flags.optional && 8) | (flags.host && 1) | (flags.self && 2) | (flags.skipSelf && 4);
-}
-function injectArgs(types) {
- const args = [];
- for (let i = 0; i < types.length; i++) {
- const arg = resolveForwardRef(types[i]);
- if (Array.isArray(arg)) {
- if (arg.length === 0) {
- throw new RuntimeError(900, ngDevMode && "Arguments array must have arguments.");
- }
- let type = void 0;
- let flags = InjectFlags.Default;
- for (let j = 0; j < arg.length; j++) {
- const meta = arg[j];
- const flag = getInjectFlag(meta);
- if (typeof flag === "number") {
- if (flag === -1) {
- type = meta.token;
- } else {
- flags |= flag;
- }
- } else {
- type = meta;
- }
- }
- args.push(ɵɵinject(type, flags));
- } else {
- args.push(ɵɵinject(arg));
- }
- }
- return args;
-}
-function attachInjectFlag(decorator, flag) {
- decorator[DI_DECORATOR_FLAG] = flag;
- decorator.prototype[DI_DECORATOR_FLAG] = flag;
- return decorator;
-}
-function getInjectFlag(token) {
- return token[DI_DECORATOR_FLAG];
-}
-function catchInjectorError(e, token, injectorErrorName, source) {
- const tokenPath = e[NG_TEMP_TOKEN_PATH];
- if (token[SOURCE]) {
- tokenPath.unshift(token[SOURCE]);
- }
- e.message = formatError("\n" + e.message, tokenPath, injectorErrorName, source);
- e[NG_TOKEN_PATH] = tokenPath;
- e[NG_TEMP_TOKEN_PATH] = null;
- throw e;
-}
-function formatError(text, obj, injectorErrorName, source = null) {
- text = text && text.charAt(0) === "\n" && text.charAt(1) == NO_NEW_LINE ? text.slice(2) : text;
- let context2 = stringify(obj);
- if (Array.isArray(obj)) {
- context2 = obj.map(stringify).join(" -> ");
- } else if (typeof obj === "object") {
- let parts = [];
- for (let key in obj) {
- if (obj.hasOwnProperty(key)) {
- let value = obj[key];
- parts.push(key + ":" + (typeof value === "string" ? JSON.stringify(value) : stringify(value)));
- }
- }
- context2 = `{${parts.join(", ")}}`;
- }
- return `${injectorErrorName}${source ? "(" + source + ")" : ""}[${context2}]: ${text.replace(NEW_LINE, "\n ")}`;
-}
-function noSideEffects(fn) {
- return { toString: fn }.toString();
-}
-var ChangeDetectionStrategy;
-(function(ChangeDetectionStrategy2) {
- ChangeDetectionStrategy2[ChangeDetectionStrategy2["OnPush"] = 0] = "OnPush";
- ChangeDetectionStrategy2[ChangeDetectionStrategy2["Default"] = 1] = "Default";
-})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));
-var ViewEncapsulation$1;
-(function(ViewEncapsulation2) {
- ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
- ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None";
- ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom";
-})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));
-var EMPTY_OBJ = {};
-var EMPTY_ARRAY = [];
-if ((typeof ngDevMode === "undefined" || ngDevMode) && initNgDevMode()) {
- Object.freeze(EMPTY_OBJ);
- Object.freeze(EMPTY_ARRAY);
-}
-var InputFlags;
-(function(InputFlags2) {
- InputFlags2[InputFlags2["None"] = 0] = "None";
- InputFlags2[InputFlags2["SignalBased"] = 1] = "SignalBased";
- InputFlags2[InputFlags2["HasDecoratorInputTransform"] = 2] = "HasDecoratorInputTransform";
-})(InputFlags || (InputFlags = {}));
-function classIndexOf(className, classToSearch, startingIndex) {
- ngDevMode && assertNotEqual(classToSearch, "", 'can not look for "" string.');
- let end = className.length;
- while (true) {
- const foundIndex = className.indexOf(classToSearch, startingIndex);
- if (foundIndex === -1)
- return foundIndex;
- if (foundIndex === 0 || className.charCodeAt(foundIndex - 1) <= 32) {
- const length = classToSearch.length;
- if (foundIndex + length === end || className.charCodeAt(foundIndex + length) <= 32) {
- return foundIndex;
- }
- }
- startingIndex = foundIndex + 1;
- }
-}
-function setUpAttributes(renderer, native, attrs) {
- let i = 0;
- while (i < attrs.length) {
- const value = attrs[i];
- if (typeof value === "number") {
- if (value !== 0) {
- break;
- }
- i++;
- const namespaceURI = attrs[i++];
- const attrName = attrs[i++];
- const attrVal = attrs[i++];
- ngDevMode && ngDevMode.rendererSetAttribute++;
- renderer.setAttribute(native, attrName, attrVal, namespaceURI);
- } else {
- const attrName = value;
- const attrVal = attrs[++i];
- ngDevMode && ngDevMode.rendererSetAttribute++;
- if (isAnimationProp(attrName)) {
- renderer.setProperty(native, attrName, attrVal);
- } else {
- renderer.setAttribute(native, attrName, attrVal);
- }
- i++;
- }
- }
- return i;
-}
-function isNameOnlyAttributeMarker(marker) {
- return marker === 3 || marker === 4 || marker === 6;
-}
-function isAnimationProp(name) {
- return name.charCodeAt(0) === 64;
-}
-function mergeHostAttrs(dst, src) {
- if (src === null || src.length === 0) {
- } else if (dst === null || dst.length === 0) {
- dst = src.slice();
- } else {
- let srcMarker = -1;
- for (let i = 0; i < src.length; i++) {
- const item = src[i];
- if (typeof item === "number") {
- srcMarker = item;
- } else {
- if (srcMarker === 0) {
- } else if (srcMarker === -1 || srcMarker === 2) {
- mergeHostAttribute(dst, srcMarker, item, null, src[++i]);
- } else {
- mergeHostAttribute(dst, srcMarker, item, null, null);
- }
- }
- }
- }
- return dst;
-}
-function mergeHostAttribute(dst, marker, key1, key2, value) {
- let i = 0;
- let markerInsertPosition = dst.length;
- if (marker === -1) {
- markerInsertPosition = -1;
- } else {
- while (i < dst.length) {
- const dstValue = dst[i++];
- if (typeof dstValue === "number") {
- if (dstValue === marker) {
- markerInsertPosition = -1;
- break;
- } else if (dstValue > marker) {
- markerInsertPosition = i - 1;
- break;
- }
- }
- }
- }
- while (i < dst.length) {
- const item = dst[i];
- if (typeof item === "number") {
- break;
- } else if (item === key1) {
- if (key2 === null) {
- if (value !== null) {
- dst[i + 1] = value;
- }
- return;
- } else if (key2 === dst[i + 1]) {
- dst[i + 2] = value;
- return;
- }
- }
- i++;
- if (key2 !== null)
- i++;
- if (value !== null)
- i++;
- }
- if (markerInsertPosition !== -1) {
- dst.splice(markerInsertPosition, 0, marker);
- i = markerInsertPosition + 1;
- }
- dst.splice(i++, 0, key1);
- if (key2 !== null) {
- dst.splice(i++, 0, key2);
- }
- if (value !== null) {
- dst.splice(i++, 0, value);
- }
-}
-var NG_TEMPLATE_SELECTOR = "ng-template";
-function isCssClassMatching(attrs, cssClassToMatch, isProjectionMode) {
- ngDevMode && assertEqual(cssClassToMatch, cssClassToMatch.toLowerCase(), "Class name expected to be lowercase.");
- let i = 0;
- let isImplicitAttrsSection = true;
- while (i < attrs.length) {
- let item = attrs[i++];
- if (typeof item === "string" && isImplicitAttrsSection) {
- const value = attrs[i++];
- if (isProjectionMode && item === "class") {
- if (classIndexOf(value.toLowerCase(), cssClassToMatch, 0) !== -1) {
- return true;
- }
- }
- } else if (item === 1) {
- while (i < attrs.length && typeof (item = attrs[i++]) == "string") {
- if (item.toLowerCase() === cssClassToMatch)
- return true;
- }
- return false;
- } else if (typeof item === "number") {
- isImplicitAttrsSection = false;
- }
- }
- return false;
-}
-function isInlineTemplate(tNode) {
- return tNode.type === 4 && tNode.value !== NG_TEMPLATE_SELECTOR;
-}
-function hasTagAndTypeMatch(tNode, currentSelector, isProjectionMode) {
- const tagNameToCompare = tNode.type === 4 && !isProjectionMode ? NG_TEMPLATE_SELECTOR : tNode.value;
- return currentSelector === tagNameToCompare;
-}
-function isNodeMatchingSelector(tNode, selector, isProjectionMode) {
- ngDevMode && assertDefined(selector[0], "Selector should have a tag name");
- let mode = 4;
- const nodeAttrs = tNode.attrs || [];
- const nameOnlyMarkerIdx = getNameOnlyMarkerIndex(nodeAttrs);
- let skipToNextSelector = false;
- for (let i = 0; i < selector.length; i++) {
- const current = selector[i];
- if (typeof current === "number") {
- if (!skipToNextSelector && !isPositive(mode) && !isPositive(current)) {
- return false;
- }
- if (skipToNextSelector && isPositive(current))
- continue;
- skipToNextSelector = false;
- mode = current | mode & 1;
- continue;
- }
- if (skipToNextSelector)
- continue;
- if (mode & 4) {
- mode = 2 | mode & 1;
- if (current !== "" && !hasTagAndTypeMatch(tNode, current, isProjectionMode) || current === "" && selector.length === 1) {
- if (isPositive(mode))
- return false;
- skipToNextSelector = true;
- }
- } else {
- const selectorAttrValue = mode & 8 ? current : selector[++i];
- if (mode & 8 && tNode.attrs !== null) {
- if (!isCssClassMatching(tNode.attrs, selectorAttrValue, isProjectionMode)) {
- if (isPositive(mode))
- return false;
- skipToNextSelector = true;
- }
- continue;
- }
- const attrName = mode & 8 ? "class" : current;
- const attrIndexInNode = findAttrIndexInNode(attrName, nodeAttrs, isInlineTemplate(tNode), isProjectionMode);
- if (attrIndexInNode === -1) {
- if (isPositive(mode))
- return false;
- skipToNextSelector = true;
- continue;
- }
- if (selectorAttrValue !== "") {
- let nodeAttrValue;
- if (attrIndexInNode > nameOnlyMarkerIdx) {
- nodeAttrValue = "";
- } else {
- ngDevMode && assertNotEqual(nodeAttrs[attrIndexInNode], 0, "We do not match directives on namespaced attributes");
- nodeAttrValue = nodeAttrs[attrIndexInNode + 1].toLowerCase();
- }
- const compareAgainstClassName = mode & 8 ? nodeAttrValue : null;
- if (compareAgainstClassName && classIndexOf(compareAgainstClassName, selectorAttrValue, 0) !== -1 || mode & 2 && selectorAttrValue !== nodeAttrValue) {
- if (isPositive(mode))
- return false;
- skipToNextSelector = true;
- }
- }
- }
- }
- return isPositive(mode) || skipToNextSelector;
-}
-function isPositive(mode) {
- return (mode & 1) === 0;
-}
-function findAttrIndexInNode(name, attrs, isInlineTemplate2, isProjectionMode) {
- if (attrs === null)
- return -1;
- let i = 0;
- if (isProjectionMode || !isInlineTemplate2) {
- let bindingsMode = false;
- while (i < attrs.length) {
- const maybeAttrName = attrs[i];
- if (maybeAttrName === name) {
- return i;
- } else if (maybeAttrName === 3 || maybeAttrName === 6) {
- bindingsMode = true;
- } else if (maybeAttrName === 1 || maybeAttrName === 2) {
- let value = attrs[++i];
- while (typeof value === "string") {
- value = attrs[++i];
- }
- continue;
- } else if (maybeAttrName === 4) {
- break;
- } else if (maybeAttrName === 0) {
- i += 4;
- continue;
- }
- i += bindingsMode ? 1 : 2;
- }
- return -1;
- } else {
- return matchTemplateAttribute(attrs, name);
- }
-}
-function isNodeMatchingSelectorList(tNode, selector, isProjectionMode = false) {
- for (let i = 0; i < selector.length; i++) {
- if (isNodeMatchingSelector(tNode, selector[i], isProjectionMode)) {
- return true;
- }
- }
- return false;
-}
-function getProjectAsAttrValue(tNode) {
- const nodeAttrs = tNode.attrs;
- if (nodeAttrs != null) {
- const ngProjectAsAttrIdx = nodeAttrs.indexOf(
- 5
- /* AttributeMarker.ProjectAs */
- );
- if ((ngProjectAsAttrIdx & 1) === 0) {
- return nodeAttrs[ngProjectAsAttrIdx + 1];
- }
- }
- return null;
-}
-function getNameOnlyMarkerIndex(nodeAttrs) {
- for (let i = 0; i < nodeAttrs.length; i++) {
- const nodeAttr = nodeAttrs[i];
- if (isNameOnlyAttributeMarker(nodeAttr)) {
- return i;
- }
- }
- return nodeAttrs.length;
-}
-function matchTemplateAttribute(attrs, name) {
- let i = attrs.indexOf(
- 4
- /* AttributeMarker.Template */
- );
- if (i > -1) {
- i++;
- while (i < attrs.length) {
- const attr = attrs[i];
- if (typeof attr === "number")
- return -1;
- if (attr === name)
- return i;
- i++;
- }
- }
- return -1;
-}
-function isSelectorInSelectorList(selector, list) {
- selectorListLoop:
- for (let i = 0; i < list.length; i++) {
- const currentSelectorInList = list[i];
- if (selector.length !== currentSelectorInList.length) {
- continue;
- }
- for (let j = 0; j < selector.length; j++) {
- if (selector[j] !== currentSelectorInList[j]) {
- continue selectorListLoop;
- }
- }
- return true;
- }
- return false;
-}
-function maybeWrapInNotSelector(isNegativeMode, chunk) {
- return isNegativeMode ? ":not(" + chunk.trim() + ")" : chunk;
-}
-function stringifyCSSSelector(selector) {
- let result = selector[0];
- let i = 1;
- let mode = 2;
- let currentChunk = "";
- let isNegativeMode = false;
- while (i < selector.length) {
- let valueOrMarker = selector[i];
- if (typeof valueOrMarker === "string") {
- if (mode & 2) {
- const attrValue = selector[++i];
- currentChunk += "[" + valueOrMarker + (attrValue.length > 0 ? '="' + attrValue + '"' : "") + "]";
- } else if (mode & 8) {
- currentChunk += "." + valueOrMarker;
- } else if (mode & 4) {
- currentChunk += " " + valueOrMarker;
- }
- } else {
- if (currentChunk !== "" && !isPositive(valueOrMarker)) {
- result += maybeWrapInNotSelector(isNegativeMode, currentChunk);
- currentChunk = "";
- }
- mode = valueOrMarker;
- isNegativeMode = isNegativeMode || !isPositive(mode);
- }
- i++;
- }
- if (currentChunk !== "") {
- result += maybeWrapInNotSelector(isNegativeMode, currentChunk);
- }
- return result;
-}
-function stringifyCSSSelectorList(selectorList) {
- return selectorList.map(stringifyCSSSelector).join(",");
-}
-function extractAttrsAndClassesFromSelector(selector) {
- const attrs = [];
- const classes = [];
- let i = 1;
- let mode = 2;
- while (i < selector.length) {
- let valueOrMarker = selector[i];
- if (typeof valueOrMarker === "string") {
- if (mode === 2) {
- if (valueOrMarker !== "") {
- attrs.push(valueOrMarker, selector[++i]);
- }
- } else if (mode === 8) {
- classes.push(valueOrMarker);
- }
- } else {
- if (!isPositive(mode))
- break;
- mode = valueOrMarker;
- }
- i++;
- }
- return { attrs, classes };
-}
-function ɵɵdefineComponent(componentDefinition) {
- return noSideEffects(() => {
- (typeof ngDevMode === "undefined" || ngDevMode) && initNgDevMode();
- const baseDef = getNgDirectiveDef(componentDefinition);
- const def = __spreadProps(__spreadValues({}, baseDef), {
- decls: componentDefinition.decls,
- vars: componentDefinition.vars,
- template: componentDefinition.template,
- consts: componentDefinition.consts || null,
- ngContentSelectors: componentDefinition.ngContentSelectors,
- onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,
- directiveDefs: null,
- // assigned in noSideEffects
- pipeDefs: null,
- // assigned in noSideEffects
- dependencies: baseDef.standalone && componentDefinition.dependencies || null,
- getStandaloneInjector: null,
- signals: componentDefinition.signals ?? false,
- data: componentDefinition.data || {},
- encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,
- styles: componentDefinition.styles || EMPTY_ARRAY,
- _: null,
- schemas: componentDefinition.schemas || null,
- tView: null,
- id: ""
- });
- initFeatures(def);
- const dependencies = componentDefinition.dependencies;
- def.directiveDefs = extractDefListOrFactory(
- dependencies,
- /* pipeDef */
- false
- );
- def.pipeDefs = extractDefListOrFactory(
- dependencies,
- /* pipeDef */
- true
- );
- def.id = getComponentId(def);
- return def;
- });
-}
-function extractDirectiveDef(type) {
- return getComponentDef(type) || getDirectiveDef(type);
-}
-function nonNull(value) {
- return value !== null;
-}
-function ɵɵdefineNgModule(def) {
- return noSideEffects(() => {
- const res = {
- type: def.type,
- bootstrap: def.bootstrap || EMPTY_ARRAY,
- declarations: def.declarations || EMPTY_ARRAY,
- imports: def.imports || EMPTY_ARRAY,
- exports: def.exports || EMPTY_ARRAY,
- transitiveCompileScopes: null,
- schemas: def.schemas || null,
- id: def.id || null
- };
- return res;
- });
-}
-function parseAndConvertBindingsForDefinition(obj, declaredInputs) {
- if (obj == null)
- return EMPTY_OBJ;
- const newLookup = {};
- for (const minifiedKey in obj) {
- if (obj.hasOwnProperty(minifiedKey)) {
- const value = obj[minifiedKey];
- let publicName;
- let declaredName;
- let inputFlags = InputFlags.None;
- if (Array.isArray(value)) {
- inputFlags = value[0];
- publicName = value[1];
- declaredName = value[2] ?? publicName;
- } else {
- publicName = value;
- declaredName = value;
- }
- if (declaredInputs) {
- newLookup[publicName] = inputFlags !== InputFlags.None ? [minifiedKey, inputFlags] : minifiedKey;
- declaredInputs[publicName] = declaredName;
- } else {
- newLookup[publicName] = minifiedKey;
- }
- }
- }
- return newLookup;
-}
-function ɵɵdefineDirective(directiveDefinition) {
- return noSideEffects(() => {
- const def = getNgDirectiveDef(directiveDefinition);
- initFeatures(def);
- return def;
- });
-}
-function ɵɵdefinePipe(pipeDef) {
- return {
- type: pipeDef.type,
- name: pipeDef.name,
- factory: null,
- pure: pipeDef.pure !== false,
- standalone: pipeDef.standalone === true,
- onDestroy: pipeDef.type.prototype.ngOnDestroy || null
- };
-}
-function getComponentDef(type) {
- return type[NG_COMP_DEF] || null;
-}
-function getDirectiveDef(type) {
- return type[NG_DIR_DEF] || null;
-}
-function getPipeDef$1(type) {
- return type[NG_PIPE_DEF] || null;
-}
-function isStandalone(type) {
- const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);
- return def !== null ? def.standalone : false;
-}
-function getNgModuleDef(type, throwNotFound) {
- const ngModuleDef = type[NG_MOD_DEF] || null;
- if (!ngModuleDef && throwNotFound === true) {
- throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);
- }
- return ngModuleDef;
-}
-function getNgDirectiveDef(directiveDefinition) {
- const declaredInputs = {};
- return {
- type: directiveDefinition.type,
- providersResolver: null,
- factory: null,
- hostBindings: directiveDefinition.hostBindings || null,
- hostVars: directiveDefinition.hostVars || 0,
- hostAttrs: directiveDefinition.hostAttrs || null,
- contentQueries: directiveDefinition.contentQueries || null,
- declaredInputs,
- inputTransforms: null,
- inputConfig: directiveDefinition.inputs || EMPTY_OBJ,
- exportAs: directiveDefinition.exportAs || null,
- standalone: directiveDefinition.standalone === true,
- signals: directiveDefinition.signals === true,
- selectors: directiveDefinition.selectors || EMPTY_ARRAY,
- viewQuery: directiveDefinition.viewQuery || null,
- features: directiveDefinition.features || null,
- setInput: null,
- findHostDirectiveDefs: null,
- hostDirectives: null,
- inputs: parseAndConvertBindingsForDefinition(directiveDefinition.inputs, declaredInputs),
- outputs: parseAndConvertBindingsForDefinition(directiveDefinition.outputs),
- debugInfo: null
- };
-}
-function initFeatures(definition) {
- definition.features?.forEach((fn) => fn(definition));
-}
-function extractDefListOrFactory(dependencies, pipeDef) {
- if (!dependencies) {
- return null;
- }
- const defExtractor = pipeDef ? getPipeDef$1 : extractDirectiveDef;
- return () => (typeof dependencies === "function" ? dependencies() : dependencies).map((dep) => defExtractor(dep)).filter(nonNull);
-}
-var GENERATED_COMP_IDS = /* @__PURE__ */ new Map();
-function getComponentId(componentDef) {
- let hash = 0;
- const hashSelectors = [
- componentDef.selectors,
- componentDef.ngContentSelectors,
- componentDef.hostVars,
- componentDef.hostAttrs,
- componentDef.consts,
- componentDef.vars,
- componentDef.decls,
- componentDef.encapsulation,
- componentDef.standalone,
- componentDef.signals,
- componentDef.exportAs,
- JSON.stringify(componentDef.inputs),
- JSON.stringify(componentDef.outputs),
- // We cannot use 'componentDef.type.name' as the name of the symbol will change and will not
- // match in the server and browser bundles.
- Object.getOwnPropertyNames(componentDef.type.prototype),
- !!componentDef.contentQueries,
- !!componentDef.viewQuery
- ].join("|");
- for (const char of hashSelectors) {
- hash = Math.imul(31, hash) + char.charCodeAt(0) << 0;
- }
- hash += 2147483647 + 1;
- const compId = "c" + hash;
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- if (GENERATED_COMP_IDS.has(compId)) {
- const previousCompDefType = GENERATED_COMP_IDS.get(compId);
- if (previousCompDefType !== componentDef.type) {
- console.warn(formatRuntimeError(-912, `Component ID generation collision detected. Components '${previousCompDefType.name}' and '${componentDef.type.name}' with selector '${stringifyCSSSelectorList(componentDef.selectors)}' generated the same component ID. To fix this, you can change the selector of one of those components or add an extra host attribute to force a different ID.`));
- }
- } else {
- GENERATED_COMP_IDS.set(compId, componentDef.type);
- }
- }
- return compId;
-}
-var HOST = 0;
-var TVIEW = 1;
-var FLAGS = 2;
-var PARENT = 3;
-var NEXT = 4;
-var T_HOST = 5;
-var HYDRATION = 6;
-var CLEANUP = 7;
-var CONTEXT = 8;
-var INJECTOR$1 = 9;
-var ENVIRONMENT = 10;
-var RENDERER = 11;
-var CHILD_HEAD = 12;
-var CHILD_TAIL = 13;
-var DECLARATION_VIEW = 14;
-var DECLARATION_COMPONENT_VIEW = 15;
-var DECLARATION_LCONTAINER = 16;
-var PREORDER_HOOK_FLAGS = 17;
-var QUERIES = 18;
-var ID = 19;
-var EMBEDDED_VIEW_INJECTOR = 20;
-var ON_DESTROY_HOOKS = 21;
-var EFFECTS_TO_SCHEDULE = 22;
-var REACTIVE_TEMPLATE_CONSUMER = 23;
-var HEADER_OFFSET = 25;
-var TYPE = 1;
-var DEHYDRATED_VIEWS = 6;
-var NATIVE = 7;
-var VIEW_REFS = 8;
-var MOVED_VIEWS = 9;
-var CONTAINER_HEADER_OFFSET = 10;
-var LContainerFlags;
-(function(LContainerFlags2) {
- LContainerFlags2[LContainerFlags2["None"] = 0] = "None";
- LContainerFlags2[LContainerFlags2["HasTransplantedViews"] = 2] = "HasTransplantedViews";
-})(LContainerFlags || (LContainerFlags = {}));
-function isLView(value) {
- return Array.isArray(value) && typeof value[TYPE] === "object";
-}
-function isLContainer(value) {
- return Array.isArray(value) && value[TYPE] === true;
-}
-function isContentQueryHost(tNode) {
- return (tNode.flags & 4) !== 0;
-}
-function isComponentHost(tNode) {
- return tNode.componentOffset > -1;
-}
-function isDirectiveHost(tNode) {
- return (tNode.flags & 1) === 1;
-}
-function isComponentDef(def) {
- return !!def.template;
-}
-function isRootView(target) {
- return (target[FLAGS] & 512) !== 0;
-}
-function isProjectionTNode(tNode) {
- return (tNode.type & 16) === 16;
-}
-function hasI18n(lView) {
- return (lView[FLAGS] & 32) === 32;
-}
-function isDestroyed(lView) {
- return (lView[FLAGS] & 256) === 256;
-}
-function assertTNodeForLView(tNode, lView) {
- assertTNodeForTView(tNode, lView[TVIEW]);
-}
-function assertTNodeForTView(tNode, tView) {
- assertTNode(tNode);
- const tData = tView.data;
- for (let i = HEADER_OFFSET; i < tData.length; i++) {
- if (tData[i] === tNode) {
- return;
- }
- }
- throwError2("This TNode does not belong to this TView.");
-}
-function assertTNode(tNode) {
- assertDefined(tNode, "TNode must be defined");
- if (!(tNode && typeof tNode === "object" && tNode.hasOwnProperty("directiveStylingLast"))) {
- throwError2("Not of type TNode, got: " + tNode);
- }
-}
-function assertTIcu(tIcu) {
- assertDefined(tIcu, "Expected TIcu to be defined");
- if (!(typeof tIcu.currentCaseLViewIndex === "number")) {
- throwError2("Object is not of TIcu type.");
- }
-}
-function assertComponentType(actual, msg = "Type passed in is not ComponentType, it does not have 'ɵcmp' property.") {
- if (!getComponentDef(actual)) {
- throwError2(msg);
- }
-}
-function assertNgModuleType(actual, msg = "Type passed in is not NgModuleType, it does not have 'ɵmod' property.") {
- if (!getNgModuleDef(actual)) {
- throwError2(msg);
- }
-}
-function assertHasParent(tNode) {
- assertDefined(tNode, "currentTNode should exist!");
- assertDefined(tNode.parent, "currentTNode should have a parent");
-}
-function assertLContainer(value) {
- assertDefined(value, "LContainer must be defined");
- assertEqual(isLContainer(value), true, "Expecting LContainer");
-}
-function assertLViewOrUndefined(value) {
- value && assertEqual(isLView(value), true, "Expecting LView or undefined or null");
-}
-function assertLView(value) {
- assertDefined(value, "LView must be defined");
- assertEqual(isLView(value), true, "Expecting LView");
-}
-function assertFirstCreatePass(tView, errMessage) {
- assertEqual(tView.firstCreatePass, true, errMessage || "Should only be called in first create pass.");
-}
-function assertFirstUpdatePass(tView, errMessage) {
- assertEqual(tView.firstUpdatePass, true, errMessage || "Should only be called in first update pass.");
-}
-function assertDirectiveDef(obj) {
- if (obj.type === void 0 || obj.selectors == void 0 || obj.inputs === void 0) {
- throwError2(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);
- }
-}
-function assertIndexInDeclRange(tView, index) {
- assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);
-}
-function assertIndexInExpandoRange(lView, index) {
- const tView = lView[1];
- assertBetween(tView.expandoStartIndex, lView.length, index);
-}
-function assertBetween(lower, upper, index) {
- if (!(lower <= index && index < upper)) {
- throwError2(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);
- }
-}
-function assertProjectionSlots(lView, errMessage) {
- assertDefined(lView[DECLARATION_COMPONENT_VIEW], "Component views should exist.");
- assertDefined(lView[DECLARATION_COMPONENT_VIEW][T_HOST].projection, errMessage || "Components with projection nodes (
) must have projection slots defined.");
-}
-function assertParentView(lView, errMessage) {
- assertDefined(lView, errMessage || "Component views should always have a parent view (component's host view)");
-}
-function assertNoDuplicateDirectives(directives) {
- if (directives.length < 2) {
- return;
- }
- const seenDirectives = /* @__PURE__ */ new Set();
- for (const current of directives) {
- if (seenDirectives.has(current)) {
- throw new RuntimeError(309, `Directive ${current.type.name} matches multiple times on the same element. Directives can only match an element once.`);
- }
- seenDirectives.add(current);
- }
-}
-function assertNodeInjector(lView, injectorIndex) {
- assertIndexInExpandoRange(lView, injectorIndex);
- assertIndexInExpandoRange(
- lView,
- injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- );
- assertNumber(lView[injectorIndex + 0], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 1], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 2], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 3], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 4], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 5], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 6], "injectorIndex should point to a bloom filter");
- assertNumber(lView[injectorIndex + 7], "injectorIndex should point to a bloom filter");
- assertNumber(lView[
- injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- ], "injectorIndex should point to parent injector");
-}
-function getFactoryDef(type, throwNotFound) {
- const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);
- if (!hasFactoryDef && throwNotFound === true && ngDevMode) {
- throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);
- }
- return hasFactoryDef ? type[NG_FACTORY_DEF] : null;
-}
-var SimpleChange = class {
- constructor(previousValue, currentValue, firstChange) {
- this.previousValue = previousValue;
- this.currentValue = currentValue;
- this.firstChange = firstChange;
- }
- /**
- * Check whether the new value is the first value assigned.
- */
- isFirstChange() {
- return this.firstChange;
- }
-};
-function applyValueToInputField(instance, inputSignalNode, privateName, value) {
- if (inputSignalNode !== null) {
- inputSignalNode.applyValueToInputSignal(inputSignalNode, value);
- } else {
- instance[privateName] = value;
- }
-}
-function ɵɵNgOnChangesFeature() {
- return NgOnChangesFeatureImpl;
-}
-function NgOnChangesFeatureImpl(definition) {
- if (definition.type.prototype.ngOnChanges) {
- definition.setInput = ngOnChangesSetInput;
- }
- return rememberChangeHistoryAndInvokeOnChangesHook;
-}
-ɵɵNgOnChangesFeature.ngInherit = true;
-function rememberChangeHistoryAndInvokeOnChangesHook() {
- const simpleChangesStore = getSimpleChangesStore(this);
- const current = simpleChangesStore?.current;
- if (current) {
- const previous = simpleChangesStore.previous;
- if (previous === EMPTY_OBJ) {
- simpleChangesStore.previous = current;
- } else {
- for (let key in current) {
- previous[key] = current[key];
- }
- }
- simpleChangesStore.current = null;
- this.ngOnChanges(current);
- }
-}
-function ngOnChangesSetInput(instance, inputSignalNode, value, publicName, privateName) {
- const declaredName = this.declaredInputs[publicName];
- ngDevMode && assertString(declaredName, "Name of input in ngOnChanges has to be a string");
- const simpleChangesStore = getSimpleChangesStore(instance) || setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });
- const current = simpleChangesStore.current || (simpleChangesStore.current = {});
- const previous = simpleChangesStore.previous;
- const previousChange = previous[declaredName];
- current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);
- applyValueToInputField(instance, inputSignalNode, privateName, value);
-}
-var SIMPLE_CHANGES_STORE = "__ngSimpleChanges__";
-function getSimpleChangesStore(instance) {
- return instance[SIMPLE_CHANGES_STORE] || null;
-}
-function setSimpleChangesStore(instance, store2) {
- return instance[SIMPLE_CHANGES_STORE] = store2;
-}
-var profilerCallback = null;
-var setProfiler = (profiler2) => {
- profilerCallback = profiler2;
-};
-var profiler = function(event, instance, hookOrListener) {
- if (profilerCallback != null) {
- profilerCallback(event, instance, hookOrListener);
- }
-};
-var SVG_NAMESPACE = "svg";
-var MATH_ML_NAMESPACE = "math";
-var _ensureDirtyViewsAreAlwaysReachable = false;
-function getEnsureDirtyViewsAreAlwaysReachable() {
- return _ensureDirtyViewsAreAlwaysReachable;
-}
-function setEnsureDirtyViewsAreAlwaysReachable(v) {
- _ensureDirtyViewsAreAlwaysReachable = v;
-}
-function unwrapRNode(value) {
- while (Array.isArray(value)) {
- value = value[HOST];
- }
- return value;
-}
-function unwrapLView(value) {
- while (Array.isArray(value)) {
- if (typeof value[TYPE] === "object")
- return value;
- value = value[HOST];
- }
- return null;
-}
-function getNativeByIndex(index, lView) {
- ngDevMode && assertIndexInRange(lView, index);
- ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, "Expected to be past HEADER_OFFSET");
- return unwrapRNode(lView[index]);
-}
-function getNativeByTNode(tNode, lView) {
- ngDevMode && assertTNodeForLView(tNode, lView);
- ngDevMode && assertIndexInRange(lView, tNode.index);
- const node = unwrapRNode(lView[tNode.index]);
- return node;
-}
-function getNativeByTNodeOrNull(tNode, lView) {
- const index = tNode === null ? -1 : tNode.index;
- if (index !== -1) {
- ngDevMode && assertTNodeForLView(tNode, lView);
- const node = unwrapRNode(lView[index]);
- return node;
- }
- return null;
-}
-function getTNode(tView, index) {
- ngDevMode && assertGreaterThan(index, -1, "wrong index for TNode");
- ngDevMode && assertLessThan(index, tView.data.length, "wrong index for TNode");
- const tNode = tView.data[index];
- ngDevMode && tNode !== null && assertTNode(tNode);
- return tNode;
-}
-function load(view, index) {
- ngDevMode && assertIndexInRange(view, index);
- return view[index];
-}
-function getComponentLViewByIndex(nodeIndex, hostView) {
- ngDevMode && assertIndexInRange(hostView, nodeIndex);
- const slotValue = hostView[nodeIndex];
- const lView = isLView(slotValue) ? slotValue : slotValue[HOST];
- return lView;
-}
-function isCreationMode(view) {
- return (view[FLAGS] & 4) === 4;
-}
-function viewAttachedToChangeDetector(view) {
- return (view[FLAGS] & 128) === 128;
-}
-function viewAttachedToContainer(view) {
- return isLContainer(view[PARENT]);
-}
-function getConstant(consts, index) {
- if (index === null || index === void 0)
- return null;
- ngDevMode && assertIndexInRange(consts, index);
- return consts[index];
-}
-function resetPreOrderHookFlags(lView) {
- lView[PREORDER_HOOK_FLAGS] = 0;
-}
-function markViewForRefresh(lView) {
- if (lView[FLAGS] & 1024) {
- return;
- }
- lView[FLAGS] |= 1024;
- if (viewAttachedToChangeDetector(lView)) {
- markAncestorsForTraversal(lView);
- }
-}
-function walkUpViews(nestingLevel, currentView) {
- while (nestingLevel > 0) {
- ngDevMode && assertDefined(currentView[DECLARATION_VIEW], "Declaration view should be defined if nesting level is greater than 0.");
- currentView = currentView[DECLARATION_VIEW];
- nestingLevel--;
- }
- return currentView;
-}
-function requiresRefreshOrTraversal(lView) {
- return !!(lView[FLAGS] & (1024 | 8192) || lView[REACTIVE_TEMPLATE_CONSUMER]?.dirty);
-}
-function updateAncestorTraversalFlagsOnAttach(lView) {
- if (requiresRefreshOrTraversal(lView)) {
- markAncestorsForTraversal(lView);
- } else if (lView[FLAGS] & 64) {
- if (getEnsureDirtyViewsAreAlwaysReachable()) {
- lView[FLAGS] |= 1024;
- markAncestorsForTraversal(lView);
- } else {
- lView[ENVIRONMENT].changeDetectionScheduler?.notify();
- }
- }
-}
-function markAncestorsForTraversal(lView) {
- lView[ENVIRONMENT].changeDetectionScheduler?.notify();
- let parent = getLViewParent(lView);
- while (parent !== null) {
- if (parent[FLAGS] & 8192) {
- break;
- }
- parent[FLAGS] |= 8192;
- if (!viewAttachedToChangeDetector(parent)) {
- break;
- }
- parent = getLViewParent(parent);
- }
-}
-function storeLViewOnDestroy(lView, onDestroyCallback) {
- if ((lView[FLAGS] & 256) === 256) {
- throw new RuntimeError(911, ngDevMode && "View has already been destroyed.");
- }
- if (lView[ON_DESTROY_HOOKS] === null) {
- lView[ON_DESTROY_HOOKS] = [];
- }
- lView[ON_DESTROY_HOOKS].push(onDestroyCallback);
-}
-function removeLViewOnDestroy(lView, onDestroyCallback) {
- if (lView[ON_DESTROY_HOOKS] === null)
- return;
- const destroyCBIdx = lView[ON_DESTROY_HOOKS].indexOf(onDestroyCallback);
- if (destroyCBIdx !== -1) {
- lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);
- }
-}
-function getLViewParent(lView) {
- ngDevMode && assertLView(lView);
- const parent = lView[PARENT];
- return isLContainer(parent) ? parent[PARENT] : parent;
-}
-var instructionState = {
- lFrame: createLFrame(null),
- bindingsEnabled: true,
- skipHydrationRootTNode: null
-};
-var _isInCheckNoChangesMode = false;
-function getElementDepthCount() {
- return instructionState.lFrame.elementDepthCount;
-}
-function increaseElementDepthCount() {
- instructionState.lFrame.elementDepthCount++;
-}
-function decreaseElementDepthCount() {
- instructionState.lFrame.elementDepthCount--;
-}
-function getBindingsEnabled() {
- return instructionState.bindingsEnabled;
-}
-function isInSkipHydrationBlock$1() {
- return instructionState.skipHydrationRootTNode !== null;
-}
-function isSkipHydrationRootTNode(tNode) {
- return instructionState.skipHydrationRootTNode === tNode;
-}
-function ɵɵenableBindings() {
- instructionState.bindingsEnabled = true;
-}
-function enterSkipHydrationBlock(tNode) {
- instructionState.skipHydrationRootTNode = tNode;
-}
-function ɵɵdisableBindings() {
- instructionState.bindingsEnabled = false;
-}
-function leaveSkipHydrationBlock() {
- instructionState.skipHydrationRootTNode = null;
-}
-function getLView() {
- return instructionState.lFrame.lView;
-}
-function getTView() {
- return instructionState.lFrame.tView;
-}
-function ɵɵrestoreView(viewToRestore) {
- instructionState.lFrame.contextLView = viewToRestore;
- return viewToRestore[CONTEXT];
-}
-function ɵɵresetView(value) {
- instructionState.lFrame.contextLView = null;
- return value;
-}
-function getCurrentTNode() {
- let currentTNode = getCurrentTNodePlaceholderOk();
- while (currentTNode !== null && currentTNode.type === 64) {
- currentTNode = currentTNode.parent;
- }
- return currentTNode;
-}
-function getCurrentTNodePlaceholderOk() {
- return instructionState.lFrame.currentTNode;
-}
-function getCurrentParentTNode() {
- const lFrame = instructionState.lFrame;
- const currentTNode = lFrame.currentTNode;
- return lFrame.isParent ? currentTNode : currentTNode.parent;
-}
-function setCurrentTNode(tNode, isParent) {
- ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);
- const lFrame = instructionState.lFrame;
- lFrame.currentTNode = tNode;
- lFrame.isParent = isParent;
-}
-function isCurrentTNodeParent() {
- return instructionState.lFrame.isParent;
-}
-function setCurrentTNodeAsNotParent() {
- instructionState.lFrame.isParent = false;
-}
-function getContextLView() {
- const contextLView = instructionState.lFrame.contextLView;
- ngDevMode && assertDefined(contextLView, "contextLView must be defined.");
- return contextLView;
-}
-function isInCheckNoChangesMode() {
- !ngDevMode && throwError2("Must never be called in production mode");
- return _isInCheckNoChangesMode;
-}
-function setIsInCheckNoChangesMode(mode) {
- !ngDevMode && throwError2("Must never be called in production mode");
- _isInCheckNoChangesMode = mode;
-}
-function getBindingRoot() {
- const lFrame = instructionState.lFrame;
- let index = lFrame.bindingRootIndex;
- if (index === -1) {
- index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;
- }
- return index;
-}
-function getBindingIndex() {
- return instructionState.lFrame.bindingIndex;
-}
-function setBindingIndex(value) {
- return instructionState.lFrame.bindingIndex = value;
-}
-function nextBindingIndex() {
- return instructionState.lFrame.bindingIndex++;
-}
-function incrementBindingIndex(count2) {
- const lFrame = instructionState.lFrame;
- const index = lFrame.bindingIndex;
- lFrame.bindingIndex = lFrame.bindingIndex + count2;
- return index;
-}
-function isInI18nBlock() {
- return instructionState.lFrame.inI18n;
-}
-function setInI18nBlock(isInI18nBlock2) {
- instructionState.lFrame.inI18n = isInI18nBlock2;
-}
-function setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {
- const lFrame = instructionState.lFrame;
- lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;
- setCurrentDirectiveIndex(currentDirectiveIndex);
-}
-function getCurrentDirectiveIndex() {
- return instructionState.lFrame.currentDirectiveIndex;
-}
-function setCurrentDirectiveIndex(currentDirectiveIndex) {
- instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;
-}
-function getCurrentDirectiveDef(tData) {
- const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;
- return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];
-}
-function getCurrentQueryIndex() {
- return instructionState.lFrame.currentQueryIndex;
-}
-function setCurrentQueryIndex(value) {
- instructionState.lFrame.currentQueryIndex = value;
-}
-function getDeclarationTNode(lView) {
- const tView = lView[TVIEW];
- if (tView.type === 2) {
- ngDevMode && assertDefined(tView.declTNode, "Embedded TNodes should have declaration parents.");
- return tView.declTNode;
- }
- if (tView.type === 1) {
- return lView[T_HOST];
- }
- return null;
-}
-function enterDI(lView, tNode, flags) {
- ngDevMode && assertLViewOrUndefined(lView);
- if (flags & InjectFlags.SkipSelf) {
- ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);
- let parentTNode = tNode;
- let parentLView = lView;
- while (true) {
- ngDevMode && assertDefined(parentTNode, "Parent TNode should be defined");
- parentTNode = parentTNode.parent;
- if (parentTNode === null && !(flags & InjectFlags.Host)) {
- parentTNode = getDeclarationTNode(parentLView);
- if (parentTNode === null)
- break;
- ngDevMode && assertDefined(parentLView, "Parent LView should be defined");
- parentLView = parentLView[DECLARATION_VIEW];
- if (parentTNode.type & (2 | 8)) {
- break;
- }
- } else {
- break;
- }
- }
- if (parentTNode === null) {
- return false;
- } else {
- tNode = parentTNode;
- lView = parentLView;
- }
- }
- ngDevMode && assertTNodeForLView(tNode, lView);
- const lFrame = instructionState.lFrame = allocLFrame();
- lFrame.currentTNode = tNode;
- lFrame.lView = lView;
- return true;
-}
-function enterView(newView) {
- ngDevMode && assertNotEqual(newView[0], newView[1], "????");
- ngDevMode && assertLViewOrUndefined(newView);
- const newLFrame = allocLFrame();
- if (ngDevMode) {
- assertEqual(newLFrame.isParent, true, "Expected clean LFrame");
- assertEqual(newLFrame.lView, null, "Expected clean LFrame");
- assertEqual(newLFrame.tView, null, "Expected clean LFrame");
- assertEqual(newLFrame.selectedIndex, -1, "Expected clean LFrame");
- assertEqual(newLFrame.elementDepthCount, 0, "Expected clean LFrame");
- assertEqual(newLFrame.currentDirectiveIndex, -1, "Expected clean LFrame");
- assertEqual(newLFrame.currentNamespace, null, "Expected clean LFrame");
- assertEqual(newLFrame.bindingRootIndex, -1, "Expected clean LFrame");
- assertEqual(newLFrame.currentQueryIndex, 0, "Expected clean LFrame");
- }
- const tView = newView[TVIEW];
- instructionState.lFrame = newLFrame;
- ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);
- newLFrame.currentTNode = tView.firstChild;
- newLFrame.lView = newView;
- newLFrame.tView = tView;
- newLFrame.contextLView = newView;
- newLFrame.bindingIndex = tView.bindingStartIndex;
- newLFrame.inI18n = false;
-}
-function allocLFrame() {
- const currentLFrame = instructionState.lFrame;
- const childLFrame = currentLFrame === null ? null : currentLFrame.child;
- const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;
- return newLFrame;
-}
-function createLFrame(parent) {
- const lFrame = {
- currentTNode: null,
- isParent: true,
- lView: null,
- tView: null,
- selectedIndex: -1,
- contextLView: null,
- elementDepthCount: 0,
- currentNamespace: null,
- currentDirectiveIndex: -1,
- bindingRootIndex: -1,
- bindingIndex: -1,
- currentQueryIndex: 0,
- parent,
- child: null,
- inI18n: false
- };
- parent !== null && (parent.child = lFrame);
- return lFrame;
-}
-function leaveViewLight() {
- const oldLFrame = instructionState.lFrame;
- instructionState.lFrame = oldLFrame.parent;
- oldLFrame.currentTNode = null;
- oldLFrame.lView = null;
- return oldLFrame;
-}
-var leaveDI = leaveViewLight;
-function leaveView() {
- const oldLFrame = leaveViewLight();
- oldLFrame.isParent = true;
- oldLFrame.tView = null;
- oldLFrame.selectedIndex = -1;
- oldLFrame.contextLView = null;
- oldLFrame.elementDepthCount = 0;
- oldLFrame.currentDirectiveIndex = -1;
- oldLFrame.currentNamespace = null;
- oldLFrame.bindingRootIndex = -1;
- oldLFrame.bindingIndex = -1;
- oldLFrame.currentQueryIndex = 0;
-}
-function nextContextImpl(level) {
- const contextLView = instructionState.lFrame.contextLView = walkUpViews(level, instructionState.lFrame.contextLView);
- return contextLView[CONTEXT];
-}
-function getSelectedIndex() {
- return instructionState.lFrame.selectedIndex;
-}
-function setSelectedIndex(index) {
- ngDevMode && index !== -1 && assertGreaterThanOrEqual(index, HEADER_OFFSET, "Index must be past HEADER_OFFSET (or -1).");
- ngDevMode && assertLessThan(index, instructionState.lFrame.lView.length, "Can't set index passed end of LView");
- instructionState.lFrame.selectedIndex = index;
-}
-function getSelectedTNode() {
- const lFrame = instructionState.lFrame;
- return getTNode(lFrame.tView, lFrame.selectedIndex);
-}
-function ɵɵnamespaceSVG() {
- instructionState.lFrame.currentNamespace = SVG_NAMESPACE;
-}
-function ɵɵnamespaceMathML() {
- instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;
-}
-function ɵɵnamespaceHTML() {
- namespaceHTMLInternal();
-}
-function namespaceHTMLInternal() {
- instructionState.lFrame.currentNamespace = null;
-}
-function getNamespace$1() {
- return instructionState.lFrame.currentNamespace;
-}
-var _wasLastNodeCreated = true;
-function wasLastNodeCreated() {
- return _wasLastNodeCreated;
-}
-function lastNodeWasCreated(flag) {
- _wasLastNodeCreated = flag;
-}
-function registerPreOrderHooks(directiveIndex, directiveDef, tView) {
- ngDevMode && assertFirstCreatePass(tView);
- const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;
- if (ngOnChanges) {
- const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);
- (tView.preOrderHooks ??= []).push(directiveIndex, wrappedOnChanges);
- (tView.preOrderCheckHooks ??= []).push(directiveIndex, wrappedOnChanges);
- }
- if (ngOnInit) {
- (tView.preOrderHooks ??= []).push(0 - directiveIndex, ngOnInit);
- }
- if (ngDoCheck) {
- (tView.preOrderHooks ??= []).push(directiveIndex, ngDoCheck);
- (tView.preOrderCheckHooks ??= []).push(directiveIndex, ngDoCheck);
- }
-}
-function registerPostOrderHooks(tView, tNode) {
- ngDevMode && assertFirstCreatePass(tView);
- for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {
- const directiveDef = tView.data[i];
- ngDevMode && assertDefined(directiveDef, "Expecting DirectiveDef");
- const lifecycleHooks = directiveDef.type.prototype;
- const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;
- if (ngAfterContentInit) {
- (tView.contentHooks ??= []).push(-i, ngAfterContentInit);
- }
- if (ngAfterContentChecked) {
- (tView.contentHooks ??= []).push(i, ngAfterContentChecked);
- (tView.contentCheckHooks ??= []).push(i, ngAfterContentChecked);
- }
- if (ngAfterViewInit) {
- (tView.viewHooks ??= []).push(-i, ngAfterViewInit);
- }
- if (ngAfterViewChecked) {
- (tView.viewHooks ??= []).push(i, ngAfterViewChecked);
- (tView.viewCheckHooks ??= []).push(i, ngAfterViewChecked);
- }
- if (ngOnDestroy != null) {
- (tView.destroyHooks ??= []).push(i, ngOnDestroy);
- }
- }
-}
-function executeCheckHooks(lView, hooks, nodeIndex) {
- callHooks(lView, hooks, 3, nodeIndex);
-}
-function executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {
- ngDevMode && assertNotEqual(initPhase, 3, "Init pre-order hooks should not be called more than once");
- if ((lView[FLAGS] & 3) === initPhase) {
- callHooks(lView, hooks, initPhase, nodeIndex);
- }
-}
-function incrementInitPhaseFlags(lView, initPhase) {
- ngDevMode && assertNotEqual(initPhase, 3, "Init hooks phase should not be incremented after all init hooks have been run.");
- let flags = lView[FLAGS];
- if ((flags & 3) === initPhase) {
- flags &= 16383;
- flags += 1;
- lView[FLAGS] = flags;
- }
-}
-function callHooks(currentView, arr, initPhase, currentNodeIndex) {
- ngDevMode && assertEqual(isInCheckNoChangesMode(), false, "Hooks should never be run when in check no changes mode.");
- const startIndex = currentNodeIndex !== void 0 ? currentView[PREORDER_HOOK_FLAGS] & 65535 : 0;
- const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;
- const max2 = arr.length - 1;
- let lastNodeIndexFound = 0;
- for (let i = startIndex; i < max2; i++) {
- const hook = arr[i + 1];
- if (typeof hook === "number") {
- lastNodeIndexFound = arr[i];
- if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {
- break;
- }
- } else {
- const isInitHook = arr[i] < 0;
- if (isInitHook) {
- currentView[PREORDER_HOOK_FLAGS] += 65536;
- }
- if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {
- callHook(currentView, initPhase, arr, i);
- currentView[PREORDER_HOOK_FLAGS] = (currentView[PREORDER_HOOK_FLAGS] & 4294901760) + i + 2;
- }
- i++;
- }
- }
-}
-function callHookInternal(directive, hook) {
- profiler(4, directive, hook);
- const prevConsumer = setActiveConsumer(null);
- try {
- hook.call(directive);
- } finally {
- setActiveConsumer(prevConsumer);
- profiler(5, directive, hook);
- }
-}
-function callHook(currentView, initPhase, arr, i) {
- const isInitHook = arr[i] < 0;
- const hook = arr[i + 1];
- const directiveIndex = isInitHook ? -arr[i] : arr[i];
- const directive = currentView[directiveIndex];
- if (isInitHook) {
- const indexWithintInitPhase = currentView[FLAGS] >> 14;
- if (indexWithintInitPhase < currentView[PREORDER_HOOK_FLAGS] >> 16 && (currentView[FLAGS] & 3) === initPhase) {
- currentView[FLAGS] += 16384;
- callHookInternal(directive, hook);
- }
- } else {
- callHookInternal(directive, hook);
- }
-}
-var NO_PARENT_INJECTOR = -1;
-var NodeInjectorFactory = class {
- constructor(factory, isViewProvider, injectImplementation) {
- this.factory = factory;
- this.resolving = false;
- ngDevMode && assertDefined(factory, "Factory not specified");
- ngDevMode && assertEqual(typeof factory, "function", "Expected factory function.");
- this.canSeeViewProviders = isViewProvider;
- this.injectImpl = injectImplementation;
- }
-};
-function isFactory(obj) {
- return obj instanceof NodeInjectorFactory;
-}
-function toTNodeTypeAsString(tNodeType) {
- let text = "";
- tNodeType & 1 && (text += "|Text");
- tNodeType & 2 && (text += "|Element");
- tNodeType & 4 && (text += "|Container");
- tNodeType & 8 && (text += "|ElementContainer");
- tNodeType & 16 && (text += "|Projection");
- tNodeType & 32 && (text += "|IcuContainer");
- tNodeType & 64 && (text += "|Placeholder");
- return text.length > 0 ? text.substring(1) : text;
-}
-function isTNodeShape(value) {
- return value != null && typeof value === "object" && (value.insertBeforeIndex === null || typeof value.insertBeforeIndex === "number" || Array.isArray(value.insertBeforeIndex));
-}
-function hasClassInput(tNode) {
- return (tNode.flags & 8) !== 0;
-}
-function hasStyleInput(tNode) {
- return (tNode.flags & 16) !== 0;
-}
-function assertTNodeType(tNode, expectedTypes, message) {
- assertDefined(tNode, "should be called with a TNode");
- if ((tNode.type & expectedTypes) === 0) {
- throwError2(message || `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);
- }
-}
-function assertPureTNodeType(type) {
- if (!(type === 2 || //
- type === 1 || //
- type === 4 || //
- type === 8 || //
- type === 32 || //
- type === 16 || //
- type === 64)) {
- throwError2(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);
- }
-}
-function hasParentInjector(parentLocation) {
- return parentLocation !== NO_PARENT_INJECTOR;
-}
-function getParentInjectorIndex(parentLocation) {
- if (ngDevMode) {
- assertNumber(parentLocation, "Number expected");
- assertNotEqual(parentLocation, -1, "Not a valid state.");
- const parentInjectorIndex = parentLocation & 32767;
- assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, "Parent injector must be pointing past HEADER_OFFSET.");
- }
- return parentLocation & 32767;
-}
-function getParentInjectorViewOffset(parentLocation) {
- return parentLocation >> 16;
-}
-function getParentInjectorView(location2, startView) {
- let viewOffset = getParentInjectorViewOffset(location2);
- let parentView = startView;
- while (viewOffset > 0) {
- parentView = parentView[DECLARATION_VIEW];
- viewOffset--;
- }
- return parentView;
-}
-var includeViewProviders = true;
-function setIncludeViewProviders(v) {
- const oldValue = includeViewProviders;
- includeViewProviders = v;
- return oldValue;
-}
-var BLOOM_SIZE = 256;
-var BLOOM_MASK = BLOOM_SIZE - 1;
-var BLOOM_BUCKET_BITS = 5;
-var nextNgElementId = 0;
-var NOT_FOUND = {};
-function bloomAdd(injectorIndex, tView, type) {
- ngDevMode && assertEqual(tView.firstCreatePass, true, "expected firstCreatePass to be true");
- let id;
- if (typeof type === "string") {
- id = type.charCodeAt(0) || 0;
- } else if (type.hasOwnProperty(NG_ELEMENT_ID)) {
- id = type[NG_ELEMENT_ID];
- }
- if (id == null) {
- id = type[NG_ELEMENT_ID] = nextNgElementId++;
- }
- const bloomHash = id & BLOOM_MASK;
- const mask = 1 << bloomHash;
- tView.data[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)] |= mask;
-}
-function getOrCreateNodeInjectorForNode(tNode, lView) {
- const existingInjectorIndex = getInjectorIndex(tNode, lView);
- if (existingInjectorIndex !== -1) {
- return existingInjectorIndex;
- }
- const tView = lView[TVIEW];
- if (tView.firstCreatePass) {
- tNode.injectorIndex = lView.length;
- insertBloom(tView.data, tNode);
- insertBloom(lView, null);
- insertBloom(tView.blueprint, null);
- }
- const parentLoc = getParentInjectorLocation(tNode, lView);
- const injectorIndex = tNode.injectorIndex;
- if (hasParentInjector(parentLoc)) {
- const parentIndex = getParentInjectorIndex(parentLoc);
- const parentLView = getParentInjectorView(parentLoc, lView);
- const parentData = parentLView[TVIEW].data;
- for (let i = 0; i < 8; i++) {
- lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];
- }
- }
- lView[
- injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- ] = parentLoc;
- return injectorIndex;
-}
-function insertBloom(arr, footer) {
- arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);
-}
-function getInjectorIndex(tNode, lView) {
- if (tNode.injectorIndex === -1 || // If the injector index is the same as its parent's injector index, then the index has been
- // copied down from the parent node. No injector has been created yet on this node.
- tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex || // After the first template pass, the injector index might exist but the parent values
- // might not have been calculated yet for this instance
- lView[
- tNode.injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- ] === null) {
- return -1;
- } else {
- ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);
- return tNode.injectorIndex;
- }
-}
-function getParentInjectorLocation(tNode, lView) {
- if (tNode.parent && tNode.parent.injectorIndex !== -1) {
- return tNode.parent.injectorIndex;
- }
- let declarationViewOffset = 0;
- let parentTNode = null;
- let lViewCursor = lView;
- while (lViewCursor !== null) {
- parentTNode = getTNodeFromLView(lViewCursor);
- if (parentTNode === null) {
- return NO_PARENT_INJECTOR;
- }
- ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);
- declarationViewOffset++;
- lViewCursor = lViewCursor[DECLARATION_VIEW];
- if (parentTNode.injectorIndex !== -1) {
- return parentTNode.injectorIndex | declarationViewOffset << 16;
- }
- }
- return NO_PARENT_INJECTOR;
-}
-function diPublicInInjector(injectorIndex, tView, token) {
- bloomAdd(injectorIndex, tView, token);
-}
-function injectAttributeImpl(tNode, attrNameToInject) {
- ngDevMode && assertTNodeType(
- tNode,
- 12 | 3
- /* TNodeType.AnyRNode */
- );
- ngDevMode && assertDefined(tNode, "expecting tNode");
- if (attrNameToInject === "class") {
- return tNode.classes;
- }
- if (attrNameToInject === "style") {
- return tNode.styles;
- }
- const attrs = tNode.attrs;
- if (attrs) {
- const attrsLength = attrs.length;
- let i = 0;
- while (i < attrsLength) {
- const value = attrs[i];
- if (isNameOnlyAttributeMarker(value))
- break;
- if (value === 0) {
- i = i + 2;
- } else if (typeof value === "number") {
- i++;
- while (i < attrsLength && typeof attrs[i] === "string") {
- i++;
- }
- } else if (value === attrNameToInject) {
- return attrs[i + 1];
- } else {
- i = i + 2;
- }
- }
- }
- return null;
-}
-function notFoundValueOrThrow(notFoundValue, token, flags) {
- if (flags & InjectFlags.Optional || notFoundValue !== void 0) {
- return notFoundValue;
- } else {
- throwProviderNotFoundError(token, "NodeInjector");
- }
-}
-function lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {
- if (flags & InjectFlags.Optional && notFoundValue === void 0) {
- notFoundValue = null;
- }
- if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {
- const moduleInjector = lView[INJECTOR$1];
- const previousInjectImplementation = setInjectImplementation(void 0);
- try {
- if (moduleInjector) {
- return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);
- } else {
- return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);
- }
- } finally {
- setInjectImplementation(previousInjectImplementation);
- }
- }
- return notFoundValueOrThrow(notFoundValue, token, flags);
-}
-function getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {
- if (tNode !== null) {
- if (lView[FLAGS] & 2048 && // The token must be present on the current node injector when the `Self`
- // flag is set, so the lookup on embedded view injector(s) can be skipped.
- !(flags & InjectFlags.Self)) {
- const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND);
- if (embeddedInjectorValue !== NOT_FOUND) {
- return embeddedInjectorValue;
- }
- }
- const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND);
- if (value !== NOT_FOUND) {
- return value;
- }
- }
- return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);
-}
-function lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) {
- const bloomHash = bloomHashBitOrFactory(token);
- if (typeof bloomHash === "function") {
- if (!enterDI(lView, tNode, flags)) {
- return flags & InjectFlags.Host ? notFoundValueOrThrow(notFoundValue, token, flags) : lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);
- }
- try {
- let value;
- if (ngDevMode) {
- runInInjectorProfilerContext(new NodeInjector(getCurrentTNode(), getLView()), token, () => {
- value = bloomHash(flags);
- if (value != null) {
- emitInstanceCreatedByInjectorEvent(value);
- }
- });
- } else {
- value = bloomHash(flags);
- }
- if (value == null && !(flags & InjectFlags.Optional)) {
- throwProviderNotFoundError(token);
- } else {
- return value;
- }
- } finally {
- leaveDI();
- }
- } else if (typeof bloomHash === "number") {
- let previousTView = null;
- let injectorIndex = getInjectorIndex(tNode, lView);
- let parentLocation = NO_PARENT_INJECTOR;
- let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;
- if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {
- parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) : lView[
- injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- ];
- if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {
- injectorIndex = -1;
- } else {
- previousTView = lView[TVIEW];
- injectorIndex = getParentInjectorIndex(parentLocation);
- lView = getParentInjectorView(parentLocation, lView);
- }
- }
- while (injectorIndex !== -1) {
- ngDevMode && assertNodeInjector(lView, injectorIndex);
- const tView = lView[TVIEW];
- ngDevMode && assertTNodeForLView(tView.data[
- injectorIndex + 8
- /* NodeInjectorOffset.TNODE */
- ], lView);
- if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {
- const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);
- if (instance !== NOT_FOUND) {
- return instance;
- }
- }
- parentLocation = lView[
- injectorIndex + 8
- /* NodeInjectorOffset.PARENT */
- ];
- if (parentLocation !== NO_PARENT_INJECTOR && shouldSearchParent(flags, lView[TVIEW].data[
- injectorIndex + 8
- /* NodeInjectorOffset.TNODE */
- ] === hostTElementNode) && bloomHasToken(bloomHash, injectorIndex, lView)) {
- previousTView = tView;
- injectorIndex = getParentInjectorIndex(parentLocation);
- lView = getParentInjectorView(parentLocation, lView);
- } else {
- injectorIndex = -1;
- }
- }
- }
- return notFoundValue;
-}
-function searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {
- const currentTView = lView[TVIEW];
- const tNode = currentTView.data[
- injectorIndex + 8
- /* NodeInjectorOffset.TNODE */
- ];
- const canAccessViewProviders = previousTView == null ? (
- // 1) This is the first invocation `previousTView == null` which means that we are at the
- // `TNode` of where injector is starting to look. In such a case the only time we are allowed
- // to look into the ViewProviders is if:
- // - we are on a component
- // - AND the injector set `includeViewProviders` to true (implying that the token can see
- // ViewProviders because it is the Component or a Service which itself was declared in
- // ViewProviders)
- isComponentHost(tNode) && includeViewProviders
- ) : (
- // 2) `previousTView != null` which means that we are now walking across the parent nodes.
- // In such a case we are only allowed to look into the ViewProviders if:
- // - We just crossed from child View to Parent View `previousTView != currentTView`
- // - AND the parent TNode is an Element.
- // This means that we just came from the Component's View and therefore are allowed to see
- // into the ViewProviders.
- previousTView != currentTView && (tNode.type & 3) !== 0
- );
- const isHostSpecialCase = flags & InjectFlags.Host && hostTElementNode === tNode;
- const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);
- if (injectableIdx !== null) {
- return getNodeInjectable(lView, currentTView, injectableIdx, tNode);
- } else {
- return NOT_FOUND;
- }
-}
-function locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {
- const nodeProviderIndexes = tNode.providerIndexes;
- const tInjectables = tView.data;
- const injectablesStart = nodeProviderIndexes & 1048575;
- const directivesStart = tNode.directiveStart;
- const directiveEnd = tNode.directiveEnd;
- const cptViewProvidersCount = nodeProviderIndexes >> 20;
- const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;
- const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;
- for (let i = startingIndex; i < endIndex; i++) {
- const providerTokenOrDef = tInjectables[i];
- if (i < directivesStart && token === providerTokenOrDef || i >= directivesStart && providerTokenOrDef.type === token) {
- return i;
- }
- }
- if (isHostSpecialCase) {
- const dirDef = tInjectables[directivesStart];
- if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {
- return directivesStart;
- }
- }
- return null;
-}
-function getNodeInjectable(lView, tView, index, tNode) {
- let value = lView[index];
- const tData = tView.data;
- if (isFactory(value)) {
- const factory = value;
- if (factory.resolving) {
- throwCyclicDependencyError(stringifyForError(tData[index]));
- }
- const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);
- factory.resolving = true;
- let prevInjectContext;
- if (ngDevMode) {
- const token = tData[index].type || tData[index];
- const injector = new NodeInjector(tNode, lView);
- prevInjectContext = setInjectorProfilerContext({ injector, token });
- }
- const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;
- const success = enterDI(lView, tNode, InjectFlags.Default);
- ngDevMode && assertEqual(success, true, "Because flags do not contain `SkipSelf' we expect this to always succeed.");
- try {
- value = lView[index] = factory.factory(void 0, tData, lView, tNode);
- ngDevMode && emitInstanceCreatedByInjectorEvent(value);
- if (tView.firstCreatePass && index >= tNode.directiveStart) {
- ngDevMode && assertDirectiveDef(tData[index]);
- registerPreOrderHooks(index, tData[index], tView);
- }
- } finally {
- ngDevMode && setInjectorProfilerContext(prevInjectContext);
- previousInjectImplementation !== null && setInjectImplementation(previousInjectImplementation);
- setIncludeViewProviders(previousIncludeViewProviders);
- factory.resolving = false;
- leaveDI();
- }
- }
- return value;
-}
-function bloomHashBitOrFactory(token) {
- ngDevMode && assertDefined(token, "token must be defined");
- if (typeof token === "string") {
- return token.charCodeAt(0) || 0;
- }
- const tokenId = (
- // First check with `hasOwnProperty` so we don't get an inherited ID.
- token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : void 0
- );
- if (typeof tokenId === "number") {
- if (tokenId >= 0) {
- return tokenId & BLOOM_MASK;
- } else {
- ngDevMode && assertEqual(tokenId, -1, "Expecting to get Special Injector Id");
- return createNodeInjector;
- }
- } else {
- return tokenId;
- }
-}
-function bloomHasToken(bloomHash, injectorIndex, injectorView) {
- const mask = 1 << bloomHash;
- const value = injectorView[injectorIndex + (bloomHash >> BLOOM_BUCKET_BITS)];
- return !!(value & mask);
-}
-function shouldSearchParent(flags, isFirstHostTNode) {
- return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);
-}
-function getNodeInjectorLView(nodeInjector) {
- return nodeInjector._lView;
-}
-function getNodeInjectorTNode(nodeInjector) {
- return nodeInjector._tNode;
-}
-var NodeInjector = class {
- constructor(_tNode, _lView) {
- this._tNode = _tNode;
- this._lView = _lView;
- }
- get(token, notFoundValue, flags) {
- return getOrCreateInjectable(this._tNode, this._lView, token, convertToBitFlags(flags), notFoundValue);
- }
-};
-function createNodeInjector() {
- return new NodeInjector(getCurrentTNode(), getLView());
-}
-function ɵɵgetInheritedFactory(type) {
- return noSideEffects(() => {
- const ownConstructor = type.prototype.constructor;
- const ownFactory = ownConstructor[NG_FACTORY_DEF] || getFactoryOf(ownConstructor);
- const objectPrototype = Object.prototype;
- let parent = Object.getPrototypeOf(type.prototype).constructor;
- while (parent && parent !== objectPrototype) {
- const factory = parent[NG_FACTORY_DEF] || getFactoryOf(parent);
- if (factory && factory !== ownFactory) {
- return factory;
- }
- parent = Object.getPrototypeOf(parent);
- }
- return (t) => new t();
- });
-}
-function getFactoryOf(type) {
- if (isForwardRef(type)) {
- return () => {
- const factory = getFactoryOf(resolveForwardRef(type));
- return factory && factory();
- };
- }
- return getFactoryDef(type);
-}
-function lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) {
- let currentTNode = tNode;
- let currentLView = lView;
- while (currentTNode !== null && currentLView !== null && currentLView[FLAGS] & 2048 && !(currentLView[FLAGS] & 512)) {
- ngDevMode && assertTNodeForLView(currentTNode, currentLView);
- const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND);
- if (nodeInjectorValue !== NOT_FOUND) {
- return nodeInjectorValue;
- }
- let parentTNode = currentTNode.parent;
- if (!parentTNode) {
- const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];
- if (embeddedViewInjector) {
- const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags);
- if (embeddedViewInjectorValue !== NOT_FOUND) {
- return embeddedViewInjectorValue;
- }
- }
- parentTNode = getTNodeFromLView(currentLView);
- currentLView = currentLView[DECLARATION_VIEW];
- }
- currentTNode = parentTNode;
- }
- return notFoundValue;
-}
-function getTNodeFromLView(lView) {
- const tView = lView[TVIEW];
- const tViewType = tView.type;
- if (tViewType === 2) {
- ngDevMode && assertDefined(tView.declTNode, "Embedded TNodes should have declaration parents.");
- return tView.declTNode;
- } else if (tViewType === 1) {
- return lView[T_HOST];
- }
- return null;
-}
-function ɵɵinjectAttribute(attrNameToInject) {
- return injectAttributeImpl(getCurrentTNode(), attrNameToInject);
-}
-var ANNOTATIONS = "__annotations__";
-var PARAMETERS = "__parameters__";
-var PROP_METADATA = "__prop__metadata__";
-function makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {
- return noSideEffects(() => {
- const metaCtor = makeMetadataCtor(props);
- function DecoratorFactory(...args) {
- if (this instanceof DecoratorFactory) {
- metaCtor.call(this, ...args);
- return this;
- }
- const annotationInstance = new DecoratorFactory(...args);
- return function TypeDecorator(cls) {
- if (typeFn)
- typeFn(cls, ...args);
- const annotations = cls.hasOwnProperty(ANNOTATIONS) ? cls[ANNOTATIONS] : Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];
- annotations.push(annotationInstance);
- if (additionalProcessing)
- additionalProcessing(cls);
- return cls;
- };
- }
- if (parentClass) {
- DecoratorFactory.prototype = Object.create(parentClass.prototype);
- }
- DecoratorFactory.prototype.ngMetadataName = name;
- DecoratorFactory.annotationCls = DecoratorFactory;
- return DecoratorFactory;
- });
-}
-function makeMetadataCtor(props) {
- return function ctor(...args) {
- if (props) {
- const values = props(...args);
- for (const propName in values) {
- this[propName] = values[propName];
- }
- }
- };
-}
-function makeParamDecorator(name, props, parentClass) {
- return noSideEffects(() => {
- const metaCtor = makeMetadataCtor(props);
- function ParamDecoratorFactory(...args) {
- if (this instanceof ParamDecoratorFactory) {
- metaCtor.apply(this, args);
- return this;
- }
- const annotationInstance = new ParamDecoratorFactory(...args);
- ParamDecorator.annotation = annotationInstance;
- return ParamDecorator;
- function ParamDecorator(cls, unusedKey, index) {
- const parameters = cls.hasOwnProperty(PARAMETERS) ? cls[PARAMETERS] : Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];
- while (parameters.length <= index) {
- parameters.push(null);
- }
- (parameters[index] = parameters[index] || []).push(annotationInstance);
- return cls;
- }
- }
- if (parentClass) {
- ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);
- }
- ParamDecoratorFactory.prototype.ngMetadataName = name;
- ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;
- return ParamDecoratorFactory;
- });
-}
-function makePropDecorator(name, props, parentClass, additionalProcessing) {
- return noSideEffects(() => {
- const metaCtor = makeMetadataCtor(props);
- function PropDecoratorFactory(...args) {
- if (this instanceof PropDecoratorFactory) {
- metaCtor.apply(this, args);
- return this;
- }
- const decoratorInstance = new PropDecoratorFactory(...args);
- function PropDecorator(target, name2) {
- if (target === void 0) {
- throw new Error("Standard Angular field decorators are not supported in JIT mode.");
- }
- const constructor = target.constructor;
- const meta = constructor.hasOwnProperty(PROP_METADATA) ? constructor[PROP_METADATA] : Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];
- meta[name2] = meta.hasOwnProperty(name2) && meta[name2] || [];
- meta[name2].unshift(decoratorInstance);
- if (additionalProcessing)
- additionalProcessing(target, name2, ...args);
- }
- return PropDecorator;
- }
- if (parentClass) {
- PropDecoratorFactory.prototype = Object.create(parentClass.prototype);
- }
- PropDecoratorFactory.prototype.ngMetadataName = name;
- PropDecoratorFactory.annotationCls = PropDecoratorFactory;
- return PropDecoratorFactory;
- });
-}
-var Attribute = makeParamDecorator("Attribute", (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));
-var emitDistinctChangesOnlyDefaultValue = true;
-var Query = class {
-};
-var ContentChildren = makePropDecorator("ContentChildren", (selector, data = {}) => __spreadValues({
- selector,
- first: false,
- isViewQuery: false,
- descendants: false,
- emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue
-}, data), Query);
-var ContentChild = makePropDecorator("ContentChild", (selector, data = {}) => __spreadValues({ selector, first: true, isViewQuery: false, descendants: true }, data), Query);
-var ViewChildren = makePropDecorator("ViewChildren", (selector, data = {}) => __spreadValues({
- selector,
- first: false,
- isViewQuery: true,
- descendants: true,
- emitDistinctChangesOnly: emitDistinctChangesOnlyDefaultValue
-}, data), Query);
-var ViewChild = makePropDecorator("ViewChild", (selector, data) => __spreadValues({ selector, first: true, isViewQuery: true, descendants: true }, data), Query);
-var FactoryTarget;
-(function(FactoryTarget2) {
- FactoryTarget2[FactoryTarget2["Directive"] = 0] = "Directive";
- FactoryTarget2[FactoryTarget2["Component"] = 1] = "Component";
- FactoryTarget2[FactoryTarget2["Injectable"] = 2] = "Injectable";
- FactoryTarget2[FactoryTarget2["Pipe"] = 3] = "Pipe";
- FactoryTarget2[FactoryTarget2["NgModule"] = 4] = "NgModule";
-})(FactoryTarget || (FactoryTarget = {}));
-var R3TemplateDependencyKind;
-(function(R3TemplateDependencyKind2) {
- R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
- R3TemplateDependencyKind2[R3TemplateDependencyKind2["Pipe"] = 1] = "Pipe";
- R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
-})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
-var ViewEncapsulation;
-(function(ViewEncapsulation2) {
- ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
- ViewEncapsulation2[ViewEncapsulation2["None"] = 2] = "None";
- ViewEncapsulation2[ViewEncapsulation2["ShadowDom"] = 3] = "ShadowDom";
-})(ViewEncapsulation || (ViewEncapsulation = {}));
-function getCompilerFacade(request) {
- const globalNg = _global["ng"];
- if (globalNg && globalNg.ɵcompilerFacade) {
- return globalNg.ɵcompilerFacade;
- }
- if (typeof ngDevMode === "undefined" || ngDevMode) {
- console.error(`JIT compilation failed for ${request.kind}`, request.type);
- let message = `The ${request.kind} '${request.type.name}' needs to be compiled using the JIT compiler, but '@angular/compiler' is not available.
-
-`;
- if (request.usage === 1) {
- message += `The ${request.kind} is part of a library that has been partially compiled.
-`;
- message += `However, the Angular Linker has not processed the library such that JIT compilation is used as fallback.
-`;
- message += "\n";
- message += `Ideally, the library is processed using the Angular Linker to become fully AOT compiled.
-`;
- } else {
- message += `JIT compilation is discouraged for production use-cases! Consider using AOT mode instead.
-`;
- }
- message += `Alternatively, the JIT compiler should be loaded by bootstrapping using '@angular/platform-browser-dynamic' or '@angular/platform-server',
-`;
- message += `or manually provide the compiler with 'import "@angular/compiler";' before bootstrapping.`;
- throw new Error(message);
- } else {
- throw new Error("JIT compiler unavailable");
- }
-}
-var Type = Function;
-function isType(v) {
- return typeof v === "function";
-}
-function arrayEquals(a, b, identityAccessor) {
- if (a.length !== b.length)
- return false;
- for (let i = 0; i < a.length; i++) {
- let valueA = a[i];
- let valueB = b[i];
- if (identityAccessor) {
- valueA = identityAccessor(valueA);
- valueB = identityAccessor(valueB);
- }
- if (valueB !== valueA) {
- return false;
- }
- }
- return true;
-}
-function flatten(list) {
- return list.flat(Number.POSITIVE_INFINITY);
-}
-function deepForEach(input2, fn) {
- input2.forEach((value) => Array.isArray(value) ? deepForEach(value, fn) : fn(value));
-}
-function addToArray(arr, index, value) {
- if (index >= arr.length) {
- arr.push(value);
- } else {
- arr.splice(index, 0, value);
- }
-}
-function removeFromArray(arr, index) {
- if (index >= arr.length - 1) {
- return arr.pop();
- } else {
- return arr.splice(index, 1)[0];
- }
-}
-function newArray(size, value) {
- const list = [];
- for (let i = 0; i < size; i++) {
- list.push(value);
- }
- return list;
-}
-function arraySplice(array, index, count2) {
- const length = array.length - count2;
- while (index < length) {
- array[index] = array[index + count2];
- index++;
- }
- while (count2--) {
- array.pop();
- }
-}
-function arrayInsert2(array, index, value1, value2) {
- ngDevMode && assertLessThanOrEqual(index, array.length, "Can't insert past array end.");
- let end = array.length;
- if (end == index) {
- array.push(value1, value2);
- } else if (end === 1) {
- array.push(value2, array[0]);
- array[0] = value1;
- } else {
- end--;
- array.push(array[end - 1], array[end]);
- while (end > index) {
- const previousEnd = end - 2;
- array[end] = array[previousEnd];
- end--;
- }
- array[index] = value1;
- array[index + 1] = value2;
- }
-}
-function keyValueArraySet(keyValueArray, key, value) {
- let index = keyValueArrayIndexOf(keyValueArray, key);
- if (index >= 0) {
- keyValueArray[index | 1] = value;
- } else {
- index = ~index;
- arrayInsert2(keyValueArray, index, key, value);
- }
- return index;
-}
-function keyValueArrayGet(keyValueArray, key) {
- const index = keyValueArrayIndexOf(keyValueArray, key);
- if (index >= 0) {
- return keyValueArray[index | 1];
- }
- return void 0;
-}
-function keyValueArrayIndexOf(keyValueArray, key) {
- return _arrayIndexOfSorted(keyValueArray, key, 1);
-}
-function _arrayIndexOfSorted(array, value, shift) {
- ngDevMode && assertEqual(Array.isArray(array), true, "Expecting an array");
- let start = 0;
- let end = array.length >> shift;
- while (end !== start) {
- const middle = start + (end - start >> 1);
- const current = array[middle << shift];
- if (value === current) {
- return middle << shift;
- } else if (current > value) {
- end = middle;
- } else {
- start = middle + 1;
- }
- }
- return ~(end << shift);
-}
-var ES5_DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*(arguments|(?:[^()]+\(\[\],)?[^()]+\(arguments\).*)\)/;
-var ES2015_INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/;
-var ES2015_INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/;
-var ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{[^}]*super\(\.\.\.arguments\)/;
-function isDelegateCtor(typeStr) {
- return ES5_DELEGATE_CTOR.test(typeStr) || ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) || ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr);
-}
-var ReflectionCapabilities = class {
- constructor(reflect) {
- this._reflect = reflect || _global["Reflect"];
- }
- factory(t) {
- return (...args) => new t(...args);
- }
- /** @internal */
- _zipTypesAndAnnotations(paramTypes, paramAnnotations) {
- let result;
- if (typeof paramTypes === "undefined") {
- result = newArray(paramAnnotations.length);
- } else {
- result = newArray(paramTypes.length);
- }
- for (let i = 0; i < result.length; i++) {
- if (typeof paramTypes === "undefined") {
- result[i] = [];
- } else if (paramTypes[i] && paramTypes[i] != Object) {
- result[i] = [paramTypes[i]];
- } else {
- result[i] = [];
- }
- if (paramAnnotations && paramAnnotations[i] != null) {
- result[i] = result[i].concat(paramAnnotations[i]);
- }
- }
- return result;
- }
- _ownParameters(type, parentCtor) {
- const typeStr = type.toString();
- if (isDelegateCtor(typeStr)) {
- return null;
- }
- if (type.parameters && type.parameters !== parentCtor.parameters) {
- return type.parameters;
- }
- const tsickleCtorParams = type.ctorParameters;
- if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {
- const ctorParameters = typeof tsickleCtorParams === "function" ? tsickleCtorParams() : tsickleCtorParams;
- const paramTypes2 = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);
- const paramAnnotations2 = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));
- return this._zipTypesAndAnnotations(paramTypes2, paramAnnotations2);
- }
- const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];
- const paramTypes = this._reflect && this._reflect.getOwnMetadata && this._reflect.getOwnMetadata("design:paramtypes", type);
- if (paramTypes || paramAnnotations) {
- return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);
- }
- return newArray(type.length);
- }
- parameters(type) {
- if (!isType(type)) {
- return [];
- }
- const parentCtor = getParentCtor(type);
- let parameters = this._ownParameters(type, parentCtor);
- if (!parameters && parentCtor !== Object) {
- parameters = this.parameters(parentCtor);
- }
- return parameters || [];
- }
- _ownAnnotations(typeOrFunc, parentCtor) {
- if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {
- let annotations = typeOrFunc.annotations;
- if (typeof annotations === "function" && annotations.annotations) {
- annotations = annotations.annotations;
- }
- return annotations;
- }
- if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {
- return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);
- }
- if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {
- return typeOrFunc[ANNOTATIONS];
- }
- return null;
- }
- annotations(typeOrFunc) {
- if (!isType(typeOrFunc)) {
- return [];
- }
- const parentCtor = getParentCtor(typeOrFunc);
- const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];
- const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];
- return parentAnnotations.concat(ownAnnotations);
- }
- _ownPropMetadata(typeOrFunc, parentCtor) {
- if (typeOrFunc.propMetadata && typeOrFunc.propMetadata !== parentCtor.propMetadata) {
- let propMetadata = typeOrFunc.propMetadata;
- if (typeof propMetadata === "function" && propMetadata.propMetadata) {
- propMetadata = propMetadata.propMetadata;
- }
- return propMetadata;
- }
- if (typeOrFunc.propDecorators && typeOrFunc.propDecorators !== parentCtor.propDecorators) {
- const propDecorators = typeOrFunc.propDecorators;
- const propMetadata = {};
- Object.keys(propDecorators).forEach((prop) => {
- propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);
- });
- return propMetadata;
- }
- if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {
- return typeOrFunc[PROP_METADATA];
- }
- return null;
- }
- propMetadata(typeOrFunc) {
- if (!isType(typeOrFunc)) {
- return {};
- }
- const parentCtor = getParentCtor(typeOrFunc);
- const propMetadata = {};
- if (parentCtor !== Object) {
- const parentPropMetadata = this.propMetadata(parentCtor);
- Object.keys(parentPropMetadata).forEach((propName) => {
- propMetadata[propName] = parentPropMetadata[propName];
- });
- }
- const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);
- if (ownPropMetadata) {
- Object.keys(ownPropMetadata).forEach((propName) => {
- const decorators = [];
- if (propMetadata.hasOwnProperty(propName)) {
- decorators.push(...propMetadata[propName]);
- }
- decorators.push(...ownPropMetadata[propName]);
- propMetadata[propName] = decorators;
- });
- }
- return propMetadata;
- }
- ownPropMetadata(typeOrFunc) {
- if (!isType(typeOrFunc)) {
- return {};
- }
- return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};
- }
- hasLifecycleHook(type, lcProperty) {
- return type instanceof Type && lcProperty in type.prototype;
- }
-};
-function convertTsickleDecoratorIntoMetadata(decoratorInvocations) {
- if (!decoratorInvocations) {
- return [];
- }
- return decoratorInvocations.map((decoratorInvocation) => {
- const decoratorType = decoratorInvocation.type;
- const annotationCls = decoratorType.annotationCls;
- const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];
- return new annotationCls(...annotationArgs);
- });
-}
-function getParentCtor(ctor) {
- const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;
- const parentCtor = parentProto ? parentProto.constructor : null;
- return parentCtor || Object;
-}
-var Inject = attachInjectFlag(
- // Disable tslint because `DecoratorFlags` is a const enum which gets inlined.
- // tslint:disable-next-line: no-toplevel-property-access
- makeParamDecorator("Inject", (token) => ({ token })),
- -1
- /* DecoratorFlags.Inject */
-);
-var Optional = (
- // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
- // tslint:disable-next-line: no-toplevel-property-access
- attachInjectFlag(
- makeParamDecorator("Optional"),
- 8
- /* InternalInjectFlags.Optional */
- )
-);
-var Self = (
- // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
- // tslint:disable-next-line: no-toplevel-property-access
- attachInjectFlag(
- makeParamDecorator("Self"),
- 2
- /* InternalInjectFlags.Self */
- )
-);
-var SkipSelf = (
- // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
- // tslint:disable-next-line: no-toplevel-property-access
- attachInjectFlag(
- makeParamDecorator("SkipSelf"),
- 4
- /* InternalInjectFlags.SkipSelf */
- )
-);
-var Host = (
- // Disable tslint because `InternalInjectFlags` is a const enum which gets inlined.
- // tslint:disable-next-line: no-toplevel-property-access
- attachInjectFlag(
- makeParamDecorator("Host"),
- 1
- /* InternalInjectFlags.Host */
- )
-);
-var _reflect = null;
-function getReflect() {
- return _reflect = _reflect || new ReflectionCapabilities();
-}
-function reflectDependencies(type) {
- return convertDependencies(getReflect().parameters(type));
-}
-function convertDependencies(deps) {
- return deps.map((dep) => reflectDependency(dep));
-}
-function reflectDependency(dep) {
- const meta = {
- token: null,
- attribute: null,
- host: false,
- optional: false,
- self: false,
- skipSelf: false
- };
- if (Array.isArray(dep) && dep.length > 0) {
- for (let j = 0; j < dep.length; j++) {
- const param = dep[j];
- if (param === void 0) {
- continue;
- }
- const proto = Object.getPrototypeOf(param);
- if (param instanceof Optional || proto.ngMetadataName === "Optional") {
- meta.optional = true;
- } else if (param instanceof SkipSelf || proto.ngMetadataName === "SkipSelf") {
- meta.skipSelf = true;
- } else if (param instanceof Self || proto.ngMetadataName === "Self") {
- meta.self = true;
- } else if (param instanceof Host || proto.ngMetadataName === "Host") {
- meta.host = true;
- } else if (param instanceof Inject) {
- meta.token = param.token;
- } else if (param instanceof Attribute) {
- if (param.attributeName === void 0) {
- throw new RuntimeError(204, ngDevMode && `Attribute name must be defined.`);
- }
- meta.attribute = param.attributeName;
- } else {
- meta.token = param;
- }
- }
- } else if (dep === void 0 || Array.isArray(dep) && dep.length === 0) {
- meta.token = null;
- } else {
- meta.token = dep;
- }
- return meta;
-}
-function resolveComponentResources(resourceResolver) {
- const componentResolved = [];
- const urlMap = /* @__PURE__ */ new Map();
- function cachedResourceResolve(url) {
- let promise = urlMap.get(url);
- if (!promise) {
- const resp = resourceResolver(url);
- urlMap.set(url, promise = resp.then(unwrapResponse));
- }
- return promise;
- }
- componentResourceResolutionQueue.forEach((component, type) => {
- const promises = [];
- if (component.templateUrl) {
- promises.push(cachedResourceResolve(component.templateUrl).then((template) => {
- component.template = template;
- }));
- }
- const styles = typeof component.styles === "string" ? [component.styles] : component.styles || [];
- component.styles = styles;
- if (component.styleUrl && component.styleUrls?.length) {
- throw new Error("@Component cannot define both `styleUrl` and `styleUrls`. Use `styleUrl` if the component has one stylesheet, or `styleUrls` if it has multiple");
- } else if (component.styleUrls?.length) {
- const styleOffset = component.styles.length;
- const styleUrls = component.styleUrls;
- component.styleUrls.forEach((styleUrl, index) => {
- styles.push("");
- promises.push(cachedResourceResolve(styleUrl).then((style) => {
- styles[styleOffset + index] = style;
- styleUrls.splice(styleUrls.indexOf(styleUrl), 1);
- if (styleUrls.length == 0) {
- component.styleUrls = void 0;
- }
- }));
- });
- } else if (component.styleUrl) {
- promises.push(cachedResourceResolve(component.styleUrl).then((style) => {
- styles.push(style);
- component.styleUrl = void 0;
- }));
- }
- const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type));
- componentResolved.push(fullyResolved);
- });
- clearResolutionOfComponentResourcesQueue();
- return Promise.all(componentResolved).then(() => void 0);
-}
-var componentResourceResolutionQueue = /* @__PURE__ */ new Map();
-var componentDefPendingResolution = /* @__PURE__ */ new Set();
-function maybeQueueResolutionOfComponentResources(type, metadata) {
- if (componentNeedsResolution(metadata)) {
- componentResourceResolutionQueue.set(type, metadata);
- componentDefPendingResolution.add(type);
- }
-}
-function isComponentDefPendingResolution(type) {
- return componentDefPendingResolution.has(type);
-}
-function componentNeedsResolution(component) {
- return !!(component.templateUrl && !component.hasOwnProperty("template") || component.styleUrls && component.styleUrls.length || component.styleUrl);
-}
-function clearResolutionOfComponentResourcesQueue() {
- const old = componentResourceResolutionQueue;
- componentResourceResolutionQueue = /* @__PURE__ */ new Map();
- return old;
-}
-function restoreComponentResolutionQueue(queue2) {
- componentDefPendingResolution.clear();
- queue2.forEach((_, type) => componentDefPendingResolution.add(type));
- componentResourceResolutionQueue = queue2;
-}
-function isComponentResourceResolutionQueueEmpty() {
- return componentResourceResolutionQueue.size === 0;
-}
-function unwrapResponse(response) {
- return typeof response == "string" ? response : response.text();
-}
-function componentDefResolved(type) {
- componentDefPendingResolution.delete(type);
-}
-var ENVIRONMENT_INITIALIZER = new InjectionToken(ngDevMode ? "ENVIRONMENT_INITIALIZER" : "");
-var INJECTOR = new InjectionToken(
- ngDevMode ? "INJECTOR" : "",
- // Disable tslint because this is const enum which gets inlined not top level prop access.
- // tslint:disable-next-line: no-toplevel-property-access
- -1
- /* InjectorMarkers.Injector */
-);
-var INJECTOR_DEF_TYPES = new InjectionToken(ngDevMode ? "INJECTOR_DEF_TYPES" : "");
-var NullInjector = class {
- get(token, notFoundValue = THROW_IF_NOT_FOUND) {
- if (notFoundValue === THROW_IF_NOT_FOUND) {
- const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);
- error.name = "NullInjectorError";
- throw error;
- }
- return notFoundValue;
- }
-};
-function makeEnvironmentProviders(providers) {
- return {
- ɵproviders: providers
- };
-}
-function importProvidersFrom(...sources) {
- return {
- ɵproviders: internalImportProvidersFrom(true, sources),
- ɵfromNgModule: true
- };
-}
-function internalImportProvidersFrom(checkForStandaloneCmp, ...sources) {
- const providersOut = [];
- const dedup = /* @__PURE__ */ new Set();
- let injectorTypesWithProviders;
- const collectProviders = (provider) => {
- providersOut.push(provider);
- };
- deepForEach(sources, (source) => {
- if ((typeof ngDevMode === "undefined" || ngDevMode) && checkForStandaloneCmp) {
- const cmpDef = getComponentDef(source);
- if (cmpDef?.standalone) {
- throw new RuntimeError(800, `Importing providers supports NgModule or ModuleWithProviders but got a standalone component "${stringifyForError(source)}"`);
- }
- }
- const internalSource = source;
- if (walkProviderTree(internalSource, collectProviders, [], dedup)) {
- injectorTypesWithProviders ||= [];
- injectorTypesWithProviders.push(internalSource);
- }
- });
- if (injectorTypesWithProviders !== void 0) {
- processInjectorTypesWithProviders(injectorTypesWithProviders, collectProviders);
- }
- return providersOut;
-}
-function processInjectorTypesWithProviders(typesWithProviders, visitor) {
- for (let i = 0; i < typesWithProviders.length; i++) {
- const { ngModule, providers } = typesWithProviders[i];
- deepForEachProvider(providers, (provider) => {
- ngDevMode && validateProvider(provider, providers || EMPTY_ARRAY, ngModule);
- visitor(provider, ngModule);
- });
- }
-}
-function walkProviderTree(container, visitor, parents, dedup) {
- container = resolveForwardRef(container);
- if (!container)
- return false;
- let defType = null;
- let injDef = getInjectorDef(container);
- const cmpDef = !injDef && getComponentDef(container);
- if (!injDef && !cmpDef) {
- const ngModule = container.ngModule;
- injDef = getInjectorDef(ngModule);
- if (injDef) {
- defType = ngModule;
- } else {
- return false;
- }
- } else if (cmpDef && !cmpDef.standalone) {
- return false;
- } else {
- defType = container;
- }
- if (ngDevMode && parents.indexOf(defType) !== -1) {
- const defName = stringify(defType);
- const path = parents.map(stringify);
- throwCyclicDependencyError(defName, path);
- }
- const isDuplicate = dedup.has(defType);
- if (cmpDef) {
- if (isDuplicate) {
- return false;
- }
- dedup.add(defType);
- if (cmpDef.dependencies) {
- const deps = typeof cmpDef.dependencies === "function" ? cmpDef.dependencies() : cmpDef.dependencies;
- for (const dep of deps) {
- walkProviderTree(dep, visitor, parents, dedup);
- }
- }
- } else if (injDef) {
- if (injDef.imports != null && !isDuplicate) {
- ngDevMode && parents.push(defType);
- dedup.add(defType);
- let importTypesWithProviders;
- try {
- deepForEach(injDef.imports, (imported) => {
- if (walkProviderTree(imported, visitor, parents, dedup)) {
- importTypesWithProviders ||= [];
- importTypesWithProviders.push(imported);
- }
- });
- } finally {
- ngDevMode && parents.pop();
- }
- if (importTypesWithProviders !== void 0) {
- processInjectorTypesWithProviders(importTypesWithProviders, visitor);
- }
- }
- if (!isDuplicate) {
- const factory = getFactoryDef(defType) || (() => new defType());
- visitor({ provide: defType, useFactory: factory, deps: EMPTY_ARRAY }, defType);
- visitor({ provide: INJECTOR_DEF_TYPES, useValue: defType, multi: true }, defType);
- visitor({ provide: ENVIRONMENT_INITIALIZER, useValue: () => ɵɵinject(defType), multi: true }, defType);
- }
- const defProviders = injDef.providers;
- if (defProviders != null && !isDuplicate) {
- const injectorType = container;
- deepForEachProvider(defProviders, (provider) => {
- ngDevMode && validateProvider(provider, defProviders, injectorType);
- visitor(provider, injectorType);
- });
- }
- } else {
- return false;
- }
- return defType !== container && container.providers !== void 0;
-}
-function validateProvider(provider, providers, containerType) {
- if (isTypeProvider(provider) || isValueProvider(provider) || isFactoryProvider(provider) || isExistingProvider(provider)) {
- return;
- }
- const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide));
- if (!classRef) {
- throwInvalidProviderError(containerType, providers, provider);
- }
-}
-function deepForEachProvider(providers, fn) {
- for (let provider of providers) {
- if (isEnvironmentProviders(provider)) {
- provider = provider.ɵproviders;
- }
- if (Array.isArray(provider)) {
- deepForEachProvider(provider, fn);
- } else {
- fn(provider);
- }
- }
-}
-var USE_VALUE$1 = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });
-function isValueProvider(value) {
- return value !== null && typeof value == "object" && USE_VALUE$1 in value;
-}
-function isExistingProvider(value) {
- return !!(value && value.useExisting);
-}
-function isFactoryProvider(value) {
- return !!(value && value.useFactory);
-}
-function isTypeProvider(value) {
- return typeof value === "function";
-}
-function isClassProvider(value) {
- return !!value.useClass;
-}
-var INJECTOR_SCOPE = new InjectionToken(ngDevMode ? "Set Injector scope." : "");
-var NOT_YET = {};
-var CIRCULAR = {};
-var NULL_INJECTOR = void 0;
-function getNullInjector() {
- if (NULL_INJECTOR === void 0) {
- NULL_INJECTOR = new NullInjector();
- }
- return NULL_INJECTOR;
-}
-var EnvironmentInjector = class {
-};
-var R3Injector = class extends EnvironmentInjector {
- /**
- * Flag indicating that this injector was previously destroyed.
- */
- get destroyed() {
- return this._destroyed;
- }
- constructor(providers, parent, source, scopes) {
- super();
- this.parent = parent;
- this.source = source;
- this.scopes = scopes;
- this.records = /* @__PURE__ */ new Map();
- this._ngOnDestroyHooks = /* @__PURE__ */ new Set();
- this._onDestroyHooks = [];
- this._destroyed = false;
- forEachSingleProvider(providers, (provider) => this.processProvider(provider));
- this.records.set(INJECTOR, makeRecord(void 0, this));
- if (scopes.has("environment")) {
- this.records.set(EnvironmentInjector, makeRecord(void 0, this));
- }
- const record = this.records.get(INJECTOR_SCOPE);
- if (record != null && typeof record.value === "string") {
- this.scopes.add(record.value);
- }
- this.injectorDefTypes = new Set(this.get(INJECTOR_DEF_TYPES, EMPTY_ARRAY, InjectFlags.Self));
- }
- /**
- * Destroy the injector and release references to every instance or provider associated with it.
- *
- * Also calls the `OnDestroy` lifecycle hooks of every instance that was created for which a
- * hook was found.
- */
- destroy() {
- this.assertNotDestroyed();
- this._destroyed = true;
- try {
- for (const service of this._ngOnDestroyHooks) {
- service.ngOnDestroy();
- }
- const onDestroyHooks = this._onDestroyHooks;
- this._onDestroyHooks = [];
- for (const hook of onDestroyHooks) {
- hook();
- }
- } finally {
- this.records.clear();
- this._ngOnDestroyHooks.clear();
- this.injectorDefTypes.clear();
- }
- }
- onDestroy(callback) {
- this.assertNotDestroyed();
- this._onDestroyHooks.push(callback);
- return () => this.removeOnDestroy(callback);
- }
- runInContext(fn) {
- this.assertNotDestroyed();
- const previousInjector = setCurrentInjector(this);
- const previousInjectImplementation = setInjectImplementation(void 0);
- let prevInjectContext;
- if (ngDevMode) {
- prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });
- }
- try {
- return fn();
- } finally {
- setCurrentInjector(previousInjector);
- setInjectImplementation(previousInjectImplementation);
- ngDevMode && setInjectorProfilerContext(prevInjectContext);
- }
- }
- get(token, notFoundValue = THROW_IF_NOT_FOUND, flags = InjectFlags.Default) {
- this.assertNotDestroyed();
- if (token.hasOwnProperty(NG_ENV_ID)) {
- return token[NG_ENV_ID](this);
- }
- flags = convertToBitFlags(flags);
- let prevInjectContext;
- if (ngDevMode) {
- prevInjectContext = setInjectorProfilerContext({ injector: this, token });
- }
- const previousInjector = setCurrentInjector(this);
- const previousInjectImplementation = setInjectImplementation(void 0);
- try {
- if (!(flags & InjectFlags.SkipSelf)) {
- let record = this.records.get(token);
- if (record === void 0) {
- const def = couldBeInjectableType(token) && getInjectableDef(token);
- if (def && this.injectableDefInScope(def)) {
- if (ngDevMode) {
- runInInjectorProfilerContext(this, token, () => {
- emitProviderConfiguredEvent(token);
- });
- }
- record = makeRecord(injectableDefOrInjectorDefFactory(token), NOT_YET);
- } else {
- record = null;
- }
- this.records.set(token, record);
- }
- if (record != null) {
- return this.hydrate(token, record);
- }
- }
- const nextInjector = !(flags & InjectFlags.Self) ? this.parent : getNullInjector();
- notFoundValue = flags & InjectFlags.Optional && notFoundValue === THROW_IF_NOT_FOUND ? null : notFoundValue;
- return nextInjector.get(token, notFoundValue);
- } catch (e) {
- if (e.name === "NullInjectorError") {
- const path = e[NG_TEMP_TOKEN_PATH] = e[NG_TEMP_TOKEN_PATH] || [];
- path.unshift(stringify(token));
- if (previousInjector) {
- throw e;
- } else {
- return catchInjectorError(e, token, "R3InjectorError", this.source);
- }
- } else {
- throw e;
- }
- } finally {
- setInjectImplementation(previousInjectImplementation);
- setCurrentInjector(previousInjector);
- ngDevMode && setInjectorProfilerContext(prevInjectContext);
- }
- }
- /** @internal */
- resolveInjectorInitializers() {
- const previousInjector = setCurrentInjector(this);
- const previousInjectImplementation = setInjectImplementation(void 0);
- let prevInjectContext;
- if (ngDevMode) {
- prevInjectContext = setInjectorProfilerContext({ injector: this, token: null });
- }
- try {
- const initializers = this.get(ENVIRONMENT_INITIALIZER, EMPTY_ARRAY, InjectFlags.Self);
- if (ngDevMode && !Array.isArray(initializers)) {
- throw new RuntimeError(-209, `Unexpected type of the \`ENVIRONMENT_INITIALIZER\` token value (expected an array, but got ${typeof initializers}). Please check that the \`ENVIRONMENT_INITIALIZER\` token is configured as a \`multi: true\` provider.`);
- }
- for (const initializer of initializers) {
- initializer();
- }
- } finally {
- setCurrentInjector(previousInjector);
- setInjectImplementation(previousInjectImplementation);
- ngDevMode && setInjectorProfilerContext(prevInjectContext);
- }
- }
- toString() {
- const tokens = [];
- const records = this.records;
- for (const token of records.keys()) {
- tokens.push(stringify(token));
- }
- return `R3Injector[${tokens.join(", ")}]`;
- }
- assertNotDestroyed() {
- if (this._destroyed) {
- throw new RuntimeError(205, ngDevMode && "Injector has already been destroyed.");
- }
- }
- /**
- * Process a `SingleProvider` and add it.
- */
- processProvider(provider) {
- provider = resolveForwardRef(provider);
- let token = isTypeProvider(provider) ? provider : resolveForwardRef(provider && provider.provide);
- const record = providerToRecord(provider);
- if (ngDevMode) {
- runInInjectorProfilerContext(this, token, () => {
- if (isValueProvider(provider)) {
- emitInstanceCreatedByInjectorEvent(provider.useValue);
- }
- emitProviderConfiguredEvent(provider);
- });
- }
- if (!isTypeProvider(provider) && provider.multi === true) {
- let multiRecord = this.records.get(token);
- if (multiRecord) {
- if (ngDevMode && multiRecord.multi === void 0) {
- throwMixedMultiProviderError();
- }
- } else {
- multiRecord = makeRecord(void 0, NOT_YET, true);
- multiRecord.factory = () => injectArgs(multiRecord.multi);
- this.records.set(token, multiRecord);
- }
- token = provider;
- multiRecord.multi.push(provider);
- } else {
- if (ngDevMode) {
- const existing = this.records.get(token);
- if (existing && existing.multi !== void 0) {
- throwMixedMultiProviderError();
- }
- }
- }
- this.records.set(token, record);
- }
- hydrate(token, record) {
- if (ngDevMode && record.value === CIRCULAR) {
- throwCyclicDependencyError(stringify(token));
- } else if (record.value === NOT_YET) {
- record.value = CIRCULAR;
- if (ngDevMode) {
- runInInjectorProfilerContext(this, token, () => {
- record.value = record.factory();
- emitInstanceCreatedByInjectorEvent(record.value);
- });
- } else {
- record.value = record.factory();
- }
- }
- if (typeof record.value === "object" && record.value && hasOnDestroy(record.value)) {
- this._ngOnDestroyHooks.add(record.value);
- }
- return record.value;
- }
- injectableDefInScope(def) {
- if (!def.providedIn) {
- return false;
- }
- const providedIn = resolveForwardRef(def.providedIn);
- if (typeof providedIn === "string") {
- return providedIn === "any" || this.scopes.has(providedIn);
- } else {
- return this.injectorDefTypes.has(providedIn);
- }
- }
- removeOnDestroy(callback) {
- const destroyCBIdx = this._onDestroyHooks.indexOf(callback);
- if (destroyCBIdx !== -1) {
- this._onDestroyHooks.splice(destroyCBIdx, 1);
- }
- }
-};
-function injectableDefOrInjectorDefFactory(token) {
- const injectableDef = getInjectableDef(token);
- const factory = injectableDef !== null ? injectableDef.factory : getFactoryDef(token);
- if (factory !== null) {
- return factory;
- }
- if (token instanceof InjectionToken) {
- throw new RuntimeError(204, ngDevMode && `Token ${stringify(token)} is missing a ɵprov definition.`);
- }
- if (token instanceof Function) {
- return getUndecoratedInjectableFactory(token);
- }
- throw new RuntimeError(204, ngDevMode && "unreachable");
-}
-function getUndecoratedInjectableFactory(token) {
- const paramLength = token.length;
- if (paramLength > 0) {
- throw new RuntimeError(204, ngDevMode && `Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, "?").join(", ")}).`);
- }
- const inheritedInjectableDef = getInheritedInjectableDef(token);
- if (inheritedInjectableDef !== null) {
- return () => inheritedInjectableDef.factory(token);
- } else {
- return () => new token();
- }
-}
-function providerToRecord(provider) {
- if (isValueProvider(provider)) {
- return makeRecord(void 0, provider.useValue);
- } else {
- const factory = providerToFactory(provider);
- return makeRecord(factory, NOT_YET);
- }
-}
-function providerToFactory(provider, ngModuleType, providers) {
- let factory = void 0;
- if (ngDevMode && isEnvironmentProviders(provider)) {
- throwInvalidProviderError(void 0, providers, provider);
- }
- if (isTypeProvider(provider)) {
- const unwrappedProvider = resolveForwardRef(provider);
- return getFactoryDef(unwrappedProvider) || injectableDefOrInjectorDefFactory(unwrappedProvider);
- } else {
- if (isValueProvider(provider)) {
- factory = () => resolveForwardRef(provider.useValue);
- } else if (isFactoryProvider(provider)) {
- factory = () => provider.useFactory(...injectArgs(provider.deps || []));
- } else if (isExistingProvider(provider)) {
- factory = () => ɵɵinject(resolveForwardRef(provider.useExisting));
- } else {
- const classRef = resolveForwardRef(provider && (provider.useClass || provider.provide));
- if (ngDevMode && !classRef) {
- throwInvalidProviderError(ngModuleType, providers, provider);
- }
- if (hasDeps(provider)) {
- factory = () => new classRef(...injectArgs(provider.deps));
- } else {
- return getFactoryDef(classRef) || injectableDefOrInjectorDefFactory(classRef);
- }
- }
- }
- return factory;
-}
-function makeRecord(factory, value, multi = false) {
- return {
- factory,
- value,
- multi: multi ? [] : void 0
- };
-}
-function hasDeps(value) {
- return !!value.deps;
-}
-function hasOnDestroy(value) {
- return value !== null && typeof value === "object" && typeof value.ngOnDestroy === "function";
-}
-function couldBeInjectableType(value) {
- return typeof value === "function" || typeof value === "object" && value instanceof InjectionToken;
-}
-function forEachSingleProvider(providers, fn) {
- for (const provider of providers) {
- if (Array.isArray(provider)) {
- forEachSingleProvider(provider, fn);
- } else if (provider && isEnvironmentProviders(provider)) {
- forEachSingleProvider(provider.ɵproviders, fn);
- } else {
- fn(provider);
- }
- }
-}
-function runInInjectionContext(injector, fn) {
- if (injector instanceof R3Injector) {
- injector.assertNotDestroyed();
- }
- let prevInjectorProfilerContext;
- if (ngDevMode) {
- prevInjectorProfilerContext = setInjectorProfilerContext({ injector, token: null });
- }
- const prevInjector = setCurrentInjector(injector);
- const previousInjectImplementation = setInjectImplementation(void 0);
- try {
- return fn();
- } finally {
- setCurrentInjector(prevInjector);
- ngDevMode && setInjectorProfilerContext(prevInjectorProfilerContext);
- setInjectImplementation(previousInjectImplementation);
- }
-}
-function assertInInjectionContext(debugFn) {
- if (!getInjectImplementation() && !getCurrentInjector()) {
- throw new RuntimeError(-203, ngDevMode && debugFn.name + "() can only be used within an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`");
- }
-}
-var angularCoreDiEnv = {
- "ɵɵdefineInjectable": ɵɵdefineInjectable,
- "ɵɵdefineInjector": ɵɵdefineInjector,
- "ɵɵinject": ɵɵinject,
- "ɵɵinvalidFactoryDep": ɵɵinvalidFactoryDep,
- "resolveForwardRef": resolveForwardRef
-};
-function compileInjectable(type, meta) {
- let ngInjectableDef = null;
- let ngFactoryDef = null;
- if (!type.hasOwnProperty(NG_PROV_DEF)) {
- Object.defineProperty(type, NG_PROV_DEF, {
- get: () => {
- if (ngInjectableDef === null) {
- const compiler = getCompilerFacade({ usage: 0, kind: "injectable", type });
- ngInjectableDef = compiler.compileInjectable(angularCoreDiEnv, `ng:///${type.name}/ɵprov.js`, getInjectableMetadata(type, meta));
- }
- return ngInjectableDef;
- }
- });
- }
- if (!type.hasOwnProperty(NG_FACTORY_DEF)) {
- Object.defineProperty(type, NG_FACTORY_DEF, {
- get: () => {
- if (ngFactoryDef === null) {
- const compiler = getCompilerFacade({ usage: 0, kind: "injectable", type });
- ngFactoryDef = compiler.compileFactory(angularCoreDiEnv, `ng:///${type.name}/ɵfac.js`, {
- name: type.name,
- type,
- typeArgumentCount: 0,
- // In JIT mode types are not available nor used.
- deps: reflectDependencies(type),
- target: compiler.FactoryTarget.Injectable
- });
- }
- return ngFactoryDef;
- },
- // Leave this configurable so that the factories from directives or pipes can take precedence.
- configurable: true
- });
- }
-}
-var USE_VALUE = getClosureSafeProperty({ provide: String, useValue: getClosureSafeProperty });
-function isUseClassProvider(meta) {
- return meta.useClass !== void 0;
-}
-function isUseValueProvider(meta) {
- return USE_VALUE in meta;
-}
-function isUseFactoryProvider(meta) {
- return meta.useFactory !== void 0;
-}
-function isUseExistingProvider(meta) {
- return meta.useExisting !== void 0;
-}
-function getInjectableMetadata(type, srcMeta) {
- const meta = srcMeta || { providedIn: null };
- const compilerMeta = {
- name: type.name,
- type,
- typeArgumentCount: 0,
- providedIn: meta.providedIn
- };
- if ((isUseClassProvider(meta) || isUseFactoryProvider(meta)) && meta.deps !== void 0) {
- compilerMeta.deps = convertDependencies(meta.deps);
- }
- if (isUseClassProvider(meta)) {
- compilerMeta.useClass = meta.useClass;
- } else if (isUseValueProvider(meta)) {
- compilerMeta.useValue = meta.useValue;
- } else if (isUseFactoryProvider(meta)) {
- compilerMeta.useFactory = meta.useFactory;
- } else if (isUseExistingProvider(meta)) {
- compilerMeta.useExisting = meta.useExisting;
- }
- return compilerMeta;
-}
-var Injectable = makeDecorator("Injectable", void 0, void 0, void 0, (type, meta) => compileInjectable(type, meta));
-function createInjector(defType, parent = null, additionalProviders = null, name) {
- const injector = createInjectorWithoutInjectorInstances(defType, parent, additionalProviders, name);
- injector.resolveInjectorInitializers();
- return injector;
-}
-function createInjectorWithoutInjectorInstances(defType, parent = null, additionalProviders = null, name, scopes = /* @__PURE__ */ new Set()) {
- const providers = [
- additionalProviders || EMPTY_ARRAY,
- importProvidersFrom(defType)
- ];
- name = name || (typeof defType === "object" ? void 0 : stringify(defType));
- return new R3Injector(providers, parent || getNullInjector(), name || null, scopes);
-}
-var _Injector = class _Injector {
- static create(options, parent) {
- if (Array.isArray(options)) {
- return createInjector({ name: "" }, parent, options, "");
- } else {
- const name = options.name ?? "";
- return createInjector({ name }, options.parent, options.providers, name);
- }
- }
-};
-_Injector.THROW_IF_NOT_FOUND = THROW_IF_NOT_FOUND;
-_Injector.NULL = new NullInjector();
-_Injector.ɵprov = ɵɵdefineInjectable({
- token: _Injector,
- providedIn: "any",
- factory: () => ɵɵinject(INJECTOR)
-});
-_Injector.__NG_ELEMENT_ID__ = -1;
-var Injector = _Injector;
-function isModuleWithProviders(value) {
- return value.ngModule !== void 0;
-}
-function isNgModule(value) {
- return !!getNgModuleDef(value);
-}
-function isPipe(value) {
- return !!getPipeDef$1(value);
-}
-function isDirective(value) {
- return !!getDirectiveDef(value);
-}
-function isComponent(value) {
- return !!getComponentDef(value);
-}
-function getDependencyTypeForError(type) {
- if (getComponentDef(type))
- return "component";
- if (getDirectiveDef(type))
- return "directive";
- if (getPipeDef$1(type))
- return "pipe";
- return "type";
-}
-function verifyStandaloneImport(depType, importingType) {
- if (isForwardRef(depType)) {
- depType = resolveForwardRef(depType);
- if (!depType) {
- throw new Error(`Expected forwardRef function, imported from "${stringifyForError(importingType)}", to return a standalone entity or NgModule but got "${stringifyForError(depType) || depType}".`);
- }
- }
- if (getNgModuleDef(depType) == null) {
- const def = getComponentDef(depType) || getDirectiveDef(depType) || getPipeDef$1(depType);
- if (def != null) {
- if (!def.standalone) {
- throw new Error(`The "${stringifyForError(depType)}" ${getDependencyTypeForError(depType)}, imported from "${stringifyForError(importingType)}", is not standalone. Did you forget to add the standalone: true flag?`);
- }
- } else {
- if (isModuleWithProviders(depType)) {
- throw new Error(`A module with providers was imported from "${stringifyForError(importingType)}". Modules with providers are not supported in standalone components imports.`);
- } else {
- throw new Error(`The "${stringifyForError(depType)}" type, imported from "${stringifyForError(importingType)}", must be a standalone component / directive / pipe or an NgModule. Did you forget to add the required @Component / @Directive / @Pipe or @NgModule annotation?`);
- }
- }
- }
-}
-var DOCUMENT = void 0;
-function setDocument(document2) {
- DOCUMENT = document2;
-}
-function getDocument() {
- if (DOCUMENT !== void 0) {
- return DOCUMENT;
- } else if (typeof document !== "undefined") {
- return document;
- }
- throw new RuntimeError(210, (typeof ngDevMode === "undefined" || ngDevMode) && `The document object is not available in this context. Make sure the DOCUMENT injection token is provided.`);
-}
-var APP_ID = new InjectionToken(ngDevMode ? "AppId" : "", {
- providedIn: "root",
- factory: () => DEFAULT_APP_ID
-});
-var DEFAULT_APP_ID = "ng";
-var PLATFORM_INITIALIZER = new InjectionToken(ngDevMode ? "Platform Initializer" : "");
-var PLATFORM_ID = new InjectionToken(ngDevMode ? "Platform ID" : "", {
- providedIn: "platform",
- factory: () => "unknown"
- // set a default platform name, when none set explicitly
-});
-var PACKAGE_ROOT_URL = new InjectionToken(ngDevMode ? "Application Packages Root URL" : "");
-var ANIMATION_MODULE_TYPE = new InjectionToken(ngDevMode ? "AnimationModuleType" : "");
-var CSP_NONCE = new InjectionToken(ngDevMode ? "CSP nonce" : "", {
- providedIn: "root",
- factory: () => {
- return getDocument().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce") || null;
- }
-});
-var IMAGE_CONFIG_DEFAULTS = {
- breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],
- disableImageSizeWarning: false,
- disableImageLazyLoadWarning: false
-};
-var IMAGE_CONFIG = new InjectionToken(ngDevMode ? "ImageConfig" : "", { providedIn: "root", factory: () => IMAGE_CONFIG_DEFAULTS });
-function ɵɵresolveWindow(element) {
- return element.ownerDocument.defaultView;
-}
-function ɵɵresolveDocument(element) {
- return element.ownerDocument;
-}
-function ɵɵresolveBody(element) {
- return element.ownerDocument.body;
-}
-var INTERPOLATION_DELIMITER = `�`;
-function maybeUnwrapFn(value) {
- if (value instanceof Function) {
- return value();
- } else {
- return value;
- }
-}
-function isPlatformBrowser(injector) {
- return (injector ?? inject(Injector)).get(PLATFORM_ID) === "browser";
-}
-var USE_RUNTIME_DEPS_TRACKER_FOR_JIT = true;
-var DepsTracker = class {
- constructor() {
- this.ownerNgModule = /* @__PURE__ */ new Map();
- this.ngModulesWithSomeUnresolvedDecls = /* @__PURE__ */ new Set();
- this.ngModulesScopeCache = /* @__PURE__ */ new Map();
- this.standaloneComponentsScopeCache = /* @__PURE__ */ new Map();
- }
- /**
- * Attempts to resolve ng module's forward ref declarations as much as possible and add them to
- * the `ownerNgModule` map. This method normally should be called after the initial parsing when
- * all the forward refs are resolved (e.g., when trying to render a component)
- */
- resolveNgModulesDecls() {
- if (this.ngModulesWithSomeUnresolvedDecls.size === 0) {
- return;
- }
- for (const moduleType of this.ngModulesWithSomeUnresolvedDecls) {
- const def = getNgModuleDef(moduleType);
- if (def?.declarations) {
- for (const decl of maybeUnwrapFn(def.declarations)) {
- if (isComponent(decl)) {
- this.ownerNgModule.set(decl, moduleType);
- }
- }
- }
- }
- this.ngModulesWithSomeUnresolvedDecls.clear();
- }
- /** @override */
- getComponentDependencies(type, rawImports) {
- this.resolveNgModulesDecls();
- const def = getComponentDef(type);
- if (def === null) {
- throw new Error(`Attempting to get component dependencies for a type that is not a component: ${type}`);
- }
- if (def.standalone) {
- const scope = this.getStandaloneComponentScope(type, rawImports);
- if (scope.compilation.isPoisoned) {
- return { dependencies: [] };
- }
- return {
- dependencies: [
- ...scope.compilation.directives,
- ...scope.compilation.pipes,
- ...scope.compilation.ngModules
- ]
- };
- } else {
- if (!this.ownerNgModule.has(type)) {
- return { dependencies: [] };
- }
- const scope = this.getNgModuleScope(this.ownerNgModule.get(type));
- if (scope.compilation.isPoisoned) {
- return { dependencies: [] };
- }
- return {
- dependencies: [
- ...scope.compilation.directives,
- ...scope.compilation.pipes
- ]
- };
- }
- }
- /**
- * @override
- * This implementation does not make use of param scopeInfo since it assumes the scope info is
- * already added to the type itself through methods like {@link ɵɵsetNgModuleScope}
- */
- registerNgModule(type, scopeInfo) {
- if (!isNgModule(type)) {
- throw new Error(`Attempting to register a Type which is not NgModule as NgModule: ${type}`);
- }
- this.ngModulesWithSomeUnresolvedDecls.add(type);
- }
- /** @override */
- clearScopeCacheFor(type) {
- this.ngModulesScopeCache.delete(type);
- this.standaloneComponentsScopeCache.delete(type);
- }
- /** @override */
- getNgModuleScope(type) {
- if (this.ngModulesScopeCache.has(type)) {
- return this.ngModulesScopeCache.get(type);
- }
- const scope = this.computeNgModuleScope(type);
- this.ngModulesScopeCache.set(type, scope);
- return scope;
- }
- /** Compute NgModule scope afresh. */
- computeNgModuleScope(type) {
- const def = getNgModuleDef(type, true);
- const scope = {
- exported: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() },
- compilation: { directives: /* @__PURE__ */ new Set(), pipes: /* @__PURE__ */ new Set() }
- };
- for (const imported of maybeUnwrapFn(def.imports)) {
- if (isNgModule(imported)) {
- const importedScope = this.getNgModuleScope(imported);
- addSet(importedScope.exported.directives, scope.compilation.directives);
- addSet(importedScope.exported.pipes, scope.compilation.pipes);
- } else if (isStandalone(imported)) {
- if (isDirective(imported) || isComponent(imported)) {
- scope.compilation.directives.add(imported);
- } else if (isPipe(imported)) {
- scope.compilation.pipes.add(imported);
- } else {
- throw new RuntimeError(1e3, "The standalone imported type is neither a component nor a directive nor a pipe");
- }
- } else {
- scope.compilation.isPoisoned = true;
- break;
- }
- }
- if (!scope.compilation.isPoisoned) {
- for (const decl of maybeUnwrapFn(def.declarations)) {
- if (isNgModule(decl) || isStandalone(decl)) {
- scope.compilation.isPoisoned = true;
- break;
- }
- if (isPipe(decl)) {
- scope.compilation.pipes.add(decl);
- } else {
- scope.compilation.directives.add(decl);
- }
- }
- }
- for (const exported of maybeUnwrapFn(def.exports)) {
- if (isNgModule(exported)) {
- const exportedScope = this.getNgModuleScope(exported);
- addSet(exportedScope.exported.directives, scope.exported.directives);
- addSet(exportedScope.exported.pipes, scope.exported.pipes);
- addSet(exportedScope.exported.directives, scope.compilation.directives);
- addSet(exportedScope.exported.pipes, scope.compilation.pipes);
- } else if (isPipe(exported)) {
- scope.exported.pipes.add(exported);
- } else {
- scope.exported.directives.add(exported);
- }
- }
- return scope;
- }
- /** @override */
- getStandaloneComponentScope(type, rawImports) {
- if (this.standaloneComponentsScopeCache.has(type)) {
- return this.standaloneComponentsScopeCache.get(type);
- }
- const ans = this.computeStandaloneComponentScope(type, rawImports);
- this.standaloneComponentsScopeCache.set(type, ans);
- return ans;
- }
- computeStandaloneComponentScope(type, rawImports) {
- const ans = {
- compilation: {
- // Standalone components are always able to self-reference.
- directives: /* @__PURE__ */ new Set([type]),
- pipes: /* @__PURE__ */ new Set(),
- ngModules: /* @__PURE__ */ new Set()
- }
- };
- for (const rawImport of flatten(rawImports ?? [])) {
- const imported = resolveForwardRef(rawImport);
- try {
- verifyStandaloneImport(imported, type);
- } catch (e) {
- ans.compilation.isPoisoned = true;
- return ans;
- }
- if (isNgModule(imported)) {
- ans.compilation.ngModules.add(imported);
- const importedScope = this.getNgModuleScope(imported);
- if (importedScope.exported.isPoisoned) {
- ans.compilation.isPoisoned = true;
- return ans;
- }
- addSet(importedScope.exported.directives, ans.compilation.directives);
- addSet(importedScope.exported.pipes, ans.compilation.pipes);
- } else if (isPipe(imported)) {
- ans.compilation.pipes.add(imported);
- } else if (isDirective(imported) || isComponent(imported)) {
- ans.compilation.directives.add(imported);
- } else {
- ans.compilation.isPoisoned = true;
- return ans;
- }
- }
- return ans;
- }
- /** @override */
- isOrphanComponent(cmp) {
- const def = getComponentDef(cmp);
- if (!def || def.standalone) {
- return false;
- }
- this.resolveNgModulesDecls();
- return !this.ownerNgModule.has(cmp);
- }
-};
-function addSet(sourceSet, targetSet) {
- for (const m of sourceSet) {
- targetSet.add(m);
- }
-}
-var depsTracker = new DepsTracker();
-var modules = /* @__PURE__ */ new Map();
-var checkForDuplicateNgModules = true;
-function assertSameOrNotExisting(id, type, incoming) {
- if (type && type !== incoming && checkForDuplicateNgModules) {
- throw new Error(`Duplicate module registered for ${id} - ${stringify(type)} vs ${stringify(type.name)}`);
- }
-}
-function registerNgModuleType(ngModuleType, id) {
- const existing = modules.get(id) || null;
- assertSameOrNotExisting(id, existing, ngModuleType);
- modules.set(id, ngModuleType);
-}
-function getRegisteredNgModuleType(id) {
- return modules.get(id);
-}
-function setAllowDuplicateNgModuleIdsForTest(allowDuplicates) {
- checkForDuplicateNgModules = !allowDuplicates;
-}
-var CUSTOM_ELEMENTS_SCHEMA = {
- name: "custom-elements"
-};
-var NO_ERRORS_SCHEMA = {
- name: "no-errors-schema"
-};
-var shouldThrowErrorOnUnknownElement = false;
-function ɵsetUnknownElementStrictMode(shouldThrow) {
- shouldThrowErrorOnUnknownElement = shouldThrow;
-}
-function ɵgetUnknownElementStrictMode() {
- return shouldThrowErrorOnUnknownElement;
-}
-var shouldThrowErrorOnUnknownProperty = false;
-function ɵsetUnknownPropertyStrictMode(shouldThrow) {
- shouldThrowErrorOnUnknownProperty = shouldThrow;
-}
-function ɵgetUnknownPropertyStrictMode() {
- return shouldThrowErrorOnUnknownProperty;
-}
-function validateElementIsKnown(element, lView, tagName, schemas, hasDirectives) {
- if (schemas === null)
- return;
- if (!hasDirectives && tagName !== null) {
- const isUnknown = (
- // Note that we can't check for `typeof HTMLUnknownElement === 'function'` because
- // Domino doesn't expose HTMLUnknownElement globally.
- typeof HTMLUnknownElement !== "undefined" && HTMLUnknownElement && element instanceof HTMLUnknownElement || typeof customElements !== "undefined" && tagName.indexOf("-") > -1 && !customElements.get(tagName)
- );
- if (isUnknown && !matchingSchemas(schemas, tagName)) {
- const isHostStandalone = isHostComponentStandalone(lView);
- const templateLocation = getTemplateLocationDetails(lView);
- const schemas2 = `'${isHostStandalone ? "@Component" : "@NgModule"}.schemas'`;
- let message = `'${tagName}' is not a known element${templateLocation}:
-`;
- message += `1. If '${tagName}' is an Angular component, then verify that it is ${isHostStandalone ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared"}.
-`;
- if (tagName && tagName.indexOf("-") > -1) {
- message += `2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas2} of this component to suppress this message.`;
- } else {
- message += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
- }
- if (shouldThrowErrorOnUnknownElement) {
- throw new RuntimeError(304, message);
- } else {
- console.error(formatRuntimeError(304, message));
- }
- }
- }
-}
-function isPropertyValid(element, propName, tagName, schemas) {
- if (schemas === null)
- return true;
- if (matchingSchemas(schemas, tagName) || propName in element || isAnimationProp(propName)) {
- return true;
- }
- return typeof Node === "undefined" || Node === null || !(element instanceof Node);
-}
-function handleUnknownPropertyError(propName, tagName, nodeType, lView) {
- if (!tagName && nodeType === 4) {
- tagName = "ng-template";
- }
- const isHostStandalone = isHostComponentStandalone(lView);
- const templateLocation = getTemplateLocationDetails(lView);
- let message = `Can't bind to '${propName}' since it isn't a known property of '${tagName}'${templateLocation}.`;
- const schemas = `'${isHostStandalone ? "@Component" : "@NgModule"}.schemas'`;
- const importLocation = isHostStandalone ? "included in the '@Component.imports' of this component" : "a part of an @NgModule where this component is declared";
- if (KNOWN_CONTROL_FLOW_DIRECTIVES.has(propName)) {
- const correspondingImport = KNOWN_CONTROL_FLOW_DIRECTIVES.get(propName);
- message += `
-If the '${propName}' is an Angular control flow directive, please make sure that either the '${correspondingImport}' directive or the 'CommonModule' is ${importLocation}.`;
- } else {
- message += `
-1. If '${tagName}' is an Angular component and it has the '${propName}' input, then verify that it is ${importLocation}.`;
- if (tagName && tagName.indexOf("-") > -1) {
- message += `
-2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas} of this component to suppress this message.`;
- message += `
-3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`;
- } else {
- message += `
-2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas} of this component.`;
- }
- }
- reportUnknownPropertyError(message);
-}
-function reportUnknownPropertyError(message) {
- if (shouldThrowErrorOnUnknownProperty) {
- throw new RuntimeError(303, message);
- } else {
- console.error(formatRuntimeError(303, message));
- }
-}
-function getDeclarationComponentDef(lView) {
- !ngDevMode && throwError2("Must never be called in production mode");
- const declarationLView = lView[DECLARATION_COMPONENT_VIEW];
- const context2 = declarationLView[CONTEXT];
- if (!context2)
- return null;
- return context2.constructor ? getComponentDef(context2.constructor) : null;
-}
-function isHostComponentStandalone(lView) {
- !ngDevMode && throwError2("Must never be called in production mode");
- const componentDef = getDeclarationComponentDef(lView);
- return !!componentDef?.standalone;
-}
-function getTemplateLocationDetails(lView) {
- !ngDevMode && throwError2("Must never be called in production mode");
- const hostComponentDef = getDeclarationComponentDef(lView);
- const componentClassName = hostComponentDef?.type?.name;
- return componentClassName ? ` (used in the '${componentClassName}' component template)` : "";
-}
-var KNOWN_CONTROL_FLOW_DIRECTIVES = /* @__PURE__ */ new Map([
- ["ngIf", "NgIf"],
- ["ngFor", "NgFor"],
- ["ngSwitchCase", "NgSwitchCase"],
- ["ngSwitchDefault", "NgSwitchDefault"]
-]);
-function matchingSchemas(schemas, tagName) {
- if (schemas !== null) {
- for (let i = 0; i < schemas.length; i++) {
- const schema = schemas[i];
- if (schema === NO_ERRORS_SCHEMA || schema === CUSTOM_ELEMENTS_SCHEMA && tagName && tagName.indexOf("-") > -1) {
- return true;
- }
- }
- }
- return false;
-}
-var SKIP_HYDRATION_ATTR_NAME = "ngSkipHydration";
-var SKIP_HYDRATION_ATTR_NAME_LOWER_CASE = "ngskiphydration";
-function hasSkipHydrationAttrOnTNode(tNode) {
- const attrs = tNode.mergedAttrs;
- if (attrs === null)
- return false;
- for (let i = 0; i < attrs.length; i += 2) {
- const value = attrs[i];
- if (typeof value === "number")
- return false;
- if (typeof value === "string" && value.toLowerCase() === SKIP_HYDRATION_ATTR_NAME_LOWER_CASE) {
- return true;
- }
- }
- return false;
-}
-function hasSkipHydrationAttrOnRElement(rNode) {
- return rNode.hasAttribute(SKIP_HYDRATION_ATTR_NAME);
-}
-function hasInSkipHydrationBlockFlag(tNode) {
- return (tNode.flags & 128) === 128;
-}
-function isInSkipHydrationBlock(tNode) {
- if (hasInSkipHydrationBlockFlag(tNode)) {
- return true;
- }
- let currentTNode = tNode.parent;
- while (currentTNode) {
- if (hasInSkipHydrationBlockFlag(tNode) || hasSkipHydrationAttrOnTNode(currentTNode)) {
- return true;
- }
- currentTNode = currentTNode.parent;
- }
- return false;
-}
-var RendererStyleFlags2;
-(function(RendererStyleFlags22) {
- RendererStyleFlags22[RendererStyleFlags22["Important"] = 1] = "Important";
- RendererStyleFlags22[RendererStyleFlags22["DashCase"] = 2] = "DashCase";
-})(RendererStyleFlags2 || (RendererStyleFlags2 = {}));
-var COMMENT_DISALLOWED = /^>|^->||--!>|)/g;
-var COMMENT_DELIMITER_ESCAPED = "$1";
-function escapeCommentText(value) {
- return value.replace(COMMENT_DISALLOWED, (text) => text.replace(COMMENT_DELIMITER, COMMENT_DELIMITER_ESCAPED));
-}
-var TRACKED_LVIEWS = /* @__PURE__ */ new Map();
-var uniqueIdCounter = 0;
-function getUniqueLViewId() {
- return uniqueIdCounter++;
-}
-function registerLView(lView) {
- ngDevMode && assertNumber(lView[ID], "LView must have an ID in order to be registered");
- TRACKED_LVIEWS.set(lView[ID], lView);
-}
-function getLViewById(id) {
- ngDevMode && assertNumber(id, "ID used for LView lookup must be a number");
- return TRACKED_LVIEWS.get(id) || null;
-}
-function unregisterLView(lView) {
- ngDevMode && assertNumber(lView[ID], "Cannot stop tracking an LView that does not have an ID");
- TRACKED_LVIEWS.delete(lView[ID]);
-}
-var LContext = class {
- /** Component's parent view data. */
- get lView() {
- return getLViewById(this.lViewId);
- }
- constructor(lViewId, nodeIndex, native) {
- this.lViewId = lViewId;
- this.nodeIndex = nodeIndex;
- this.native = native;
- }
-};
-function getLContext(target) {
- let mpValue = readPatchedData(target);
- if (mpValue) {
- if (isLView(mpValue)) {
- const lView = mpValue;
- let nodeIndex;
- let component = void 0;
- let directives = void 0;
- if (isComponentInstance(target)) {
- nodeIndex = findViaComponent(lView, target);
- if (nodeIndex == -1) {
- throw new Error("The provided component was not found in the application");
- }
- component = target;
- } else if (isDirectiveInstance(target)) {
- nodeIndex = findViaDirective(lView, target);
- if (nodeIndex == -1) {
- throw new Error("The provided directive was not found in the application");
- }
- directives = getDirectivesAtNodeIndex(nodeIndex, lView);
- } else {
- nodeIndex = findViaNativeElement(lView, target);
- if (nodeIndex == -1) {
- return null;
- }
- }
- const native = unwrapRNode(lView[nodeIndex]);
- const existingCtx = readPatchedData(native);
- const context2 = existingCtx && !Array.isArray(existingCtx) ? existingCtx : createLContext(lView, nodeIndex, native);
- if (component && context2.component === void 0) {
- context2.component = component;
- attachPatchData(context2.component, context2);
- }
- if (directives && context2.directives === void 0) {
- context2.directives = directives;
- for (let i = 0; i < directives.length; i++) {
- attachPatchData(directives[i], context2);
- }
- }
- attachPatchData(context2.native, context2);
- mpValue = context2;
- }
- } else {
- const rElement = target;
- ngDevMode && assertDomNode(rElement);
- let parent = rElement;
- while (parent = parent.parentNode) {
- const parentContext = readPatchedData(parent);
- if (parentContext) {
- const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView;
- if (!lView) {
- return null;
- }
- const index = findViaNativeElement(lView, rElement);
- if (index >= 0) {
- const native = unwrapRNode(lView[index]);
- const context2 = createLContext(lView, index, native);
- attachPatchData(native, context2);
- mpValue = context2;
- break;
- }
- }
- }
- }
- return mpValue || null;
-}
-function createLContext(lView, nodeIndex, native) {
- return new LContext(lView[ID], nodeIndex, native);
-}
-function getComponentViewByInstance(componentInstance) {
- let patchedData = readPatchedData(componentInstance);
- let lView;
- if (isLView(patchedData)) {
- const contextLView = patchedData;
- const nodeIndex = findViaComponent(contextLView, componentInstance);
- lView = getComponentLViewByIndex(nodeIndex, contextLView);
- const context2 = createLContext(contextLView, nodeIndex, lView[HOST]);
- context2.component = componentInstance;
- attachPatchData(componentInstance, context2);
- attachPatchData(context2.native, context2);
- } else {
- const context2 = patchedData;
- const contextLView = context2.lView;
- ngDevMode && assertLView(contextLView);
- lView = getComponentLViewByIndex(context2.nodeIndex, contextLView);
- }
- return lView;
-}
-var MONKEY_PATCH_KEY_NAME = "__ngContext__";
-function attachPatchData(target, data) {
- ngDevMode && assertDefined(target, "Target expected");
- if (isLView(data)) {
- target[MONKEY_PATCH_KEY_NAME] = data[ID];
- registerLView(data);
- } else {
- target[MONKEY_PATCH_KEY_NAME] = data;
- }
-}
-function readPatchedData(target) {
- ngDevMode && assertDefined(target, "Target expected");
- const data = target[MONKEY_PATCH_KEY_NAME];
- return typeof data === "number" ? getLViewById(data) : data || null;
-}
-function readPatchedLView(target) {
- const value = readPatchedData(target);
- if (value) {
- return isLView(value) ? value : value.lView;
- }
- return null;
-}
-function isComponentInstance(instance) {
- return instance && instance.constructor && instance.constructor.ɵcmp;
-}
-function isDirectiveInstance(instance) {
- return instance && instance.constructor && instance.constructor.ɵdir;
-}
-function findViaNativeElement(lView, target) {
- const tView = lView[TVIEW];
- for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
- if (unwrapRNode(lView[i]) === target) {
- return i;
- }
- }
- return -1;
-}
-function traverseNextElement(tNode) {
- if (tNode.child) {
- return tNode.child;
- } else if (tNode.next) {
- return tNode.next;
- } else {
- while (tNode.parent && !tNode.parent.next) {
- tNode = tNode.parent;
- }
- return tNode.parent && tNode.parent.next;
- }
-}
-function findViaComponent(lView, componentInstance) {
- const componentIndices = lView[TVIEW].components;
- if (componentIndices) {
- for (let i = 0; i < componentIndices.length; i++) {
- const elementComponentIndex = componentIndices[i];
- const componentView = getComponentLViewByIndex(elementComponentIndex, lView);
- if (componentView[CONTEXT] === componentInstance) {
- return elementComponentIndex;
- }
- }
- } else {
- const rootComponentView = getComponentLViewByIndex(HEADER_OFFSET, lView);
- const rootComponent = rootComponentView[CONTEXT];
- if (rootComponent === componentInstance) {
- return HEADER_OFFSET;
- }
- }
- return -1;
-}
-function findViaDirective(lView, directiveInstance) {
- let tNode = lView[TVIEW].firstChild;
- while (tNode) {
- const directiveIndexStart = tNode.directiveStart;
- const directiveIndexEnd = tNode.directiveEnd;
- for (let i = directiveIndexStart; i < directiveIndexEnd; i++) {
- if (lView[i] === directiveInstance) {
- return tNode.index;
- }
- }
- tNode = traverseNextElement(tNode);
- }
- return -1;
-}
-function getDirectivesAtNodeIndex(nodeIndex, lView) {
- const tNode = lView[TVIEW].data[nodeIndex];
- if (tNode.directiveStart === 0)
- return EMPTY_ARRAY;
- const results = [];
- for (let i = tNode.directiveStart; i < tNode.directiveEnd; i++) {
- const directiveInstance = lView[i];
- if (!isComponentInstance(directiveInstance)) {
- results.push(directiveInstance);
- }
- }
- return results;
-}
-function getComponentAtNodeIndex(nodeIndex, lView) {
- const tNode = lView[TVIEW].data[nodeIndex];
- const { directiveStart, componentOffset } = tNode;
- return componentOffset > -1 ? lView[directiveStart + componentOffset] : null;
-}
-function discoverLocalRefs(lView, nodeIndex) {
- const tNode = lView[TVIEW].data[nodeIndex];
- if (tNode && tNode.localNames) {
- const result = {};
- let localIndex = tNode.index + 1;
- for (let i = 0; i < tNode.localNames.length; i += 2) {
- result[tNode.localNames[i]] = lView[localIndex];
- localIndex++;
- }
- return result;
- }
- return null;
-}
-var _icuContainerIterate;
-function icuContainerIterate(tIcuContainerNode, lView) {
- return _icuContainerIterate(tIcuContainerNode, lView);
-}
-function ensureIcuContainerVisitorLoaded(loader) {
- if (_icuContainerIterate === void 0) {
- _icuContainerIterate = loader();
- }
-}
-function applyToElementOrContainer(action, renderer, parent, lNodeToHandle, beforeNode) {
- if (lNodeToHandle != null) {
- let lContainer;
- let isComponent2 = false;
- if (isLContainer(lNodeToHandle)) {
- lContainer = lNodeToHandle;
- } else if (isLView(lNodeToHandle)) {
- isComponent2 = true;
- ngDevMode && assertDefined(lNodeToHandle[HOST], "HOST must be defined for a component LView");
- lNodeToHandle = lNodeToHandle[HOST];
- }
- const rNode = unwrapRNode(lNodeToHandle);
- if (action === 0 && parent !== null) {
- if (beforeNode == null) {
- nativeAppendChild(renderer, parent, rNode);
- } else {
- nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true);
- }
- } else if (action === 1 && parent !== null) {
- nativeInsertBefore(renderer, parent, rNode, beforeNode || null, true);
- } else if (action === 2) {
- nativeRemoveNode(renderer, rNode, isComponent2);
- } else if (action === 3) {
- ngDevMode && ngDevMode.rendererDestroyNode++;
- renderer.destroyNode(rNode);
- }
- if (lContainer != null) {
- applyContainer(renderer, action, lContainer, parent, beforeNode);
- }
- }
-}
-function createTextNode(renderer, value) {
- ngDevMode && ngDevMode.rendererCreateTextNode++;
- ngDevMode && ngDevMode.rendererSetText++;
- return renderer.createText(value);
-}
-function updateTextNode(renderer, rNode, value) {
- ngDevMode && ngDevMode.rendererSetText++;
- renderer.setValue(rNode, value);
-}
-function createCommentNode(renderer, value) {
- ngDevMode && ngDevMode.rendererCreateComment++;
- return renderer.createComment(escapeCommentText(value));
-}
-function createElementNode(renderer, name, namespace) {
- ngDevMode && ngDevMode.rendererCreateElement++;
- return renderer.createElement(name, namespace);
-}
-function removeViewFromDOM(tView, lView) {
- detachViewFromDOM(tView, lView);
- lView[HOST] = null;
- lView[T_HOST] = null;
-}
-function addViewToDOM(tView, parentTNode, renderer, lView, parentNativeNode, beforeNode) {
- lView[HOST] = parentNativeNode;
- lView[T_HOST] = parentTNode;
- applyView(tView, lView, renderer, 1, parentNativeNode, beforeNode);
-}
-function detachViewFromDOM(tView, lView) {
- applyView(tView, lView, lView[RENDERER], 2, null, null);
-}
-function destroyViewTree(rootView) {
- let lViewOrLContainer = rootView[CHILD_HEAD];
- if (!lViewOrLContainer) {
- return cleanUpView(rootView[TVIEW], rootView);
- }
- while (lViewOrLContainer) {
- let next = null;
- if (isLView(lViewOrLContainer)) {
- next = lViewOrLContainer[CHILD_HEAD];
- } else {
- ngDevMode && assertLContainer(lViewOrLContainer);
- const firstView = lViewOrLContainer[CONTAINER_HEADER_OFFSET];
- if (firstView)
- next = firstView;
- }
- if (!next) {
- while (lViewOrLContainer && !lViewOrLContainer[NEXT] && lViewOrLContainer !== rootView) {
- if (isLView(lViewOrLContainer)) {
- cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer);
- }
- lViewOrLContainer = lViewOrLContainer[PARENT];
- }
- if (lViewOrLContainer === null)
- lViewOrLContainer = rootView;
- if (isLView(lViewOrLContainer)) {
- cleanUpView(lViewOrLContainer[TVIEW], lViewOrLContainer);
- }
- next = lViewOrLContainer && lViewOrLContainer[NEXT];
- }
- lViewOrLContainer = next;
- }
-}
-function insertView(tView, lView, lContainer, index) {
- ngDevMode && assertLView(lView);
- ngDevMode && assertLContainer(lContainer);
- const indexInContainer = CONTAINER_HEADER_OFFSET + index;
- const containerLength = lContainer.length;
- if (index > 0) {
- lContainer[indexInContainer - 1][NEXT] = lView;
- }
- if (index < containerLength - CONTAINER_HEADER_OFFSET) {
- lView[NEXT] = lContainer[indexInContainer];
- addToArray(lContainer, CONTAINER_HEADER_OFFSET + index, lView);
- } else {
- lContainer.push(lView);
- lView[NEXT] = null;
- }
- lView[PARENT] = lContainer;
- const declarationLContainer = lView[DECLARATION_LCONTAINER];
- if (declarationLContainer !== null && lContainer !== declarationLContainer) {
- trackMovedView(declarationLContainer, lView);
- }
- const lQueries = lView[QUERIES];
- if (lQueries !== null) {
- lQueries.insertView(tView);
- }
- updateAncestorTraversalFlagsOnAttach(lView);
- lView[FLAGS] |= 128;
-}
-function trackMovedView(declarationContainer, lView) {
- ngDevMode && assertDefined(lView, "LView required");
- ngDevMode && assertLContainer(declarationContainer);
- const movedViews = declarationContainer[MOVED_VIEWS];
- const insertedLContainer = lView[PARENT];
- ngDevMode && assertLContainer(insertedLContainer);
- const insertedComponentLView = insertedLContainer[PARENT][DECLARATION_COMPONENT_VIEW];
- ngDevMode && assertDefined(insertedComponentLView, "Missing insertedComponentLView");
- const declaredComponentLView = lView[DECLARATION_COMPONENT_VIEW];
- ngDevMode && assertDefined(declaredComponentLView, "Missing declaredComponentLView");
- if (declaredComponentLView !== insertedComponentLView) {
- declarationContainer[FLAGS] |= LContainerFlags.HasTransplantedViews;
- }
- if (movedViews === null) {
- declarationContainer[MOVED_VIEWS] = [lView];
- } else {
- movedViews.push(lView);
- }
-}
-function detachMovedView(declarationContainer, lView) {
- ngDevMode && assertLContainer(declarationContainer);
- ngDevMode && assertDefined(declarationContainer[MOVED_VIEWS], "A projected view should belong to a non-empty projected views collection");
- const movedViews = declarationContainer[MOVED_VIEWS];
- const declarationViewIndex = movedViews.indexOf(lView);
- ngDevMode && assertLContainer(lView[PARENT]);
- movedViews.splice(declarationViewIndex, 1);
-}
-function detachView(lContainer, removeIndex) {
- if (lContainer.length <= CONTAINER_HEADER_OFFSET)
- return;
- const indexInContainer = CONTAINER_HEADER_OFFSET + removeIndex;
- const viewToDetach = lContainer[indexInContainer];
- if (viewToDetach) {
- const declarationLContainer = viewToDetach[DECLARATION_LCONTAINER];
- if (declarationLContainer !== null && declarationLContainer !== lContainer) {
- detachMovedView(declarationLContainer, viewToDetach);
- }
- if (removeIndex > 0) {
- lContainer[indexInContainer - 1][NEXT] = viewToDetach[NEXT];
- }
- const removedLView = removeFromArray(lContainer, CONTAINER_HEADER_OFFSET + removeIndex);
- removeViewFromDOM(viewToDetach[TVIEW], viewToDetach);
- const lQueries = removedLView[QUERIES];
- if (lQueries !== null) {
- lQueries.detachView(removedLView[TVIEW]);
- }
- viewToDetach[PARENT] = null;
- viewToDetach[NEXT] = null;
- viewToDetach[FLAGS] &= ~128;
- }
- return viewToDetach;
-}
-function destroyLView(tView, lView) {
- if (!(lView[FLAGS] & 256)) {
- const renderer = lView[RENDERER];
- if (renderer.destroyNode) {
- applyView(tView, lView, renderer, 3, null, null);
- }
- destroyViewTree(lView);
- }
-}
-function cleanUpView(tView, lView) {
- if (!(lView[FLAGS] & 256)) {
- lView[FLAGS] &= ~128;
- lView[FLAGS] |= 256;
- lView[REACTIVE_TEMPLATE_CONSUMER] && consumerDestroy(lView[REACTIVE_TEMPLATE_CONSUMER]);
- executeOnDestroys(tView, lView);
- processCleanups(tView, lView);
- if (lView[TVIEW].type === 1) {
- ngDevMode && ngDevMode.rendererDestroy++;
- lView[RENDERER].destroy();
- }
- const declarationContainer = lView[DECLARATION_LCONTAINER];
- if (declarationContainer !== null && isLContainer(lView[PARENT])) {
- if (declarationContainer !== lView[PARENT]) {
- detachMovedView(declarationContainer, lView);
- }
- const lQueries = lView[QUERIES];
- if (lQueries !== null) {
- lQueries.detachView(tView);
- }
- }
- unregisterLView(lView);
- }
-}
-function processCleanups(tView, lView) {
- const tCleanup = tView.cleanup;
- const lCleanup = lView[CLEANUP];
- if (tCleanup !== null) {
- for (let i = 0; i < tCleanup.length - 1; i += 2) {
- if (typeof tCleanup[i] === "string") {
- const targetIdx = tCleanup[i + 3];
- ngDevMode && assertNumber(targetIdx, "cleanup target must be a number");
- if (targetIdx >= 0) {
- lCleanup[targetIdx]();
- } else {
- lCleanup[-targetIdx].unsubscribe();
- }
- i += 2;
- } else {
- const context2 = lCleanup[tCleanup[i + 1]];
- tCleanup[i].call(context2);
- }
- }
- }
- if (lCleanup !== null) {
- lView[CLEANUP] = null;
- }
- const destroyHooks = lView[ON_DESTROY_HOOKS];
- if (destroyHooks !== null) {
- lView[ON_DESTROY_HOOKS] = null;
- for (let i = 0; i < destroyHooks.length; i++) {
- const destroyHooksFn = destroyHooks[i];
- ngDevMode && assertFunction(destroyHooksFn, "Expecting destroy hook to be a function.");
- destroyHooksFn();
- }
- }
-}
-function executeOnDestroys(tView, lView) {
- let destroyHooks;
- if (tView != null && (destroyHooks = tView.destroyHooks) != null) {
- for (let i = 0; i < destroyHooks.length; i += 2) {
- const context2 = lView[destroyHooks[i]];
- if (!(context2 instanceof NodeInjectorFactory)) {
- const toCall = destroyHooks[i + 1];
- if (Array.isArray(toCall)) {
- for (let j = 0; j < toCall.length; j += 2) {
- const callContext = context2[toCall[j]];
- const hook = toCall[j + 1];
- profiler(4, callContext, hook);
- try {
- hook.call(callContext);
- } finally {
- profiler(5, callContext, hook);
- }
- }
- } else {
- profiler(4, context2, toCall);
- try {
- toCall.call(context2);
- } finally {
- profiler(5, context2, toCall);
- }
- }
- }
- }
- }
-}
-function getParentRElement(tView, tNode, lView) {
- return getClosestRElement(tView, tNode.parent, lView);
-}
-function getClosestRElement(tView, tNode, lView) {
- let parentTNode = tNode;
- while (parentTNode !== null && parentTNode.type & (8 | 32)) {
- tNode = parentTNode;
- parentTNode = tNode.parent;
- }
- if (parentTNode === null) {
- return lView[HOST];
- } else {
- ngDevMode && assertTNodeType(
- parentTNode,
- 3 | 4
- /* TNodeType.Container */
- );
- const { componentOffset } = parentTNode;
- if (componentOffset > -1) {
- ngDevMode && assertTNodeForLView(parentTNode, lView);
- const { encapsulation } = tView.data[parentTNode.directiveStart + componentOffset];
- if (encapsulation === ViewEncapsulation$1.None || encapsulation === ViewEncapsulation$1.Emulated) {
- return null;
- }
- }
- return getNativeByTNode(parentTNode, lView);
- }
-}
-function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
- ngDevMode && ngDevMode.rendererInsertBefore++;
- renderer.insertBefore(parent, child, beforeNode, isMove);
-}
-function nativeAppendChild(renderer, parent, child) {
- ngDevMode && ngDevMode.rendererAppendChild++;
- ngDevMode && assertDefined(parent, "parent node must be defined");
- renderer.appendChild(parent, child);
-}
-function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
- if (beforeNode !== null) {
- nativeInsertBefore(renderer, parent, child, beforeNode, isMove);
- } else {
- nativeAppendChild(renderer, parent, child);
- }
-}
-function nativeRemoveChild(renderer, parent, child, isHostElement) {
- renderer.removeChild(parent, child, isHostElement);
-}
-function nativeParentNode(renderer, node) {
- return renderer.parentNode(node);
-}
-function nativeNextSibling(renderer, node) {
- return renderer.nextSibling(node);
-}
-function getInsertInFrontOfRNode(parentTNode, currentTNode, lView) {
- return _getInsertInFrontOfRNodeWithI18n(parentTNode, currentTNode, lView);
-}
-function getInsertInFrontOfRNodeWithNoI18n(parentTNode, currentTNode, lView) {
- if (parentTNode.type & (8 | 32)) {
- return getNativeByTNode(parentTNode, lView);
- }
- return null;
-}
-var _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithNoI18n;
-var _processI18nInsertBefore;
-function setI18nHandling(getInsertInFrontOfRNodeWithI18n2, processI18nInsertBefore2) {
- _getInsertInFrontOfRNodeWithI18n = getInsertInFrontOfRNodeWithI18n2;
- _processI18nInsertBefore = processI18nInsertBefore2;
-}
-function appendChild(tView, lView, childRNode, childTNode) {
- const parentRNode = getParentRElement(tView, childTNode, lView);
- const renderer = lView[RENDERER];
- const parentTNode = childTNode.parent || lView[T_HOST];
- const anchorNode = getInsertInFrontOfRNode(parentTNode, childTNode, lView);
- if (parentRNode != null) {
- if (Array.isArray(childRNode)) {
- for (let i = 0; i < childRNode.length; i++) {
- nativeAppendOrInsertBefore(renderer, parentRNode, childRNode[i], anchorNode, false);
- }
- } else {
- nativeAppendOrInsertBefore(renderer, parentRNode, childRNode, anchorNode, false);
- }
- }
- _processI18nInsertBefore !== void 0 && _processI18nInsertBefore(renderer, childTNode, lView, childRNode, parentRNode);
-}
-function getFirstNativeNode(lView, tNode) {
- if (tNode !== null) {
- ngDevMode && assertTNodeType(
- tNode,
- 3 | 12 | 32 | 16
- /* TNodeType.Projection */
- );
- const tNodeType = tNode.type;
- if (tNodeType & 3) {
- return getNativeByTNode(tNode, lView);
- } else if (tNodeType & 4) {
- return getBeforeNodeForView(-1, lView[tNode.index]);
- } else if (tNodeType & 8) {
- const elIcuContainerChild = tNode.child;
- if (elIcuContainerChild !== null) {
- return getFirstNativeNode(lView, elIcuContainerChild);
- } else {
- const rNodeOrLContainer = lView[tNode.index];
- if (isLContainer(rNodeOrLContainer)) {
- return getBeforeNodeForView(-1, rNodeOrLContainer);
- } else {
- return unwrapRNode(rNodeOrLContainer);
- }
- }
- } else if (tNodeType & 32) {
- let nextRNode = icuContainerIterate(tNode, lView);
- let rNode = nextRNode();
- return rNode || unwrapRNode(lView[tNode.index]);
- } else {
- const projectionNodes = getProjectionNodes(lView, tNode);
- if (projectionNodes !== null) {
- if (Array.isArray(projectionNodes)) {
- return projectionNodes[0];
- }
- const parentView = getLViewParent(lView[DECLARATION_COMPONENT_VIEW]);
- ngDevMode && assertParentView(parentView);
- return getFirstNativeNode(parentView, projectionNodes);
- } else {
- return getFirstNativeNode(lView, tNode.next);
- }
- }
- }
- return null;
-}
-function getProjectionNodes(lView, tNode) {
- if (tNode !== null) {
- const componentView = lView[DECLARATION_COMPONENT_VIEW];
- const componentHost = componentView[T_HOST];
- const slotIdx = tNode.projection;
- ngDevMode && assertProjectionSlots(lView);
- return componentHost.projection[slotIdx];
- }
- return null;
-}
-function getBeforeNodeForView(viewIndexInContainer, lContainer) {
- const nextViewIndex = CONTAINER_HEADER_OFFSET + viewIndexInContainer + 1;
- if (nextViewIndex < lContainer.length) {
- const lView = lContainer[nextViewIndex];
- const firstTNodeOfView = lView[TVIEW].firstChild;
- if (firstTNodeOfView !== null) {
- return getFirstNativeNode(lView, firstTNodeOfView);
- }
- }
- return lContainer[NATIVE];
-}
-function nativeRemoveNode(renderer, rNode, isHostElement) {
- ngDevMode && ngDevMode.rendererRemoveNode++;
- const nativeParent = nativeParentNode(renderer, rNode);
- if (nativeParent) {
- nativeRemoveChild(renderer, nativeParent, rNode, isHostElement);
- }
-}
-function clearElementContents(rElement) {
- rElement.textContent = "";
-}
-function applyNodes(renderer, action, tNode, lView, parentRElement, beforeNode, isProjection) {
- while (tNode != null) {
- ngDevMode && assertTNodeForLView(tNode, lView);
- ngDevMode && assertTNodeType(
- tNode,
- 3 | 12 | 16 | 32
- /* TNodeType.Icu */
- );
- const rawSlotValue = lView[tNode.index];
- const tNodeType = tNode.type;
- if (isProjection) {
- if (action === 0) {
- rawSlotValue && attachPatchData(unwrapRNode(rawSlotValue), lView);
- tNode.flags |= 2;
- }
- }
- if ((tNode.flags & 32) !== 32) {
- if (tNodeType & 8) {
- applyNodes(renderer, action, tNode.child, lView, parentRElement, beforeNode, false);
- applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);
- } else if (tNodeType & 32) {
- const nextRNode = icuContainerIterate(tNode, lView);
- let rNode;
- while (rNode = nextRNode()) {
- applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode);
- }
- applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);
- } else if (tNodeType & 16) {
- applyProjectionRecursive(renderer, action, lView, tNode, parentRElement, beforeNode);
- } else {
- ngDevMode && assertTNodeType(
- tNode,
- 3 | 4
- /* TNodeType.Container */
- );
- applyToElementOrContainer(action, renderer, parentRElement, rawSlotValue, beforeNode);
- }
- }
- tNode = isProjection ? tNode.projectionNext : tNode.next;
- }
-}
-function applyView(tView, lView, renderer, action, parentRElement, beforeNode) {
- applyNodes(renderer, action, tView.firstChild, lView, parentRElement, beforeNode, false);
-}
-function applyProjection(tView, lView, tProjectionNode) {
- const renderer = lView[RENDERER];
- const parentRNode = getParentRElement(tView, tProjectionNode, lView);
- const parentTNode = tProjectionNode.parent || lView[T_HOST];
- let beforeNode = getInsertInFrontOfRNode(parentTNode, tProjectionNode, lView);
- applyProjectionRecursive(renderer, 0, lView, tProjectionNode, parentRNode, beforeNode);
-}
-function applyProjectionRecursive(renderer, action, lView, tProjectionNode, parentRElement, beforeNode) {
- const componentLView = lView[DECLARATION_COMPONENT_VIEW];
- const componentNode = componentLView[T_HOST];
- ngDevMode && assertEqual(typeof tProjectionNode.projection, "number", "expecting projection index");
- const nodeToProjectOrRNodes = componentNode.projection[tProjectionNode.projection];
- if (Array.isArray(nodeToProjectOrRNodes)) {
- for (let i = 0; i < nodeToProjectOrRNodes.length; i++) {
- const rNode = nodeToProjectOrRNodes[i];
- applyToElementOrContainer(action, renderer, parentRElement, rNode, beforeNode);
- }
- } else {
- let nodeToProject = nodeToProjectOrRNodes;
- const projectedComponentLView = componentLView[PARENT];
- if (hasInSkipHydrationBlockFlag(tProjectionNode)) {
- nodeToProject.flags |= 128;
- }
- applyNodes(renderer, action, nodeToProject, projectedComponentLView, parentRElement, beforeNode, true);
- }
-}
-function applyContainer(renderer, action, lContainer, parentRElement, beforeNode) {
- ngDevMode && assertLContainer(lContainer);
- const anchor = lContainer[NATIVE];
- const native = unwrapRNode(lContainer);
- if (anchor !== native) {
- applyToElementOrContainer(action, renderer, parentRElement, anchor, beforeNode);
- }
- for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
- const lView = lContainer[i];
- applyView(lView[TVIEW], lView, renderer, action, parentRElement, anchor);
- }
-}
-function applyStyling(renderer, isClassBased, rNode, prop, value) {
- if (isClassBased) {
- if (!value) {
- ngDevMode && ngDevMode.rendererRemoveClass++;
- renderer.removeClass(rNode, prop);
- } else {
- ngDevMode && ngDevMode.rendererAddClass++;
- renderer.addClass(rNode, prop);
- }
- } else {
- let flags = prop.indexOf("-") === -1 ? void 0 : RendererStyleFlags2.DashCase;
- if (value == null) {
- ngDevMode && ngDevMode.rendererRemoveStyle++;
- renderer.removeStyle(rNode, prop, flags);
- } else {
- const isImportant = typeof value === "string" ? value.endsWith("!important") : false;
- if (isImportant) {
- value = value.slice(0, -10);
- flags |= RendererStyleFlags2.Important;
- }
- ngDevMode && ngDevMode.rendererSetStyle++;
- renderer.setStyle(rNode, prop, value, flags);
- }
- }
-}
-function writeDirectStyle(renderer, element, newValue) {
- ngDevMode && assertString(newValue, "'newValue' should be a string");
- renderer.setAttribute(element, "style", newValue);
- ngDevMode && ngDevMode.rendererSetStyle++;
-}
-function writeDirectClass(renderer, element, newValue) {
- ngDevMode && assertString(newValue, "'newValue' should be a string");
- if (newValue === "") {
- renderer.removeAttribute(element, "class");
- } else {
- renderer.setAttribute(element, "class", newValue);
- }
- ngDevMode && ngDevMode.rendererSetClassName++;
-}
-function setupStaticAttributes(renderer, element, tNode) {
- const { mergedAttrs, classes, styles } = tNode;
- if (mergedAttrs !== null) {
- setUpAttributes(renderer, element, mergedAttrs);
- }
- if (classes !== null) {
- writeDirectClass(renderer, element, classes);
- }
- if (styles !== null) {
- writeDirectStyle(renderer, element, styles);
- }
-}
-var policy$1;
-function getPolicy$1() {
- if (policy$1 === void 0) {
- policy$1 = null;
- if (_global.trustedTypes) {
- try {
- policy$1 = _global.trustedTypes.createPolicy("angular", {
- createHTML: (s) => s,
- createScript: (s) => s,
- createScriptURL: (s) => s
- });
- } catch {
- }
- }
- }
- return policy$1;
-}
-function trustedHTMLFromString(html) {
- return getPolicy$1()?.createHTML(html) || html;
-}
-function trustedScriptURLFromString(url) {
- return getPolicy$1()?.createScriptURL(url) || url;
-}
-function ɵɵvalidateIframeAttribute(attrValue, tagName, attrName) {
- const lView = getLView();
- const tNode = getSelectedTNode();
- const element = getNativeByTNode(tNode, lView);
- if (tNode.type === 2 && tagName.toLowerCase() === "iframe") {
- const iframe = element;
- iframe.src = "";
- iframe.srcdoc = trustedHTMLFromString("");
- nativeRemoveNode(lView[RENDERER], iframe);
- const errorMessage = ngDevMode && `Angular has detected that the \`${attrName}\` was applied as a binding to an