{"version":3,"file":"ncr-contentful-ncr-contentful-BYM-lewQ.mjs","sources":["../../../projects/ncr-contentful/src/config/ncr-contentful-provide-configuration.ts","../../../projects/ncr-contentful/src/config/ncr-contentful-config.token.ts","../../../projects/ncr-contentful/src/pages/ncr-contentful-blank-page/ncr-contentful-blank-page.module.ts","../../../projects/ncr-contentful/src/pages/ncr-contentful-pages.module.ts","../../../projects/ncr-contentful/src/config/ncr-contentful-config.module.ts","../../../projects/ncr-contentful/src/components/contentful-custom-html/contentful-custom-html.module.ts","../../../projects/ncr-contentful/src/components/contentful-rich-text/contentful-rich-text.module.ts","../../../projects/ncr-contentful/src/components/contentful-grid/contentful-grid.module.ts","../../../projects/ncr-contentful/src/components/contentful-responsive-media/contentful-responsive-media.module.ts","../../../projects/ncr-contentful/src/components/ncr-contentful-components.model.ts","../../../projects/ncr-contentful/src/directives/dynamic/ncr-dynamic.directive.ts","../../../projects/ncr-contentful/src/components/contentful-carousel/contentful-carousel.component.ts","../../../projects/ncr-contentful/src/components/contentful-carousel/contentful-carousel.component.html","../../../projects/ncr-contentful/src/components/contentful-carousel/contentful-carousel.module.ts","../../../projects/ncr-contentful/src/components/contentful-3D-viewer/contentful-3d-viewer.module.ts","../../../projects/ncr-contentful/src/components/contentful-container/contentful-container.module.ts","../../../projects/ncr-contentful/src/components/ncr-contentful-components.module.ts","../../../projects/ncr-contentful/src/utils/collection.ts","../../../projects/ncr-contentful/src/utils/prioritize_guard_value.ts","../../../projects/ncr-contentful/src/routing/config_by_route.ts","../../../projects/ncr-contentful/src/utils/logger/logger.ts","../../../projects/ncr-contentful/src/utils/logger/log-manager.ts","../../../projects/ncr-contentful/src/contentful/contentful-converter.service.ts","../../../projects/ncr-contentful/src/contentful/ncr-contentful.service.ts","../../../projects/ncr-contentful/src/config/ncr-contentful-routing-config.service.ts","../../../projects/ncr-contentful/src/seo/ncr-contentful-page-meta.service.ts","../../../projects/ncr-contentful/src/routing/ncr-contentful-page.resolver.ts","../../../projects/ncr-contentful/src/pages/ncr-contentful-abstract-page.component.ts","../../../projects/ncr-contentful/src/pages/ncr-storefront.component.ts","../../../projects/ncr-contentful/src/routing/ncr-contentful-routing.module.ts","../../../projects/ncr-contentful/src/decorators/contentful-link/contentful-link.module.ts","../../../projects/ncr-contentful/src/decorators/contentful-position/contentful-position.module.ts","../../../projects/ncr-contentful/src/decorators/contentful-animation/contentful-animation.module.ts","../../../projects/ncr-contentful/src/decorators/contentful-decorators.module.ts","../../../projects/ncr-contentful/src/contentful/contentful-seo.service.ts","../../../projects/ncr-contentful/src/ncr-contentful.module.ts","../../../projects/ncr-contentful/src/models/contentful.models.ts","../../../projects/ncr-contentful/src/components/contentful-asset/contentful-asset.component.ts","../../../projects/ncr-contentful/src/components/contentful-asset/contentful-asset.component.html","../../../projects/ncr-contentful/src/decorators/contentful-animation/contentful-animation.component.ts","../../../projects/ncr-contentful/src/decorators/contentful-animation/contentful-animation.component.html","../../../projects/ncr-contentful/src/contentful/abstract.converter.ts","../../../projects/ncr-contentful/src/utils/overlay/overlay-actions-manager.ts","../../../projects/ncr-contentful/src/utils/overlay/overlay-element-manager.ts","../../../projects/ncr-contentful/src/utils/overlay/overlay-manager.ts","../../../projects/ncr-contentful/src/ncr-contentful.ts"],"sourcesContent":["import {FactoryProvider, InjectionToken, ValueProvider} from \"@angular/core\";\nimport merge from \"deepmerge\";\nimport {NcrContentfulConfig} from \"./ncr-contentful-config.token\";\n\nexport let STATIC_CONFIG_DO_NOT_USE_EXTERNALLY: NcrContentfulConfig = <NcrContentfulConfig>{};\n\nexport const NCR_CONTENTFUL_CONFIG = new InjectionToken<NcrContentfulConfig>(\n    'NCR_CONTENTFUL_CONFIG',\n);\nconst NCR_CONTENTFUL_CONFIG_ARRAY = new InjectionToken<NcrContentfulConfig>(\n    'NCR_CONTENTFUL_CONFIG_ARRAY',\n);\n\nexport function provideConfiguration(\n    partialConfig: Partial<NcrContentfulConfig>,\n): ValueProvider {\n    STATIC_CONFIG_DO_NOT_USE_EXTERNALLY = merge(partialConfig, STATIC_CONFIG_DO_NOT_USE_EXTERNALLY);\n    return {\n        provide: NCR_CONTENTFUL_CONFIG_ARRAY,\n        useValue: STATIC_CONFIG_DO_NOT_USE_EXTERNALLY,\n        multi: true,\n    };\n}\n\n\nexport const configProvider: FactoryProvider = {\n    provide: NCR_CONTENTFUL_CONFIG,\n    useFactory: () => {\n        return STATIC_CONFIG_DO_NOT_USE_EXTERNALLY;\n    },\n};\n","import {inject, Injectable} from \"@angular/core\";\nimport {NcrContenfulConfigMerged} from \"./ncr-contentful-config.model\";\nimport {NCR_CONTENTFUL_CONFIG} from \"./ncr-contentful-provide-configuration\";\n\n@Injectable({\n    providedIn: \"root\",\n    useFactory: () => inject(NCR_CONTENTFUL_CONFIG),\n})\nexport abstract class NcrContentfulConfig implements NcrContenfulConfigMerged {\n}\n","import {NgModule} from '@angular/core';\nimport {provideConfiguration} from \"../../config\";\n\n@NgModule({\n  providers: [\n    provideConfiguration({\n      components: {\n        ncrPagesBlank: {\n          component : () =>\n              import(\n                  './ncr-contentful-blank-page.component'\n                  ).then((m) => m.NcrContentfulBlankPageComponent),\n        }\n      },\n    })\n  ]\n})\nexport class NcrContentfulBlankPageModule {}\n","import {NgModule} from \"@angular/core\";\nimport {NcrContentfulBlankPageModule} from \"./ncr-contentful-blank-page/ncr-contentful-blank-page.module\";\n\n@NgModule({\n  imports: [\n      NcrContentfulBlankPageModule,\n  ],\n  providers: [\n  ],\n})\nexport class NcrContentfulPagesModule {}\n","import {NgModule} from '@angular/core';\nimport {configProvider, provideConfiguration} from \"./ncr-contentful-provide-configuration\";\n\n@NgModule({\n  providers: [\n      provideConfiguration({\n        components: {},\n        routing: {},\n      }),\n      configProvider,\n  ],\n})\nexport class NcrContentfulConfigModule {}\n\n","import {NgModule} from \"@angular/core\";\nimport {provideConfiguration} from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponentsCustomHtml: {\n                    component : () =>\n                        import(\n                            './contentful-custom-html.component'\n                            ).then((m) => m.ContentfulCustomHTMLComponent),\n                }\n            },\n        })\n    ]\n})\nexport class ContentfulCustomHtmlModule {\n}\n\n","import {NgModule} from \"@angular/core\";\nimport {provideConfiguration} from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponentsRichText: {\n                    component : () =>\n                        import(\n                            './contentful-rich-text.component'\n                            ).then((m) => m.ContentfulRichTextComponent),\n                }\n            }\n        })\n    ]\n})\nexport class ContentfulRichTextModule{\n}\n\n","import { NgModule } from \"@angular/core\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n  providers: [\n    provideConfiguration({\n      components: {\n        ncrComponentsGrid: {\n          component: () =>\n            import(\"./contentful-grid.component\").then(\n              (m) => m.ContentfulGridComponent\n            ),\n          responsiveFields: [\"colSpans\", \"rowSpans\", \"columnCount\"],\n        },\n      },\n    }),\n  ],\n})\nexport class ContentfulGridModule {}\n","import { NgModule } from \"@angular/core\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponentsResponsiveMedia: {\n                    component: () =>\n                        import(\"./contentful-responsive-media.component\").then(\n                            (m) => m.ContentfulResponsiveMediaComponent\n                        ),\n                    responsiveFields: [\"medias\", \"aspectRatio\"],\n                },\n            },\n        }),\n    ],\n})\nexport class ContentfulResponsiveMediaModule {}\n","import { Component, Input } from \"@angular/core\";\nimport { EntryFieldExtract, NcrEntry } from \"../models\";\n\n@Component({\n    template: \"\",\n})\nexport abstract class ContentfulComponent<EntryType extends NcrEntry<any>> {\n    @Input() entry!: NcrEntry<EntryFieldExtract<EntryType>>;\n}\n","import {\n    ComponentFactoryResolver,\n    ComponentRef,\n    Directive,\n    EventEmitter,\n    Injector,\n    Input,\n    OnDestroy,\n    Output,\n    ViewContainerRef,\n} from \"@angular/core\";\nimport {Subject} from \"rxjs\";\nimport {takeUntil} from \"rxjs/operators\";\nimport {NcrEntry} from \"../../models/contentful.models\";\nimport {NcrContentfulConfig} from \"../../config\";\n\n@Directive({\n    selector: \"[ncrDynamic]\",\n    standalone: true,\n})\nexport class NcrDynamicDirective implements OnDestroy {\n    @Output() output: EventEmitter<any> = new EventEmitter();\n\n    @Input(\"class\") clazz?: string;\n    private destroyed$ = new Subject();\n    private component!: ComponentRef<any>;\n\n    constructor(\n        private resolver: ComponentFactoryResolver,\n        public viewContainer: ViewContainerRef,\n        private injector: Injector,\n        private config: NcrContentfulConfig\n    ) {\n    }\n\n    @Input() set ncrDynamic(entry: NcrEntry<any>) {\n        if (entry?.component) {\n            const inj: Injector = entry.convertedData\n                ? Injector.create({\n                    providers: [\n                        {\n                            provide: this.config.converters.cmsDataInjectionToken,\n                            useValue: entry.convertedData,\n                        },\n                    ],\n                    parent: this.injector,\n                })\n                : this.injector;\n\n            if (this.component) {\n                this.component.destroy();\n            }\n            this.component = this.viewContainer.createComponent(entry.component, {\n                injector: inj,\n            });\n\n            // Output converter\n            this.component.instance?.output\n                ?.pipe(takeUntil(this.destroyed$))\n                .subscribe((output: any) => this.output.emit(output));\n\n            if (this.clazz) {\n                this.component.location.nativeElement.classList.add(this.clazz);\n            }\n\n            // @ts-ignore\n            this.component.instance.entry = entry;\n        }\n    }\n\n    ngOnDestroy(): void {\n        this.destroyed$.next(true);\n        this.destroyed$.complete();\n    }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from \"@angular/core\";\nimport { TypeCarousel } from \"./contentful-carousel.model\";\nimport { ContentfulComponent } from \"../ncr-contentful-components.model\";\nimport { CommonModule } from \"@angular/common\";\nimport { NcrCarouselModule } from \"@ncremental/carousel\";\nimport { NcrDynamicDirective } from \"../../directives/dynamic/ncr-dynamic.directive\";\nimport { DefaultBreakpoints } from \"../../models\";\nimport { NcrContentfulConfig } from \"../../config\";\n\n@Component({\n    selector: \"ncr-contentful-carousel\",\n    templateUrl: \"./contentful-carousel.component.html\",\n    styleUrls: [\"./contentful-carousel.component.scss\"],\n    standalone: true,\n    imports: [CommonModule, NcrCarouselModule, NcrDynamicDirective],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContentfulCarouselComponent extends ContentfulComponent<TypeCarousel> implements OnInit {\n    constructor(private config: NcrContentfulConfig) {\n        super();\n    }\n    visibleCount: {\n        [key in DefaultBreakpoints]: number;\n    } = {} as any;\n\n    ngOnInit(): void {\n        this.visibleCount = this.config.breakpointMapping\n            ? Object.keys(this.config.breakpointMapping).reduce((p: any, internalBreakpoint) => {\n                  return {\n                      ...p,\n                      [internalBreakpoint]:\n                          this.entry.fields.visibleCount[\n                              this.config.breakpointMapping![internalBreakpoint as DefaultBreakpoints]\n                          ],\n                  };\n              }, {})\n            : this.entry.fields.visibleCount;\n    }\n}\n","<ncr-carousel\n  class=\"carousel\"\n  [items]=\"entry.fields.items\"\n  [configuration]=\"{\n    visibleCount: visibleCount,\n    autoplayDelay: entry.fields.autoplayInterval,\n    dynamicHeight: false,\n    controls: entry.fields.showControls,\n    indicators: entry.fields.showPagination,\n    touchEnabled: entry.fields.swipeEnabled,\n    touchEnabledDesktop: entry.fields.swipeEnabled,\n  }\"\n  [template]=\"carouselItem\"\n>\n</ncr-carousel>\n\n<ng-template #carouselItem let-item=\"item\">\n  <ng-container [ncrDynamic]=\"item\"></ng-container>\n</ng-template>\n","import { NgModule } from \"@angular/core\";\nimport { ContentfulCarouselComponent } from \"./contentful-carousel.component\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponentsCarousel: {\n                    component: () =>\n                        import(\"./contentful-carousel.component\").then((m) => m.ContentfulCarouselComponent),\n                    responsiveFields: [\"visibleCount\"],\n                },\n            },\n        }),\n    ],\n})\nexport class ContentfulCarouselModule {\n    static component = ContentfulCarouselComponent;\n}\n","import {NgModule} from \"@angular/core\";\nimport {provideConfiguration} from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponents3dViewer: {\n                    component : () =>\n                        import(\n                            './contentful-3d-viewer.component'\n                            ).then((m) => m.Contentful3dViewerComponent),\n                }\n            },\n        })\n    ]\n})\nexport class Contentful3dViewerModule {\n}\n\n","import {NgModule} from \"@angular/core\";\nimport {provideConfiguration} from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrComponentsContainer: {\n                    component : () =>\n                        import(\n                            './contentful-container.component'\n                            ).then((m) => m.ContentfulContainerComponent),\n                }\n            },\n        })\n    ]\n})\nexport class ContentfulContainerModule {\n}\n\n","import {NgModule} from \"@angular/core\";\nimport {ContentfulCustomHtmlModule} from \"./contentful-custom-html/contentful-custom-html.module\";\nimport {ContentfulRichTextModule} from \"./contentful-rich-text/contentful-rich-text.module\";\nimport {ContentfulGridModule} from \"./contentful-grid/contentful-grid.module\";\nimport {ContentfulResponsiveMediaModule} from \"./contentful-responsive-media/contentful-responsive-media.module\";\nimport {ContentfulCarouselModule} from \"./contentful-carousel/contentful-carousel.module\";\nimport {Contentful3dViewerModule} from \"./contentful-3D-viewer/contentful-3d-viewer.module\";\nimport {ContentfulContainerModule} from \"./contentful-container/contentful-container.module\";\n\n@NgModule({\n    imports: [\n        ContentfulCustomHtmlModule,\n        ContentfulRichTextModule,\n        ContentfulGridModule,\n        ContentfulResponsiveMediaModule,\n        ContentfulCarouselModule,\n        Contentful3dViewerModule,\n        ContentfulContainerModule,\n    ],\n})\nexport class NcrContentfulComponentsModule {}\n","import {from, isObservable, Observable, of} from \"rxjs\";\n\nexport function wrapIntoObservable<T>(value: T | Promise<T> | Observable<T>): Observable<T> {\n    if (isObservable(value)) {\n        return value;\n    }\n\n    if (value instanceof Promise) {\n        // Use `Promise.resolve()` to wrap promise-like instances.\n        // Required ie when a Resolver returns a AngularJS `$q` promise to correctly trigger the\n        // change detection.\n        return from(Promise.resolve(value));\n    }\n\n    return of(value);\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {combineLatest, Observable, OperatorFunction} from 'rxjs';\nimport {filter, map, startWith, switchMap, take} from 'rxjs/operators';\nimport {GuardResult, UrlTree} from \"@angular/router\";\n\n\nconst INITIAL_VALUE = /* @__PURE__ */ Symbol('INITIAL_VALUE');\ndeclare type INTERIM_VALUES = typeof INITIAL_VALUE | GuardResult;\n\nexport function prioritizedGuardValue(): OperatorFunction<Observable<GuardResult>[], GuardResult> {\n    return switchMap((obs) => {\n        return combineLatest(\n            obs.map((o) => o.pipe(take(1), startWith(INITIAL_VALUE as INTERIM_VALUES))),\n        ).pipe(\n            map((results: INTERIM_VALUES[]) => {\n                for (const result of results) {\n                    if (result === true) {\n                        // If result is true, check the next one\n                        continue;\n                    } else if (result === INITIAL_VALUE) {\n                        // If guard has not finished, we need to stop processing.\n                        return INITIAL_VALUE;\n                    } else if (result === false || isRedirect(result)) {\n                        // Result finished and was not true. Return the result.\n                        // Note that we only allow false/UrlTree/RedirectCommand. Other values are considered invalid and\n                        // ignored.\n                        return result;\n                    }\n                }\n                // Everything resolved to true. Return true.\n                return true;\n            }),\n            filter((item): item is GuardResult => item !== INITIAL_VALUE),\n            take(1),\n        );\n    });\n}\n\nfunction isRedirect(val: INTERIM_VALUES): val is UrlTree {\n    return val instanceof UrlTree;\n}\n","import {NcrContentfulConfig, NcrContentfulRouteConfig} from \"@ncremental/ncr-contentful\";\nimport {UrlSegment} from \"@angular/router\";\n\nexport function getMatchingConfig(url: string, config: NcrContentfulConfig): NcrContentfulRouteConfig | undefined {\n    return getMatchingConfigWithParams(url, config)?.config;\n}\n\nexport function getMatchingConfigWithParams(url: string, config: NcrContentfulConfig): ConfigWithParams | undefined {\n    for (let routeName in config.routing) {\n        const routeConfig = config.routing[routeName];\n        routeConfig.regex.lastIndex = 0;\n        const result = routeConfig.regex.exec(url);\n        if (result) {\n            let params = {};\n            if(result?.groups){\n                params = Object\n                    .keys(result.groups)\n                    .reduce((p,c) => {\n                    return {\n                        ...p,\n                        [c] : new UrlSegment(result.groups![c], {}),\n                    }\n                }, {})\n            }\n            return {\n                config : routeConfig,\n                params,\n            };\n        }\n    }\n    return;\n}\n\n\ntype ConfigWithParams = {\n    config : NcrContentfulRouteConfig,\n    params : {\n        [key : string] : UrlSegment,\n    }\n}\n","import { LogEntry, LogManager } from './log-manager';\n\nexport class Logger {\n  private logManager: LogManager;\n  private minLevel: number;\n  private module: string;\n  private readonly levels: { [key: string]: number } = {\n    trace: 1,\n    debug: 2,\n    info: 3,\n    warn: 4,\n    error: 5\n  };\n\n  constructor(logManager: LogManager, module: string, minLevel: string) {\n    this.logManager = logManager;\n    this.module = module;\n    this.minLevel = this.levelToInt(minLevel);\n  }\n\n  /**\n   * Converts a string level (trace/debug/info/warn/error) into a number\n   *\n   * @param minLevel\n   */\n  private levelToInt(minLevel: string): number {\n    if (minLevel.toLowerCase() in this.levels) return this.levels[minLevel.toLowerCase()];\n    else return 99;\n  }\n\n  /**\n   * Central logging method.\n   */\n  public log(logLevel: string, messages: any[]): void {\n    const level = this.levelToInt(logLevel);\n    if (level < this.minLevel) return;\n\n    // Obtain the line/file through a thoroughly hacky method\n    // This creates a new stack trace and pulls the caller from it.  If the caller\n    // if .trace()\n    let lastTrace, filePath, fullMatch;\n    const error = new Error('');\n    try {\n      if (error.stack) {\n        const cla = error.stack.split('\\n');\n        let idx = 1;\n        while (idx < cla.length && cla[idx].includes('at Logger')) idx++;\n        if (idx < cla.length) {\n          [fullMatch, lastTrace, filePath] = cla[idx]\n            ?.slice(cla[idx].indexOf('at ') + 3, cla[idx].length)\n            ?.match(/(\\S+)\\s\\((.+?)\\)/) as string[];\n        }\n      }\n    } catch (e) {\n      lastTrace = this.module;\n      filePath = 'not found, likely to be index';\n    }\n\n    const logEntry: LogEntry = { level: logLevel, module: this.module, message: messages, filePath, lastTrace };\n    this.logManager.emit('log', logEntry);\n  }\n\n  // Should rarely be used. Trace will be logged for errors and we always log the calling function.\n  public trace(...messages: any[]): void {\n    this.log('trace', messages);\n  }\n\n  // use for debug information such as request payloads\n  public debug(...messages: any[]): void {\n    this.log('debug', messages);\n  }\n\n  // Used purpose for information such as process being initialized.\n  public info(...messages: any[]): void {\n    this.log('info', messages);\n  }\n\n  // Used for events that should be handled. For instance a user trying to access resources that are not allowed.\n  public warn(...messages: any[]): void {\n    this.log('warn', messages);\n  }\n\n  // Used for critical errors that should be looked at urgently. For instance, application crashing.\n  public error(...messages: any[]): void {\n    const { stack, message } = messages?.[0];\n    this.log('error', [messages, stack, ...messages].filter(Boolean));\n  }\n}\n","import { EventEmitter } from 'events';\nimport { Logger } from './logger';\n\n// @ts-ignore\nconst isBrowser = typeof window !== 'undefined';\nconst chalkPromise = import('chalk');\n\nexport class LogManager extends EventEmitter {\n  private options: LogOptions = {\n    showFilePath: true,\n    objectsToString: true,\n    showTimeDiff: true,\n    showTrace: true,\n    minLevels: {}\n  };\n\n  // Prevent the console logger from being added twice\n  private consoleLoggerRegistered: boolean = false;\n  public initialized?: Promise<boolean>;\n  private previousLogTimestamp = Date.now();\n  private logLevelColor: any = {};\n\n  public configure(options: LogOptions): LogManager {\n    this.options = Object.assign({}, this.options, options);\n    return this;\n  }\n\n  public getLogger(module: string): Logger {\n    let minLevel = 'none';\n    let match = '';\n\n    for (const key in this.options.minLevels) {\n      if (module.startsWith(key) && key.length >= match.length) {\n        minLevel = this.options.minLevels[key];\n        match = key;\n      }\n    }\n    const logger = new Logger(this, module, minLevel);\n    logger.info('logger', 'initialized');\n    return logger;\n  }\n\n  public onLogEntry(listener: (logEntry: LogEntry) => void): LogManager {\n    this.on('log', listener);\n    return this;\n  }\n\n  forceLength(message?: string, length = 30, truncate = true, filler = \"\") {\n    if (!message) {\n      return;\n    }\n    if (!truncate && message.length >= length) {\n      return message;\n    }\n\n    if (message.length > length) {\n      return message.slice(0, length - 3) + '...';\n    }\n    return (message + Array(length).fill(filler).join('')).slice(0, length);\n  }\n\n  getLogColor(logEntry: LogEntry): (arg0: string) => string {\n    return this.logLevelColor[logEntry.level] ?? ((s) => s);\n  }\n\n  public async registerConsoleLogger(): Promise<LogManager> {\n    let resolve: (arg0: any) => void;\n    this.initialized = new Promise((r) => (resolve = r));\n    if (this.consoleLoggerRegistered) return this;\n    if (!isBrowser) {\n      chalkPromise.then((chalkRef) => {\n        const chalk = chalkRef.default;\n        this.logLevelColor = {\n          trace: chalk.green,\n          debug: chalk.gray,\n          info: chalk.whiteBright,\n          warn: chalk.yellow,\n          error: chalk.red\n        };\n        resolve(true);\n      });\n    }\n\n    this.onLogEntry(async (logEntry) => {\n      const msg : (string|undefined)[] = [];\n\n      if (this.options.showFilePath) {\n        msg.push(logEntry.filePath);\n      }\n      // @ts-ignore\n      msg.push(`[${this.forceLength(logEntry.module)}]`);\n\n      if (this.options.showTimeDiff) {\n        const timestamp = Date.now();\n        msg.push(`[${this.forceLength('+' + (timestamp - this.previousLogTimestamp) + 'ms', 7, false)}]`);\n        this.previousLogTimestamp = timestamp;\n      }\n\n      if (this.options.showTrace) {\n        msg.push(this.forceLength(logEntry.lastTrace, 40));\n      }\n      if (this.options.objectsToString) {\n        msg.push(logEntry.message.map((m) => (m instanceof Object ? JSON.stringify(m) : m)).join('::'));\n      } else {\n        msg.push(logEntry.message.join('::'));\n      }\n\n      const coloredMessage = msg.filter(Boolean).map((m) => this.getLogColor(logEntry)(m!));\n\n      switch (logEntry.level) {\n        case 'trace':\n          console.trace(...coloredMessage);\n          break;\n        case 'debug':\n          console.debug(...coloredMessage);\n          break;\n        case 'info':\n          console.info(...coloredMessage);\n          break;\n        case 'warn':\n          console.warn(...coloredMessage);\n          break;\n        case 'error':\n          console.error(...coloredMessage);\n          break;\n        default:\n          console.log(`{${logEntry.level}} ${msg}`);\n      }\n    });\n\n    this.consoleLoggerRegistered = true;\n    return this;\n  }\n}\n\nexport interface LogEntry {\n  level: string;\n  module: string;\n  lastTrace?: string;\n  filePath?: string;\n  message: any[];\n}\n\nexport interface LogOptions {\n  objectsToString?: boolean;\n  showTrace?: boolean;\n  showTimeDiff?: boolean;\n  showFilePath?: boolean;\n  minLevels: { [module: string]: string };\n}\n\nconst loggingObj = new LogManager();\nloggingObj\n  .configure({\n    showTrace: false,\n    showFilePath: false,\n    minLevels: {\n      '': 'debug'\n    }\n  })\n  .registerConsoleLogger();\n\nexport const logging = loggingObj;\n","import {Injectable, Injector, Type} from \"@angular/core\";\nimport {documentToHtmlString} from \"@contentful/rich-text-html-renderer\";\nimport {BLOCKS, Document} from \"@contentful/rich-text-types\";\nimport {Entry} from \"contentful\";\nimport {NcrEntry} from \"../models/contentful.models\";\nimport {ContentfulComponent} from \"../components/ncr-contentful-components.model\";\nimport {ContentfulConfigComponent, NcrContentfulComponentConfig,} from \"../components/ncr-contentful-components.config\";\nimport {NcrContentfulConfig} from \"../config/ncr-contentful-config.token\";\nimport {logging} from \"../utils/logger\";\n\n@Injectable({\n    providedIn: \"root\",\n})\nexport class ContentfulConverterService {\n    private logger = logging.getLogger('ContentfulConverterService');\n\n    constructor(\n        private injector: Injector,\n        private contentfulConfig: NcrContentfulConfig,\n        private ncrConfig: NcrContentfulConfig\n    ) {\n    }\n\n    // private async convertProductInfo<T>(source: Entry<any>): Promise<Entry<T>> {\n    //   if (source?.fields?.productCode) {\n    //     // const productInfo = await this.productInfoConverter.convert(source as unknown as Entry<any>);\n    //     // (source as unknown as ContentfulProductInfoEntry).fields.productInfo = productInfo.data;\n    //   }\n    //   return source;\n    // }\n\n    public async loadComponent(\n        component: ContentfulConfigComponent\n    ): Promise<Type<any> | ContentfulConfigComponent> {\n        if (this.isLazyLoadedComponent(component)) {\n            return (await component()) as any;\n            // return module.component;\n        }\n        return component;\n    }\n\n    public getContentfulContentType(obj: Entry<any>): string {\n        return obj?.sys?.contentType?.sys?.id;\n    }\n\n    public getConfigForEntry(obj: Entry<any>): NcrContentfulComponentConfig {\n        const componentType = this.getContentfulContentType(obj);\n        //@ts-ignore\n        return this.getConfigForEntryType(componentType);\n    }\n\n    public getConfigForEntryType(componentType: string) {\n        const config = this.contentfulConfig?.components[componentType];\n        if (!config) {\n            this.logger.warn('config', 'not found', componentType);\n        }\n        return config || {};\n    }\n\n    async convert<T>(source: Entry<any, undefined>): Promise<T> {\n        if (!source) {\n            return Promise.reject(new Error(\"Source is undefined\"));\n        }\n\n        if (!(source instanceof Object)) {\n            return source;\n        }\n\n        // Convert product information\n        // TODO: Convert product info\n        // source = await this.convertProductInfo(source);\n        // Get converter\n        const {component, converter, responsiveFields} =\n            this.getConfigForEntry(source);\n\n        // Create enhanced entry\n        const ncrEntry: NcrEntry<any> = {\n            ...source,\n            component: (await this.loadComponent(component)) as unknown as Type<any>,\n        };\n\n        if (converter) {\n            return {\n                ...ncrEntry,\n                convertedData: await this.injector.get(converter).convert(source),\n            } as T;\n        }\n\n        // Apply conversion to fields\n        await Promise.all(\n            Object.keys(source?.fields || {}).map(async (fieldName) => {\n                const field = (source.fields as Record<string, any>)[fieldName];\n                if (this.isContentfulComponent(field)) {\n                    // @ts-ignore\n                    source.fields[fieldName] = await this.convert(field);\n                } else if (field instanceof Array) {\n                    if (responsiveFields?.includes(fieldName)) {\n                        const configBreakpoints = this.ncrConfig.breakpoints;\n\n                        source.fields[fieldName] = Object.assign(\n                            {},\n                            ...Object.entries(configBreakpoints).map(\n                                ([key, breakpoint], index) => {\n                                    return {\n                                        [key]:\n                                            field.length === Object.keys(configBreakpoints).length\n                                                ? field[index]\n                                                : field[0],\n                                    };\n                                }\n                            )\n                        );\n                    } else {\n                        // @ts-ignore\n                        source.fields[fieldName] = await Promise.all(\n                            field\n                                // .filter(this.isContentfulComponent.bind(this))\n                                .map(this.convert.bind(this))\n                        );\n                    }\n                } else if (field?.nodeType === \"document\") {\n                    // @ts-ignore\n                    source.fields[fieldName] = await this.convertDocument(field);\n                }\n            })\n        );\n        return ncrEntry as T;\n    }\n\n    private assetToHTML(node: any) {\n        if (node?.data?.target?.fields?.file?.details?.image) {\n            // is image\n            return `\n      <img\n        src=\"${node.data.target.fields.file.url}\"\n        height=\"${node.data.target.fields.file.details.image.height}\"\n        width=\"${node.data.target.fields.file.details.image.width}\"\n        alt=\"${node.data.target.fields.description}\"\n      />\n    `;\n        } else if (node?.data?.target?.fields?.file?.url) {\n            // is video\n            return `\n      <video width=\"100%\" height=\"auto\" autoplay=\"autoplay\" controls=\"\">\n        <source src=\"${node?.data?.target?.fields?.file?.url}\" type=\"${node?.data?.target?.fields?.file?.contentType}\">\n        Your browser does not support the video tag.\n      </video>\n      `;\n        }\n        return \"\";\n    }\n\n    private textToHTML(node: any) {\n        const richTextDocument: Document = {\n            nodeType: BLOCKS.DOCUMENT,\n            content: [node],\n            data: {},\n        };\n        return documentToHtmlString(richTextDocument);\n    }\n\n    private async convertDocument(field: any) {\n        const doc: any = [];\n        await Promise.all(\n            Object.keys(field.content).map(async (index) => {\n                const node = field.content[index];\n                switch (node?.nodeType) {\n                    case BLOCKS.EMBEDDED_ENTRY:\n                        doc[index] = await this.convert(node.data.target);\n                        break;\n                    case BLOCKS.PARAGRAPH:\n                        doc[index] = [];\n\n                        await Promise.all(\n                            Object.keys(node?.content).map(async (subIndex) => {\n                                const subNode = node.content[subIndex];\n                                if (subNode?.nodeType === \"text\" && subNode?.value?.length) {\n                                    doc[index][subIndex] = this.textToHTML(subNode);\n                                } else if (subNode?.data?.target) {\n                                    doc[index][subIndex] = await this.convert(\n                                        subNode.data.target\n                                    );\n                                }\n                            })\n                        );\n                        break;\n                    case BLOCKS.EMBEDDED_ASSET:\n                        doc[index] = this.assetToHTML(node);\n                        break;\n                    default:\n                        doc[index] = this.textToHTML(node);\n                }\n            })\n        );\n        // Get component\n        const component =\n            this.contentfulConfig?.components[\"ncrComponentsRichText\"].component;\n        // Return enhanced entry\n        return {\n            component: await this.loadComponent(component),\n            fields: {\n                content: doc.filter((node: any) => !Array.isArray(node) || node.length),\n            },\n        };\n    }\n\n    private isContentfulComponent(obj: Entry<any>): boolean {\n        return !!this.getContentfulContentType(obj);\n    }\n\n    private isLazyLoadedComponent(\n        component: ContentfulConfigComponent\n    ): component is () => Promise<ContentfulComponent<any>> {\n        return typeof component === \"function\" && !component.prototype;\n    }\n}\n","import {Injectable, OnDestroy} from \"@angular/core\";\nimport {ContentfulClientApi, createClient} from \"contentful\";\nimport {ContentfulConverterService} from \"./contentful-converter.service\";\nimport {\n    audit,\n    auditTime,\n    BehaviorSubject,\n    combineLatest,\n    distinctUntilChanged,\n    mapTo,\n    merge,\n    Observable,\n    of,\n    ReplaySubject,\n    Subject,\n    Subscription,\n    switchMap,\n    withLatestFrom,\n} from \"rxjs\";\nimport {filter, shareReplay, startWith, takeUntil, tap} from \"rxjs/operators\";\nimport {BasePage, NcrEntry, NcrPage} from \"../models/contentful.models\";\nimport {NcrContentfulConfig} from \"../config/ncr-contentful-config.token\";\nimport {ContentfulConfigDetails} from \"./contentful.config\";\nimport {ActivationStart, NavigationStart, Router} from \"@angular/router\";\nimport {logging} from \"../utils/logger\";\n\n@Injectable({\n    providedIn: \"root\",\n})\nexport class NcrContentfulService implements OnDestroy {\n    pageRenderingInProgress$ = new BehaviorSubject(false);\n    private logger = logging.getLogger('NcrContentfulService');\n    private destroyed$ = new Subject();\n    private _nextPage$: Subject<NcrEntry<any> | undefined> = new ReplaySubject(1);\n    private correctedCurrentPage$?: Observable<any>;\n    private pageGenerator: Subscription | undefined;\n    private client: ContentfulClientApi<undefined> | undefined;\n\n    constructor(\n        private contentfulConverterService: ContentfulConverterService,\n        private config: NcrContentfulConfig,\n        private router: Router,\n    ) {\n\n        const routerStatus = merge(\n            this.router.events.pipe(filter(e => e instanceof NavigationStart), mapTo(RouterStatus.NAVIGATING)),\n            this.router.events.pipe(filter(e => e instanceof ActivationStart), mapTo(RouterStatus.ACTIVATION_START)),\n        ).pipe(\n            startWith(RouterStatus.NAVIGATING),\n            tap(val => this.logger.info('routerStatus', val)),\n            shareReplay(1)\n        );\n\n        this.correctedCurrentPage$ =\n            this._nextPage$.pipe(\n                takeUntil(this.destroyed$),\n                tap((nextPage) => this.logger.info('_nextPage', nextPage?.sys?.id)),\n                withLatestFrom(routerStatus),\n                switchMap(([page, status]) => {\n                    return status === RouterStatus.ACTIVATION_START ?\n                        of(page) :\n                        of(page).pipe(audit(() => routerStatus.pipe(filter(status => status === RouterStatus.ACTIVATION_START))))\n                }),\n                distinctUntilChanged(),\n                tap((correctedPage) => this.logger.info('correctedPage', correctedPage?.sys?.id)),\n                shareReplay(1),\n            )\n\n        this.correctedCurrentPage$.subscribe();\n    }\n\n    async getClient() {\n        if (!this.client) {\n            const config = await this.getDynamicConfig();\n            this.client = createClient({\n                space: config?.space,\n                accessToken: config?.accessToken,\n                environment: config?.environment,\n            });\n        }\n\n        return this.client;\n    }\n\n\n    async setNextPage<T>(\n        generator: () => Promise<NcrEntry<any> | undefined>,\n        dependencies: Observable<any>[] = []\n    ) {\n        return new Promise((resolve, reject) => {\n            if (this.pageGenerator) {\n                this.pageGenerator.unsubscribe();\n                this.pageRenderingInProgress$.next(false);\n            }\n            this.pageGenerator = combineLatest(dependencies)\n                .pipe(\n                    takeUntil(this.destroyed$),\n                    startWith(null),\n                    auditTime(0),\n                )\n                .subscribe(async () => {\n                    this.pageRenderingInProgress$.next(true);\n                    try {\n                        const page = await generator();\n                        this._nextPage$.next(page);\n                        this.pageRenderingInProgress$.next(false);\n                        resolve(page);\n                    } catch (e) {\n                        reject(e);\n                    }\n                });\n        })\n    }\n\n    public getCurrentPage<T extends NcrPage<any> = BasePage>(): Observable<T> {\n        return this.correctedCurrentPage$ as Observable<T>;\n    }\n\n    public getNextPage<T extends NcrPage<any> = BasePage>(): Observable<T> {\n        return this._nextPage$.asObservable() as Observable<T>;\n    }\n\n\n    async getDynamicConfig(): Promise<ContentfulConfigDetails> {\n        // TODO Sync config dynamically\n        return this.config.contentful;\n    }\n\n    async getEntry<T extends NcrEntry<any>>(\n        type: string,\n        filters: any = {}\n    ): Promise<T> {\n        const entry = await this.getEntryInternal<T>(type, filters);\n        return this.contentfulConverterService.convert<T>(entry);\n    }\n\n    ngOnDestroy(): void {\n        this.destroyed$.next(true);\n        this.destroyed$.complete();\n    }\n\n    public async getEntryByTags<T extends NcrEntry<any>>(tags: string[]) {\n        let tagsRef = [...tags];\n        // Get Contentful client\n        const client = await this.getClient();\n        // Matches\n        // @ts-ignore\n        let matches: Array<Entry<any, undefined, string>>;\n        while (tagsRef.length) {\n            matches = (\n                await client.getEntries<any>({\n                    // @ts-ignore\n                    'metadata.tags.sys.id[all]': tagsRef.join(',')\n                })\n            ).items;\n            if (matches?.length) {\n                // found a match\n                return matches.find(\n                    (m) => m.metadata.tags.length === tagsRef.length && m.metadata.tags.every((t: any) => tagsRef.includes(t.sys.id))\n                );\n            }\n            tagsRef = tagsRef.slice(0, -1);\n        }\n        return null;\n    }\n\n    private async getFilteredEntries<T extends NcrEntry<any>>(type: string, filters: any = {}) {\n        const client = await this.getClient();\n        return client.getEntries<any>({\n            content_type: type,\n            locale: \"en-US\",\n            include: 10,\n            ...filters,\n        });\n    }\n\n    private getEntryInternal<T>(type: string, filters: any = {}) {\n        return this.getFilteredEntries<any>(type, {\n            limit: 1,\n            ...filters,\n        }).then((response) => response.items[0] || null);\n    }\n}\n\n\nenum RouterStatus {\n    NAVIGATING = 'navigating',\n    ACTIVATION_START = 'activationStart'\n}\n","import {NcrContentfulConfig} from \"@ncremental/ncr-contentful\";\nimport {Event, NavigationEnd, NavigationStart, Router} from \"@angular/router\";\nimport {filter, map, shareReplay, takeUntil, tap} from \"rxjs/operators\";\nimport {getMatchingConfig} from \"../routing/config_by_route\";\nimport {Injectable, OnDestroy} from \"@angular/core\";\nimport {Subject} from \"rxjs\";\n\n@Injectable({ providedIn : \"root\"})\nexport class NcrContentfulRoutingConfigService implements OnDestroy {\n    destroyed$ = new Subject();\n\n    config$ = this.getConfigForEvent((e) => e instanceof NavigationEnd).pipe(shareReplay(1));\n    futureConfig$ = this.getConfigForEvent((e) => e instanceof NavigationStart).pipe(shareReplay(1));\n\n    getConfigForEvent(predicate : (event : Event) => boolean){\n        return this.router.events.pipe(\n            filter(predicate),\n            map(event => getMatchingConfig((event as any).url, this.config)),\n        )\n    };\n\n    constructor(\n        protected router: Router,\n        protected config: NcrContentfulConfig,\n    ) {\n        this.futureConfig$.pipe(takeUntil(this.destroyed$)).subscribe();\n    }\n\n    ngOnDestroy(): void {\n        this.destroyed$.next(true);\n    }\n\n\n}\n","import {\n    BasePage,\n    NcrContentfulConfig,\n    NcrContentfulRouteConfig,\n    NcrContentfulService,\n    NcrMetaResolverService,\n    PageMetaData\n} from \"@ncremental/ncr-contentful\";\nimport {switchMap, tap} from \"rxjs/operators\";\nimport {combineLatest, first, from, Observable, of, ReplaySubject, using} from \"rxjs\";\nimport {Injectable, Injector} from \"@angular/core\";\nimport {Meta, Title} from \"@angular/platform-browser\";\nimport {NcrContentfulRoutingConfigService} from \"../config/ncr-contentful-routing-config.service\";\nimport {ActivatedRouteSnapshot, Router, RouterStateSnapshot} from \"@angular/router\";\nimport {logging} from \"../utils/logger\";\n\n@Injectable({providedIn: 'root'})\nexport class NcrContentfulPageMetaService {\n    private logger = logging.getLogger('NcrContentfulPageMetaService');\n\n    metaData$ = new ReplaySubject<PageMetaData | undefined>(1);\n\n    getMetaDataForRoute(page : BasePage, config: NcrContentfulRouteConfig, route : ActivatedRouteSnapshot){\n        const meta = page?.fields?.metaData?.fields as unknown as PageMetaData;\n        if (config?.metaResolver) {\n            const resolver = this.injector.get(config?.metaResolver) as NcrMetaResolverService;\n            return from(resolver.resolveMetadata(meta, route)).pipe(tap(data => console.log('metadata is', data)));\n        }\n        return of(meta);\n    }\n\n    constructor(\n        protected meta: Meta,\n        protected title: Title,\n        protected contentfulService: NcrContentfulService,\n        protected config: NcrContentfulConfig,\n        protected injector: Injector,\n        protected configService: NcrContentfulRoutingConfigService,\n        protected route: Router,\n    ) {\n    }\n\n    clean(){\n        this.metaData$.next(undefined);\n    }\n\n    resolve(route: ActivatedRouteSnapshot, state : RouterStateSnapshot): Observable<PageMetaData> {\n        return combineLatest([\n            this.contentfulService.getNextPage().pipe(tap(console.log)),\n            this.configService.futureConfig$.pipe(tap(console.log)),\n        ]).pipe(\n            switchMap(([page, config]) => {\n                return this.getMetaDataForRoute(page, config!, route);\n            }),\n            first(),\n            tap(data => {\n                this.metaData$.next(data);\n            })\n        )\n    }\n}\n","import {\n    ActivatedRouteSnapshot,\n    CanActivate,\n    CanActivateFn,\n    CanDeactivate,\n    CanMatch,\n    GuardResult,\n    MaybeAsync,\n    PRIMARY_OUTLET,\n    Resolve,\n    Route,\n    Router,\n    RouterStateSnapshot,\n    UrlSegment,\n    UrlSegmentGroup,\n    UrlTree,\n} from \"@angular/router\";\nimport {Injectable, InjectionToken, Injector} from \"@angular/core\";\nimport {NcrContentfulService} from \"../contentful/ncr-contentful.service\";\nimport {NcrContentfulConfig} from \"../config/ncr-contentful-config.token\";\nimport {NcrContentfulRouteConfig} from \"./ncr-contentful-routing.config\";\nimport {defer, first, firstValueFrom, of} from \"rxjs\";\nimport {wrapIntoObservable} from \"../utils/collection\";\nimport {prioritizedGuardValue} from \"../utils/prioritize_guard_value\";\nimport {getMatchingConfig} from \"./config_by_route\";\nimport {NcrContentfulPageMetaService} from \"../seo/ncr-contentful-page-meta.service\";\nimport {tap} from \"rxjs/operators\";\nimport {logging} from \"../utils/logger\";\nimport {NcrContentfulRoutingConfigService} from \"../config/ncr-contentful-routing-config.service\";\nimport {PageMetaData} from \"../models\";\n\n@Injectable({providedIn: \"root\"})\nexport class NcrContentfulPageResolver implements CanMatch, CanActivate, CanDeactivate<any>, Resolve<any> {\n    private logger = logging.getLogger('NcrContentfulPageResolver');\n\n    constructor(\n        protected contentfulService: NcrContentfulService,\n        protected config: NcrContentfulConfig,\n        protected injector: Injector,\n        protected routeConfigService: NcrContentfulRoutingConfigService,\n        protected metaService: NcrContentfulPageMetaService,\n        protected router: Router\n    ) {\n    }\n\n    // @ts-ignore\n    async canMatch(route: Route, segments: UrlSegment[]): Promise<boolean | UrlTree> {\n        const url = segments.join(\"/\");\n        this.logger.info('canMatch', url);\n        const routeConfig = await firstValueFrom(this.routeConfigService.futureConfig$);\n        if (!routeConfig) {\n            this.logger.info('canMatch', 'false', 'no matching configs');\n            return false;\n        }\n        return this.resolveContentfulPage(routeConfig, url)\n            .then(result => {\n                this.metaService.clean();\n                this.logger.info('canMatch', result, routeConfig);\n                return result;\n            });\n    }\n\n\n    resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<{ metaData: PageMetaData | void }> {\n        return Promise.all([\n            this.config.seo ? firstValueFrom(this.metaService.resolve(route, state)) : Promise.resolve(),\n        ]).then(([metaData]) => {\n            return {\n                metaData\n            };\n        });\n    }\n\n    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): MaybeAsync<GuardResult> {\n        const url = route.url.join(\"/\");\n        this.logger.info('canActivate', url);\n        const routeConfig = getMatchingConfig(url, this.config);\n\n        const canActivateArray = (routeConfig!.canActivate || [])\n\n        const canActivate = canActivateArray\n            .map((canActiveToken) => this.injector.get<any>(canActiveToken))\n            .map((guard) => {\n                const func: CanActivateFn = guard?.canActivate?.bind(guard) ?? guard;\n                return func;\n            });\n\n        if (routeConfig?.skipMatch) {\n            canActivate.push(() => {\n                return this.resolveContentfulPage(routeConfig!, url);\n            })\n        }\n        const canActivateObservables = canActivate\n            ?.map(canActivateFn => {\n                return defer(() => {\n                    const guardVal = canActivateFn(route, state);\n                    return wrapIntoObservable(guardVal).pipe(first(), tap((result) => {\n                        this.logger.info('canActivate', 'guardResult', result);\n                    }));\n                })\n            });\n\n\n        return canActivateObservables?.length ? of(canActivateObservables).pipe(prioritizedGuardValue()) : of(true);\n    }\n\n    canDeactivate(\n        component: any,\n        route: ActivatedRouteSnapshot,\n        state: RouterStateSnapshot,\n        nextState: RouterStateSnapshot\n    ): MaybeAsync<GuardResult> {\n        const url = route.url.join(\"/\");\n        const routeConfig = getMatchingConfig(url, this.config);\n\n        if (!routeConfig?.canDeactivate) {\n            return true;\n        }\n\n        const canDeactivate =\n            routeConfig!.canDeactivate\n                ?.map((canDeactiveToken) => this.injector.get(canDeactiveToken))\n                ?.map((guard) => {\n                    const func: CanActivateFn = guard?.canDeactivate?.bind(guard) ?? guard;\n                    return func;\n                });\n\n\n        const canDeactivateObservables =\n            canDeactivate\n                ?.map(canDeactivate => {\n                    return defer(() => {\n                        const guardVal = canDeactivate(route, state);\n                        return wrapIntoObservable(guardVal).pipe(first());\n                    })\n                });\n        return of(canDeactivateObservables)\n            .pipe(\n                prioritizedGuardValue(),\n                tap(() => {\n                    this.contentfulService.setNextPage(() => Promise.resolve(undefined));\n                })\n            )\n    }\n\n    private async resolveContentfulPage(routeConfig: NcrContentfulRouteConfig, url: string) {\n        const tree: UrlTree = this.router.parseUrl(url);\n        const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET]\n        const segments: UrlSegment[] = g?.segments;\n        const filter = routeConfig.filter\n            ? routeConfig.filter(segments)\n            : {\n                \"fields.slug\": url,\n            };\n\n        try {\n            await this.contentfulService.setNextPage(\n                () => this.contentfulService.getEntry<any>(routeConfig.contentfulType, filter),\n                routeConfig.dependencies\n            );\n            return true;\n        } catch (e) {\n            this.contentfulService.setNextPage(() => Promise.resolve(undefined));\n            console.warn(\n                `NcrContentfulPageResolver::page_not_found::${routeConfig.contentfulType}::${JSON.stringify(filter)}`\n            );\n            return false;\n        }\n    }\n}\n\n\nexport const NCR_RESOLVERS = new InjectionToken('Ncr Resolvers');\n","import {Component, ElementRef} from '@angular/core';\nimport {NcrContentfulService} from '../contentful/ncr-contentful.service';\nimport {NcrPage} from \"../models/contentful.models\";\n\n@Component({ template: '' })\nexport abstract class NcrContentfulAbstractPageComponent<PageType extends NcrPage<any>> {\n  public pageContent$ =\n    this.contentfulService.getCurrentPage<PageType>();\n\n  public constructor(\n    protected contentfulService: NcrContentfulService,\n    protected element: ElementRef<HTMLElement>,\n  ) {}\n}\n","import {Component} from \"@angular/core\";\nimport {NcrContentfulAbstractPageComponent} from \"./ncr-contentful-abstract-page.component\";\nimport {TypeBlankPage} from \"./ncr-contentful-blank-page/ncr-contentful-blank-page.model\";\nimport {CommonModule} from \"@angular/common\";\nimport {NcrDynamicDirective} from \"../directives/dynamic/ncr-dynamic.directive\";\n\n@Component({\n    selector: 'ncr-storefront',\n    standalone: true,\n    imports: [CommonModule, NcrDynamicDirective],\n    template: `\n        <ng-template #component [ncrDynamic]=\"(pageContent$ | async)!\"></ng-template>\n    `\n})\nexport class NcrStorefrontComponent extends NcrContentfulAbstractPageComponent<TypeBlankPage> {\n\n}\n","import {NgModule} from \"@angular/core\";\nimport {provideRouter, UrlSegment, withDebugTracing, withEnabledBlockingInitialNavigation} from \"@angular/router\";\nimport {NcrContentfulPageResolver} from \"./ncr-contentful-page.resolver\";\nimport {NcrStorefrontComponent} from \"../pages/ncr-storefront.component\";\nimport {STATIC_CONFIG_DO_NOT_USE_EXTERNALLY} from \"@ncremental/ncr-contentful\";\nimport {getMatchingConfigWithParams} from \"./config_by_route\";\n\n@NgModule({\n    imports: [],\n    providers: [\n        provideRouter([\n                {\n                    matcher: (segments: UrlSegment[]) => {\n                        const matchingConfig = getMatchingConfigWithParams(segments.join('/'), STATIC_CONFIG_DO_NOT_USE_EXTERNALLY);\n                        if (matchingConfig?.config?.skipMatch) {\n                            return ({consumed: [], posParams: matchingConfig?.params})\n                        }\n\n                        return ({consumed: segments, posParams: matchingConfig?.params})\n                    },\n                    resolve: {\n                        ncrData: NcrContentfulPageResolver,\n                    },\n                    canMatch: [NcrContentfulPageResolver],\n                    canActivate: [NcrContentfulPageResolver],\n                    canDeactivate: [NcrContentfulPageResolver],\n                    component: NcrStorefrontComponent,\n                    runGuardsAndResolvers: 'always',\n                },\n            ], withEnabledBlockingInitialNavigation(),\n            withDebugTracing()),\n    ],\n})\nexport class NcrContentfulRoutingModule {\n}\n","import { NgModule } from \"@angular/core\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrDecoratorsLink: {\n                    component: () => import(\"./contentful-link.component\").then((m) => m.ContentfulLinkComponent),\n                },\n            },\n        }),\n    ],\n})\nexport class ContentfulLinkModule {}\n","import { NgModule } from \"@angular/core\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrDecoratorsPosition: {\n                    component: () =>\n                        import(\"./contentful-position.component\").then((m) => m.ContentfulPositionComponent),\n                },\n            },\n        }),\n    ],\n})\nexport class ContentfulPositionModule {}\n","import { NgModule } from \"@angular/core\";\nimport { provideConfiguration } from \"../../config\";\n\n@NgModule({\n    providers: [\n        provideConfiguration({\n            components: {\n                ncrDecoratorsAnimation: {\n                    component: () =>\n                        import(\"./contentful-animation.component\").then((m) => m.ContentfulAnimationComponent),\n                },\n            },\n        }),\n    ],\n})\nexport class ContentfulAnimationModule {}\n","import { NgModule } from \"@angular/core\";\nimport { ContentfulLinkModule } from \"./contentful-link/contentful-link.module\";\nimport { ContentfulPositionModule } from \"./contentful-position/contentful-position.module\";\nimport {ContentfulAnimationModule} from \"./contentful-animation/contentful-animation.module\";\n\n@NgModule({\n    imports: [\n        ContentfulLinkModule,\n        ContentfulPositionModule,\n        ContentfulAnimationModule,\n    ],\n})\nexport class NcrContentfulDecoratorsModule {}\n","import {map, Observable, withLatestFrom} from \"rxjs\";\nimport {NcrContentfulPageMetaService} from \"../seo/ncr-contentful-page-meta.service\";\nimport {Inject, Injectable, InjectionToken} from \"@angular/core\";\n\nexport const externalMetaService = new InjectionToken('ncrTempToken');\n\n@Injectable({\n    providedIn: \"root\",\n})\nexport class ContentfulSeoService {\n    constructor(\n        protected ncrContentfulPageMetaService: NcrContentfulPageMetaService,\n        @Inject(externalMetaService) private originalClass: any,\n    ) {\n    }\n\n    getMeta(): Observable<any | null> {\n        return this.originalClass.getMeta()\n            .pipe(\n                withLatestFrom(this.ncrContentfulPageMetaService.metaData$),\n                map(([spartacusMeta, ncrContentfulMeta]) => {\n                    return {\n                        ...(spartacusMeta || {}),\n                        ...(ncrContentfulMeta || {}),\n                    }\n                })\n            );\n    }\n}\n","import {ModuleWithProviders, NgModule, Provider, ProviderToken} from \"@angular/core\";\nimport {NcrContentfulPagesModule} from \"./pages/ncr-contentful-pages.module\";\nimport {NcrContentfulConfigModule} from \"./config/ncr-contentful-config.module\";\nimport {NcrContentfulComponentsModule} from \"./components/ncr-contentful-components.module\";\nimport {NcrContentfulRoutingModule} from \"./routing/ncr-contentful-routing.module\";\nimport {NcrContentfulDecoratorsModule} from \"./decorators/contentful-decorators.module\";\nimport {provideConfiguration} from \"./config\";\nimport {ContentfulSeoService, externalMetaService} from \"./contentful/contentful-seo.service\";\nimport {NCR_RESOLVERS} from \"./routing/ncr-contentful-page.resolver\";\n\n@NgModule({\n    imports: [\n        NcrContentfulConfigModule,\n        NcrContentfulComponentsModule,\n        NcrContentfulDecoratorsModule,\n        NcrContentfulPagesModule,\n        NcrContentfulRoutingModule,\n    ],\n    declarations: [],\n})\nexport class NcrContentfulModule {\n    static forRoot(...features: Array<Provider>[]): ModuleWithProviders<NcrContentfulModule> {\n        return {\n            ngModule: NcrContentfulModule,\n            providers: [\n                ...features?.flatMap(v => v),\n            ]\n        }\n    }\n}\n\nexport function withSEO(metaService: any): Array<Provider> {\n    return [\n        {\n            provide: metaService,\n            useExisting: ContentfulSeoService,\n        },\n        {\n            provide: NCR_RESOLVERS,\n            multi: true,\n            useExisting: ContentfulSeoService\n        },\n        {\n            provide: externalMetaService,\n            useClass: metaService,\n        },\n        provideConfiguration({\n            seo: {\n                enabled: true,\n                metaService\n            }\n        })\n    ]\n}\n\nexport const withConverters = function withConverter(cmsDataInjectionToken: ProviderToken<any>): Array<Provider> {\n    return [\n        provideConfiguration({\n            converters: {\n                enabled: true,\n                cmsDataInjectionToken\n            }\n        })\n    ]\n}\n","import {EntrySkeletonType, FieldsType} from \"contentful\";\nimport {Type} from \"@angular/core\";\nimport {ChainModifiers} from \"contentful/dist/types/types/client\";\nimport {LocaleCode} from \"contentful/dist/types/types/locale\";\nimport {BaseEntry, EntryFieldType, EntryFieldTypes, ResolvedLink} from \"contentful/dist/types/types/entry\";\nimport {Metadata} from \"contentful/dist/types/types/metadata\";\nimport {AssetFields, AssetSys} from \"contentful/dist/types/types/asset\";\n\nexport interface NcrAsset {\n    sys: AssetSys;\n    fields: AssetFields;\n    metadata: Metadata;\n}\n\nexport type CustomResolvedField<\n    Field extends EntryFieldType<EntrySkeletonType>,\n    Modifiers extends ChainModifiers,\n    Locales extends LocaleCode = LocaleCode,\n> =\n    Field extends ResponsiveField<infer ItemType extends EntryFieldType<EntrySkeletonType>>\n        ? ResponsiveField<CustomResolvedField<ItemType, Modifiers, Locales>>\n        : Field extends EntryFieldTypes.Array<infer Item>\n            ? Array<ResolvedLink<Item, Modifiers, Locales>>\n            : ResolvedLink<Field, Modifiers, Locales>;\n\nexport type CustomEntry<\n    EntrySkeleton extends EntrySkeletonType = EntrySkeletonType,\n    Modifiers extends ChainModifiers = ChainModifiers,\n    Locales extends LocaleCode = LocaleCode,\n> = BaseEntry & {\n    sys: {\n        contentType: {\n            sys: {\n                id: EntrySkeleton[\"contentTypeId\"];\n            };\n        };\n    };\n    fields: {\n        [FieldName in keyof EntrySkeleton[\"fields\"]]: CustomResolvedField<\n            EntrySkeleton[\"fields\"][FieldName],\n            Modifiers,\n            Locales\n        > extends never\n            ? EntrySkeleton[\"fields\"][FieldName]\n            : CustomResolvedField<EntrySkeleton[\"fields\"][FieldName], Modifiers, Locales>;\n    };\n};\n\nexport enum DefaultBreakpoints {\n    xs = \"xs\",\n    sm = \"sm\",\n    md = \"md\",\n    lg = \"lg\",\n    xl = \"xl\",\n}\n\nexport type ResponsiveField<T, CustomBreakpoints = {}> = {\n    [Key in keyof (typeof DefaultBreakpoints & CustomBreakpoints)]?: T;\n};\n\nexport interface NcrEntry<T extends FieldsType> extends CustomEntry<EntrySkeletonType<T>, undefined> {\n    convertedData?: any;\n    component: Type<any>;\n    responsiveField?: string[];\n}\n\nexport type NcrPage<T extends FieldsType> =\n    NcrEntry<{ seoMeta: NcrEntry<any>, metaData: NcrEntry<PageMetaData> } & T>;\n\nexport type BasePage = NcrPage<{}>;\n\nexport type EntryFieldExtract<T> = T extends NcrEntry<infer K> ? K : never;\n\nexport type TypeLink = NcrEntry<{\n    href: EntryFieldTypes.Text;\n    item: NcrEntry<any>;\n    target: string;\n}>;\n\nexport type PageMetaData = {\n    /**\n     * the page title is used for the page title tag which\n     * is visible in the browser navigation as well as in the\n     * Search Engine Result Page\n     */\n    title: string;\n\n    /**\n     * The page description is used in the Search Engine Result Page.\n     */\n    description: string;\n\n    /**\n     * The robots information drives search engines to index the page and\n     * follow links in the page.\n     */\n    robots: PageRobotsMeta[];\n\n    /**\n     * Image that can be added to the og:image metatag.\n     */\n    image: string;\n\n    customMeta: CustomMeta;\n}\n\nexport interface CustomMeta {\n    [key: string]: string;\n}\n\nexport enum PageRobotsMeta {\n    NOINDEX = 'noindex',\n    NOFOLLOW = 'nofollow',\n}\n\n\n","import {Component, ElementRef, HostBinding, Input, Renderer2} from '@angular/core';\nimport {Asset} from \"contentful/dist/types/types/asset\";\nimport {CommonModule} from \"@angular/common\";\nimport {NcrContentfulConfig} from \"../../config\";\n\n@Component({\n  selector: 'ncr-contentful-asset',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './contentful-asset.component.html'\n})\nexport class ContentfulAssetComponent {\n  @Input() asset! : Asset<undefined>;\n  @HostBinding('class') @Input('class') clazz? : string;\n\n  constructor(\n      private renderer: Renderer2,\n  ) {\n  }\n\n\n  mediaLoadHandler(placeholder: HTMLElement, video: HTMLElement): void {\n    this.renderer.setStyle(placeholder, \"display\", \"none\");\n    this.renderer.removeAttribute(video, \"style\");\n  }\n}\n","<ng-container *ngIf=\"asset.fields.file?.contentType?.startsWith('image/')\">\n  <img\n    class=\"media-element\"\n    [src]=\"asset.fields.file?.url\"\n    [alt]=\"asset.fields.title\"\n    [width]=\"asset.fields.file!.details.image?.width\"\n    [height]=\"asset.fields.file!.details.image?.height\"\n    loading=\"lazy\"\n  />\n</ng-container>\n<ng-container *ngIf=\"asset.fields.file?.contentType?.startsWith('video/')\">\n  <div class=\"media-element\">\n    <div class=\"media-placeholder\" #placeholder></div>\n    <video\n      style=\"opacity: 0; position: absolute; pointer-events: none\"\n      [src]=\"asset.fields.file!.url\"\n      #video\n      loop\n      autoplay\n      controls\n      loading=\"lazy\"\n      (loadedmetadata)=\"mediaLoadHandler(placeholder, video)\"\n    >\n      Your browser does not support the video tag.\n    </video>\n  </div>\n</ng-container>\n","import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    NgZone,\n    OnInit,\n    ViewChild,\n} from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { NcrDynamicDirective } from \"../../directives/dynamic/ncr-dynamic.directive\";\nimport { ContentfulComponent } from \"../../components/ncr-contentful-components.model\";\nimport { TypeAnimation } from \"./contentful-animation.model\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\n@Component({\n    selector: \"ncr-contentful-animation\",\n    templateUrl: \"./contentful-animation.component.html\",\n    styles: [\":host{display: block;}\"],\n    standalone: true,\n    styleUrls: [],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [CommonModule, NcrDynamicDirective],\n})\nexport class ContentfulAnimationComponent extends ContentfulComponent<TypeAnimation> implements OnInit, AfterViewInit {\n    static registered = false;\n    constructor(\n        private elementRef: ElementRef,\n        private ngZone: NgZone\n    ) {\n        super();\n    }\n\n    ngOnInit(): void {}\n\n    ngAfterViewInit(): void {\n\n        if(this.entry.fields.gsapAnimation){\n            this.ngZone.runOutsideAngular(() => {\n                if (!ContentfulAnimationComponent.registered) {\n                    ContentfulAnimationComponent.registered = true;\n                    gsap.registerPlugin(ScrollTrigger);\n                }\n\n                let animations: any[] =\n                    this.entry.fields.gsapAnimation instanceof Array\n                        ? (this.entry.fields.gsapAnimation as any[])\n                        : [this.entry.fields.gsapAnimation];\n\n                // Timelines need to be chained. Therefor we keep a reference to the previously returned GSAP\n                const shouldChain = animations[0][0] === \"timeline\";\n                let lastRef = gsap;\n\n                for (const animation of animations) {\n                    this.setEncapsulatedTrigger(animation);\n                    this.setEncapsulatedSelectors(animation);\n\n                    const gsapObject: any = shouldChain ? lastRef : gsap;\n                    // @ts-ignore\n                    try{\n                        lastRef = gsapObject[animation[0]].apply(gsapObject, Object.values(animation).slice(1));\n                    }catch(e){\n                        console.error(`ContentfulAnimationComponent::error::${this.entry.sys.id}`,e)\n                    }\n\n                }\n            });\n        }\n    }\n\n    private setEncapsulatedSelectors(animation: any) {\n        if (typeof animation[1] === \"string\") {\n            // If animation's 2nd element is a string, assume it's a selector and given it actual elements to ensure encapsulation\n            animation[1] = animation[1]\n                ? this.elementRef.nativeElement.querySelectorAll(animation[1])\n                : [this.elementRef.nativeElement];\n        }\n    }\n\n    private setEncapsulatedTrigger(animation: any) {\n        for (const key in animation) {\n            const animationAttribute = animation[key];\n            if (animationAttribute?.scrollTrigger && !animationAttribute.scrollTrigger.trigger) {\n                animationAttribute.scrollTrigger.trigger = [this.elementRef.nativeElement];\n            }\n        }\n    }\n}\n","<ng-template [ncrDynamic]=\"entry.fields.item\"></ng-template>\n","import {Entry} from \"contentful\";\n\n/**\n * A converter is used to convert Contentful Data model to Spartacus existing data model\n */\nexport class AbstractConverter<T, K> {\n    async convert(source: Entry): Promise<any> {\n        return new Promise((resolve, reject) => {\n            // Resolve or reject the promise as needed\n            // You might want to implement the actual conversion logic here\n            // For now, let's resolve with an empty object\n            resolve({});\n        });\n    }\n}\n","import {overlayElementManager} from './overlay-element-manager';\nimport {OverlayManager} from \"./overlay-manager\";\n\nexport class OverlayActionManager {\n\n    toggleVisibility(element: HTMLElement, isVisible: boolean): void {\n        if (element) {\n            element.classList.toggle('visible', isVisible);\n        }\n    }\n\n    bindParentButton(parentOverlayElement: HTMLElement, parentOverlayElementActions: HTMLElement) {\n        return () => {\n            this.toggleVisibility(parentOverlayElement, true);\n            this.toggleVisibility(parentOverlayElementActions, true);\n            overlayElementManager.hideAllChildren(parentOverlayElement.id);\n        };\n    }\n\n    bindChildButton(children: string[], overlay: HTMLElement, actionDiv: HTMLElement) {\n        return () => {\n            children?.forEach((childId) => {\n                const childOverlayElement = document.getElementById(childId);\n                const childOverlayElementActions = document.getElementById(`${childId}-actions`);\n\n                this.toggleVisibility(overlay, false);\n                this.toggleVisibility(actionDiv, false);\n                this.toggleVisibility(childOverlayElement!, true);\n                this.toggleVisibility(childOverlayElementActions!, true);\n            });\n        };\n    }\n\n    bindHideButton(isHidden: boolean, hideAllButton: HTMLElement, overlay: HTMLElement, overlayText: HTMLElement, parentButton: HTMLElement, childButton: HTMLElement) {\n        return () => {\n            const children = OverlayManager.componentHierarchyMap.get(overlay.id);\n            const parentId = OverlayManager.getParentId(overlay.id);\n\n            hideAllButton.textContent = isHidden ? 'Hide' : 'Show';\n\n            this.toggleVisibility(overlay, isHidden);\n            this.toggleVisibility(overlayText, isHidden);\n            if (!isHidden) {\n                this.toggleVisibility(parentButton, false);\n                this.toggleVisibility(childButton, false);\n            } else {\n                this.toggleVisibility(parentButton, !!parentId);\n                this.toggleVisibility(childButton, !!children);\n            }\n\n            isHidden = !isHidden;\n        };\n    }\n}\n\nexport const overlayActionManager = new OverlayActionManager();\n","import {overlayActionManager} from './overlay-actions-manager';\nimport {OverlayManager} from \"./overlay-manager\";\n\nclass OverlayElementManager {\n    constructor() {\n    }\n\n    createOverlayElement(overlayId: string): HTMLElement {\n        return this.htmlToNode(`\n      <div class=\"overlay visible\" id=\"${overlayId}\"></div>\n    `) as HTMLElement;\n    }\n\n    createOverlayActions(overlay: HTMLElement, entry: any): HTMLElement {\n        const overlayId = entry.sys.id;\n        const actionDiv = this.htmlToNode(`\n      <div class=\"overlay-actions-container visible\" id=\"${overlayId}-actions\"></div>\n    `) as HTMLElement;\n\n        const overlayText = this.createOverlayText(entry, overlayId);\n        const parentButton = this.createParentButton(overlay);\n        const childButton = this.createChildButton(overlay, actionDiv);\n        const hideButton = this.createHideButton(overlayText, parentButton, childButton, overlay);\n\n        actionDiv.append(overlayText, parentButton, childButton, hideButton);\n\n        return actionDiv;\n    }\n\n    private createOverlayText(entry: any, overlayId: string): HTMLElement {\n        return this.htmlToNode(`\n      <a \n        href=\"https://app.contentful.com/spaces/${entry.sys.space.sys.id}/environments/${entry.sys.environment.sys.id}/entries/${overlayId}\"\n        target=\"blank\"\n        class=\"overlay-anchor visible actions\">\n        <i class=\"fa-solid fa-arrow-up-right-from-square\"></i></a>\n    `) as HTMLElement;\n    }\n\n    private htmlToNode(html: string): Node {\n        const template = document.createElement('template');\n        template.innerHTML = html.trim();\n        const nNodes = template.content.childNodes.length;\n        if (nNodes !== 1) {\n            throw new Error(\n                `html parameter must represent a single node; got ${nNodes}. ` +\n                'Note that leading or trailing spaces around an element in your ' +\n                'HTML, like \" <img/> \", get parsed as text nodes neighbouring ' +\n                'the element; call .trim() on your input to avoid this.'\n            );\n        }\n        return template.content.firstChild!;\n    }\n\n\n    private createParentButton(\n        overlay: HTMLElement\n    ): HTMLElement {\n\n        const parentId = OverlayManager.getParentId(overlay.id);\n        const parentOverlayElement = document.getElementById(parentId!);\n        const parentOverlayElementActions = document.getElementById(`${parentId}-actions`);\n\n        const parentButton = this.htmlToNode(`\n    <button\n      class=\"actions visible\">\n      Show Parent\n      </button>\n    `) as HTMLElement;\n\n        overlayActionManager.toggleVisibility(parentButton, !!parentOverlayElement);\n\n        parentButton.addEventListener('click', overlayActionManager.bindParentButton(parentOverlayElement!, parentOverlayElementActions!));\n\n        return parentButton;\n    }\n\n    private createChildButton(overlay: HTMLElement, actionDiv: HTMLElement): HTMLElement {\n\n        const childButton = this.htmlToNode(`\n    <button\n      class=\"actions visible\">\n      Show Child\n      </button>\n    `) as HTMLElement;\n\n        const children = OverlayManager.componentHierarchyMap.get(overlay.id);\n        overlayActionManager.toggleVisibility(childButton, !!children?.length);\n\n        childButton.addEventListener('click', overlayActionManager.bindChildButton(children!, overlay, actionDiv));\n\n        return childButton;\n    }\n\n    private createHideButton(\n        overlayText: HTMLElement,\n        parentButton: HTMLElement,\n        childButton: HTMLElement,\n        overlay: HTMLElement\n    ): HTMLElement {\n        const hideButton = this.htmlToNode(`\n    <button\n      class=\"actions visible\">\n      Hide\n      </button>\n    `) as HTMLElement;\n\n        let isHidden = false;\n\n        hideButton.addEventListener('click', overlayActionManager.bindHideButton(isHidden, hideButton, overlay, overlayText, parentButton, childButton));\n\n        return hideButton;\n    }\n\n    public hideAllChildren(overlayId: string): void {\n        const children = OverlayManager.componentHierarchyMap.get(overlayId);\n        if (children && children.length > 0) {\n            children.forEach((childId) => {\n                const childOverlayElement = document.getElementById(childId);\n                const childOverlayElementActions = document.getElementById(`${childId}-actions`);\n\n                overlayActionManager.toggleVisibility(childOverlayElement!, false);\n                overlayActionManager.toggleVisibility(childOverlayElementActions!, false);\n\n                // Recursively hide sub-children\n                this.hideAllChildren(childId);\n            });\n        }\n    }\n}\n\nexport const overlayElementManager = new OverlayElementManager();\n","import {Injectable} from '@angular/core';\nimport {overlayElementManager} from \"./overlay-element-manager\";\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class OverlayManager {\n    public static componentHierarchyMap: Map<string, string[]> = new Map();\n\n    // Method to get a parent ID (if any) for a given child ID\n    public static getParentId(childId: string): string | null {\n        for (const [parentId, children] of OverlayManager.componentHierarchyMap.entries()) {\n            if (children.includes(childId)) {\n                return parentId;\n            }\n        }\n        return null;\n    }\n\n    public createOverlay(targetElement: HTMLElement, entry: any): HTMLElement {\n        const overlayId = entry.sys.id;\n        const parentId = OverlayManager.getParentId(overlayId);\n\n        this.hideExistingOverlay(document.getElementById(parentId!));\n        this.hideExistingOverlay(document.getElementById(`${parentId}-actions`));\n\n        const overlayElement = overlayElementManager.createOverlayElement(overlayId);\n        const overlayActions = overlayElementManager.createOverlayActions(overlayElement, entry);\n\n        document.body.appendChild(overlayElement);\n        document.body.appendChild(overlayActions);\n\n        this.setupOverlayUpdate(targetElement, overlayElement);\n        this.setupOverlayUpdate(targetElement, overlayActions);\n\n        return overlayElement;\n    }\n\n\n    private setupOverlayUpdate(targetElement: HTMLElement, overlay: HTMLElement) {\n        const updateOverlay = () => {\n            const rect = targetElement.getBoundingClientRect();\n            if (!overlay.id.includes('-actions')) {\n                overlay.style.width = `${rect.width}px`;\n                overlay.style.height = `${rect.height}px`;\n                overlay.style.top = `${rect.top + window.scrollY}px`;\n            } else {\n                overlay.style.top = `${rect.top + window.scrollY - 40}px`;\n            }\n            overlay.style.left = `${rect.left + window.scrollX}px`;\n        };\n\n        updateOverlay();\n\n        const observer = new MutationObserver(updateOverlay);\n        observer.observe(targetElement, {attributes: true, childList: true, subtree: true});\n\n        const throttledUpdateOverlay = this.throttle(updateOverlay, 1000);\n        window.addEventListener('scroll', throttledUpdateOverlay);\n    }\n\n    private throttle(fn: () => void, delay: number): () => void {\n        let lastCall = 0;\n\n        return () => {\n            const now = Date.now();\n\n            if (now - lastCall >= delay) {\n                fn();\n                lastCall = now;\n            }\n        };\n    }\n\n    private hideExistingOverlay(parentOverlayElement: HTMLElement | null) {\n        if (parentOverlayElement) {\n            parentOverlayElement.classList.remove('visible');\n        }\n    }\n\n    public addToComponentHierarchyMap(parentId: string, childId: string) {\n        if (!OverlayManager.componentHierarchyMap.has(parentId)) {\n            OverlayManager.componentHierarchyMap.set(parentId, []);\n        }\n        OverlayManager.componentHierarchyMap.get(parentId)?.push(childId);\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NcrContentfulConfig","EventEmitter","merge","switchMap","i1.ContentfulConverterService","i2.NcrContentfulConfig","i1","i2","i3.NcrContentfulRoutingConfigService","i4","i1.NcrContentfulService","i4.NcrContentfulPageMetaService","i5","STATIC_CONFIG_DO_NOT_USE_EXTERNALLY","map"],"mappings":"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"}