{"version":3,"file":"clock-ie7gwg04.js","sources":["packages/vanilla/lib/features/clock/src/clock.client-config.ts","packages/vanilla/lib/features/clock/src/clock.html","packages/vanilla/lib/features/clock/src/clock.component.ts","packages/vanilla/lib/features/clock/src/clock-bootstrap.service.ts","packages/vanilla/lib/features/clock/src/clock.feature.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { ClientConfigProductName, LazyClientConfig, LazyClientConfigBase, LazyClientConfigService } from '@frontend/vanilla/core';\n\n/**\n * @stable\n */\n@LazyClientConfig({ key: 'vnClock', product: ClientConfigProductName.SF })\n@Injectable({\n providedIn: 'root',\n useFactory: clockConfigFactory,\n deps: [LazyClientConfigService],\n})\nexport class ClockConfig extends LazyClientConfigBase {\n slotName: string;\n dateTimeFormat: string;\n useWithTimeZone: boolean;\n}\n\nexport function clockConfigFactory(service: LazyClientConfigService) {\n return service.get(ClockConfig);\n}\n","@if (commonMessages.ClockText; as clockText) {\n {{ clockText }}\n}\n{{ time() | date: format }}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit, ViewEncapsulation, inject, signal } from '@angular/core';\n\nimport {\n CommonMessages,\n DateTimeService,\n HtmlNode,\n LocalStoreKey,\n LocalStoreService,\n SlotName,\n WebWorkerService,\n WorkerType,\n} from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { ClockConfig } from './clock.client-config';\n\n@Component({\n standalone: true,\n imports: [CommonModule],\n selector: 'vn-clock',\n templateUrl: 'clock.html',\n styleUrls: ['../../../../../themepark/themes/whitelabel/components/clock/styles.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ClockComponent implements OnInit, OnDestroy {\n @Input() format: string;\n @Input() slotName: SlotName;\n\n readonly time = signal(new Date());\n\n commonMessages = inject(CommonMessages);\n private clockConfig = inject(ClockConfig);\n private htmlNode = inject(HtmlNode);\n private localStoreService = inject(LocalStoreService);\n private webWorkerService = inject(WebWorkerService);\n private dateTimeService = inject(DateTimeService);\n\n private htmlNodeClassName: string;\n\n async ngOnInit() {\n await firstValueFrom(this.clockConfig.whenReady);\n\n if (this.clockConfig.dateTimeFormat) {\n this.format = this.clockConfig.dateTimeFormat;\n } else if (!this.format) {\n this.format = 'mediumTime';\n }\n\n this.htmlNodeClassName = `${this.slotName?.toLowerCase() ?? 'custom'}-clock-shown`;\n this.htmlNode.setCssClass(this.htmlNodeClassName, true);\n\n this.storeSownCount();\n\n this.webWorkerService.createWorker(WorkerType.ClockInterval, { interval: 1000 }, () => {\n this.time.update(() => (this.clockConfig.useWithTimeZone ? this.dateTimeService.convertLocalToUserTimezone(new Date()) : new Date()));\n });\n }\n\n ngOnDestroy() {\n this.webWorkerService.removeWorker(WorkerType.ClockInterval);\n this.htmlNode.setCssClass(this.htmlNodeClassName, false);\n }\n\n private storeSownCount() {\n let clockShowCounter = this.localStoreService.get(LocalStoreKey.ClockShowTimes);\n\n if (clockShowCounter) {\n if (clockShowCounter > 2) {\n this.localStoreService.set(LocalStoreKey.ClockShowTimes, 0);\n } else {\n this.localStoreService.set(LocalStoreKey.ClockShowTimes, clockShowCounter++);\n }\n } else {\n this.localStoreService.set(LocalStoreKey.ClockShowTimes, 1);\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\n\nimport { DynamicLayoutService, EmbeddableComponentsService, OnFeatureInit } from '@frontend/vanilla/core';\nimport { firstValueFrom } from 'rxjs';\n\nimport { ClockConfig } from './clock.client-config';\nimport { ClockComponent } from './clock.component';\n\n@Injectable()\nexport class ClockBootstrapService implements OnFeatureInit {\n private config = inject(ClockConfig);\n private dynamicLayoutService = inject(DynamicLayoutService);\n private embeddableComponentsService = inject(EmbeddableComponentsService);\n\n async onFeatureInit() {\n this.embeddableComponentsService.registerEmbeddableComponent(ClockComponent);\n\n await firstValueFrom(this.config.whenReady);\n\n if (this.config.slotName) {\n this.dynamicLayoutService.addFirstComponent(this.config.slotName, ClockComponent, {\n slotName: this.config.slotName,\n format: this.config.dateTimeFormat,\n });\n }\n }\n}\n","import { runOnFeatureInit } from '@frontend/vanilla/core';\n\nimport { ClockBootstrapService } from './clock-bootstrap.service';\n\nexport function provide() {\n return [runOnFeatureInit(ClockBootstrapService)];\n}\n"],"names":["ClockConfig","_a","LazyClientConfigBase","__ngFactoryType__","factory","__ngConditionalFactory__","clockConfigFactory","ɵɵinject","LazyClientConfigService","__decorate","LazyClientConfig","key","product","ClientConfigProductName","SF","service","get","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx","ClockComponent","constructor","time","signal","Date","commonMessages","inject","CommonMessages","clockConfig","htmlNode","HtmlNode","localStoreService","LocalStoreService","webWorkerService","WebWorkerService","dateTimeService","DateTimeService","ngOnInit","__async","firstValueFrom","whenReady","dateTimeFormat","format","htmlNodeClassName","slotName","toLowerCase","setCssClass","storeSownCount","createWorker","WorkerType","ClockInterval","interval","update","useWithTimeZone","convertLocalToUserTimezone","ngOnDestroy","removeWorker","clockShowCounter","LocalStoreKey","ClockShowTimes","set","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ɵɵtemplate","ClockComponent_Conditional_0_Template","D","ɵɵconditional","tmp_0_0","ClockText","ɵɵpipeBind2","CommonModule","DatePipe","styles","encapsulation","changeDetection","_ClockComponent","ClockBootstrapService","config","dynamicLayoutService","DynamicLayoutService","embeddableComponentsService","EmbeddableComponentsService","onFeatureInit","registerEmbeddableComponent","addFirstComponent","l","ɵfac","_ClockBootstrapService","provide","runOnFeatureInit"],"mappings":"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"}