{"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/bend/BendStatesOverview.vue","webpack:///./src/components/bend/BendStatesOverview.vue?6037","webpack:///./src/components/bend/BendStatesOverview.vue?d2bc","webpack:///./src/components/bend/BendStatesOverview.vue?18fd","webpack:///./src/components/Charts/Chart.vue?7797","webpack:///./src/components/Charts/maxCuttingTime.ts","webpack:///./src/components/bend/BendStatesOverview.vue?6b54"],"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","_setup","noDataAtAll","noProductionModeData","dataRetriever","BendStateOverview","ProductionMode","productionModeData","scopedSlots","_u","fn","_ref","item","row","style","backgroundColor","getBendStateColor","status","previousPeriodColumnHeader","_ref2","formatDuration","previousPeriod","formatPercentage","previousPercentage","currentPeriodColumnHeader","_ref3","currentPeriod","currentPercentage","noFlowModeData","FlowSpeed","flowSpeedData","_ref4","getBendFlowSpeedColor","_ref5","_ref6","_defineComponent","__name","props","setup","__props","getPeriodColumnHeader","periodPrefix","periodKey","FilterTimeSpanEnum","timeFilterSpan","i18n","t","toString","computed","_props$data","flowMode","every","x","durationSeconds","_props$data2","productionMode","values","BendProductionModeStatus","filter","Processing","map","isPrevious","percentage","BendFlowSpeedStatus","__sfc","deviceHours","reduce","hours","calculateDeviceShiftHours","getTimeFilterMultiplier","shift","relatedDevices","shiftLengthMinutes","timeFromHh","timeToHh","timeFromMm","timeToMm","endAdjustment","Day","Week","moment","day","Month","date","Year","dayOfYear"],"mappings":"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","file":"js/chunk-3ed7ba60.9f6011f3.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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',{staticClass:\"bend-states-overview\"},[(!_setup.noDataAtAll)?[(!_setup.noProductionModeData)?_c('div',{staticClass:\"bend-states-overview-section\"},[_c(_setup.Chart,{attrs:{\"widgetDefinition\":_vm.widgetDefinition,\"generator\":_vm.dataRetriever,\"data\":_vm.data,\"paramValues\":{ chart: _setup.BendStateOverview.ProductionMode },\"loading\":_vm.loading}}),_c('b-table',{staticClass:\"production-mode-table\",attrs:{\"data\":_setup.productionModeData,\"loading\":_vm.loading}},[_c('b-table-column',{attrs:{\"cell-class\":\"chart-cell\",\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"circle\",style:({ backgroundColor: _setup.getBendStateColor(item.status) })}),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(`widget_info_text.gantt_chart_table.states.${item.status}`))+\" \")])])]}}],null,false,239883474)}),_c('b-table-column',{attrs:{\"cell-class\":\"state-cell\",\"label\":_setup.previousPeriodColumnHeader,\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"state-duration\"},[_c('span',{staticClass:\"state-duration-period\"},[_vm._v(\" \"+_vm._s(_setup.formatDuration(item.previousPeriod))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(_setup.formatPercentage(item.previousPercentage))+\" \")])])]}}],null,false,4288405154)}),_c('b-table-column',{attrs:{\"label\":_setup.currentPeriodColumnHeader,\"cell-class\":\"state-cell\",\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"state-duration\"},[_c('span',{staticClass:\"state-duration-period\"},[_vm._v(\" \"+_vm._s(_setup.formatDuration(item.currentPeriod))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(_setup.formatPercentage(item.currentPercentage))+\" \")])])]}}],null,false,210096258)})],1)],1):_c('div',{staticClass:\"no-data\",attrs:{\"data-testid\":\"no-production-mode-data\"}},[_vm._v(\" \"+_vm._s(_vm.$t('no_data'))+\" \")]),(!_setup.noFlowModeData)?_c('div',{staticClass:\"bend-states-overview-section\"},[_c(_setup.Chart,{attrs:{\"widgetDefinition\":_vm.widgetDefinition,\"generator\":_vm.dataRetriever,\"data\":_vm.data,\"paramValues\":{ chart: _setup.BendStateOverview.FlowSpeed },\"loading\":_vm.loading}}),_c('b-table',{staticClass:\"flow-speed-table\",attrs:{\"data\":_setup.flowSpeedData,\"loading\":_vm.loading}},[_c('b-table-column',{attrs:{\"cell-class\":\"chart-cell\",\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"title-container\"},[_c('div',{staticClass:\"circle\",style:({ backgroundColor: _setup.getBendFlowSpeedColor(item.status) })}),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(`widget_info_text.gantt_chart_table.states.${item.status}`))+\" \")])])]}}],null,false,1796778288)}),_c('b-table-column',{attrs:{\"cell-class\":\"state-cell\",\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"state-duration\"},[_c('span',{staticClass:\"state-duration-period\"},[_vm._v(\" \"+_vm._s(_setup.formatDuration(item.previousPeriod))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(_setup.formatPercentage(item.previousPercentage))+\" \")])])]}}],null,false,4288405154)}),_c('b-table-column',{attrs:{\"cell-class\":\"state-cell\",\"width\":\"33%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row: item }){return [_c('div',{staticClass:\"state-duration\"},[_c('span',{staticClass:\"state-duration-period\"},[_vm._v(\" \"+_vm._s(_setup.formatDuration(item.currentPeriod))+\" \")]),_c('span',[_vm._v(\" \"+_vm._s(_setup.formatPercentage(item.currentPercentage))+\" \")])])]}}],null,false,210096258)})],1)],1):_c('div',{staticClass:\"no-data\",attrs:{\"data-testid\":\"no-flow-mode-data\"}},[_vm._v(\" \"+_vm._s(_vm.$t('no_data'))+\" \")])]:_c('div',{staticClass:\"no-data\",attrs:{\"data-testid\":\"no-data\"}},[_vm._v(\" \"+_vm._s(_vm.$t('no_data'))+\" \")])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineComponent as _defineComponent } from 'vue'\nimport WidgetDefinition from '@/models/Charts/widgetDefinition';\nimport Chart from '../Charts/Chart.vue';\nimport {\n BendStatesOverviewData,\n BendStateOverview,\n BendProductionModeStatus,\n BendFlowSpeedStatus,\n} from '@/models/Charts/chartsData';\nimport i18n from '@/i18n';\nimport { formatDuration } from '@/utils/dates';\nimport { FilterTimeSpanEnum } from '@/models/enums/FilterTimeSpanEnum';\nimport { formatPercentage } from '@/utils/number';\nimport { getBendStateColor, getBendFlowSpeedColor } from '@/utils/color';\nimport { isEmpty } from '@/utils/misc';\nimport BendStatusOverviewChartGenerator from '@/models/Charts/bendStatusOverviewChartGenerator';\nimport { computed } from 'vue';\nimport { values } from '@/utils/enum';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BendStatesOverview',\n props: {\n data: null,\n widgetDefinition: null,\n loading: { type: Boolean },\n dataRetriever: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n data: BendStatesOverviewData | null;\n widgetDefinition: WidgetDefinition;\n loading: boolean;\n dataRetriever: BendStatusOverviewChartGenerator;\n};\n\n\n\nfunction getPeriodColumnHeader(periodPrefix: 'current' | 'previous'): string {\n const periodKey: string = FilterTimeSpanEnum[timeFilterSpan.value];\n return i18n.t(`${periodPrefix}_time_period.${periodKey}`).toString();\n}\n\nconst noFlowModeData = computed(\n () => isEmpty(props.data?.flowMode) || props.data!.flowMode.every((x) => x.durationSeconds === 0),\n);\n\nconst noProductionModeData = computed(\n () =>\n isEmpty(props.data?.productionMode) ||\n props.data!.productionMode.every((x) => x.durationSeconds === 0),\n);\n\nconst noDataAtAll = computed(() => noFlowModeData.value && noProductionModeData.value);\n\nconst productionModeData = computed(() =>\n values(BendProductionModeStatus)\n .filter((status) => status !== BendProductionModeStatus.Processing)\n .map((status) => ({\n status,\n currentPeriod: props.data!.productionMode.find((x) => x.status === status && !x.isPrevious)!\n .durationSeconds,\n previousPeriod: props.data!.productionMode.find((x) => x.status === status && x.isPrevious)!\n .durationSeconds,\n currentPercentage: props.data!.productionMode.find((x) => x.status === status && !x.isPrevious)!\n .percentage,\n previousPercentage: props.data!.productionMode.find((x) => x.status === status && x.isPrevious)!\n .percentage,\n })),\n);\n\nconst flowSpeedData = computed(() =>\n values(BendFlowSpeedStatus)\n .filter((status) => status !== BendFlowSpeedStatus.Processing)\n .map((status) => ({\n status,\n currentPeriod: props.data!.flowMode.find((x) => x.status === status && !x.isPrevious)!\n .durationSeconds,\n previousPeriod: props.data!.flowMode.find((x) => x.status === status && x.isPrevious)!\n .durationSeconds,\n currentPercentage: props.data!.flowMode.find((x) => x.status === status && !x.isPrevious)!\n .percentage,\n previousPercentage: props.data!.flowMode.find((x) => x.status === status && x.isPrevious)!\n .percentage,\n }),\n ),\n);\n\nconst currentPeriodColumnHeader = computed(() => getPeriodColumnHeader('current'));\n\nconst previousPeriodColumnHeader = computed(() => getPeriodColumnHeader('previous'));\n\nconst timeFilterSpan = computed(() => props.widgetDefinition.timeFilter as FilterTimeSpanEnum);\n\nreturn { __sfc: true,props, getPeriodColumnHeader, noFlowModeData, noProductionModeData, noDataAtAll, productionModeData, flowSpeedData, currentPeriodColumnHeader, previousPeriodColumnHeader, timeFilterSpan, Chart, BendStateOverview, formatDuration, formatPercentage, getBendStateColor, getBendFlowSpeedColor }\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!./BendStatesOverview.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!./BendStatesOverview.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./BendStatesOverview.vue?vue&type=template&id=1836d7eb&scoped=true\"\nimport script from \"./BendStatesOverview.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./BendStatesOverview.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./BendStatesOverview.vue?vue&type=style&index=0&id=1836d7eb&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 \"1836d7eb\",\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\"","// 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!./BendStatesOverview.vue?vue&type=style&index=0&id=1836d7eb&prod&lang=scss&scoped=true\""],"sourceRoot":""}