{ "version": 3, "sources": ["src/app/components/banner-display-manager/banner-display-manager.component.ts", "src/app/components/banner-display-manager/banner-display-manager.component.html"], "sourcesContent": ["/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport {\n BehaviorSubject,\n combineLatest,\n filter,\n firstValueFrom,\n map,\n merge,\n Observable,\n of,\n} from 'rxjs';\nimport { shortUrls } from '../../app-urls';\nimport { IotInsightService } from '../../dashboard/integrations/insights/iot-insight.service';\nimport { SetSystemMaintenanceInfoSeen } from '../../shared/data/actions/context.actions';\nimport { SetMaintenanceInfoSeen } from '../../shared/data/actions/subscription.actions';\nimport { AppState } from '../../shared/data/state/app.state.model';\nimport { MaintenanceMessage } from '../../shared/models';\nimport { SystemBannerComponent } from '../system-banner/system-banner.component';\nimport { IBannerType } from '../system-banner/system-banner.model';\n\n@Component({\n selector: 'bosch-banner-display-manager',\n standalone: true,\n imports: [CommonModule, FlexLayoutModule, SystemBannerComponent],\n templateUrl: './banner-display-manager.component.html',\n styleUrls: ['./banner-display-manager.component.scss'],\n})\nexport class BannerDisplayManagerComponent implements OnInit {\n @Input() displaySubscriptionBanner!: boolean;\n @Input() displaySystemMaintenanceBanner!: boolean;\n readonly adminPath = `/${shortUrls.admin}`;\n readonly bannerType = IBannerType;\n\n systemMaintenanceMsg$: Observable =\n this.store$.select((state) => state.context.systemMaintenanceMsg);\n\n systemMaintenanceLoaded$: Observable = this.store$.select(\n (state) => state.context.systemMaintenanceMsgLoaded\n );\n\n systemMaintenanceSeen$: Observable = this.store$.select(\n (state) => state.context.systemMaintenanceSeen\n );\n\n maintenanceMsg$: Observable =\n this.store$.select((state) => state.subscription.maintenanceMsg);\n\n maintenanceLoaded$: Observable = this.store$.select(\n (state) => state.subscription.maintenanceLoaded\n );\n\n maintenanceSeen$: Observable = this.store$.select(\n (state) => state.subscription.maintenanceSeen\n );\n\n initialAdminPathActivatedValue = this.router.url.includes(this.adminPath);\n\n adminPathActivated$ = merge(\n of(this.initialAdminPathActivatedValue),\n this.router.events.pipe(\n filter((e) => e instanceof NavigationEnd),\n map((e: any) => e.url.includes(this.adminPath))\n )\n );\n\n createMaintenanceMessage$ = (\n loaded$: Observable,\n adminPathActivated$: Observable,\n seen$: Observable,\n msg$: Observable\n ): Observable =>\n combineLatest([\n loaded$,\n adminPathActivated$,\n seen$.pipe(map((s) => !!s)),\n msg$.pipe(map((s) => !!s?.active || false)),\n ]).pipe(\n map(\n ([loaded, adminRouteActive, seen, active]) =>\n loaded && !adminRouteActive && !seen && active\n )\n );\n\n showSystemMaintenanceMessage$ = this.createMaintenanceMessage$(\n this.systemMaintenanceLoaded$,\n this.adminPathActivated$,\n this.systemMaintenanceSeen$,\n this.systemMaintenanceMsg$\n );\n\n showMaintenanceMessage$ = this.createMaintenanceMessage$(\n this.maintenanceLoaded$,\n this.adminPathActivated$,\n this.maintenanceSeen$,\n this.maintenanceMsg$\n );\n systemMaintenanceMsgHTML$ = new BehaviorSubject('');\n subscriptionMaintenanceMsgHTML$ = new BehaviorSubject('');\n constructor(\n private store$: Store,\n public router: Router,\n public iotInsightService: IotInsightService\n ) {}\n\n ngOnInit() {\n const convert = async (\n source: Observable,\n target: BehaviorSubject\n ) => {\n const message =\n (await firstValueFrom(source.pipe(map((m) => m?.message.en)))) || '';\n\n target.next(message);\n };\n this.showSystemMaintenanceMessage$.subscribe(async (show) => {\n if (!show) return;\n convert(this.systemMaintenanceMsg$, this.systemMaintenanceMsgHTML$);\n });\n this.showMaintenanceMessage$.subscribe(async (show) => {\n if (!show) return;\n convert(this.maintenanceMsg$, this.subscriptionMaintenanceMsgHTML$);\n });\n }\n\n closeSystemBanner() {\n this.store$.dispatch(new SetSystemMaintenanceInfoSeen(true));\n }\n\n closeSubscriptionBanner() {\n this.store$.dispatch(new SetMaintenanceInfoSeen(true));\n }\n}\n", "\n \n \n \n \n\n \n \n \n \n\n"], "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACSEA,IAAAC,yBAAA,GAAA,OAAA,CAAA,EAMC,GAAA,qBAAA,CAAA;AAIGD,IAAAE,qBAAA,UAAA,SAAAC,mFAAA;AAAAH,MAAAI,wBAAAC,GAAA;AAAA,YAAAC,SAAAC,wBAAA;AAAA,aAAUC,sBAAAF,OAAAG,kBAAA,CAAmB;IAAA,CAAA;;;AAE/BT,IAAAU,uBAAA,EAAoB;;;;;AAJlBV,IAAAW,oBAAA,CAAA;AAAAX,IAAAY,qBAAA,WAAAC,sBAAA,GAAA,GAAAC,OAAAC,yBAAA,KAAA,EAAA,EAAqD,UAAAC,UAAAH,sBAAA,GAAA,GAAAC,OAAAG,qBAAA,MAAA,OAAA,OAAAD,QAAAE,SAAAJ,OAAAK,WAAAC,IAAA;;;;;;AAOzDpB,IAAAC,yBAAA,GAAA,OAAA,CAAA,EAIC,GAAA,qBAAA,CAAA;AAIGD,IAAAE,qBAAA,UAAA,SAAAmB,mFAAA;AAAArB,MAAAI,wBAAAkB,GAAA;AAAA,YAAAC,SAAAhB,wBAAA;AAAA,aAAUC,sBAAAe,OAAAC,wBAAA,CAAyB;IAAA,CAAA;;;AAErCxB,IAAAU,uBAAA,EAAoB;;;;;AAJlBV,IAAAW,oBAAA,CAAA;AAAAX,IAAAY,qBAAA,WAAAC,sBAAA,GAAA,GAAAY,OAAAC,+BAAA,KAAA,EAAA,EAA2D,UAAAV,UAAAH,sBAAA,GAAA,GAAAY,OAAAE,eAAA,MAAA,OAAA,OAAAX,QAAAE,SAAAO,OAAAN,WAAAC,IAAA;;;;;;ADgBjE,IAAaQ,gCAA6B,uBAAA;AAApC,QAAOA,iCAAP,MAAOA,+BAA6B;IAuExCC,YACUC,QACDC,QACAC,mBAAoC;AAFnC,WAAAF,SAAAA;AACD,WAAAC,SAAAA;AACA,WAAAC,oBAAAA;AAvEA,WAAAC,YAAY,IAAIC,UAAUC,KAAK;AAC/B,WAAAhB,aAAaiB;AAEtB,WAAAnB,wBACE,KAAKa,OAAOO,OAAQC,WAAUA,MAAMC,QAAQC,oBAAoB;AAElE,WAAAC,2BAAgD,KAAKX,OAAOO,OACzDC,WAAUA,MAAMC,QAAQG,0BAA0B;AAGrD,WAAAC,yBAA8C,KAAKb,OAAOO,OACvDC,WAAUA,MAAMC,QAAQK,qBAAqB;AAGhD,WAAAjB,kBACE,KAAKG,OAAOO,OAAQC,WAAUA,MAAMO,aAAaC,cAAc;AAEjE,WAAAC,qBAA0C,KAAKjB,OAAOO,OACnDC,WAAUA,MAAMO,aAAaG,iBAAiB;AAGjD,WAAAC,mBAAwC,KAAKnB,OAAOO,OACjDC,WAAUA,MAAMO,aAAaK,eAAe;AAG/C,WAAAC,iCAAiC,KAAKpB,OAAOqB,IAAIC,SAAS,KAAKpB,SAAS;AAExE,WAAAqB,sBAAsBC,MACpBC,GAAG,KAAKL,8BAA8B,GACtC,KAAKpB,OAAO0B,OAAOC,KACjBC,OAAQC,OAAMA,aAAaC,aAAa,GACxCC,IAAKF,OAAWA,EAAER,IAAIC,SAAS,KAAKpB,SAAS,CAAC,CAAC,CAChD;AAGH,WAAA8B,4BAA4B,CAC1BC,SACAV,qBACAW,OACAC,SAEAC,cAAc,CACZH,SACAV,qBACAW,MAAMP,KAAKI,IAAKM,OAAM,CAAC,CAACA,CAAC,CAAC,GAC1BF,KAAKR,KAAKI,IAAKM,OAAM,CAAC,CAACA,GAAGC,UAAU,KAAK,CAAC,CAAC,CAC5C,EAAEX,KACDI,IACE,CAAC,CAACQ,QAAQC,kBAAkBC,MAAMH,MAAM,MACtCC,UAAU,CAACC,oBAAoB,CAACC,QAAQH,MAAM,CACjD;AAGL,WAAAI,gCAAgC,KAAKV,0BACnC,KAAKtB,0BACL,KAAKa,qBACL,KAAKX,wBACL,KAAK1B,qBAAqB;AAG5B,WAAAyD,0BAA0B,KAAKX,0BAC7B,KAAKhB,oBACL,KAAKO,qBACL,KAAKL,kBACL,KAAKtB,eAAe;AAEtB,WAAAZ,4BAA4B,IAAI4D,gBAA+B,EAAE;AACjE,WAAAjD,kCAAkC,IAAIiD,gBAA+B,EAAE;IAKpE;IAEHC,WAAQ;AACN,YAAMC,UAAU,CACdC,QACAC,WACE;AACF,cAAMC,WACH,MAAMC,eAAeH,OAAOpB,KAAKI,IAAKoB,OAAMA,GAAGF,QAAQG,EAAE,CAAC,CAAC,MAAM;AAEpEJ,eAAOK,KAAKJ,OAAO;MACrB;AACA,WAAKP,8BAA8BY,UAAU,CAAOC,SAAQ;AAC1D,YAAI,CAACA;AAAM;AACXT,gBAAQ,KAAK5D,uBAAuB,KAAKF,yBAAyB;MACpE,EAAC;AACD,WAAK2D,wBAAwBW,UAAU,CAAOC,SAAQ;AACpD,YAAI,CAACA;AAAM;AACXT,gBAAQ,KAAKlD,iBAAiB,KAAKD,+BAA+B;MACpE,EAAC;IACH;IAEAjB,oBAAiB;AACf,WAAKqB,OAAOyD,SAAS,IAAIC,6BAA6B,IAAI,CAAC;IAC7D;IAEAhE,0BAAuB;AACrB,WAAKM,OAAOyD,SAAS,IAAIE,uBAAuB,IAAI,CAAC;IACvD;;;qBAvGW7D,gCAA6B8D,4BAAAC,KAAA,GAAAD,4BAAAE,MAAA,GAAAF,4BAAAG,iBAAA,CAAA;EAAA;;UAA7BjE;IAA6BkE,WAAA,CAAA,CAAA,8BAAA,CAAA;IAAAC,QAAA;MAAAC,2BAAA;MAAAC,gCAAA;IAAA;IAAAC,YAAA;IAAAC,UAAA,CAAAC,6BAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,QAAA,CAAA,CAAA,YAAA,yBAAA,YAAA,UAAA,eAAA,QAAA,GAAA,oBAAA,GAAA,SAAA,GAAA,CAAA,YAAA,yBAAA,SAAA,UAAA,GAAA,MAAA,GAAA,CAAA,YAAA,yBAAA,SAAA,UAAA,GAAA,MAAA,GAAA,CAAA,YAAA,yBAAA,GAAA,QAAA,GAAA,CAAA,GAAA,WAAA,QAAA,QAAA,GAAA,CAAA,YAAA,yBAAA,GAAA,QAAA,CAAA;IAAAC,UAAA,SAAAC,uCAAAC,IAAAC,KAAA;AAAA,UAAAD,KAAA,GAAA;AC9C1C1G,QAAAC,yBAAA,GAAA,OAAA,CAAA;;AASED,QAAA4G,qBAAA,GAAAC,8CAAA,GAAA,GAAA,OAAA,CAAA;;AAeA7G,QAAA4G,qBAAA,GAAAE,8CAAA,GAAA,GAAA,OAAA,CAAA;;AAYF9G,QAAAU,uBAAA;;;AA/BEV,QAAAY,qBAAA,WAAAmG,0BAAA,GAAAC,KAAAnG,sBAAA,GAAA,GAAA8F,IAAA3E,kBAAAiF,oBAAA,CAAA,CAAA;AAOGjH,QAAAW,oBAAA,CAAA;AAAAX,QAAAY,qBAAA,QAAA+F,IAAAV,kCAAApF,sBAAA,GAAA,GAAA8F,IAAAlC,6BAAA,CAAA;AAeAzE,QAAAW,oBAAA,CAAA;AAAAX,QAAAY,qBAAA,QAAA+F,IAAAX,6BAAAnF,sBAAA,GAAA,GAAA8F,IAAAjC,uBAAA,CAAA;;;mBDeOwC,cAAYC,SAAAC,MAAAC,WAAEC,kBAAgBC,wBAAAC,2BAAAC,uBAAEC,qBAAqB;IAAAC,QAAA,CAAA,0uDAAA;EAAA,CAAA;AAI3D,MAAO/F,iCAAP;SAAOA;AAA6B,GAAA;", "names": ["i0", "\u0275\u0275elementStart", "\u0275\u0275listener", "BannerDisplayManagerComponent_div_2_Template_app_system_banner_closed_1_listener", "\u0275\u0275restoreView", "_r3", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "closeSystemBanner", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "ctx_r0", "systemMaintenanceMsgHTML$", "tmp_1_0", "systemMaintenanceMsg$", "type", "bannerType", "INFO", "BannerDisplayManagerComponent_div_4_Template_app_system_banner_closed_1_listener", "_r5", "ctx_r4", "closeSubscriptionBanner", "ctx_r1", "subscriptionMaintenanceMsgHTML$", "maintenanceMsg$", "BannerDisplayManagerComponent", "constructor", "store$", "router", "iotInsightService", "adminPath", "shortUrls", "admin", "IBannerType", "select", "state", "context", "systemMaintenanceMsg", "systemMaintenanceLoaded$", "systemMaintenanceMsgLoaded", "systemMaintenanceSeen$", "systemMaintenanceSeen", "subscription", "maintenanceMsg", "maintenanceLoaded$", "maintenanceLoaded", "maintenanceSeen$", "maintenanceSeen", "initialAdminPathActivatedValue", "url", "includes", "adminPathActivated$", "merge", "of", "events", "pipe", "filter", "e", "NavigationEnd", "map", "createMaintenanceMessage$", "loaded$", "seen$", "msg$", "combineLatest", "s", "active", "loaded", "adminRouteActive", "seen", "showSystemMaintenanceMessage$", "showMaintenanceMessage$", "BehaviorSubject", "ngOnInit", "convert", "source", "target", "message", "firstValueFrom", "m", "en", "next", "subscribe", "show", "dispatch", "SetSystemMaintenanceInfoSeen", "SetMaintenanceInfoSeen", "\u0275\u0275directiveInject", "Store", "Router", "IotInsightService", "selectors", "inputs", "displaySubscriptionBanner", "displaySystemMaintenanceBanner", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "BannerDisplayManagerComponent_Template", "rf", "ctx", "\u0275\u0275template", "BannerDisplayManagerComponent_div_2_Template", "BannerDisplayManagerComponent_div_4_Template", "\u0275\u0275pureFunction1", "_c0", "actionTypeIsInsight$", "CommonModule", "NgClass", "NgIf", "AsyncPipe", "FlexLayoutModule", "DefaultLayoutDirective", "DefaultLayoutGapDirective", "DefaultClassDirective", "SystemBannerComponent", "styles"] }