{"version":3,"sources":["webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityTable.vue","webpack:///./src/models/Charts/gantt/cutOrTubesIntradayAvailabilityGanttGenerator.ts","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityFilters.vue","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityFilters.vue?9c0e","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityFilters.vue?373a","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityFilters.vue?217e","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityTable.vue?4d9b","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityTable.vue?cfbd","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityTable.vue?ebcd","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityTable.vue?49f7","webpack:///./src/views/workcenterConsole/CutOrTubesIntradayAvailabilityTable/CutOrTubesIntradayAvailabilityFilters.vue?deaf"],"names":["render","_vm","this","_c","_self","_setupProxy","staticClass","attrs","data","loading","scopedSlots","_u","key","fn","_t","proxy","class","applying","showGantt","$t","on","$event","refresh","_ref","next","onFiltersChanged","defaultZoomValues","states","zoomValues","areApplying","_ref2","row","_vm$last","lastState","last","ganttData","value","_v","_s","isNil","_e","style","concat","getStateColour","getDeviceNameByStringId","deviceStringId","isEmpty","_ref3","generator","filterDeviceDataByStatuses","_l","state","_ref4","getTotalStatusDuration","staticRenderFns","CutOrTubesIntradayAvailabilityGanttGenerator","_AbstractGanttChartTa","procedure","_classCallCheck","_callSuper","_inherits","_createClass","_getData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","selectedDevices","selectedShifts","timeSpan","wrap","_context","prev","Error","stop","getData","_x","_x2","_x3","apply","arguments","index","values","CutOrTubesDeviceGanttStatus","i18n","t","toString","AbstractGanttChartTableGenerator","emitFilters","clearAllFilters","defaultZoom","model","zoomValue","callback","$$v","expression","selectedStates","CutOrTubesIntradayAvailabilityFilters","_CutOrTubesIntradayAvailabilityFilters","_Vue","_this","_len","length","args","Array","_key","_defineProperty","CutOrTubesIntradayAvailabilityFilters_1","DEFAULT_SLIDER_START_VALUE","moment","utc","subtract","initializeTimestamps","initializeValue","get","$emit","startTimestamp","totalMinutes","diff","add","toDate","Vue","__decorate","Prop","required","Watch","Component","components","CustomTableFilters","ZoomSelector","StateFilter","methods","component","CutOrTubesIntradayAvailabilityTable","getDefaultZoomValues","_devicesService$store","_devicesService$store2","devicesService","store","findByStringId","name","_refresh","workaroundTableOverflowOnStatusColumnsAdded","filter","dataItem","includes","widgetDefinition","widget","_this2","$nextTick","CellWithSubtitle","GanttChartRow","TableWithActions2","TableActionButton","GanttTimelineRow"],"mappings":"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","file":"js/chunk-c3978a46.4435d696.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table-with-actions2',{staticClass:\"cut-or-tubes-intraday-availability-table\",attrs:{\"data\":_vm.data,\"searchable\":false,\"rowsPerPage\":10,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"toolbar-left\",fn:function(){return [_vm._t(\"widget-help\")]},proxy:true},{key:\"toolbar-right\",fn:function(){return [_c('b-button',{class:['toolbar-button', { applying: _vm.showGantt }],attrs:{\"icon-right\":\"chart-gantt\",\"title\":_vm.$t('gantt_chart_table.show_gantt_chart'),\"data-testid\":\"show-gantt-chart\"},on:{\"click\":function($event){_vm.showGantt = !_vm.showGantt}}}),_c('b-button',{staticClass:\"toolbar-button refresh\",attrs:{\"icon-right\":\"refresh\",\"title\":\"Refresh\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.refresh()}}})]},proxy:true},{key:\"filters\",fn:function({ onFiltersChanged: next }){return [_c('cut-or-tubes-intraday-availability-filters',{attrs:{\"defaultZoom\":_vm.defaultZoomValues},on:{\"filters-change\":(states, zoomValues, areApplying) =>\n _vm.onFiltersChanged(states, zoomValues, areApplying, next)}})]}}],null,true)},[_c('b-table-column',{attrs:{\"field\":\"deviceName\",\"label\":_vm.$t('device.name'),\"width\":\"11.5%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_c('cell-with-subtitle',{scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_c('div',{staticClass:\"last-state\",attrs:{\"set\":(_vm.lastState = _vm.last(row.ganttData)?.value)}},[_vm._v(\" \"+_vm._s(_vm.$t('report.last_state'))+\": \"),(!_vm.isNil(_vm.lastState))?_c('span',{style:(`color: ${_vm.getStateColour(_vm.lastState)}`)},[_vm._v(\" \"+_vm._s(_vm.$t(`cut_intraday_availability_status.${_vm.lastState}`))+\" \")]):_vm._e()])]},proxy:true}],null,true)},[_vm._v(\" \"+_vm._s(_vm.getDeviceNameByStringId(row.deviceStringId))+\" \")])]}}])}),_c('b-table-column',{attrs:{\"visible\":_vm.showGantt,\"label\":_vm.$t('report.gantt'),\"td-attrs\":() => ({ class: 'gantt-cell' })},scopedSlots:_vm._u([{key:\"subheading\",fn:function(){return [(!_vm.isEmpty(_vm.data))?[_c('gantt-timeline-row',{attrs:{\"zoomValues\":_vm.zoomValues}})]:_vm._e()]},proxy:true},{key:\"default\",fn:function({ row }){return [_c('gantt-chart-row',{attrs:{\"generator\":_vm.generator,\"data\":_vm.filterDeviceDataByStatuses(row.ganttData, _vm.states),\"chartBounds\":_vm.zoomValues}})]}}])}),_vm._l((_vm.states),function(state){return _c('b-table-column',{key:state,attrs:{\"label\":_vm.$t(`cut_intraday_availability_status.${state}`),\"width\":\"6%\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ row }){return [_vm._v(\" \"+_vm._s(_vm.getTotalStatusDuration(row.ganttData, state, _vm.zoomValues))+\" \")]}}],null,true)})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Copyright (C) 2021 Bystronic Laser AG\n\nimport { FilterTimeSpanEnum } from '@/models/enums/FilterTimeSpanEnum';\nimport { GanttIntervalData, CutOrTubesDeviceGanttStatus } from '../chartsData';\nimport { ProcedureName } from '../abstract/chartGenerator';\nimport { getStateColour } from '@/utils/color';\nimport i18n from '@/i18n';\nimport { AbstractGanttChartTableGenerator } from '@/models/Charts/gantt/abstractGanttChartTableGenerator';\nimport { values } from '@/utils/enum';\n\n/**\n * Used both for the cut and tubes intraday availability Gantt chart tables.\n */\nexport class CutOrTubesIntradayAvailabilityGanttGenerator extends AbstractGanttChartTableGenerator {\n constructor(procedure: ProcedureName) {\n super(procedure);\n }\n\n override async getData(\n selectedDevices: string[],\n selectedShifts: number[],\n timeSpan: FilterTimeSpanEnum | [string, string],\n ): Promise[] | null> {\n // Data retrieved by CutOrTubesIntradayAvailabilityTableRetriever\n throw new Error('This method does not need to be called nor implemented');\n }\n\n protected override getStateColor(state: string, index: number): string {\n return getStateColour(state);\n }\n\n protected override getPossibleIntervalValues(\n data: GanttIntervalData[],\n ): CutOrTubesDeviceGanttStatus[] {\n return values(CutOrTubesDeviceGanttStatus);\n }\n\n protected override getLocalizedStateName(state: string): string {\n return i18n.t(`widget_info_text.gantt_chart_table.states.${state}`).toString();\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('custom-table-filters',{staticClass:\"cut-or-tubes-intraday-availability-filters\",on:{\"submit\":function($event){return _vm.emitFilters()},\"reset\":function($event){return _vm.clearAllFilters()}}},[_c('zoom-selector',{attrs:{\"defaultZoom\":_vm.defaultZoom},model:{value:(_vm.zoomValue),callback:function ($$v) {_vm.zoomValue=$$v},expression:\"zoomValue\"}}),_c('hr',{staticClass:\"dropdown-divider\"}),_c('state-filter',{attrs:{\"title\":_vm.$t('gantt_chart_table.states'),\"states\":_vm.states,\"getStateColor\":_vm.getStateColour},model:{value:(_vm.selectedStates),callback:function ($$v) {_vm.selectedStates=$$v},expression:\"selectedStates\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport moment from 'moment';\nimport CustomTableFilters from '@/components/tableWithActions/CustomTableFilters.vue';\nimport { isEmpty } from '@/utils/misc';\nimport { CutOrTubesDeviceGanttStatus } from '@/models/Charts/chartsData';\nimport ZoomSelector from '@/components/tableFilters/ZoomSelector.vue';\nimport StateFilter from '@/components/tableFilters/StateFilter.vue';\nimport { getStateColour } from '@/utils/color';\nimport { values } from '@/utils/enum';\n\n@Component({\n components: {\n CustomTableFilters,\n ZoomSelector,\n StateFilter,\n },\n methods: {\n isEmpty,\n getStateColour,\n },\n})\nexport default class CutOrTubesIntradayAvailabilityFilters extends Vue {\n @Prop({ required: true })\n private defaultZoom!: [Date, Date];\n\n private static readonly DEFAULT_SLIDER_START_VALUE = 0;\n\n private selectedStates: string[] = [];\n private zoomValue: [number, number] = [\n CutOrTubesIntradayAvailabilityFilters.DEFAULT_SLIDER_START_VALUE,\n CutOrTubesIntradayAvailabilityFilters.DEFAULT_SLIDER_START_VALUE,\n ];\n\n private startTimestamp: moment.Moment = moment.utc().subtract(24, 'hours');\n\n private mounted() {\n this.selectedStates = this.states;\n this.initializeTimestamps();\n this.initializeValue();\n }\n\n private get states() {\n return values(CutOrTubesDeviceGanttStatus);\n }\n\n @Watch('defaultZoom')\n private watchDefaultZoom() {\n this.initializeTimestamps();\n this.initializeValue();\n\n // The following code handles the case when the table is refreshed (and thus the defaultZoom changed)\n // and we want to update the filter state.\n // If only the zoom was being used, and now that the defaultZoom was reset,\n // no filter is being used and the table must be notified (by sending areApplying to false)\n const areApplying = this.selectedStates.length !== this.states.length;\n this.$emit('filters-change', this.selectedStates, this.defaultZoom, areApplying);\n }\n\n private initializeTimestamps() {\n this.startTimestamp = moment(this.defaultZoom[0]);\n }\n\n private initializeValue() {\n this.zoomValue = [\n CutOrTubesIntradayAvailabilityFilters.DEFAULT_SLIDER_START_VALUE,\n this.totalMinutes\n ];\n }\n\n private get totalMinutes(): number {\n return moment(this.defaultZoom[1]).diff(this.defaultZoom[0], 'minutes');\n }\n\n private emitFilters() {\n const zoomValues = [\n moment(this.startTimestamp).add(this.zoomValue[0], 'minutes').toDate(),\n moment(this.startTimestamp).add(this.zoomValue[1], 'minutes').toDate(),\n ];\n const areApplying = !(\n this.selectedStates.length === this.states.length &&\n this.zoomValue[0] === CutOrTubesIntradayAvailabilityFilters.DEFAULT_SLIDER_START_VALUE &&\n this.zoomValue[1] === this.totalMinutes\n );\n this.$emit('filters-change', this.selectedStates, zoomValues, areApplying);\n }\n\n private clearAllFilters() {\n this.selectedStates = this.states;\n this.zoomValue = [\n CutOrTubesIntradayAvailabilityFilters.DEFAULT_SLIDER_START_VALUE,\n this.totalMinutes,\n ];\n this.emitFilters();\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!./CutOrTubesIntradayAvailabilityFilters.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!./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=template&id=73f39934&scoped=true\"\nimport script from \"./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=script&lang=ts\"\nexport * from \"./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=style&index=0&id=73f39934&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 \"73f39934\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { getStateColour } from '@/utils/color';\nimport TableWithActions2 from '@/components/tableWithActions/TableWithActions2.vue';\nimport TableActionButton from '@/components/tableWithActions/TableActionButton.vue';\nimport CellWithSubtitle from '@/components/tableWithActions/CellWithSubtitle.vue';\nimport { isEmpty, isNil } from '@/utils/misc';\nimport { devicesService } from '@/services/devices.service';\nimport WidgetDefinition from '@/models/Charts/widgetDefinition';\nimport {\n CutOrTubesGanttItem,\n CutOrTubesIntradayAvailabilityDeviceData,\n CutOrTubesDeviceGanttStatus,\n} from '@/models/Charts/chartsData';\nimport {\n CutOrTubesIntradayAvailabilityGanttGenerator,\n} from '@/models/Charts/gantt/cutOrTubesIntradayAvailabilityGanttGenerator';\nimport CutOrTubesIntradayAvailabilityFilters from './CutOrTubesIntradayAvailabilityFilters.vue';\nimport GanttChartRow from '../GanttChartRow.vue';\nimport GanttTimelineRow from '../GanttTimelineRow.vue';\nimport { getDefaultZoomValues, getTotalStatusDuration } from '@/utils/gantt';\nimport { last } from '@/utils/array';\nimport { values } from '@/utils/enum';\n\n@Component({\n components: {\n CellWithSubtitle,\n CutOrTubesIntradayAvailabilityFilters,\n GanttChartRow,\n TableWithActions2,\n TableActionButton,\n GanttTimelineRow,\n },\n methods: {\n isNil,\n last,\n getStateColour,\n isEmpty,\n getTotalStatusDuration,\n },\n})\nexport default class CutOrTubesIntradayAvailabilityTable extends Vue {\n @Prop({ required: true })\n private widgetDefinition!: WidgetDefinition;\n\n @Prop({ required: true })\n private data!: CutOrTubesIntradayAvailabilityDeviceData[];\n\n @Prop({ required: true })\n private loading!: boolean;\n\n private states: CutOrTubesDeviceGanttStatus[] = values(CutOrTubesDeviceGanttStatus);\n\n private defaultZoomValues: [Date, Date] = getDefaultZoomValues();\n private zoomValues: [Date, Date] = getDefaultZoomValues();\n\n private showGantt = true;\n\n private getDeviceNameByStringId(deviceStringId: string): string {\n // eService center may load this component before the customer's devices\n // are fetched, so don't assume it'll be found.\n return devicesService.store.findByStringId(deviceStringId)?.name ?? '';\n }\n\n private async refresh() {\n this.$emit('refresh');\n }\n\n private onFiltersChanged(\n states: CutOrTubesDeviceGanttStatus[],\n zoomValues: [Date, Date],\n areApplying: boolean,\n next: (filterValues: Record, areApplying: boolean) => void,\n ) {\n this.states = states;\n this.zoomValues = zoomValues;\n this.workaroundTableOverflowOnStatusColumnsAdded();\n next({}, areApplying);\n }\n\n private filterDeviceDataByStatuses(\n data: CutOrTubesGanttItem[],\n states: string[],\n ): CutOrTubesGanttItem[] {\n return data.filter(\n (dataItem) => states.includes(dataItem.value),\n );\n }\n\n @Watch('data')\n private watchData() {\n this.defaultZoomValues = getDefaultZoomValues();\n this.zoomValues = this.defaultZoomValues;\n }\n\n private get generator() {\n return new CutOrTubesIntradayAvailabilityGanttGenerator(this.widgetDefinition.widget);\n }\n\n /**\n * Workarounds the table overflowing its container when a status column is added.\n *\n * When a column is added columns width isn't recalculated, so the new columns\n * are just added, provoking and overflow.\n *\n * This is a hack that triggers a re-render of the Gantt charts, so their\n * widths and their columns adapt to the new available width. This is done by\n * hiding and showing again the Gantt column.\n */\n private workaroundTableOverflowOnStatusColumnsAdded() {\n this.showGantt = !this.showGantt;\n this.$nextTick(() => this.showGantt = !this.showGantt);\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!./CutOrTubesIntradayAvailabilityTable.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!./CutOrTubesIntradayAvailabilityTable.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CutOrTubesIntradayAvailabilityTable.vue?vue&type=template&id=14a0a978&scoped=true\"\nimport script from \"./CutOrTubesIntradayAvailabilityTable.vue?vue&type=script&lang=ts\"\nexport * from \"./CutOrTubesIntradayAvailabilityTable.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CutOrTubesIntradayAvailabilityTable.vue?vue&type=style&index=0&id=14a0a978&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 \"14a0a978\",\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!./CutOrTubesIntradayAvailabilityTable.vue?vue&type=style&index=0&id=14a0a978&prod&lang=scss&scoped=true\"","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!./CutOrTubesIntradayAvailabilityFilters.vue?vue&type=style&index=0&id=73f39934&prod&lang=scss&scoped=true\""],"sourceRoot":""}