{ "version": 3, "sources": ["src/app/services/header.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\ninterface TriggerTimes {\n factoryId: number | null;\n plantId: number | null;\n lineId: number | null;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HeaderService {\n lineIdSource = new BehaviorSubject(null);\n factoryIdSource = new BehaviorSubject(null);\n public autoRefreshSource = new BehaviorSubject(false);\n private manualRefreshSource = new Subject();\n private lastApiCallTimeSource = new BehaviorSubject(null);\n lineIdsSource = new BehaviorSubject(null);\n plantIdsSource = new BehaviorSubject(null);\n public isOnlyLineChartSource = new BehaviorSubject(false);\n public fetchSource = new BehaviorSubject(undefined);\n\n lineId = this.lineIdSource.asObservable();\n factoryId = this.factoryIdSource.asObservable();\n autoRefresh = this.autoRefreshSource.asObservable();\n manualRefresh = this.manualRefreshSource.asObservable();\n lastApiCallTime = this.lastApiCallTimeSource.asObservable();\n lineIds = this.lineIdsSource.asObservable();\n plantId = this.plantIdsSource.asObservable();\n isOnlyLineChart = this.isOnlyLineChartSource.asObservable();\n private lastTriggerTimes: TriggerTimes = {\n factoryId: null,\n plantId: null,\n lineId: null\n };\n\n\n constructor() {}\n\n setPlantId(plantId: string | null) {\n if (this.isNotImmediateTrigger(plantId, this.plantIdsSource.value, 'plantId')) {\n this.plantIdsSource.next(plantId);\n }\n }\n\n removePlantId() {\n localStorage.removeItem('plantId');\n this.plantIdsSource.next(null);\n }\n\n setFactoryId(factoryId: string | null) {\n if (this.isNotImmediateTrigger(factoryId, this.factoryIdSource.value, 'factoryId')) {\n this.factoryIdSource.next(factoryId);\n }\n }\n setFactoryIds(factoryIds: any[] | null) {\n if (factoryIds) {\n let factoryId = '';\n factoryIds.forEach((factory) => {\n factoryId = factoryId + `${factory.id},`;\n });\n this.factoryIdSource.next(factoryId.slice(0, -1));\n }\n }\n\n removeFactoryId() {\n localStorage.removeItem('factoryId');\n this.factoryIdSource.next(null);\n }\n\n setLineIds(lineIds: string[] | null) {\n this.lineIdsSource.next(lineIds);\n }\n\n removeLineIds() {\n localStorage.removeItem('selectedLines');\n this.lineIdsSource.next(null);\n }\n\n setLineId(lineId: string | null) {\n if (this.isNotImmediateTrigger(lineId, this.lineIdSource.value, 'lineId')) {\n this.lineIdSource.next(lineId);\n }\n }\n\n removeLineId() {\n localStorage.removeItem('lineId');\n this.lineIdSource.next(null);\n }\n\n setAutoRefresh(isEnabled: boolean) {\n this.autoRefreshSource.next(isEnabled);\n localStorage.setItem('isAutoRefreshEnabled', JSON.stringify(isEnabled));\n }\n\n getInitialAutoRefreshState(): boolean {\n const storedValue = localStorage.getItem('isAutoRefreshEnabled');\n return storedValue ? JSON.parse(storedValue) : false;\n }\n\n setManualRefresh() {\n this.manualRefreshSource.next();\n }\n\n setLastChartLoadedTime(time: string) {\n this.lastApiCallTimeSource.next(time);\n }\n\n setIsOnlyLineChart(isEnabled: boolean) {\n this.isOnlyLineChartSource.next(isEnabled);\n localStorage.setItem('isOnlyLineChart', JSON.stringify(isEnabled));\n }\n\n getInitialIsOnlyLineChart(): boolean {\n const storedValue = localStorage.getItem('isOnlyLineChart');\n return storedValue ? JSON.parse(storedValue) : false;\n }\n\n private isNotImmediateTrigger(newValue: string | null, existingValue: string | null, triggerKey: keyof TriggerTimes): boolean {\n const currentTime = Date.now();\n const lastTriggerTime = this.lastTriggerTimes[triggerKey];\n const isNotImmediate = (newValue !== existingValue && (!lastTriggerTime || (currentTime - lastTriggerTime > 3000)));\n \n if (isNotImmediate) {\n this.lastTriggerTimes[triggerKey] = currentTime;\n }\n return isNotImmediate;\n }\n}\n"], "mappings": "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", "names": [] }