{"version":3,"sources":["webpack:///./src/components/Charts/Chart.vue","webpack:///./src/components/Charts/Chart.vue?f3b1","webpack:///./src/components/Charts/Chart.vue?2025","webpack:///./src/components/Charts/Chart.vue?0ea0","webpack:///./src/components/Charts/Chart.vue?7797","webpack:///./node_modules/moment-timezone/builds/moment-timezone-with-data-10-year-range.js","webpack:///./src/components/common/ValueTrend.vue?4390","webpack:///./src/components/common/ValueTrend.vue","webpack:///./src/components/common/ValueTrend.vue?12b8","webpack:///./src/components/common/ValueTrend.vue?f844","webpack:///./src/components/common/ValueTrend.vue?8c17","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue?1289","webpack:///./src/components/common/KpiWidget.vue","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue?2a35","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue?27cb","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue?aad4","webpack:///./src/components/common/KpiWidget.vue?172d","webpack:///./src/components/common/KpiWidget.vue?4941","webpack:///./src/components/common/KpiWidget.vue?ba09","webpack:///./src/components/common/KpiWidget.vue?64aa","webpack:///./src/components/Charts/maxCuttingTime.ts","webpack:///./src/components/common/KpiWidgetTrendTooltip.vue?6fca"],"names":["render","_vm","this","_c","_self","_setupProxy","staticClass","showChart","_g","ref","attrs","options","echartsUpdateOptions","on","onClickEvent","onExpandOnDblClick","$event","mouseDown","mouseUp","onLegendSelectChanged","echartsListeners","loading","_e","_v","_s","$t","staticRenderFns","Chart","_Vue","_this","_classCallCheck","_len","arguments","length","args","Array","_key","_callSuper","concat","_defineProperty","_inherits","_createClass","key","get","listenersWithPrefix","value","_mounted","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","selfManagedFilters","addAutoRemovedEventListener","onResize","updateOptions","stop","mounted","apply","newValue","oldValue","_this$chart","widget","chart","clear","_this$$el","_this$$el2","_this$generator","_this$chart2","isEmpty","data","generatorParams","WidgetFactory","createOptions","widgetDefinition","_objectSpread","clientWidth","$el","clientHeight","targets","getTargets","aggregates","paramValues","customerNo","timeFilter","timeFilterEnumValue","timeAxisSpan","axisSpan","WidgetEnum","LaserCuttingTime","TubeCuttingTime","maxValue","calculateMaxCuttingTime","dataClone","isArray","textStyle","fontFamily","generator","getOption","numberToArray","notMerge","currentLocale","target","getDefaultTarget","params","FactoryOverview","route","name","startsWith","Routes","Cut","Bend","Tubes","$router","push","selectedDeviceStringId","_this$generator2","TechnologyDrawerInformationTimeline","removedSecondsSelected","selected","removed_seconds","pdSelected","pd","powerAmplitudeSelected","power_amplitude","LaserOutputAndScrapTimeline","TubeOutputScrapHist","_this$generator3","legendParams","canExpandOnDblClick","getWidgetTargetMetric","widgetString","Object","keys","find","replace","TargetsMetric","None","_this$chart3","resize","SalesTimeline","getSalesTimelineTargets","nTargets","userTargetsService","store","getMetricNumberOfTargetValues","targetsMetric","defaultTarget","userTarget","getUserTarget","target1","target2","undefined","_this$getUserTarget","_this$getUserTarget2","_this$getUserTarget3","monthlyPaid","SalesFunnelMonthlyPaid","r3","SalesFunnelR3","r4","SalesFunnelR4","targetMetric","$emit","deviceIds","devicesService","deviceIdsToIds","deviceId","selectedShifts","shiftsService","getMatchingIds","shifts","isMobileOrTablet","longPressEnd","Date","now","longPressStart","ua","navigator","userAgent","test","includes","document","isNil","Vue","__decorate","Prop","required","type","Boolean","default","Ref","Watch","Component","methods","components","ShiftFilter","ThreeDotsOptions","TimeSpanFilter","NewFeatureBadge","component","root","factory","module","exports","moment","version","cachedGuess","VERSION","zones","links","countries","names","guesses","logError","momentVersion","split","major","minor","charCodeToInt","charCode","unpackBase60","string","num","i","parts","whole","fractional","multiplier","out","sign","charCodeAt","arrayToInt","array","intToUntil","Math","round","Infinity","mapIndices","source","indices","unpack","offsets","untils","abbrs","population","Zone","packedString","_set","closest","arr","mid","len","lo","hi","floor","Country","country_name","zone_names","OffsetAt","at","timeString","toTimeString","abbr","match","join","offset","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","high","diff","userOffsets","change","nextOffset","startYear","getFullYear","last","lastOffset","sortZoneScores","a","b","localeCompare","addToGuesses","guessesForUserOffsets","j","guessesOffset","offsetsLength","filteredGuesses","checkedOffsets","hasOwnProperty","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","e","zoneScore","zoneScores","getZone","scoreOffsetAt","sort","guess","ignoreCache","toLowerCase","addZone","packed","normalized","caller","link","getNames","getCountryNames","addLink","aliases","alias","normal0","normal1","addCountries","country_code","country_zones","toUpperCase","getCountry","zonesForCountry","country","with_offset","map","zone_name","utcOffset","loadData","tz","dataVersion","zoneExists","didShowError","needsOffset","m","isUnixTimestamp","_f","_a","_tzm","message","console","error","input","prototype","slice","call","utc","isMoment","add","parse","unpacked","_index","timestamp","filter","indexOf","offsetNext","offsetPrev","max","moveAmbiguousForward","moveInvalidForward","mom","offsetAt","abs","_zones","_links","_names","_countries","load","fn","abbrWrap","old","_z","resetZoneWrap","resetZoneWrap2","defaultZone","updateOffset","keepTime","_isUTC","isValid","_d","z","Error","zoneName","zoneAbbr","local","setDefault","momentProperties","toString","_setup","hasTrendInfo","isTrendGoingUp","class","props","inverse","formattedDifferencePercentage","isTrendStatic","noTrendMessage","__default__","_defineComponent","__name","previousValue","currentValue","setup","__props","differencePercentage","computed","difference","formatPercentage","__sfc","isFetchingForTheFirstTime","_t","hasData","formattedMainFact","KpiWidgetTrendTooltip","trendData","trendTooltipPosition","invertTrend","ValueTrend","isThereTrendInfo","chartData","position","scopedSlots","_u","differenceTrendClass","invert","chartType","getCurrentTimePeriodDescription","timeSpan","abbreviateNumber","formatDateWithTimeOnCustomerTimeZone","getCurrentDateTimeRange","currentValueDateTime","currentValueDeviceName","getPreviousTimePeriodDescription","getPreviousDateTimeRange","previousValueDateTime","previousValueDeviceName","proxy","i18n","t","FilterTimeSpanEnum","unitOfTime","timeSpanToStartOfUnitOfTime","startOfRange","userTimeZone","startOf","toDate","timeSpanToUnitOfTime","subtract","endOfRange","watch","unit","abbreviateNumberWithUnit","_props$trendData","deviceHours","reduce","hours","calculateDeviceShiftHours","getTimeFilterMultiplier","shift","relatedDevices","shiftLengthMinutes","timeFromHh","timeToHh","timeFromMm","timeToMm","endAdjustment","Day","Week","day","Month","date","Year","dayOfYear"],"mappings":"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ACA,4FACA,iCACA,6BACA,uKACA,6BACA,oCACA,+BACA,6BACA,gCACA,iCACA,+FACA,yKACA,sKACA,iCACA,+BACA,gCACA,yKACA,+BACA,+BACA,mCACA,gCACA,iCACA,8BACA,6BACA,iCACA,0FACA,6BACA,uKACA,uKACA,qCACA,mLACA,sCACA,oCACA,mCACA,mLACA,mCACA,0KACA,sKACA,wBACA,oCACA,qCACA,wBACA,gCACA,8BACA,wBACA,mCACA,uBACA,gCACA,gCACA,oBACA,sKACA,2KACA,gCACA,iDACA,kCACA,iLACA,qEACA,mEACA,gCACA,qCACA,mCACA,yKAED,MAAS,CACR,8BACA,+BACA,+BACA,+BACA,gCACA,8BACA,iCACA,6BACA,iCACA,mCACA,oCACA,iCACA,sCACA,oCACA,oCACA,yBACA,2BACA,2BACA,0BACA,+BACA,qBACA,uBACA,uBACA,sBACA,2BACA,yBACA,8BACA,qBACA,oCACA,oCACA,qCACA,kCACA,mCACA,kCACA,gCACA,gCACA,oCACA,gCACA,gCACA,kCACA,6BACA,kCACA,6BACA,+BACA,iCACA,6BACA,6BACA,+BACA,6BACA,iCACA,oCACA,+BACA,+BACA,sCACA,iCACA,gCACA,kCACA,qCACA,+BACA,gCACA,oCACA,uBACA,4BACA,2BACA,mCACA,iCACA,kCACA,oCACA,8BACA,sCACA,oCACA,iCACA,iCACA,iCACA,sCACA,8BACA,4BACA,uCACA,4CACA,kCACA,oCACA,oCACA,8CACA,8CACA,iDACA,sCACA,uCACA,mCACA,mCACA,0BACA,iCACA,6BACA,oCACA,+BACA,uCACA,kCACA,gCACA,kCACA,qCACA,iCACA,yBACA,wBACA,6BACA,sCACA,mDACA,gDACA,qDACA,8CACA,4CACA,+CACA,8CACA,mDACA,4CACA,+CACA,+CACA,8CACA,8CACA,kCACA,kCACA,yCACA,sCACA,oCACA,oCACA,kCACA,mCACA,oCACA,uCACA,uCACA,yCACA,mCACA,oCACA,qCACA,sCACA,uCACA,qCACA,8BACA,+BACA,oCACA,oCACA,kCACA,gCACA,mCACA,kCACA,sBACA,8BACA,gCACA,iCACA,kCACA,kCACA,2BACA,yBACA,uCACA,2CACA,sCACA,wCACA,qCACA,uCACA,8BACA,iCACA,iCACA,qCACA,sCACA,oCACA,iCACA,wCACA,sCACA,sCACA,kCACA,6CACA,qCACA,wCACA,qCACA,mCACA,sCACA,sCACA,gDACA,2CACA,8CACA,yCACA,6CACA,2CACA,wCACA,mCACA,+CACA,+CACA,sCACA,oCACA,kCACA,mCACA,uCACA,0CACA,uCACA,mCACA,kCACA,2BACA,mCACA,8BACA,+BACA,yCACA,mCACA,4BACA,kCACA,gCACA,gCACA,uCACA,iCACA,qBACA,yBACA,kCACA,uCACA,sCACA,qCACA,sBACA,6BACA,qCACA,yCACA,wCACA,sCACA,yCACA,6CACA,wCACA,yCACA,wCACA,2CACA,2CACA,8CACA,wCACA,2CACA,2CACA,8CACA,4CACA,8CACA,yCACA,yCACA,0CACA,2CACA,wCACA,uCACA,gCACA,uCACA,oCACA,kCACA,4BACA,gCACA,4BACA,gCACA,yBACA,gCACA,iCACA,gCACA,+BACA,2BACA,0BACA,8BACA,yBACA,gCACA,uBACA,2BACA,0BACA,uBACA,2BACA,0BACA,wBACA,0BACA,uBACA,yBACA,0BACA,yBACA,uBACA,2BACA,uBACA,yBACA,0BACA,0BACA,uBACA,8BACA,2BACA,4BACA,8BACA,yBACA,8BACA,4BACA,wBACA,0BACA,8BACA,+BACA,wBACA,6BACA,4BACA,2BACA,kCACA,mCACA,gCACA,+BACA,gCACA,8BACA,gCACA,+BACA,6BACA,gCACA,oCACA,iCACA,iCACA,mCACA,qCACA,oCACA,8BACA,8BACA,mCACA,2BACA,4BACA,6BACA,mCACA,2BACA,qCACA,8BACA,oCACA,+BACA,+BACA,gCACA,+BACA,4BACA,iBACA,+BACA,+BACA,4BACA,2BACA,2BACA,4BACA,oBACA,oBACA,kCACA,2BACA,4BACA,8BACA,+BACA,4BACA,8BACA,0BACA,+BACA,+BACA,mCACA,0BACA,iCACA,gCACA,mBACA,mBACA,6CACA,iCACA,8BACA,iCACA,wCACA,gCACA,+BACA,gCACA,2CACA,qCACA,0CACA,wCACA,0CACA,mCACA,oCACA,iCACA,wCACA,iCACA,sCACA,oCACA,oCACA,uCACA,iCACA,sCACA,sCACA,kBACA,wBACA,mBACA,cACA,cACA,oBACA,eACA,+BACA,6BACA,oBACA,iCACA,gCACA,4BACA,4BACA,iCACA,+BACA,4BACA,6BACA,+BACA,gCACA,+BACA,kCACA,kCACA,qBACA,mCACA,4BACA,+BACA,+BACA,gCACA,8BACA,6BACA,8BACA,4BACA,+BACA,yBACA,gCACA,gCACA,+BACA,iCACA,yBACA,oBACA,+BACA,gCACA,mCACA,8BACA,mBACA,wBACA,6BACA,kCACA,qBACA,4BACA,mCACA,kCACA,mBACA,gCACA,8BACA,+BACA,6BACA,iCACA,+BACA,+BACA,+BACA,iCACA,gCACA,gCACA,iCACA,6BACA,4BACA,6BACA,2BACA,gCACA,6BACA,2BACA,iCACA,+BACA,6BACA,gCACA,6BACA,4BACA,8BACA,6BACA,6BACA,6BACA,6BACA,mBACA,sBACA,sCACA,yCACA,sBACA,0BACA,oCACA,8BACA,4BACA,8BACA,uBACA,oCACA,6BACA,gCACA,0BACA,mCACA,kCACA,6BACA,6BACA,4BACA,mCACA,+BACA,sCACA,oCACA,oCAED,UAAa,CACZ,oBACA,gBACA,gBACA,yCACA,0CACA,mBACA,kBACA,gCACA,iPACA,wUACA,uBACA,mBACA,oOACA,uCACA,sCACA,eACA,qCACA,sBACA,gBACA,qBACA,uCACA,kBACA,6BACA,oCACA,oCACA,+CACA,sBACA,8BACA,oBACA,4CACA,mRACA,oCACA,kBACA,mCACA,kBACA,oBACA,kdACA,8BACA,kEACA,gCACA,qCACA,mBACA,oBACA,uBACA,0DACA,gCACA,+BACA,oBACA,wBACA,oBACA,yBACA,yCACA,mCACA,iCACA,mBACA,iDACA,oCACA,qCACA,0CACA,2BACA,oBACA,yCACA,oBACA,kBACA,qBACA,kCACA,gDACA,uCACA,qBACA,kBACA,sBACA,2FACA,oBACA,kBACA,oCACA,mBACA,yCACA,kBACA,qBACA,mCACA,iCACA,sBACA,0EACA,kCACA,mCACA,4CACA,gCACA,mBACA,4BACA,uBACA,kBACA,mBACA,oBACA,oBACA,yBACA,mCACA,4BACA,qBACA,6DACA,mBACA,oBACA,sCACA,kBACA,mBACA,kBACA,iBACA,uCACA,iBACA,iCACA,qBACA,gBACA,gBACA,oBACA,kBACA,kCACA,sDACA,kCACA,0CACA,oBACA,gBACA,6BACA,mCACA,2FACA,iCACA,iBACA,0CACA,gCACA,kBACA,qBACA,uCACA,oBACA,uCACA,iBACA,oBACA,uBACA,gCACA,qBACA,sCACA,yCACA,wCACA,qDACA,mCACA,kCACA,iBACA,gCACA,gBACA,iCACA,wBACA,sCACA,4CACA,kBACA,sBACA,qBACA,mCACA,8NACA,mDACA,mBACA,qBACA,oBACA,gCACA,qBACA,kBACA,qBACA,sCACA,+BACA,oBACA,mBACA,kBACA,sCACA,4BACA,oBACA,kBACA,sDACA,+CACA,iBACA,kBACA,mBACA,sBACA,sBACA,yBACA,2BACA,oDACA,mBACA,sBACA,gBACA,+BACA,sBACA,qBACA,yZACA,iCACA,iBACA,yBACA,4BACA,qBACA,oCACA,oBACA,uCACA,sCACA,uCACA,qCACA,oCACA,mCACA,iCACA,qCACA,wBACA,iBACA,qBACA,yBACA,+CACA,mBACA,wCACA,wBACA,qBACA,iDACA,gCACA,kBACA,mBACA,qBACA,eACA,mBACA,kBACA,uBACA,qBACA,+CACA,qCACA,iBACA,yCACA,mCACA,mCACA,kEACA,4lBACA,wBACA,kCACA,gCACA,4CACA,qBACA,yCACA,2CACA,mCACA,mBACA,mCACA,kBACA,2BACA,mCACA,yBACA,iCACA,oCAKKjI,M,6DC3iDR,W,oCCAA,IAAIhN,EAAS,WAAkB,IA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","file":"js/chunk-46b6c366.6f62f9ad.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"chart\"},[(_vm.showChart)?_c('v-chart',_vm._g({ref:\"chart\",attrs:{\"option\":_vm.options,\"update-options\":_vm.echartsUpdateOptions,\"autoresize\":\"\",\"data-testid\":\"echarts-component\"},on:{\"click\":_vm.onClickEvent,\"dblclick\":_vm.onExpandOnDblClick,\"mousedown\":function($event){return _vm.mouseDown($event)},\"mouseup\":function($event){return _vm.mouseUp($event)},\"legendselectchanged\":_vm.onLegendSelectChanged}},_vm.echartsListeners)):(!_vm.loading)?_c('span',{staticClass:\"no-data\"},[_vm._v(\" \"+_vm._s(_vm.$t('no_data'))+\" \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Ref, Vue, Watch } from 'vue-property-decorator';\nimport ECharts from 'vue-echarts';\nimport ShiftFilter from '../ShiftFilter.vue';\nimport ThreeDotsOptions from '@/components/Charts/ThreeDotsOptions.vue';\nimport { UserTarget } from '@/models/userTarget';\nimport { userTargetsService } from '@/services/userTargets.service';\nimport { WidgetEnum } from '@/models/enums/WidgetEnum';\nimport TimeSpanFilter from '../TimeSpanFilter.vue';\nimport WidgetDefinition from '@/models/Charts/widgetDefinition';\nimport { Aggregate, numberToArray } from '@/models/metrics/aggregates';\nimport { Routes } from '@/router/routes';\nimport { TargetsMetric } from '@/models/enums/TargetsMetric';\nimport { addAutoRemovedEventListener, isEmpty, isNil } from '@/utils/misc';\nimport { devicesService } from '@/services/devices.service';\nimport { shiftsService } from '@/services/shifts.service';\nimport { calculateMaxCuttingTime } from '@/components/Charts/maxCuttingTime';\nimport NewFeatureBadge from '../NewFeatureBadge.vue';\nimport { ChartGenerator } from '@/models/Charts/abstract/chartGenerator';\nimport { GeneratorParams } from '@/models/Charts/generatorParams';\nimport WidgetFactory from '@/models/Charts/widgetFactory';\nimport { listenersWithPrefix } from '@/utils/components';\nimport { currentLocale } from '@/utils/i18n';\n\n@Component({\n methods: { isEmpty },\n components: {\n ShiftFilter,\n ThreeDotsOptions,\n TimeSpanFilter,\n NewFeatureBadge,\n },\n})\nexport default class Chart extends Vue {\n @Prop({ required: true })\n private widgetDefinition!: WidgetDefinition;\n\n @Prop({ required: true })\n private generator!: ChartGenerator;\n\n @Prop({ required: true })\n private data!: any;\n\n @Prop({ required: true })\n private paramValues!: Record;\n\n @Prop({ required: true, type: Boolean })\n private loading!: boolean;\n\n @Prop({ default: false })\n private selfManagedFilters!: boolean;\n\n @Prop()\n private customerNo?: string;\n\n private generatorParams: GeneratorParams = {};\n private options: any = null;\n\n private longPressStart = 0;\n private longPressEnd = 0;\n\n @Ref('chart')\n private chart?: typeof ECharts;\n\n private get echartsListeners() {\n return listenersWithPrefix('echarts', this);\n }\n\n private async mounted() {\n if (this.selfManagedFilters) {\n // When switching back and forth from and to fullscreen mode (F11), widgets\n // might overflow the card vertically. We don't know the cause but using\n // this resize listener fixes it.\n addAutoRemovedEventListener(this, 'resize', this.onResize);\n }\n\n this.updateOptions();\n }\n\n @Watch('widgetDefinition')\n private watchWidgetDefinition(newValue: WidgetDefinition, oldValue: WidgetDefinition) {\n if (newValue.widget !== oldValue.widget) {\n this.chart?.clear();\n }\n this.updateOptions();\n }\n\n private updateOptions() {\n if (isEmpty(this.data)) {\n return;\n }\n\n const generatorParams = WidgetFactory.createOptions(this.widgetDefinition.widget);\n\n this.generatorParams = {\n ...generatorParams,\n clientWidth: this.$el?.clientWidth,\n clientHeight: this.$el?.clientHeight,\n targets: this.getTargets(),\n aggregates: this.aggregates,\n paramValues: this.paramValues,\n customerNo: this.customerNo,\n timeFilter: this.widgetDefinition.timeFilterEnumValue,\n timeAxisSpan: this.widgetDefinition.axisSpan,\n };\n\n if (\n this.widgetDefinition.widget === WidgetEnum.LaserCuttingTime ||\n this.widgetDefinition.widget === WidgetEnum.TubeCuttingTime\n ) {\n this.generatorParams.maxValue = this.calculateMaxCuttingTime();\n }\n\n // Some constructors inadvertently mutate the original data (using .sort() in arrays, for example).\n // If data is mutated from within the generator, this function is recursively called by the watcher.\n // If a clone of the data is passed, we don't need to worry about mutating data, and the issue is prevented.\n const dataClone = Array.isArray(this.data) ? this.data.concat() : { ...this.data };\n this.options = {\n textStyle: { fontFamily: 'Inter' },\n ...this.generator?.updateOptions(dataClone, this.generatorParams, this.chart?.getOption()),\n };\n }\n\n @Watch('locale')\n @Watch('data')\n private watchChanges() {\n this.updateOptions();\n }\n\n private get aggregates(): Aggregate[] {\n return numberToArray(this.widgetDefinition.aggregates);\n }\n\n private get echartsUpdateOptions(): any {\n return { notMerge: true };\n }\n\n private get locale(): string {\n return currentLocale();\n }\n\n // FIXME: Duplicated with WidgetCard\n private getTargets() {\n return this.selfManagedFilters ? this.widgetDefinition.target : this.getDefaultTarget();\n }\n\n // FIXME: Code duplication with WorkCenterConsoleOverview.goToDevice\n private onClickEvent(params: any) {\n if (this.widgetDefinition.widget === WidgetEnum.FactoryOverview) {\n let route;\n if (params.name.startsWith('L-')) {\n route = Routes.Cut;\n } else if (params.name.startsWith('B-')) {\n route = Routes.Bend;\n } else if (params.name.startsWith('T-')) {\n route = Routes.Tubes;\n } else {\n return;\n }\n\n this.$router.push({\n name: route,\n // FIXME: Use URL query parameters instead\n params: {\n selectedDeviceStringId: params.name,\n },\n });\n }\n }\n\n private onLegendSelectChanged(params: any) {\n if (this.widgetDefinition.widget === WidgetEnum.TechnologyDrawerInformationTimeline) {\n this.options = {\n textStyle: { fontFamily: 'Inter' },\n ...this.generator?.updateOptions(this.data, {\n ...this.generatorParams,\n removedSecondsSelected: params.selected.removed_seconds,\n pdSelected: params.selected.pd,\n powerAmplitudeSelected: params.selected.power_amplitude,\n }),\n };\n } else if (\n this.widgetDefinition.widget === WidgetEnum.LaserOutputAndScrapTimeline ||\n this.widgetDefinition.widget === WidgetEnum.TubeOutputScrapHist\n ) {\n this.options = {\n textStyle: { fontFamily: 'Inter' },\n ...this.generator?.updateOptions(this.data, {\n ...this.generatorParams,\n legendParams: params,\n }),\n };\n }\n }\n\n private canExpandOnDblClick(): boolean {\n return this.widgetDefinition.canExpandOnDblClick();\n }\n\n private get targetsMetric(): TargetsMetric | null {\n return !!this.widgetDefinition\n ? this.getWidgetTargetMetric(this.widgetDefinition.widget)\n : null;\n }\n\n private getWidgetTargetMetric(widget: WidgetEnum): TargetsMetric {\n let widgetString = Object.keys(WidgetEnum).find(\n (key: string) => WidgetEnum[key as keyof typeof WidgetEnum] === widget,\n )!;\n\n // HACK (temporary): We don't want a target for LaserAvailability pie chart,\n // but it will be added in the future.\n if (widgetString !== 'LaserProductivityHist') {\n widgetString = widgetString.replace('Hist', '');\n }\n\n return widgetString in TargetsMetric\n ? TargetsMetric[widgetString as keyof typeof TargetsMetric]\n : TargetsMetric.None;\n }\n\n private onResize() {\n this.chart?.resize();\n }\n\n // FIXME: Duplicated with WidgetCard\n private getDefaultTarget() {\n if (this.widgetDefinition.widget === WidgetEnum.SalesTimeline) {\n return this.getSalesTimelineTargets();\n } else {\n const nTargets = userTargetsService.store.getMetricNumberOfTargetValues(this.targetsMetric);\n if (nTargets === 0) {\n return;\n }\n const defaultTarget: number[] = [];\n const userTarget = this.getUserTarget(this.targetsMetric);\n\n if (userTarget) {\n defaultTarget.push(userTarget.target1);\n if (nTargets === 2 && !!userTarget.target2) {\n defaultTarget.push(userTarget.target2);\n }\n }\n\n return userTarget ? defaultTarget : undefined;\n }\n }\n\n // FIXME: Duplicated with WidgetCard\n private getSalesTimelineTargets(): number[] | undefined {\n const monthlyPaid = this.getUserTarget(TargetsMetric.SalesFunnelMonthlyPaid)?.target1;\n const r3 = this.getUserTarget(TargetsMetric.SalesFunnelR3)?.target1;\n const r4 = this.getUserTarget(TargetsMetric.SalesFunnelR4)?.target1;\n\n if (monthlyPaid && r3 && r4) {\n return [monthlyPaid, r3, r4];\n } else {\n return undefined;\n }\n }\n\n private getUserTarget(targetMetric: TargetsMetric | null): UserTarget | undefined {\n return userTargetsService.store.get(targetMetric);\n }\n\n private onExpandOnDblClick(params: any) {\n if (this.canExpandOnDblClick()) {\n this.$emit('double-click-expand', params);\n }\n }\n\n private calculateMaxCuttingTime() {\n const deviceIds = devicesService.store.deviceIdsToIds(\n this.widgetDefinition.deviceId as string[],\n );\n const selectedShifts = shiftsService.store.getMatchingIds(this.widgetDefinition.shifts);\n\n return calculateMaxCuttingTime(deviceIds, selectedShifts, this.widgetDefinition.timeFilter);\n }\n\n private mouseUp(params: any) {\n if (this.isMobileOrTablet() && this.canExpandOnDblClick()) {\n this.longPressEnd = Date.now();\n if (this.longPressEnd - this.longPressStart > 500) {\n this.onExpandOnDblClick(params);\n }\n }\n }\n\n private mouseDown(params: any) {\n if (this.isMobileOrTablet() && this.canExpandOnDblClick()) {\n this.longPressStart = Date.now();\n }\n }\n\n private isMobileOrTablet() {\n const ua = navigator.userAgent;\n return (\n /(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua) ||\n /Mobile|Android|iP(hone|od)|IEMobile|BlackBerry|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n ua,\n ) ||\n // iPad on iOS 13 and up detection\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n }\n\n private get showChart(): boolean {\n return !isEmpty(this.data) && !isNil(this.options);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Chart.vue?vue&type=template&id=0ccc0836&scoped=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Chart.vue?vue&type=style&index=0&id=0ccc0836&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ccc0836\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=style&index=0&id=0ccc0836&prod&lang=scss&scoped=true\"","//! moment-timezone.js\n//! version : 0.5.46\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else if (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Resolves es6 module loading issue\n\tif (moment.version === undefined && moment.default) {\n\t\tmoment = moment.default;\n\t}\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.46\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tcountries = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess;\n\n\tif (!moment || typeof moment.version !== 'string') {\n\t\tlogError('Moment Timezone requires Moment.js. See https://momentjs.com/timezone/docs/#/use-it/browser/');\n\t}\n\n\tvar momentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tfunction closest (num, arr) {\n\t\tvar len = arr.length;\n\t\tif (num < arr[0]) {\n\t\t\treturn 0;\n\t\t} else if (len > 1 && arr[len - 1] === Infinity && num >= arr[len - 2]) {\n\t\t\treturn len - 1;\n\t\t} else if (num >= arr[len - 1]) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tvar mid;\n\t\tvar lo = 0;\n\t\tvar hi = len - 1;\n\t\twhile (hi - lo > 1) {\n\t\t\tmid = Math.floor((lo + hi) / 2);\n\t\t\tif (arr[mid] <= num) {\n\t\t\t\tlo = mid;\n\t\t\t} else {\n\t\t\t\thi = mid;\n\t\t\t}\n\t\t}\n\t\treturn hi;\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\ti = closest(target, untils);\n\t\t\tif (i >= 0) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t},\n\n\t\tcountries : function () {\n\t\t\tvar zone_name = this.name;\n\t\t\treturn Object.keys(countries).filter(function (country_code) {\n\t\t\t\treturn countries[country_code].zones.indexOf(zone_name) !== -1;\n\t\t\t});\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCountry object\n\t************************************/\n\n\tfunction Country (country_name, zone_names) {\n\t\tthis.name = country_name;\n\t\tthis.zones = zone_names;\n\t}\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\tlastOffset = last.offset,\n\t\t\toffsets = [last],\n\t\t\tchange, next, nextOffset, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnextOffset = new Date(startYear, i, 1).getTimezoneOffset();\n\t\t\tif (nextOffset !== lastOffset) {\n\t\t\t\t// Create OffsetAt here to avoid unnecessary abbr parsing before checking offsets\n\t\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t\tlast = next;\n\t\t\t\tlastOffset = nextOffset;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\tif (a.zone.population !== b.zone.population) {\n\t\t\treturn b.zone.population - a.zone.population;\n\t\t}\n\t\treturn b.zone.name.localeCompare(a.zone.name);\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\tcheckedOffsets = {},\n\t\t\ti, j, offset, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\toffset = offsets[i].offset;\n\t\t\tif (checkedOffsets.hasOwnProperty(offset)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tguessesOffset = guesses[offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcheckedOffsets[offset] = true;\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction getCountryNames () {\n\t\treturn Object.keys(countries);\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction addCountries (data) {\n\t\tvar i, country_code, country_zones, split;\n\t\tif (!data || !data.length) return;\n\t\tfor (i = 0; i < data.length; i++) {\n\t\t\tsplit = data[i].split('|');\n\t\t\tcountry_code = split[0].toUpperCase();\n\t\t\tcountry_zones = split[1].split(' ');\n\t\t\tcountries[country_code] = new Country(\n\t\t\t\tcountry_code,\n\t\t\t\tcountry_zones\n\t\t\t);\n\t\t}\n\t}\n\n\tfunction getCountry (name) {\n\t\tname = name.toUpperCase();\n\t\treturn countries[name] || null;\n\t}\n\n\tfunction zonesForCountry(country, with_offset) {\n\t\tcountry = getCountry(country);\n\n\t\tif (!country) return null;\n\n\t\tvar zones = country.zones.sort();\n\n\t\tif (with_offset) {\n\t\t\treturn zones.map(function (zone_name) {\n\t\t\t\tvar zone = getZone(zone_name);\n\t\t\t\treturn {\n\t\t\t\t\tname: zone_name,\n\t\t\t\t\toffset: zone.utcOffset(new Date())\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\treturn zones;\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\taddCountries(data.countries);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tout = moment.utc.apply(null, args),\n\t\t\tzone;\n\n\t\tif (!moment.isMoment(input) && needsOffset(out) && (zone = getZone(name))) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz._countries\t= countries;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\ttz.countries = getCountryNames;\n\ttz.zonesForCountry = zonesForCountry;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tvar z = mom._z;\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t\tmom._z = z;\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tif (typeof name !== 'string') {\n\t\t\t\tthrow new Error('Time zone name must be a string, got ' + name + ' [' + typeof name + ']');\n\t\t\t}\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap2 (old) {\n\t\treturn function () {\n\t\t\tif (arguments.length > 0) this._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\tfn.local = resetZoneWrap(fn.local);\n\tfn.utcOffset = resetZoneWrap2(fn.utcOffset);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\tloadData({\n\t\t\"version\": \"2024b\",\n\t\t\"zones\": [\n\t\t\t\"Africa/Abidjan|GMT|0|0||48e5\",\n\t\t\t\"Africa/Nairobi|EAT|-30|0||47e5\",\n\t\t\t\"Africa/Algiers|CET|-10|0||26e5\",\n\t\t\t\"Africa/Lagos|WAT|-10|0||17e6\",\n\t\t\t\"Africa/Khartoum|CAT|-20|0||51e5\",\n\t\t\t\"Africa/Cairo|EET EEST|-20 -30|010101010101010|29NW0 1cL0 1cN0 1fz0 1a10 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0|15e6\",\n\t\t\t\"Africa/Casablanca|+01 +00|-10 0|010101010101010101010101|208q0 e00 2600 gM0 2600 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 28M0 e00 2600 gM0 2600 e00 2600|32e5\",\n\t\t\t\"Europe/Paris|CET CEST|-10 -20|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|11e6\",\n\t\t\t\"Africa/Johannesburg|SAST|-20|0||84e5\",\n\t\t\t\"Africa/Juba|EAT CAT|-30 -20|01|24nx0|\",\n\t\t\t\"Africa/Sao_Tome|WAT GMT|-10 0|01|1XiN0|\",\n\t\t\t\"Africa/Tripoli|EET|-20|0||11e5\",\n\t\t\t\"America/Adak|HST HDT|a0 90|01010101010101010101010|1XKc0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|326\",\n\t\t\t\"America/Anchorage|AKST AKDT|90 80|01010101010101010101010|1XKb0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|30e4\",\n\t\t\t\"America/Santo_Domingo|AST|40|0||29e5\",\n\t\t\t\"America/Fortaleza|-03|30|0||34e5\",\n\t\t\t\"America/Asuncion|-03 -04|30 40|01010101010101010101010|1XPD0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0|28e5\",\n\t\t\t\"America/Panama|EST|50|0||15e5\",\n\t\t\t\"America/Mexico_City|CST CDT|60 50|010101010|1XVk0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|20e6\",\n\t\t\t\"America/Managua|CST|60|0||22e5\",\n\t\t\t\"America/Caracas|-04|40|0||29e5\",\n\t\t\t\"America/Lima|-05|50|0||11e6\",\n\t\t\t\"America/Denver|MST MDT|70 60|01010101010101010101010|1XK90 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|26e5\",\n\t\t\t\"America/Campo_Grande|-03 -04|30 40|01|1XBD0|77e4\",\n\t\t\t\"America/Chicago|CST CDT|60 50|01010101010101010101010|1XK80 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|92e5\",\n\t\t\t\"America/Chihuahua|MST MDT CST|70 60 60|010101012|1XVl0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|81e4\",\n\t\t\t\"America/Ciudad_Juarez|MST MDT CST|70 60 60|010101012010101010101010|1XK90 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 cm0 EP0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|\",\n\t\t\t\"America/Phoenix|MST|70|0||42e5\",\n\t\t\t\"America/Whitehorse|PST PDT MST|80 70 70|01012|1XKa0 1zb0 Op0 1z90|23e3\",\n\t\t\t\"America/New_York|EST EDT|50 40|01010101010101010101010|1XK70 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|21e6\",\n\t\t\t\"America/Los_Angeles|PST PDT|80 70|01010101010101010101010|1XKa0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|15e6\",\n\t\t\t\"America/Halifax|AST ADT|40 30|01010101010101010101010|1XK60 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|39e4\",\n\t\t\t\"America/Godthab|-03 -02 -01|30 20 10|0101010101212121212121|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 2so0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|17e3\",\n\t\t\t\"America/Havana|CST CDT|50 40|01010101010101010101010|1XK50 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5\",\n\t\t\t\"America/Mazatlan|MST MDT|70 60|010101010|1XVl0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0|44e4\",\n\t\t\t\"America/Metlakatla|PST AKST AKDT|80 90 80|012121212121212121212121|1Xqy0 jB0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|14e2\",\n\t\t\t\"America/Miquelon|-03 -02|30 20|01010101010101010101010|1XK50 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|61e2\",\n\t\t\t\"America/Noronha|-02|20|0||30e2\",\n\t\t\t\"America/Ojinaga|MST MDT CST CDT|70 60 60 50|01010101232323232323232|1XK90 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1wn0 Rc0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|23e3\",\n\t\t\t\"America/Santiago|-03 -04|30 40|01010101010101010101010|1XVf0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|62e5\",\n\t\t\t\"America/Sao_Paulo|-02 -03|20 30|01|1XBC0|20e6\",\n\t\t\t\"America/Scoresbysund|-01 +00 -02|10 0 20|0101010101020202020202|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 2pA0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|452\",\n\t\t\t\"America/St_Johns|NST NDT|3u 2u|01010101010101010101010|1XK5u 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0|11e4\",\n\t\t\t\"Antarctica/Casey|+11 +08|-b0 -80|0101010101|1XME0 1kr0 12l0 1o01 14kX 1lf1 14kX 1lf1 13bX|10\",\n\t\t\t\"Asia/Bangkok|+07|-70|0||15e6\",\n\t\t\t\"Asia/Vladivostok|+10|-a0|0||60e4\",\n\t\t\t\"Australia/Sydney|AEDT AEST|-b0 -a0|01010101010101010101010|1XV40 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0|40e5\",\n\t\t\t\"Asia/Tashkent|+05|-50|0||23e5\",\n\t\t\t\"Pacific/Auckland|NZDT NZST|-d0 -c0|01010101010101010101010|1XV20 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0|14e5\",\n\t\t\t\"Europe/Istanbul|+03|-30|0||13e6\",\n\t\t\t\"Antarctica/Troll|+00 +02|0 -20|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|40\",\n\t\t\t\"Antarctica/Vostok|+07 +05|-70 -50|01|2bnv0|25\",\n\t\t\t\"Asia/Almaty|+06 +05|-60 -50|01|2bR60|15e5\",\n\t\t\t\"Asia/Amman|EET EEST +03|-20 -30 -30|010101012|1XRy0 1o00 11A0 1qM0 WM0 1qM0 LA0 1C00|25e5\",\n\t\t\t\"Asia/Kamchatka|+12|-c0|0||18e4\",\n\t\t\t\"Asia/Dubai|+04|-40|0||39e5\",\n\t\t\t\"Asia/Beirut|EET EEST|-20 -30|01010101010101010101010|1XSm0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|22e5\",\n\t\t\t\"Asia/Dhaka|+06|-60|0||16e6\",\n\t\t\t\"Asia/Kuala_Lumpur|+08|-80|0||71e5\",\n\t\t\t\"Asia/Kolkata|IST|-5u|0||15e6\",\n\t\t\t\"Asia/Chita|+09|-90|0||33e4\",\n\t\t\t\"Asia/Shanghai|CST|-80|0||23e6\",\n\t\t\t\"Asia/Colombo|+0530|-5u|0||22e5\",\n\t\t\t\"Asia/Damascus|EET EEST +03|-20 -30 -30|010101012|1XRy0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|26e5\",\n\t\t\t\"Europe/Athens|EET EEST|-20 -30|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|35e5\",\n\t\t\t\"Asia/Gaza|EET EEST|-20 -30|01010101010101010101010|1XRy0 1on0 11B0 1o00 11A0 1qo0 XA0 1qp0 1cN0 1cL0 1a10 1fz0 17d0 1in0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0|18e5\",\n\t\t\t\"Asia/Hong_Kong|HKT|-80|0||73e5\",\n\t\t\t\"Asia/Jakarta|WIB|-70|0||31e6\",\n\t\t\t\"Asia/Jayapura|WIT|-90|0||26e4\",\n\t\t\t\"Asia/Jerusalem|IST IDT|-20 -30|01010101010101010101010|1XRA0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0|81e4\",\n\t\t\t\"Asia/Kabul|+0430|-4u|0||46e5\",\n\t\t\t\"Asia/Karachi|PKT|-50|0||24e6\",\n\t\t\t\"Asia/Kathmandu|+0545|-5J|0||12e5\",\n\t\t\t\"Asia/Sakhalin|+11|-b0|0||58e4\",\n\t\t\t\"Asia/Makassar|WITA|-80|0||15e5\",\n\t\t\t\"Asia/Manila|PST|-80|0||24e6\",\n\t\t\t\"Asia/Seoul|KST|-90|0||23e6\",\n\t\t\t\"Asia/Rangoon|+0630|-6u|0||48e5\",\n\t\t\t\"Asia/Tehran|+0330 +0430|-3u -4u|010101010|1XOIu 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0|14e6\",\n\t\t\t\"Asia/Tokyo|JST|-90|0||38e6\",\n\t\t\t\"Atlantic/Azores|-01 +00|10 0|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|25e4\",\n\t\t\t\"Europe/Lisbon|WET WEST|0 -10|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|27e5\",\n\t\t\t\"Atlantic/Cape_Verde|-01|10|0||50e4\",\n\t\t\t\"Australia/Adelaide|ACDT ACST|-au -9u|01010101010101010101010|1XV4u 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0|11e5\",\n\t\t\t\"Australia/Brisbane|AEST|-a0|0||20e5\",\n\t\t\t\"Australia/Darwin|ACST|-9u|0||12e4\",\n\t\t\t\"Australia/Eucla|+0845|-8J|0||368\",\n\t\t\t\"Australia/Lord_Howe|+11 +1030|-b0 -au|01010101010101010101010|1XV30 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu|347\",\n\t\t\t\"Australia/Perth|AWST|-80|0||18e5\",\n\t\t\t\"Pacific/Easter|-05 -06|50 60|01010101010101010101010|1XVf0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|30e2\",\n\t\t\t\"Europe/Dublin|GMT IST|0 -10|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|12e5\",\n\t\t\t\"Etc/GMT-1|+01|-10|0||\",\n\t\t\t\"Pacific/Tongatapu|+13|-d0|0||75e3\",\n\t\t\t\"Pacific/Kiritimati|+14|-e0|0||51e2\",\n\t\t\t\"Etc/GMT-2|+02|-20|0||\",\n\t\t\t\"Pacific/Tahiti|-10|a0|0||18e4\",\n\t\t\t\"Pacific/Niue|-11|b0|0||12e2\",\n\t\t\t\"Etc/GMT+12|-12|c0|0||\",\n\t\t\t\"Pacific/Galapagos|-06|60|0||25e3\",\n\t\t\t\"Etc/GMT+7|-07|70|0||\",\n\t\t\t\"Pacific/Pitcairn|-08|80|0||56\",\n\t\t\t\"Pacific/Gambier|-09|90|0||125\",\n\t\t\t\"Etc/UTC|UTC|0|0||\",\n\t\t\t\"Europe/London|GMT BST|0 -10|01010101010101010101010|1XSp0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|10e6\",\n\t\t\t\"Europe/Chisinau|EET EEST|-20 -30|01010101010101010101010|1XSo0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0|67e4\",\n\t\t\t\"Europe/Moscow|MSK|-30|0||16e6\",\n\t\t\t\"Europe/Volgograd|+04 MSK|-40 -30|01|249a0|10e5\",\n\t\t\t\"Pacific/Honolulu|HST|a0|0||37e4\",\n\t\t\t\"Pacific/Chatham|+1345 +1245|-dJ -cJ|01010101010101010101010|1XV20 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0|600\",\n\t\t\t\"Pacific/Apia|+14 +13|-e0 -d0|010101|1XV20 1a00 1fA0 1a00 1fA0|37e3\",\n\t\t\t\"Pacific/Fiji|+13 +12|-d0 -c0|010101|1Xnq0 20o0 pc0 2hc0 bc0|88e4\",\n\t\t\t\"Pacific/Guam|ChST|-a0|0||17e4\",\n\t\t\t\"Pacific/Marquesas|-0930|9u|0||86e2\",\n\t\t\t\"Pacific/Pago_Pago|SST|b0|0||37e2\",\n\t\t\t\"Pacific/Norfolk|+11 +12|-b0 -c0|0101010101010101010101|219P0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0|25e4\"\n\t\t],\n\t\t\"links\": [\n\t\t\t\"Africa/Abidjan|Africa/Accra\",\n\t\t\t\"Africa/Abidjan|Africa/Bamako\",\n\t\t\t\"Africa/Abidjan|Africa/Banjul\",\n\t\t\t\"Africa/Abidjan|Africa/Bissau\",\n\t\t\t\"Africa/Abidjan|Africa/Conakry\",\n\t\t\t\"Africa/Abidjan|Africa/Dakar\",\n\t\t\t\"Africa/Abidjan|Africa/Freetown\",\n\t\t\t\"Africa/Abidjan|Africa/Lome\",\n\t\t\t\"Africa/Abidjan|Africa/Monrovia\",\n\t\t\t\"Africa/Abidjan|Africa/Nouakchott\",\n\t\t\t\"Africa/Abidjan|Africa/Ouagadougou\",\n\t\t\t\"Africa/Abidjan|Africa/Timbuktu\",\n\t\t\t\"Africa/Abidjan|America/Danmarkshavn\",\n\t\t\t\"Africa/Abidjan|Atlantic/Reykjavik\",\n\t\t\t\"Africa/Abidjan|Atlantic/St_Helena\",\n\t\t\t\"Africa/Abidjan|Etc/GMT\",\n\t\t\t\"Africa/Abidjan|Etc/GMT+0\",\n\t\t\t\"Africa/Abidjan|Etc/GMT-0\",\n\t\t\t\"Africa/Abidjan|Etc/GMT0\",\n\t\t\t\"Africa/Abidjan|Etc/Greenwich\",\n\t\t\t\"Africa/Abidjan|GMT\",\n\t\t\t\"Africa/Abidjan|GMT+0\",\n\t\t\t\"Africa/Abidjan|GMT-0\",\n\t\t\t\"Africa/Abidjan|GMT0\",\n\t\t\t\"Africa/Abidjan|Greenwich\",\n\t\t\t\"Africa/Abidjan|Iceland\",\n\t\t\t\"Africa/Algiers|Africa/Tunis\",\n\t\t\t\"Africa/Cairo|Egypt\",\n\t\t\t\"Africa/Casablanca|Africa/El_Aaiun\",\n\t\t\t\"Africa/Johannesburg|Africa/Maseru\",\n\t\t\t\"Africa/Johannesburg|Africa/Mbabane\",\n\t\t\t\"Africa/Khartoum|Africa/Blantyre\",\n\t\t\t\"Africa/Khartoum|Africa/Bujumbura\",\n\t\t\t\"Africa/Khartoum|Africa/Gaborone\",\n\t\t\t\"Africa/Khartoum|Africa/Harare\",\n\t\t\t\"Africa/Khartoum|Africa/Kigali\",\n\t\t\t\"Africa/Khartoum|Africa/Lubumbashi\",\n\t\t\t\"Africa/Khartoum|Africa/Lusaka\",\n\t\t\t\"Africa/Khartoum|Africa/Maputo\",\n\t\t\t\"Africa/Khartoum|Africa/Windhoek\",\n\t\t\t\"Africa/Lagos|Africa/Bangui\",\n\t\t\t\"Africa/Lagos|Africa/Brazzaville\",\n\t\t\t\"Africa/Lagos|Africa/Douala\",\n\t\t\t\"Africa/Lagos|Africa/Kinshasa\",\n\t\t\t\"Africa/Lagos|Africa/Libreville\",\n\t\t\t\"Africa/Lagos|Africa/Luanda\",\n\t\t\t\"Africa/Lagos|Africa/Malabo\",\n\t\t\t\"Africa/Lagos|Africa/Ndjamena\",\n\t\t\t\"Africa/Lagos|Africa/Niamey\",\n\t\t\t\"Africa/Lagos|Africa/Porto-Novo\",\n\t\t\t\"Africa/Nairobi|Africa/Addis_Ababa\",\n\t\t\t\"Africa/Nairobi|Africa/Asmara\",\n\t\t\t\"Africa/Nairobi|Africa/Asmera\",\n\t\t\t\"Africa/Nairobi|Africa/Dar_es_Salaam\",\n\t\t\t\"Africa/Nairobi|Africa/Djibouti\",\n\t\t\t\"Africa/Nairobi|Africa/Kampala\",\n\t\t\t\"Africa/Nairobi|Africa/Mogadishu\",\n\t\t\t\"Africa/Nairobi|Indian/Antananarivo\",\n\t\t\t\"Africa/Nairobi|Indian/Comoro\",\n\t\t\t\"Africa/Nairobi|Indian/Mayotte\",\n\t\t\t\"Africa/Tripoli|Europe/Kaliningrad\",\n\t\t\t\"Africa/Tripoli|Libya\",\n\t\t\t\"America/Adak|America/Atka\",\n\t\t\t\"America/Adak|US/Aleutian\",\n\t\t\t\"America/Anchorage|America/Juneau\",\n\t\t\t\"America/Anchorage|America/Nome\",\n\t\t\t\"America/Anchorage|America/Sitka\",\n\t\t\t\"America/Anchorage|America/Yakutat\",\n\t\t\t\"America/Anchorage|US/Alaska\",\n\t\t\t\"America/Campo_Grande|America/Cuiaba\",\n\t\t\t\"America/Caracas|America/Boa_Vista\",\n\t\t\t\"America/Caracas|America/Guyana\",\n\t\t\t\"America/Caracas|America/La_Paz\",\n\t\t\t\"America/Caracas|America/Manaus\",\n\t\t\t\"America/Caracas|America/Porto_Velho\",\n\t\t\t\"America/Caracas|Brazil/West\",\n\t\t\t\"America/Caracas|Etc/GMT+4\",\n\t\t\t\"America/Chicago|America/Indiana/Knox\",\n\t\t\t\"America/Chicago|America/Indiana/Tell_City\",\n\t\t\t\"America/Chicago|America/Knox_IN\",\n\t\t\t\"America/Chicago|America/Matamoros\",\n\t\t\t\"America/Chicago|America/Menominee\",\n\t\t\t\"America/Chicago|America/North_Dakota/Beulah\",\n\t\t\t\"America/Chicago|America/North_Dakota/Center\",\n\t\t\t\"America/Chicago|America/North_Dakota/New_Salem\",\n\t\t\t\"America/Chicago|America/Rainy_River\",\n\t\t\t\"America/Chicago|America/Rankin_Inlet\",\n\t\t\t\"America/Chicago|America/Resolute\",\n\t\t\t\"America/Chicago|America/Winnipeg\",\n\t\t\t\"America/Chicago|CST6CDT\",\n\t\t\t\"America/Chicago|Canada/Central\",\n\t\t\t\"America/Chicago|US/Central\",\n\t\t\t\"America/Chicago|US/Indiana-Starke\",\n\t\t\t\"America/Denver|America/Boise\",\n\t\t\t\"America/Denver|America/Cambridge_Bay\",\n\t\t\t\"America/Denver|America/Edmonton\",\n\t\t\t\"America/Denver|America/Inuvik\",\n\t\t\t\"America/Denver|America/Shiprock\",\n\t\t\t\"America/Denver|America/Yellowknife\",\n\t\t\t\"America/Denver|Canada/Mountain\",\n\t\t\t\"America/Denver|MST7MDT\",\n\t\t\t\"America/Denver|Navajo\",\n\t\t\t\"America/Denver|US/Mountain\",\n\t\t\t\"America/Fortaleza|America/Araguaina\",\n\t\t\t\"America/Fortaleza|America/Argentina/Buenos_Aires\",\n\t\t\t\"America/Fortaleza|America/Argentina/Catamarca\",\n\t\t\t\"America/Fortaleza|America/Argentina/ComodRivadavia\",\n\t\t\t\"America/Fortaleza|America/Argentina/Cordoba\",\n\t\t\t\"America/Fortaleza|America/Argentina/Jujuy\",\n\t\t\t\"America/Fortaleza|America/Argentina/La_Rioja\",\n\t\t\t\"America/Fortaleza|America/Argentina/Mendoza\",\n\t\t\t\"America/Fortaleza|America/Argentina/Rio_Gallegos\",\n\t\t\t\"America/Fortaleza|America/Argentina/Salta\",\n\t\t\t\"America/Fortaleza|America/Argentina/San_Juan\",\n\t\t\t\"America/Fortaleza|America/Argentina/San_Luis\",\n\t\t\t\"America/Fortaleza|America/Argentina/Tucuman\",\n\t\t\t\"America/Fortaleza|America/Argentina/Ushuaia\",\n\t\t\t\"America/Fortaleza|America/Bahia\",\n\t\t\t\"America/Fortaleza|America/Belem\",\n\t\t\t\"America/Fortaleza|America/Buenos_Aires\",\n\t\t\t\"America/Fortaleza|America/Catamarca\",\n\t\t\t\"America/Fortaleza|America/Cayenne\",\n\t\t\t\"America/Fortaleza|America/Cordoba\",\n\t\t\t\"America/Fortaleza|America/Jujuy\",\n\t\t\t\"America/Fortaleza|America/Maceio\",\n\t\t\t\"America/Fortaleza|America/Mendoza\",\n\t\t\t\"America/Fortaleza|America/Montevideo\",\n\t\t\t\"America/Fortaleza|America/Paramaribo\",\n\t\t\t\"America/Fortaleza|America/Punta_Arenas\",\n\t\t\t\"America/Fortaleza|America/Recife\",\n\t\t\t\"America/Fortaleza|America/Rosario\",\n\t\t\t\"America/Fortaleza|America/Santarem\",\n\t\t\t\"America/Fortaleza|Antarctica/Palmer\",\n\t\t\t\"America/Fortaleza|Antarctica/Rothera\",\n\t\t\t\"America/Fortaleza|Atlantic/Stanley\",\n\t\t\t\"America/Fortaleza|Etc/GMT+3\",\n\t\t\t\"America/Godthab|America/Nuuk\",\n\t\t\t\"America/Halifax|America/Glace_Bay\",\n\t\t\t\"America/Halifax|America/Goose_Bay\",\n\t\t\t\"America/Halifax|America/Moncton\",\n\t\t\t\"America/Halifax|America/Thule\",\n\t\t\t\"America/Halifax|Atlantic/Bermuda\",\n\t\t\t\"America/Halifax|Canada/Atlantic\",\n\t\t\t\"America/Havana|Cuba\",\n\t\t\t\"America/Lima|America/Bogota\",\n\t\t\t\"America/Lima|America/Eirunepe\",\n\t\t\t\"America/Lima|America/Guayaquil\",\n\t\t\t\"America/Lima|America/Porto_Acre\",\n\t\t\t\"America/Lima|America/Rio_Branco\",\n\t\t\t\"America/Lima|Brazil/Acre\",\n\t\t\t\"America/Lima|Etc/GMT+5\",\n\t\t\t\"America/Los_Angeles|America/Ensenada\",\n\t\t\t\"America/Los_Angeles|America/Santa_Isabel\",\n\t\t\t\"America/Los_Angeles|America/Tijuana\",\n\t\t\t\"America/Los_Angeles|America/Vancouver\",\n\t\t\t\"America/Los_Angeles|Canada/Pacific\",\n\t\t\t\"America/Los_Angeles|Mexico/BajaNorte\",\n\t\t\t\"America/Los_Angeles|PST8PDT\",\n\t\t\t\"America/Los_Angeles|US/Pacific\",\n\t\t\t\"America/Managua|America/Belize\",\n\t\t\t\"America/Managua|America/Costa_Rica\",\n\t\t\t\"America/Managua|America/El_Salvador\",\n\t\t\t\"America/Managua|America/Guatemala\",\n\t\t\t\"America/Managua|America/Regina\",\n\t\t\t\"America/Managua|America/Swift_Current\",\n\t\t\t\"America/Managua|America/Tegucigalpa\",\n\t\t\t\"America/Managua|Canada/Saskatchewan\",\n\t\t\t\"America/Mazatlan|Mexico/BajaSur\",\n\t\t\t\"America/Mexico_City|America/Bahia_Banderas\",\n\t\t\t\"America/Mexico_City|America/Merida\",\n\t\t\t\"America/Mexico_City|America/Monterrey\",\n\t\t\t\"America/Mexico_City|Mexico/General\",\n\t\t\t\"America/New_York|America/Detroit\",\n\t\t\t\"America/New_York|America/Fort_Wayne\",\n\t\t\t\"America/New_York|America/Grand_Turk\",\n\t\t\t\"America/New_York|America/Indiana/Indianapolis\",\n\t\t\t\"America/New_York|America/Indiana/Marengo\",\n\t\t\t\"America/New_York|America/Indiana/Petersburg\",\n\t\t\t\"America/New_York|America/Indiana/Vevay\",\n\t\t\t\"America/New_York|America/Indiana/Vincennes\",\n\t\t\t\"America/New_York|America/Indiana/Winamac\",\n\t\t\t\"America/New_York|America/Indianapolis\",\n\t\t\t\"America/New_York|America/Iqaluit\",\n\t\t\t\"America/New_York|America/Kentucky/Louisville\",\n\t\t\t\"America/New_York|America/Kentucky/Monticello\",\n\t\t\t\"America/New_York|America/Louisville\",\n\t\t\t\"America/New_York|America/Montreal\",\n\t\t\t\"America/New_York|America/Nassau\",\n\t\t\t\"America/New_York|America/Nipigon\",\n\t\t\t\"America/New_York|America/Pangnirtung\",\n\t\t\t\"America/New_York|America/Port-au-Prince\",\n\t\t\t\"America/New_York|America/Thunder_Bay\",\n\t\t\t\"America/New_York|America/Toronto\",\n\t\t\t\"America/New_York|Canada/Eastern\",\n\t\t\t\"America/New_York|EST5EDT\",\n\t\t\t\"America/New_York|US/East-Indiana\",\n\t\t\t\"America/New_York|US/Eastern\",\n\t\t\t\"America/New_York|US/Michigan\",\n\t\t\t\"America/Noronha|Atlantic/South_Georgia\",\n\t\t\t\"America/Noronha|Brazil/DeNoronha\",\n\t\t\t\"America/Noronha|Etc/GMT+2\",\n\t\t\t\"America/Panama|America/Atikokan\",\n\t\t\t\"America/Panama|America/Cancun\",\n\t\t\t\"America/Panama|America/Cayman\",\n\t\t\t\"America/Panama|America/Coral_Harbour\",\n\t\t\t\"America/Panama|America/Jamaica\",\n\t\t\t\"America/Panama|EST\",\n\t\t\t\"America/Panama|Jamaica\",\n\t\t\t\"America/Phoenix|America/Creston\",\n\t\t\t\"America/Phoenix|America/Dawson_Creek\",\n\t\t\t\"America/Phoenix|America/Fort_Nelson\",\n\t\t\t\"America/Phoenix|America/Hermosillo\",\n\t\t\t\"America/Phoenix|MST\",\n\t\t\t\"America/Phoenix|US/Arizona\",\n\t\t\t\"America/Santiago|Chile/Continental\",\n\t\t\t\"America/Santo_Domingo|America/Anguilla\",\n\t\t\t\"America/Santo_Domingo|America/Antigua\",\n\t\t\t\"America/Santo_Domingo|America/Aruba\",\n\t\t\t\"America/Santo_Domingo|America/Barbados\",\n\t\t\t\"America/Santo_Domingo|America/Blanc-Sablon\",\n\t\t\t\"America/Santo_Domingo|America/Curacao\",\n\t\t\t\"America/Santo_Domingo|America/Dominica\",\n\t\t\t\"America/Santo_Domingo|America/Grenada\",\n\t\t\t\"America/Santo_Domingo|America/Guadeloupe\",\n\t\t\t\"America/Santo_Domingo|America/Kralendijk\",\n\t\t\t\"America/Santo_Domingo|America/Lower_Princes\",\n\t\t\t\"America/Santo_Domingo|America/Marigot\",\n\t\t\t\"America/Santo_Domingo|America/Martinique\",\n\t\t\t\"America/Santo_Domingo|America/Montserrat\",\n\t\t\t\"America/Santo_Domingo|America/Port_of_Spain\",\n\t\t\t\"America/Santo_Domingo|America/Puerto_Rico\",\n\t\t\t\"America/Santo_Domingo|America/St_Barthelemy\",\n\t\t\t\"America/Santo_Domingo|America/St_Kitts\",\n\t\t\t\"America/Santo_Domingo|America/St_Lucia\",\n\t\t\t\"America/Santo_Domingo|America/St_Thomas\",\n\t\t\t\"America/Santo_Domingo|America/St_Vincent\",\n\t\t\t\"America/Santo_Domingo|America/Tortola\",\n\t\t\t\"America/Santo_Domingo|America/Virgin\",\n\t\t\t\"America/Sao_Paulo|Brazil/East\",\n\t\t\t\"America/St_Johns|Canada/Newfoundland\",\n\t\t\t\"America/Whitehorse|America/Dawson\",\n\t\t\t\"America/Whitehorse|Canada/Yukon\",\n\t\t\t\"Asia/Almaty|Asia/Qostanay\",\n\t\t\t\"Asia/Bangkok|Antarctica/Davis\",\n\t\t\t\"Asia/Bangkok|Asia/Barnaul\",\n\t\t\t\"Asia/Bangkok|Asia/Ho_Chi_Minh\",\n\t\t\t\"Asia/Bangkok|Asia/Hovd\",\n\t\t\t\"Asia/Bangkok|Asia/Krasnoyarsk\",\n\t\t\t\"Asia/Bangkok|Asia/Novokuznetsk\",\n\t\t\t\"Asia/Bangkok|Asia/Novosibirsk\",\n\t\t\t\"Asia/Bangkok|Asia/Phnom_Penh\",\n\t\t\t\"Asia/Bangkok|Asia/Saigon\",\n\t\t\t\"Asia/Bangkok|Asia/Tomsk\",\n\t\t\t\"Asia/Bangkok|Asia/Vientiane\",\n\t\t\t\"Asia/Bangkok|Etc/GMT-7\",\n\t\t\t\"Asia/Bangkok|Indian/Christmas\",\n\t\t\t\"Asia/Chita|Asia/Dili\",\n\t\t\t\"Asia/Chita|Asia/Khandyga\",\n\t\t\t\"Asia/Chita|Asia/Yakutsk\",\n\t\t\t\"Asia/Chita|Etc/GMT-9\",\n\t\t\t\"Asia/Chita|Pacific/Palau\",\n\t\t\t\"Asia/Dhaka|Asia/Bishkek\",\n\t\t\t\"Asia/Dhaka|Asia/Dacca\",\n\t\t\t\"Asia/Dhaka|Asia/Kashgar\",\n\t\t\t\"Asia/Dhaka|Asia/Omsk\",\n\t\t\t\"Asia/Dhaka|Asia/Thimbu\",\n\t\t\t\"Asia/Dhaka|Asia/Thimphu\",\n\t\t\t\"Asia/Dhaka|Asia/Urumqi\",\n\t\t\t\"Asia/Dhaka|Etc/GMT-6\",\n\t\t\t\"Asia/Dhaka|Indian/Chagos\",\n\t\t\t\"Asia/Dubai|Asia/Baku\",\n\t\t\t\"Asia/Dubai|Asia/Muscat\",\n\t\t\t\"Asia/Dubai|Asia/Tbilisi\",\n\t\t\t\"Asia/Dubai|Asia/Yerevan\",\n\t\t\t\"Asia/Dubai|Etc/GMT-4\",\n\t\t\t\"Asia/Dubai|Europe/Astrakhan\",\n\t\t\t\"Asia/Dubai|Europe/Samara\",\n\t\t\t\"Asia/Dubai|Europe/Saratov\",\n\t\t\t\"Asia/Dubai|Europe/Ulyanovsk\",\n\t\t\t\"Asia/Dubai|Indian/Mahe\",\n\t\t\t\"Asia/Dubai|Indian/Mauritius\",\n\t\t\t\"Asia/Dubai|Indian/Reunion\",\n\t\t\t\"Asia/Gaza|Asia/Hebron\",\n\t\t\t\"Asia/Hong_Kong|Hongkong\",\n\t\t\t\"Asia/Jakarta|Asia/Pontianak\",\n\t\t\t\"Asia/Jerusalem|Asia/Tel_Aviv\",\n\t\t\t\"Asia/Jerusalem|Israel\",\n\t\t\t\"Asia/Kamchatka|Asia/Anadyr\",\n\t\t\t\"Asia/Kamchatka|Etc/GMT-12\",\n\t\t\t\"Asia/Kamchatka|Kwajalein\",\n\t\t\t\"Asia/Kamchatka|Pacific/Funafuti\",\n\t\t\t\"Asia/Kamchatka|Pacific/Kwajalein\",\n\t\t\t\"Asia/Kamchatka|Pacific/Majuro\",\n\t\t\t\"Asia/Kamchatka|Pacific/Nauru\",\n\t\t\t\"Asia/Kamchatka|Pacific/Tarawa\",\n\t\t\t\"Asia/Kamchatka|Pacific/Wake\",\n\t\t\t\"Asia/Kamchatka|Pacific/Wallis\",\n\t\t\t\"Asia/Kathmandu|Asia/Katmandu\",\n\t\t\t\"Asia/Kolkata|Asia/Calcutta\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Brunei\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Choibalsan\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Irkutsk\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Kuching\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Singapore\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Ulaanbaatar\",\n\t\t\t\"Asia/Kuala_Lumpur|Asia/Ulan_Bator\",\n\t\t\t\"Asia/Kuala_Lumpur|Etc/GMT-8\",\n\t\t\t\"Asia/Kuala_Lumpur|Singapore\",\n\t\t\t\"Asia/Makassar|Asia/Ujung_Pandang\",\n\t\t\t\"Asia/Rangoon|Asia/Yangon\",\n\t\t\t\"Asia/Rangoon|Indian/Cocos\",\n\t\t\t\"Asia/Sakhalin|Asia/Magadan\",\n\t\t\t\"Asia/Sakhalin|Asia/Srednekolymsk\",\n\t\t\t\"Asia/Sakhalin|Etc/GMT-11\",\n\t\t\t\"Asia/Sakhalin|Pacific/Bougainville\",\n\t\t\t\"Asia/Sakhalin|Pacific/Efate\",\n\t\t\t\"Asia/Sakhalin|Pacific/Guadalcanal\",\n\t\t\t\"Asia/Sakhalin|Pacific/Kosrae\",\n\t\t\t\"Asia/Sakhalin|Pacific/Noumea\",\n\t\t\t\"Asia/Sakhalin|Pacific/Pohnpei\",\n\t\t\t\"Asia/Sakhalin|Pacific/Ponape\",\n\t\t\t\"Asia/Seoul|Asia/Pyongyang\",\n\t\t\t\"Asia/Seoul|ROK\",\n\t\t\t\"Asia/Shanghai|Asia/Chongqing\",\n\t\t\t\"Asia/Shanghai|Asia/Chungking\",\n\t\t\t\"Asia/Shanghai|Asia/Harbin\",\n\t\t\t\"Asia/Shanghai|Asia/Macao\",\n\t\t\t\"Asia/Shanghai|Asia/Macau\",\n\t\t\t\"Asia/Shanghai|Asia/Taipei\",\n\t\t\t\"Asia/Shanghai|PRC\",\n\t\t\t\"Asia/Shanghai|ROC\",\n\t\t\t\"Asia/Tashkent|Antarctica/Mawson\",\n\t\t\t\"Asia/Tashkent|Asia/Aqtau\",\n\t\t\t\"Asia/Tashkent|Asia/Aqtobe\",\n\t\t\t\"Asia/Tashkent|Asia/Ashgabat\",\n\t\t\t\"Asia/Tashkent|Asia/Ashkhabad\",\n\t\t\t\"Asia/Tashkent|Asia/Atyrau\",\n\t\t\t\"Asia/Tashkent|Asia/Dushanbe\",\n\t\t\t\"Asia/Tashkent|Asia/Oral\",\n\t\t\t\"Asia/Tashkent|Asia/Qyzylorda\",\n\t\t\t\"Asia/Tashkent|Asia/Samarkand\",\n\t\t\t\"Asia/Tashkent|Asia/Yekaterinburg\",\n\t\t\t\"Asia/Tashkent|Etc/GMT-5\",\n\t\t\t\"Asia/Tashkent|Indian/Kerguelen\",\n\t\t\t\"Asia/Tashkent|Indian/Maldives\",\n\t\t\t\"Asia/Tehran|Iran\",\n\t\t\t\"Asia/Tokyo|Japan\",\n\t\t\t\"Asia/Vladivostok|Antarctica/DumontDUrville\",\n\t\t\t\"Asia/Vladivostok|Asia/Ust-Nera\",\n\t\t\t\"Asia/Vladivostok|Etc/GMT-10\",\n\t\t\t\"Asia/Vladivostok|Pacific/Chuuk\",\n\t\t\t\"Asia/Vladivostok|Pacific/Port_Moresby\",\n\t\t\t\"Asia/Vladivostok|Pacific/Truk\",\n\t\t\t\"Asia/Vladivostok|Pacific/Yap\",\n\t\t\t\"Atlantic/Cape_Verde|Etc/GMT+1\",\n\t\t\t\"Australia/Adelaide|Australia/Broken_Hill\",\n\t\t\t\"Australia/Adelaide|Australia/South\",\n\t\t\t\"Australia/Adelaide|Australia/Yancowinna\",\n\t\t\t\"Australia/Brisbane|Australia/Lindeman\",\n\t\t\t\"Australia/Brisbane|Australia/Queensland\",\n\t\t\t\"Australia/Darwin|Australia/North\",\n\t\t\t\"Australia/Lord_Howe|Australia/LHI\",\n\t\t\t\"Australia/Perth|Australia/West\",\n\t\t\t\"Australia/Sydney|Antarctica/Macquarie\",\n\t\t\t\"Australia/Sydney|Australia/ACT\",\n\t\t\t\"Australia/Sydney|Australia/Canberra\",\n\t\t\t\"Australia/Sydney|Australia/Currie\",\n\t\t\t\"Australia/Sydney|Australia/Hobart\",\n\t\t\t\"Australia/Sydney|Australia/Melbourne\",\n\t\t\t\"Australia/Sydney|Australia/NSW\",\n\t\t\t\"Australia/Sydney|Australia/Tasmania\",\n\t\t\t\"Australia/Sydney|Australia/Victoria\",\n\t\t\t\"Etc/UTC|Etc/UCT\",\n\t\t\t\"Etc/UTC|Etc/Universal\",\n\t\t\t\"Etc/UTC|Etc/Zulu\",\n\t\t\t\"Etc/UTC|UCT\",\n\t\t\t\"Etc/UTC|UTC\",\n\t\t\t\"Etc/UTC|Universal\",\n\t\t\t\"Etc/UTC|Zulu\",\n\t\t\t\"Europe/Athens|Asia/Famagusta\",\n\t\t\t\"Europe/Athens|Asia/Nicosia\",\n\t\t\t\"Europe/Athens|EET\",\n\t\t\t\"Europe/Athens|Europe/Bucharest\",\n\t\t\t\"Europe/Athens|Europe/Helsinki\",\n\t\t\t\"Europe/Athens|Europe/Kiev\",\n\t\t\t\"Europe/Athens|Europe/Kyiv\",\n\t\t\t\"Europe/Athens|Europe/Mariehamn\",\n\t\t\t\"Europe/Athens|Europe/Nicosia\",\n\t\t\t\"Europe/Athens|Europe/Riga\",\n\t\t\t\"Europe/Athens|Europe/Sofia\",\n\t\t\t\"Europe/Athens|Europe/Tallinn\",\n\t\t\t\"Europe/Athens|Europe/Uzhgorod\",\n\t\t\t\"Europe/Athens|Europe/Vilnius\",\n\t\t\t\"Europe/Athens|Europe/Zaporozhye\",\n\t\t\t\"Europe/Chisinau|Europe/Tiraspol\",\n\t\t\t\"Europe/Dublin|Eire\",\n\t\t\t\"Europe/Istanbul|Antarctica/Syowa\",\n\t\t\t\"Europe/Istanbul|Asia/Aden\",\n\t\t\t\"Europe/Istanbul|Asia/Baghdad\",\n\t\t\t\"Europe/Istanbul|Asia/Bahrain\",\n\t\t\t\"Europe/Istanbul|Asia/Istanbul\",\n\t\t\t\"Europe/Istanbul|Asia/Kuwait\",\n\t\t\t\"Europe/Istanbul|Asia/Qatar\",\n\t\t\t\"Europe/Istanbul|Asia/Riyadh\",\n\t\t\t\"Europe/Istanbul|Etc/GMT-3\",\n\t\t\t\"Europe/Istanbul|Europe/Minsk\",\n\t\t\t\"Europe/Istanbul|Turkey\",\n\t\t\t\"Europe/Lisbon|Atlantic/Canary\",\n\t\t\t\"Europe/Lisbon|Atlantic/Faeroe\",\n\t\t\t\"Europe/Lisbon|Atlantic/Faroe\",\n\t\t\t\"Europe/Lisbon|Atlantic/Madeira\",\n\t\t\t\"Europe/Lisbon|Portugal\",\n\t\t\t\"Europe/Lisbon|WET\",\n\t\t\t\"Europe/London|Europe/Belfast\",\n\t\t\t\"Europe/London|Europe/Guernsey\",\n\t\t\t\"Europe/London|Europe/Isle_of_Man\",\n\t\t\t\"Europe/London|Europe/Jersey\",\n\t\t\t\"Europe/London|GB\",\n\t\t\t\"Europe/London|GB-Eire\",\n\t\t\t\"Europe/Moscow|Europe/Kirov\",\n\t\t\t\"Europe/Moscow|Europe/Simferopol\",\n\t\t\t\"Europe/Moscow|W-SU\",\n\t\t\t\"Europe/Paris|Africa/Ceuta\",\n\t\t\t\"Europe/Paris|Arctic/Longyearbyen\",\n\t\t\t\"Europe/Paris|Atlantic/Jan_Mayen\",\n\t\t\t\"Europe/Paris|CET\",\n\t\t\t\"Europe/Paris|Europe/Amsterdam\",\n\t\t\t\"Europe/Paris|Europe/Andorra\",\n\t\t\t\"Europe/Paris|Europe/Belgrade\",\n\t\t\t\"Europe/Paris|Europe/Berlin\",\n\t\t\t\"Europe/Paris|Europe/Bratislava\",\n\t\t\t\"Europe/Paris|Europe/Brussels\",\n\t\t\t\"Europe/Paris|Europe/Budapest\",\n\t\t\t\"Europe/Paris|Europe/Busingen\",\n\t\t\t\"Europe/Paris|Europe/Copenhagen\",\n\t\t\t\"Europe/Paris|Europe/Gibraltar\",\n\t\t\t\"Europe/Paris|Europe/Ljubljana\",\n\t\t\t\"Europe/Paris|Europe/Luxembourg\",\n\t\t\t\"Europe/Paris|Europe/Madrid\",\n\t\t\t\"Europe/Paris|Europe/Malta\",\n\t\t\t\"Europe/Paris|Europe/Monaco\",\n\t\t\t\"Europe/Paris|Europe/Oslo\",\n\t\t\t\"Europe/Paris|Europe/Podgorica\",\n\t\t\t\"Europe/Paris|Europe/Prague\",\n\t\t\t\"Europe/Paris|Europe/Rome\",\n\t\t\t\"Europe/Paris|Europe/San_Marino\",\n\t\t\t\"Europe/Paris|Europe/Sarajevo\",\n\t\t\t\"Europe/Paris|Europe/Skopje\",\n\t\t\t\"Europe/Paris|Europe/Stockholm\",\n\t\t\t\"Europe/Paris|Europe/Tirane\",\n\t\t\t\"Europe/Paris|Europe/Vaduz\",\n\t\t\t\"Europe/Paris|Europe/Vatican\",\n\t\t\t\"Europe/Paris|Europe/Vienna\",\n\t\t\t\"Europe/Paris|Europe/Warsaw\",\n\t\t\t\"Europe/Paris|Europe/Zagreb\",\n\t\t\t\"Europe/Paris|Europe/Zurich\",\n\t\t\t\"Europe/Paris|MET\",\n\t\t\t\"Europe/Paris|Poland\",\n\t\t\t\"Pacific/Auckland|Antarctica/McMurdo\",\n\t\t\t\"Pacific/Auckland|Antarctica/South_Pole\",\n\t\t\t\"Pacific/Auckland|NZ\",\n\t\t\t\"Pacific/Chatham|NZ-CHAT\",\n\t\t\t\"Pacific/Easter|Chile/EasterIsland\",\n\t\t\t\"Pacific/Galapagos|Etc/GMT+6\",\n\t\t\t\"Pacific/Gambier|Etc/GMT+9\",\n\t\t\t\"Pacific/Guam|Pacific/Saipan\",\n\t\t\t\"Pacific/Honolulu|HST\",\n\t\t\t\"Pacific/Honolulu|Pacific/Johnston\",\n\t\t\t\"Pacific/Honolulu|US/Hawaii\",\n\t\t\t\"Pacific/Kiritimati|Etc/GMT-14\",\n\t\t\t\"Pacific/Niue|Etc/GMT+11\",\n\t\t\t\"Pacific/Pago_Pago|Pacific/Midway\",\n\t\t\t\"Pacific/Pago_Pago|Pacific/Samoa\",\n\t\t\t\"Pacific/Pago_Pago|US/Samoa\",\n\t\t\t\"Pacific/Pitcairn|Etc/GMT+8\",\n\t\t\t\"Pacific/Tahiti|Etc/GMT+10\",\n\t\t\t\"Pacific/Tahiti|Pacific/Rarotonga\",\n\t\t\t\"Pacific/Tongatapu|Etc/GMT-13\",\n\t\t\t\"Pacific/Tongatapu|Pacific/Enderbury\",\n\t\t\t\"Pacific/Tongatapu|Pacific/Fakaofo\",\n\t\t\t\"Pacific/Tongatapu|Pacific/Kanton\"\n\t\t],\n\t\t\"countries\": [\n\t\t\t\"AD|Europe/Andorra\",\n\t\t\t\"AE|Asia/Dubai\",\n\t\t\t\"AF|Asia/Kabul\",\n\t\t\t\"AG|America/Puerto_Rico America/Antigua\",\n\t\t\t\"AI|America/Puerto_Rico America/Anguilla\",\n\t\t\t\"AL|Europe/Tirane\",\n\t\t\t\"AM|Asia/Yerevan\",\n\t\t\t\"AO|Africa/Lagos Africa/Luanda\",\n\t\t\t\"AQ|Antarctica/Casey Antarctica/Davis Antarctica/Mawson Antarctica/Palmer Antarctica/Rothera Antarctica/Troll Antarctica/Vostok Pacific/Auckland Pacific/Port_Moresby Asia/Riyadh Antarctica/McMurdo Antarctica/DumontDUrville Antarctica/Syowa\",\n\t\t\t\"AR|America/Argentina/Buenos_Aires America/Argentina/Cordoba America/Argentina/Salta America/Argentina/Jujuy America/Argentina/Tucuman America/Argentina/Catamarca America/Argentina/La_Rioja America/Argentina/San_Juan America/Argentina/Mendoza America/Argentina/San_Luis America/Argentina/Rio_Gallegos America/Argentina/Ushuaia\",\n\t\t\t\"AS|Pacific/Pago_Pago\",\n\t\t\t\"AT|Europe/Vienna\",\n\t\t\t\"AU|Australia/Lord_Howe Antarctica/Macquarie Australia/Hobart Australia/Melbourne Australia/Sydney Australia/Broken_Hill Australia/Brisbane Australia/Lindeman Australia/Adelaide Australia/Darwin Australia/Perth Australia/Eucla\",\n\t\t\t\"AW|America/Puerto_Rico America/Aruba\",\n\t\t\t\"AX|Europe/Helsinki Europe/Mariehamn\",\n\t\t\t\"AZ|Asia/Baku\",\n\t\t\t\"BA|Europe/Belgrade Europe/Sarajevo\",\n\t\t\t\"BB|America/Barbados\",\n\t\t\t\"BD|Asia/Dhaka\",\n\t\t\t\"BE|Europe/Brussels\",\n\t\t\t\"BF|Africa/Abidjan Africa/Ouagadougou\",\n\t\t\t\"BG|Europe/Sofia\",\n\t\t\t\"BH|Asia/Qatar Asia/Bahrain\",\n\t\t\t\"BI|Africa/Maputo Africa/Bujumbura\",\n\t\t\t\"BJ|Africa/Lagos Africa/Porto-Novo\",\n\t\t\t\"BL|America/Puerto_Rico America/St_Barthelemy\",\n\t\t\t\"BM|Atlantic/Bermuda\",\n\t\t\t\"BN|Asia/Kuching Asia/Brunei\",\n\t\t\t\"BO|America/La_Paz\",\n\t\t\t\"BQ|America/Puerto_Rico America/Kralendijk\",\n\t\t\t\"BR|America/Noronha America/Belem America/Fortaleza America/Recife America/Araguaina America/Maceio America/Bahia America/Sao_Paulo America/Campo_Grande America/Cuiaba America/Santarem America/Porto_Velho America/Boa_Vista America/Manaus America/Eirunepe America/Rio_Branco\",\n\t\t\t\"BS|America/Toronto America/Nassau\",\n\t\t\t\"BT|Asia/Thimphu\",\n\t\t\t\"BW|Africa/Maputo Africa/Gaborone\",\n\t\t\t\"BY|Europe/Minsk\",\n\t\t\t\"BZ|America/Belize\",\n\t\t\t\"CA|America/St_Johns America/Halifax America/Glace_Bay America/Moncton America/Goose_Bay America/Toronto America/Iqaluit America/Winnipeg America/Resolute America/Rankin_Inlet America/Regina America/Swift_Current America/Edmonton America/Cambridge_Bay America/Inuvik America/Dawson_Creek America/Fort_Nelson America/Whitehorse America/Dawson America/Vancouver America/Panama America/Puerto_Rico America/Phoenix America/Blanc-Sablon America/Atikokan America/Creston\",\n\t\t\t\"CC|Asia/Yangon Indian/Cocos\",\n\t\t\t\"CD|Africa/Maputo Africa/Lagos Africa/Kinshasa Africa/Lubumbashi\",\n\t\t\t\"CF|Africa/Lagos Africa/Bangui\",\n\t\t\t\"CG|Africa/Lagos Africa/Brazzaville\",\n\t\t\t\"CH|Europe/Zurich\",\n\t\t\t\"CI|Africa/Abidjan\",\n\t\t\t\"CK|Pacific/Rarotonga\",\n\t\t\t\"CL|America/Santiago America/Punta_Arenas Pacific/Easter\",\n\t\t\t\"CM|Africa/Lagos Africa/Douala\",\n\t\t\t\"CN|Asia/Shanghai Asia/Urumqi\",\n\t\t\t\"CO|America/Bogota\",\n\t\t\t\"CR|America/Costa_Rica\",\n\t\t\t\"CU|America/Havana\",\n\t\t\t\"CV|Atlantic/Cape_Verde\",\n\t\t\t\"CW|America/Puerto_Rico America/Curacao\",\n\t\t\t\"CX|Asia/Bangkok Indian/Christmas\",\n\t\t\t\"CY|Asia/Nicosia Asia/Famagusta\",\n\t\t\t\"CZ|Europe/Prague\",\n\t\t\t\"DE|Europe/Zurich Europe/Berlin Europe/Busingen\",\n\t\t\t\"DJ|Africa/Nairobi Africa/Djibouti\",\n\t\t\t\"DK|Europe/Berlin Europe/Copenhagen\",\n\t\t\t\"DM|America/Puerto_Rico America/Dominica\",\n\t\t\t\"DO|America/Santo_Domingo\",\n\t\t\t\"DZ|Africa/Algiers\",\n\t\t\t\"EC|America/Guayaquil Pacific/Galapagos\",\n\t\t\t\"EE|Europe/Tallinn\",\n\t\t\t\"EG|Africa/Cairo\",\n\t\t\t\"EH|Africa/El_Aaiun\",\n\t\t\t\"ER|Africa/Nairobi Africa/Asmara\",\n\t\t\t\"ES|Europe/Madrid Africa/Ceuta Atlantic/Canary\",\n\t\t\t\"ET|Africa/Nairobi Africa/Addis_Ababa\",\n\t\t\t\"FI|Europe/Helsinki\",\n\t\t\t\"FJ|Pacific/Fiji\",\n\t\t\t\"FK|Atlantic/Stanley\",\n\t\t\t\"FM|Pacific/Kosrae Pacific/Port_Moresby Pacific/Guadalcanal Pacific/Chuuk Pacific/Pohnpei\",\n\t\t\t\"FO|Atlantic/Faroe\",\n\t\t\t\"FR|Europe/Paris\",\n\t\t\t\"GA|Africa/Lagos Africa/Libreville\",\n\t\t\t\"GB|Europe/London\",\n\t\t\t\"GD|America/Puerto_Rico America/Grenada\",\n\t\t\t\"GE|Asia/Tbilisi\",\n\t\t\t\"GF|America/Cayenne\",\n\t\t\t\"GG|Europe/London Europe/Guernsey\",\n\t\t\t\"GH|Africa/Abidjan Africa/Accra\",\n\t\t\t\"GI|Europe/Gibraltar\",\n\t\t\t\"GL|America/Nuuk America/Danmarkshavn America/Scoresbysund America/Thule\",\n\t\t\t\"GM|Africa/Abidjan Africa/Banjul\",\n\t\t\t\"GN|Africa/Abidjan Africa/Conakry\",\n\t\t\t\"GP|America/Puerto_Rico America/Guadeloupe\",\n\t\t\t\"GQ|Africa/Lagos Africa/Malabo\",\n\t\t\t\"GR|Europe/Athens\",\n\t\t\t\"GS|Atlantic/South_Georgia\",\n\t\t\t\"GT|America/Guatemala\",\n\t\t\t\"GU|Pacific/Guam\",\n\t\t\t\"GW|Africa/Bissau\",\n\t\t\t\"GY|America/Guyana\",\n\t\t\t\"HK|Asia/Hong_Kong\",\n\t\t\t\"HN|America/Tegucigalpa\",\n\t\t\t\"HR|Europe/Belgrade Europe/Zagreb\",\n\t\t\t\"HT|America/Port-au-Prince\",\n\t\t\t\"HU|Europe/Budapest\",\n\t\t\t\"ID|Asia/Jakarta Asia/Pontianak Asia/Makassar Asia/Jayapura\",\n\t\t\t\"IE|Europe/Dublin\",\n\t\t\t\"IL|Asia/Jerusalem\",\n\t\t\t\"IM|Europe/London Europe/Isle_of_Man\",\n\t\t\t\"IN|Asia/Kolkata\",\n\t\t\t\"IO|Indian/Chagos\",\n\t\t\t\"IQ|Asia/Baghdad\",\n\t\t\t\"IR|Asia/Tehran\",\n\t\t\t\"IS|Africa/Abidjan Atlantic/Reykjavik\",\n\t\t\t\"IT|Europe/Rome\",\n\t\t\t\"JE|Europe/London Europe/Jersey\",\n\t\t\t\"JM|America/Jamaica\",\n\t\t\t\"JO|Asia/Amman\",\n\t\t\t\"JP|Asia/Tokyo\",\n\t\t\t\"KE|Africa/Nairobi\",\n\t\t\t\"KG|Asia/Bishkek\",\n\t\t\t\"KH|Asia/Bangkok Asia/Phnom_Penh\",\n\t\t\t\"KI|Pacific/Tarawa Pacific/Kanton Pacific/Kiritimati\",\n\t\t\t\"KM|Africa/Nairobi Indian/Comoro\",\n\t\t\t\"KN|America/Puerto_Rico America/St_Kitts\",\n\t\t\t\"KP|Asia/Pyongyang\",\n\t\t\t\"KR|Asia/Seoul\",\n\t\t\t\"KW|Asia/Riyadh Asia/Kuwait\",\n\t\t\t\"KY|America/Panama America/Cayman\",\n\t\t\t\"KZ|Asia/Almaty Asia/Qyzylorda Asia/Qostanay Asia/Aqtobe Asia/Aqtau Asia/Atyrau Asia/Oral\",\n\t\t\t\"LA|Asia/Bangkok Asia/Vientiane\",\n\t\t\t\"LB|Asia/Beirut\",\n\t\t\t\"LC|America/Puerto_Rico America/St_Lucia\",\n\t\t\t\"LI|Europe/Zurich Europe/Vaduz\",\n\t\t\t\"LK|Asia/Colombo\",\n\t\t\t\"LR|Africa/Monrovia\",\n\t\t\t\"LS|Africa/Johannesburg Africa/Maseru\",\n\t\t\t\"LT|Europe/Vilnius\",\n\t\t\t\"LU|Europe/Brussels Europe/Luxembourg\",\n\t\t\t\"LV|Europe/Riga\",\n\t\t\t\"LY|Africa/Tripoli\",\n\t\t\t\"MA|Africa/Casablanca\",\n\t\t\t\"MC|Europe/Paris Europe/Monaco\",\n\t\t\t\"MD|Europe/Chisinau\",\n\t\t\t\"ME|Europe/Belgrade Europe/Podgorica\",\n\t\t\t\"MF|America/Puerto_Rico America/Marigot\",\n\t\t\t\"MG|Africa/Nairobi Indian/Antananarivo\",\n\t\t\t\"MH|Pacific/Tarawa Pacific/Kwajalein Pacific/Majuro\",\n\t\t\t\"MK|Europe/Belgrade Europe/Skopje\",\n\t\t\t\"ML|Africa/Abidjan Africa/Bamako\",\n\t\t\t\"MM|Asia/Yangon\",\n\t\t\t\"MN|Asia/Ulaanbaatar Asia/Hovd\",\n\t\t\t\"MO|Asia/Macau\",\n\t\t\t\"MP|Pacific/Guam Pacific/Saipan\",\n\t\t\t\"MQ|America/Martinique\",\n\t\t\t\"MR|Africa/Abidjan Africa/Nouakchott\",\n\t\t\t\"MS|America/Puerto_Rico America/Montserrat\",\n\t\t\t\"MT|Europe/Malta\",\n\t\t\t\"MU|Indian/Mauritius\",\n\t\t\t\"MV|Indian/Maldives\",\n\t\t\t\"MW|Africa/Maputo Africa/Blantyre\",\n\t\t\t\"MX|America/Mexico_City America/Cancun America/Merida America/Monterrey America/Matamoros America/Chihuahua America/Ciudad_Juarez America/Ojinaga America/Mazatlan America/Bahia_Banderas America/Hermosillo America/Tijuana\",\n\t\t\t\"MY|Asia/Kuching Asia/Singapore Asia/Kuala_Lumpur\",\n\t\t\t\"MZ|Africa/Maputo\",\n\t\t\t\"NA|Africa/Windhoek\",\n\t\t\t\"NC|Pacific/Noumea\",\n\t\t\t\"NE|Africa/Lagos Africa/Niamey\",\n\t\t\t\"NF|Pacific/Norfolk\",\n\t\t\t\"NG|Africa/Lagos\",\n\t\t\t\"NI|America/Managua\",\n\t\t\t\"NL|Europe/Brussels Europe/Amsterdam\",\n\t\t\t\"NO|Europe/Berlin Europe/Oslo\",\n\t\t\t\"NP|Asia/Kathmandu\",\n\t\t\t\"NR|Pacific/Nauru\",\n\t\t\t\"NU|Pacific/Niue\",\n\t\t\t\"NZ|Pacific/Auckland Pacific/Chatham\",\n\t\t\t\"OM|Asia/Dubai Asia/Muscat\",\n\t\t\t\"PA|America/Panama\",\n\t\t\t\"PE|America/Lima\",\n\t\t\t\"PF|Pacific/Tahiti Pacific/Marquesas Pacific/Gambier\",\n\t\t\t\"PG|Pacific/Port_Moresby Pacific/Bougainville\",\n\t\t\t\"PH|Asia/Manila\",\n\t\t\t\"PK|Asia/Karachi\",\n\t\t\t\"PL|Europe/Warsaw\",\n\t\t\t\"PM|America/Miquelon\",\n\t\t\t\"PN|Pacific/Pitcairn\",\n\t\t\t\"PR|America/Puerto_Rico\",\n\t\t\t\"PS|Asia/Gaza Asia/Hebron\",\n\t\t\t\"PT|Europe/Lisbon Atlantic/Madeira Atlantic/Azores\",\n\t\t\t\"PW|Pacific/Palau\",\n\t\t\t\"PY|America/Asuncion\",\n\t\t\t\"QA|Asia/Qatar\",\n\t\t\t\"RE|Asia/Dubai Indian/Reunion\",\n\t\t\t\"RO|Europe/Bucharest\",\n\t\t\t\"RS|Europe/Belgrade\",\n\t\t\t\"RU|Europe/Kaliningrad Europe/Moscow Europe/Simferopol Europe/Kirov Europe/Volgograd Europe/Astrakhan Europe/Saratov Europe/Ulyanovsk Europe/Samara Asia/Yekaterinburg Asia/Omsk Asia/Novosibirsk Asia/Barnaul Asia/Tomsk Asia/Novokuznetsk Asia/Krasnoyarsk Asia/Irkutsk Asia/Chita Asia/Yakutsk Asia/Khandyga Asia/Vladivostok Asia/Ust-Nera Asia/Magadan Asia/Sakhalin Asia/Srednekolymsk Asia/Kamchatka Asia/Anadyr\",\n\t\t\t\"RW|Africa/Maputo Africa/Kigali\",\n\t\t\t\"SA|Asia/Riyadh\",\n\t\t\t\"SB|Pacific/Guadalcanal\",\n\t\t\t\"SC|Asia/Dubai Indian/Mahe\",\n\t\t\t\"SD|Africa/Khartoum\",\n\t\t\t\"SE|Europe/Berlin Europe/Stockholm\",\n\t\t\t\"SG|Asia/Singapore\",\n\t\t\t\"SH|Africa/Abidjan Atlantic/St_Helena\",\n\t\t\t\"SI|Europe/Belgrade Europe/Ljubljana\",\n\t\t\t\"SJ|Europe/Berlin Arctic/Longyearbyen\",\n\t\t\t\"SK|Europe/Prague Europe/Bratislava\",\n\t\t\t\"SL|Africa/Abidjan Africa/Freetown\",\n\t\t\t\"SM|Europe/Rome Europe/San_Marino\",\n\t\t\t\"SN|Africa/Abidjan Africa/Dakar\",\n\t\t\t\"SO|Africa/Nairobi Africa/Mogadishu\",\n\t\t\t\"SR|America/Paramaribo\",\n\t\t\t\"SS|Africa/Juba\",\n\t\t\t\"ST|Africa/Sao_Tome\",\n\t\t\t\"SV|America/El_Salvador\",\n\t\t\t\"SX|America/Puerto_Rico America/Lower_Princes\",\n\t\t\t\"SY|Asia/Damascus\",\n\t\t\t\"SZ|Africa/Johannesburg Africa/Mbabane\",\n\t\t\t\"TC|America/Grand_Turk\",\n\t\t\t\"TD|Africa/Ndjamena\",\n\t\t\t\"TF|Asia/Dubai Indian/Maldives Indian/Kerguelen\",\n\t\t\t\"TG|Africa/Abidjan Africa/Lome\",\n\t\t\t\"TH|Asia/Bangkok\",\n\t\t\t\"TJ|Asia/Dushanbe\",\n\t\t\t\"TK|Pacific/Fakaofo\",\n\t\t\t\"TL|Asia/Dili\",\n\t\t\t\"TM|Asia/Ashgabat\",\n\t\t\t\"TN|Africa/Tunis\",\n\t\t\t\"TO|Pacific/Tongatapu\",\n\t\t\t\"TR|Europe/Istanbul\",\n\t\t\t\"TT|America/Puerto_Rico America/Port_of_Spain\",\n\t\t\t\"TV|Pacific/Tarawa Pacific/Funafuti\",\n\t\t\t\"TW|Asia/Taipei\",\n\t\t\t\"TZ|Africa/Nairobi Africa/Dar_es_Salaam\",\n\t\t\t\"UA|Europe/Simferopol Europe/Kyiv\",\n\t\t\t\"UG|Africa/Nairobi Africa/Kampala\",\n\t\t\t\"UM|Pacific/Pago_Pago Pacific/Tarawa Pacific/Midway Pacific/Wake\",\n\t\t\t\"US|America/New_York America/Detroit America/Kentucky/Louisville America/Kentucky/Monticello America/Indiana/Indianapolis America/Indiana/Vincennes America/Indiana/Winamac America/Indiana/Marengo America/Indiana/Petersburg America/Indiana/Vevay America/Chicago America/Indiana/Tell_City America/Indiana/Knox America/Menominee America/North_Dakota/Center America/North_Dakota/New_Salem America/North_Dakota/Beulah America/Denver America/Boise America/Phoenix America/Los_Angeles America/Anchorage America/Juneau America/Sitka America/Metlakatla America/Yakutat America/Nome America/Adak Pacific/Honolulu\",\n\t\t\t\"UY|America/Montevideo\",\n\t\t\t\"UZ|Asia/Samarkand Asia/Tashkent\",\n\t\t\t\"VA|Europe/Rome Europe/Vatican\",\n\t\t\t\"VC|America/Puerto_Rico America/St_Vincent\",\n\t\t\t\"VE|America/Caracas\",\n\t\t\t\"VG|America/Puerto_Rico America/Tortola\",\n\t\t\t\"VI|America/Puerto_Rico America/St_Thomas\",\n\t\t\t\"VN|Asia/Bangkok Asia/Ho_Chi_Minh\",\n\t\t\t\"VU|Pacific/Efate\",\n\t\t\t\"WF|Pacific/Tarawa Pacific/Wallis\",\n\t\t\t\"WS|Pacific/Apia\",\n\t\t\t\"YE|Asia/Riyadh Asia/Aden\",\n\t\t\t\"YT|Africa/Nairobi Indian/Mayotte\",\n\t\t\t\"ZA|Africa/Johannesburg\",\n\t\t\t\"ZM|Africa/Maputo Africa/Lusaka\",\n\t\t\t\"ZW|Africa/Maputo Africa/Harare\"\n\t\t]\n\t});\n\n\n\treturn moment;\n}));\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValueTrend.vue?vue&type=style&index=0&id=226ab568&prod&lang=scss&scoped=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"value-trend\"},[(!_setup.hasTrendInfo)?_c('div',{staticClass:\"no-trend-info\"},[_vm._v(\" \"+_vm._s(_vm.noTrendMessage)+\" \")]):[(_setup.isTrendGoingUp)?_c('div',{staticClass:\"trend-percentage\",class:{ 'trend-positive': !_setup.props.inverse, 'trend-negative': _setup.props.inverse },attrs:{\"data-testid\":\"trend-up\"}},[_c('b-icon',{attrs:{\"icon\":\"chevron-up\",\"aria-label\":\"+\"}}),_vm._v(\" \"+_vm._s(_setup.formattedDifferencePercentage)+\" \")],1):(_setup.isTrendStatic)?_c('div',{staticClass:\"trend-percentage trend-static\",attrs:{\"data-testid\":\"trend-static\"}},[_c('b-icon',{attrs:{\"icon\":\"equal\",\"aria-label\":\"0\"}})],1):_c('div',{staticClass:\"trend-percentage\",class:{ 'trend-positive': _setup.props.inverse, 'trend-negative': !_setup.props.inverse },attrs:{\"data-testid\":\"trend-down\"}},[_c('b-icon',{attrs:{\"icon\":\"chevron-down\",\"aria-label\":\"-\"}}),_vm._v(\" \"+_vm._s(_setup.formattedDifferencePercentage)+\" \")],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport { formatPercentage } from '@/utils/number';\nimport { computed } from 'vue';\nimport { TranslateResult } from 'vue-i18n';\n\n\n/**\n * Show the trend percentage between a previous and current value.\n *\n * Uses arrows and colors to indicate if it's going up, down or remains static.\n */\nconst __default__ = {};\n\nexport default /*#__PURE__*/_defineComponent({\n ...__default__,\n __name: 'ValueTrend',\n props: {\n previousValue: null,\n currentValue: null,\n noTrendMessage: { default: '-' },\n inverse: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { previousValue: number, currentValue: number, noTrendMessage: string | TranslateResult, inverse: boolean };\n\n\n\nconst differencePercentage = computed(() => {\n const difference = props.previousValue - props.currentValue;\n return (difference * 100) / props.previousValue;\n});\n\nconst formattedDifferencePercentage = computed(() =>\n formatPercentage(Math.abs(differencePercentage.value), 0),\n);\n\nconst hasTrendInfo = computed(() => props.previousValue !== 0);\n\nconst isTrendGoingUp = computed(() => props.currentValue > props.previousValue);\n\nconst isTrendStatic = computed(() => props.currentValue === props.previousValue);\n\nreturn { __sfc: true,props, differencePercentage, formattedDifferencePercentage, hasTrendInfo, isTrendGoingUp, isTrendStatic }\n}\n\n})","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValueTrend.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ValueTrend.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./ValueTrend.vue?vue&type=template&id=226ab568&scoped=true\"\nimport script from \"./ValueTrend.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ValueTrend.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./ValueTrend.vue?vue&type=style&index=0&id=226ab568&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"226ab568\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidgetTrendTooltip.vue?vue&type=style&index=0&id=33aa5129&prod&lang=scss&scoped=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"kpi-widget widget-card\"},[_c('b-loading',{staticClass:\"big-loader\",attrs:{\"is-full-page\":false,\"active\":_vm.loading && _vm.isFetchingForTheFirstTime}}),_c('div',{staticClass:\"little-loader\"},[_c('b-loading',{attrs:{\"is-full-page\":false,\"active\":_vm.loading && !_vm.isFetchingForTheFirstTime}})],1),_c('div',{staticClass:\"kpi-widget-header\"},[_c('div',{staticClass:\"kpi-widget-title\"},[_c('div',{staticClass:\"widget-card-title\"},[_vm._t(\"title\")],2),_c('div',{staticClass:\"widget-card-subtitle\"},[_vm._t(\"subtitle\")],2)])]),_c('div',{class:['kpi-widget-body', { 'no-data': !_setup.hasData }]},[(_setup.hasData)?[_c('div',{staticClass:\"kpi-widget-help\"},[_c('div',{staticClass:\"kpi-widget-main-fact\"},[_vm._v(_vm._s(_setup.formattedMainFact))]),_c('div',{staticClass:\"kpi-widget-trend\"},[_c(_setup.KpiWidgetTrendTooltip,{attrs:{\"trendData\":_vm.trendData,\"position\":_vm.trendTooltipPosition,\"invert\":_vm.invertTrend}},[_c(_setup.ValueTrend,{attrs:{\"currentValue\":_vm.trendData.currentValue,\"previousValue\":_vm.trendData.previousValue,\"noTrendMessage\":_vm.$t('kpi_widget.no_trend_info'),\"inverse\":_vm.invertTrend}})],1),(_setup.isThereTrendInfo)?_c('div',{staticClass:\"kpi-widget-trend-info\"},[_vm._v(\" \"+_vm._s(_vm.$t(`kpi_widget.since_timespan.${_vm.widgetDefinition.timeFilter}`))+\" \")]):_vm._e()],1)]),_c('div',{staticClass:\"kpi-widget-chart\"},[_c(_setup.Chart,{attrs:{\"widgetDefinition\":_vm.widgetDefinition,\"generator\":_vm.generator,\"data\":_vm.chartData,\"paramValues\":{},\"loading\":_vm.loading}})],1)]:_vm._e(),(!_setup.hasData && (!_vm.loading || !_vm.isFetchingForTheFirstTime))?_c('div',{staticClass:\"kpi-widget-no-data\"},[_vm._v(\" \"+_vm._s(_vm.$t('no_data'))+\" \")]):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('b-tooltip',{staticClass:\"kpi-widget-trend-tooltip\",attrs:{\"type\":\"is-white\",\"position\":_vm.position,\"append-to-body\":\"\"},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"border-wrapper\",class:[_setup.differenceTrendClass, { invert: _vm.invert }]},[_c('table',[_c('thead',[_c('tr',[_c('td'),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('value')))]),(_vm.trendData.chartType === 'pie')?[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('from')))]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('to')))])]:[_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('report.date')))]),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('device.name')))])]],2)]),_c('tbody',[_c('tr',[_c('th',{attrs:{\"scope\":\"row\",\"data-testid\":\"current-period-description\"}},[_vm._v(\" \"+_vm._s(_setup.getCurrentTimePeriodDescription(_setup.props.trendData.timeSpan))+\" \")]),_c('td',{attrs:{\"data-testid\":\"current-value\"}},[_vm._v(\" \"+_vm._s(_setup.abbreviateNumber(_vm.trendData.currentValue))+\" \")]),(_vm.trendData.chartType === 'pie')?[_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"current-from-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.formatDateWithTimeOnCustomerTimeZone(_setup.getCurrentDateTimeRange()[0]))+\" \")]),_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"current-to-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.formatDateWithTimeOnCustomerTimeZone(_setup.getCurrentDateTimeRange()[1]))+\" \")])]:[_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"current-value-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.isNil(_vm.trendData.currentValueDateTime) ? '-' : _setup.formatDateWithTimeOnCustomerTimeZone(_vm.trendData.currentValueDateTime))+\" \")]),_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"current-value-device-name\"}},[_vm._v(\" \"+_vm._s(_setup.isNil(_vm.trendData.currentValueDeviceName) ? '-' : _vm.trendData.currentValueDeviceName)+\" \")])]],2),_c('tr',[_c('th',{attrs:{\"scope\":\"row\",\"data-testid\":\"previous-period-description\"}},[_vm._v(\" \"+_vm._s(_setup.getPreviousTimePeriodDescription(_setup.props.trendData.timeSpan))+\" \")]),_c('td',{attrs:{\"data-testid\":\"previous-value\"}},[_vm._v(\" \"+_vm._s(_setup.abbreviateNumber(_vm.trendData.previousValue))+\" \")]),(_vm.trendData.chartType === 'pie')?[_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"previous-from-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.formatDateWithTimeOnCustomerTimeZone(_setup.getPreviousDateTimeRange()[0]))+\" \")]),_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"previous-to-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.formatDateWithTimeOnCustomerTimeZone(_setup.getPreviousDateTimeRange()[1]))+\" \")])]:[_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"previous-value-date-time\"}},[_vm._v(\" \"+_vm._s(_setup.isNil(_vm.trendData.previousValueDateTime) ? '-' : _setup.formatDateWithTimeOnCustomerTimeZone(_vm.trendData.previousValueDateTime))+\" \")]),_c('td',{staticClass:\"date\",attrs:{\"data-testid\":\"previous-value-device-name\"}},[_vm._v(\" \"+_vm._s(_setup.isNil(_vm.trendData.previousValueDeviceName) ? '-' : _vm.trendData.previousValueDeviceName)+\" \")])]],2),_c('tr',[_c('th',{staticClass:\"difference-header\",attrs:{\"scope\":\"row\"}},[_vm._v(\" \"+_vm._s(_vm.$t('difference'))+\" \")]),(_vm.trendData.previousValue !== 0)?_c('td',{staticClass:\"difference-cell\"},[_vm._v(\" \"+_vm._s(_setup.abbreviateNumber(_setup.difference))+\" (\"+_vm._s(_setup.formattedDifferencePercentage)+\") \")]):_c('td',{staticClass:\"difference-cell\"},[_vm._v(\"-\")])])])])])]},proxy:true}])},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport {\n formatDateWithTimeOnCustomerTimeZone,\n timeSpanToStartOfUnitOfTime,\n timeSpanToUnitOfTime,\n userTimeZone,\n} from '@/utils/dates';\nimport { FilterTimeSpanEnum } from '@/models/enums/FilterTimeSpanEnum';\nimport i18n from '@/i18n';\nimport { abbreviateNumber, formatPercentage } from '@/utils/number';\nimport { computed, watch } from 'vue';\nimport moment from 'moment-timezone/builds/moment-timezone-with-data-10-year-range.js';\nimport { TrendData } from '@/components/bend/kpiWidgetUtils';\nimport { isNil } from '@/utils/misc';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'KpiWidgetTrendTooltip',\n props: {\n trendData: null,\n position: { default: 'is-top' },\n invert: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { trendData: TrendData, position: 'is-top' | 'is-bottom' | 'is-left' | 'is-right', invert: boolean };\n\n// Here to avoid typing error from the IDE on unit tests\n/**\n * Tooltip shown on a widget's trend to give the user more information about it.\n *\n * The information shown changes depending on the type of widget (pie/bar).\n *\n * Props:\n * - trendData: information about related to the trend to show to the user. It\n * specifies the type of widget (pie/bar).\n * - position: where should the tooltip open:\n * 'is-top' (default), 'is-bottom', 'is-left', 'is-right'\n */\n\n\n\nlet now = new Date();\n\nwatch(\n () => props.trendData,\n () =>\n // Widget refreshed, update to the new request date-time\n (now = new Date()),\n);\n\nfunction getCurrentTimePeriodDescription(timeSpan: FilterTimeSpanEnum): string {\n return i18n.t(`current_time_period.${FilterTimeSpanEnum[timeSpan]}`).toString();\n}\n\nfunction getPreviousTimePeriodDescription(timeSpan: FilterTimeSpanEnum): string {\n return i18n.t(`previous_time_period.${FilterTimeSpanEnum[timeSpan]}`).toString();\n}\n\n// Only for 'pie' type\nfunction getCurrentDateTimeRange(): [Date, Date] {\n const unitOfTime = timeSpanToStartOfUnitOfTime(props.trendData.timeSpan!);\n const startOfRange = moment.tz(now, userTimeZone()).startOf(unitOfTime).toDate();\n return [startOfRange, now];\n}\n\n// Only for 'pie' type\nfunction getPreviousDateTimeRange(): [Date, Date] {\n const unitOfTime = timeSpanToUnitOfTime(props.trendData.timeSpan!);\n const startOfRange = moment\n .tz(getCurrentDateTimeRange()[0], userTimeZone())\n .subtract(1, unitOfTime)\n .toDate();\n const endOfRange = moment\n .tz(getCurrentDateTimeRange()[1], userTimeZone())\n .subtract(1, unitOfTime)\n .toDate();\n return [startOfRange, endOfRange];\n}\n\nconst formattedDifferencePercentage = computed(() =>\n formatPercentage(Math.abs(differencePercentage.value), 0),\n);\n\nconst differencePercentage = computed(() => {\n return (difference.value * 100) / props.trendData.previousValue;\n});\n\nconst difference = computed(\n () => props.trendData.currentValue - props.trendData.previousValue,\n);\n\nconst differenceTrendClass = computed(() => {\n if (props.trendData.previousValue === 0) {\n return undefined;\n }\n\n if (difference.value < 0) {\n return 'trend-down';\n } else if (difference.value > 0) {\n return 'trend-up';\n }\n\n return undefined;\n});\n\nreturn { __sfc: true,props, now, getCurrentTimePeriodDescription, getPreviousTimePeriodDescription, getCurrentDateTimeRange, getPreviousDateTimeRange, formattedDifferencePercentage, differencePercentage, difference, differenceTrendClass, formatDateWithTimeOnCustomerTimeZone, abbreviateNumber, isNil }\n}\n\n})","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidgetTrendTooltip.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidgetTrendTooltip.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./KpiWidgetTrendTooltip.vue?vue&type=template&id=33aa5129&scoped=true\"\nimport script from \"./KpiWidgetTrendTooltip.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./KpiWidgetTrendTooltip.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./KpiWidgetTrendTooltip.vue?vue&type=style&index=0&id=33aa5129&prod&lang=scss&scoped=true\"\nimport style1 from \"./KpiWidgetTrendTooltip.vue?vue&type=style&index=1&id=33aa5129&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33aa5129\",\n null\n \n)\n\nexport default component.exports","import { defineComponent as _defineComponent } from 'vue'\nimport WidgetDefinition from '@/models/Charts/widgetDefinition';\nimport Chart from '../Charts/Chart.vue';\nimport { isEmpty } from '@/utils/misc';\nimport ValueTrend from '@/components/common/ValueTrend.vue';\nimport { ChartGenerator } from '@/models/Charts/abstract/chartGenerator';\nimport { abbreviateNumberWithUnit } from '@/utils/number';\nimport KpiWidgetTrendTooltip from '@/components/common/KpiWidgetTrendTooltip.vue';\nimport { TrendData } from '@/components/bend/kpiWidgetUtils';\nimport { computed } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'KpiWidget',\n props: {\n chartData: null,\n trendData: null,\n generator: null,\n widgetDefinition: null,\n loading: { type: Boolean },\n isFetchingForTheFirstTime: { type: Boolean },\n unit: { default: null },\n trendTooltipPosition: { default: 'is-top' },\n invertTrend: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { chartData: any | null, trendData: TrendData | null, generator: ChartGenerator, widgetDefinition: WidgetDefinition, loading: boolean, isFetchingForTheFirstTime: boolean, unit: string | null, trendTooltipPosition: 'is-top' | 'is-bottom' | 'is-left' | 'is-right', invertTrend: boolean };\n\n\n\nconst formattedMainFact = computed(() =>\n abbreviateNumberWithUnit(props.trendData!.currentValue, props.unit),\n);\n\nconst hasData = computed(() => !isEmpty(props.chartData));\n\nconst isThereTrendInfo = computed(() => props.trendData?.previousValue !== 0);\n\nreturn { __sfc: true,props, formattedMainFact, hasData, isThereTrendInfo, Chart, ValueTrend, KpiWidgetTrendTooltip }\n}\n\n})","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidget.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidget.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./KpiWidget.vue?vue&type=template&id=4393c1c6&scoped=true\"\nimport script from \"./KpiWidget.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./KpiWidget.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./KpiWidget.vue?vue&type=style&index=0&id=4393c1c6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4393c1c6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidget.vue?vue&type=style&index=0&id=4393c1c6&prod&lang=scss&scoped=true\"","// Copyright (C) 2021 Bystronic Laser AG\n\nimport { FilterTimeSpanEnum } from '@/models/enums/FilterTimeSpanEnum';\nimport moment from 'moment/moment';\nimport { Shift } from '@/models/shift';\n\nexport function calculateMaxCuttingTime(\n deviceIds: number[],\n shifts: Shift[],\n timeFilter: FilterTimeSpanEnum | [string, string],\n) {\n const deviceHours = deviceIds.reduce(\n (hours, deviceId) => hours + calculateDeviceShiftHours(deviceId, shifts),\n 0,\n );\n\n return deviceHours * getTimeFilterMultiplier(timeFilter);\n}\n\nfunction calculateDeviceShiftHours(deviceId: number, shifts: Shift[]): number {\n if (shifts.length === 0) {\n // In case no shifts were selected\n return 24;\n }\n return shifts\n .filter((shift) => shift.relatedDevices.includes(deviceId))\n .reduce((hours, shift) => {\n const shiftLengthMinutes =\n shift.timeFromHh <= shift.timeToHh && shift.timeFromMm <= shift.timeToMm\n ? 60 * shift.timeToHh + shift.timeToMm - (60 * shift.timeFromHh + shift.timeFromMm)\n : 60 * (24 + shift.timeToHh) +\n shift.timeToMm -\n (60 * shift.timeFromHh + shift.timeFromMm);\n\n // Add adjustment to make it a full hour when the user enters 23:59 as end time\n const endAdjustment = shift.timeToMm === 59 ? 1 : 0;\n return hours + (shiftLengthMinutes + endAdjustment) / 60;\n }, 0);\n}\n\nfunction getTimeFilterMultiplier(timeFilter: FilterTimeSpanEnum | [string, string]): number {\n switch (timeFilter) {\n case FilterTimeSpanEnum.Day:\n return 1;\n case FilterTimeSpanEnum.Week:\n return moment().day(); // day of week\n case FilterTimeSpanEnum.Month:\n return moment().date(); // day of month\n case FilterTimeSpanEnum.Year:\n return moment().dayOfYear();\n default:\n return 0;\n }\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./KpiWidgetTrendTooltip.vue?vue&type=style&index=1&id=33aa5129&prod&lang=scss\""],"sourceRoot":""}