{"version":3,"sources":["webpack:///./src/views/pages/PlantDetail/CommandsGroups/CommandWizard/CommandWizardStep3/CommandWizardStep3.vue?bf59","webpack:///./src/views/pages/PlantDetail/CommandsGroups/CommandWizard/CommandWizardStep3/CommandWizardStep3.ts","webpack:///./src/views/pages/PlantDetail/CommandsGroups/CommandWizard/CommandWizardStep3/CommandWizardStep3.vue","webpack:///./src/views/pages/PlantDetail/CommandsGroups/CommandWizard/CommandWizardStep.ts","webpack:///./src/views/components/AddDeviceToLinkableObject/AddDeviceToLinkableObject.vue?31b0","webpack:///./src/views/components/AddDeviceToLinkableObject/AddDeviceToLinkableObject.ts","webpack:///./src/views/components/AddDeviceToLinkableObject/AddDeviceToLinkableObject.vue","webpack:///./src/views/components/AddDeviceToLinkableObject/AddDeviceToLinkableObject.scss?540d"],"names":["render","_ctx","_cache","$props","$setup","$data","$options","_component_AddDeviceToLinkableObject","currentDevices","currentDevicesCommands","assignableDevices","devicesCommands","linkableObject","commandGroup","addToastMessage","$t","ruleServiceType","SlotRuleServiceType","COMMANDS_AND_GROUPS","this","devices","filter","x","isCommandDevice","fetchDevices","some","k","slots","s","status","MarkedForLinking","Configured","linkedObjects","l","id","$store","dispatch","plants","commandDevices","selectedPlantId","roomObjectType","console","log","nextEnabled","type","Group","atLeastOneDeviceAndSlotSelected","CommandWizardStep","name","components","AddDeviceToLinkableObject","computed","watch","validateNextEnabled","__exports__","$emit","props","plantId","Number","required","Object","defaultSettings","emits","emitIsNextEnabled","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_component_DeviceAndSlotDetail","_component_ElScrollbar","_component_InputText","_component_TabPanel","_component_TabView","default","device","index","key","onRemoveDevice","$event","removeDevice","isSingleDeviceSelection","isOnlyDeviceSelection","_","header","placeholder","modelValue","searchTerm","availableAssignableDevices","onAddDevice","addDevice","find","d","toLowerCase","includes","model","$emitter","on","deleteUnusedDevicesAction","off","i","length","slot","THERMO_THERMO","assignedComponentType","Thermo","THERMO_PROBE","Probe","push","$toast","add","severity","summary","closable","life","removeSlots","NotConfigured","realIndex","indexOf","undefined","splice","deleteUnusedDevices","String","Boolean","DeviceAndSlotDetail"],"mappings":"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","file":"js/chunk-5db06c9e.83ece2a0.js","sourcesContent":["import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_AddDeviceToLinkableObject = _resolveComponent(\"AddDeviceToLinkableObject\")\n\n return (_openBlock(), _createBlock(_component_AddDeviceToLinkableObject, {\n currentDevices: _ctx.currentDevicesCommands,\n assignableDevices: _ctx.devicesCommands,\n linkableObject: _ctx.commandGroup,\n addToastMessage: _ctx.$t('general.commandAdded'),\n ruleServiceType: _ctx.SlotRuleServiceType.COMMANDS_AND_GROUPS\n }, null, 8, [\"currentDevices\", \"assignableDevices\", \"linkableObject\", \"addToastMessage\", \"ruleServiceType\"]))\n}","import { Options } from 'vue-class-component';\n\nimport CommandWizardStep from '../CommandWizardStep';\nimport AddDeviceToLinkableObject from '@/views/components/AddDeviceToLinkableObject/AddDeviceToLinkableObject.vue';\n\nimport plantsClient from '@/core/services/plants';\nimport {\n AggregateCommandType,\n DeviceDTO,\n SlotStatus,\n} from '@/../client-generator/generated-clients/plants';\nimport { mapState } from 'vuex';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\nimport { SlotRuleServiceType } from '@/core/services/slots-assign-rules-service/slots-assign-rules-interfaces';\n\n@Options({\n name: 'CommandWizardStep3',\n components: {\n AddDeviceToLinkableObject,\n },\n computed: {\n ...mapState(['selectedPlantId']),\n },\n watch: {\n atLeastOneDeviceAndSlotSelected: function () {\n this.validateNextEnabled();\n },\n },\n})\nexport default class CommandWizardStep3 extends CommandWizardStep {\n selectedPlantId!: number;\n devicesCommands: DeviceDTO[] = [];\n SlotRuleServiceType = SlotRuleServiceType;\n\n get currentDevicesCommands() {\n return this.commandGroup.devices?.filter((x) => x.isCommandDevice) ?? [];\n }\n\n mounted() {\n this.fetchDevices();\n }\n\n get atLeastOneDeviceAndSlotSelected() {\n return (\n this.commandGroup.devices?.some((k) =>\n k.slots?.some(\n (s) =>\n s.status == SlotStatus.MarkedForLinking ||\n (s.status == SlotStatus.Configured &&\n s.linkedObjects?.some((l) => l.id === this.commandGroup.id))\n )\n ) ?? false\n );\n }\n\n async fetchDevices() {\n this.$store.dispatch(SET_APP_LOADING, true);\n\n try {\n this.devicesCommands = await plantsClient.commandDevices(\n this.selectedPlantId,\n this.commandGroup.roomObjectType\n );\n } catch (error) {\n console.log(error);\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n validateNextEnabled() {\n this.nextEnabled =\n this.commandGroup.type == AggregateCommandType.Group ||\n this.atLeastOneDeviceAndSlotSelected;\n }\n}\n","import { render } from \"./CommandWizardStep3.vue?vue&type=template&id=116b9372&ts=true\"\nimport script from \"./CommandWizardStep3.ts?vue&type=script&lang=ts\"\nexport * from \"./CommandWizardStep3.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Vue, Options } from 'vue-class-component';\nimport { PropType } from 'vue';\nimport { AggregateCommandDTO } from '@/../client-generator/generated-clients/plants';\nimport { IDefaultDevicesSettingsDTO } from 'client-generator/generated-clients/device-settings';\n\n@Options({\n name: 'CommandWizardStep',\n props: {\n plantId: {\n type: Number,\n required: true,\n },\n commandGroup: {\n type: Object as PropType,\n },\n defaultSettings: {\n type: Object as PropType,\n required: true,\n },\n },\n emits: ['update:defaultSettings', 'next-enabled'],\n watch: {\n nextEnabled: function () {\n this.emitIsNextEnabled();\n },\n },\n})\nexport default class CommandWizardStep extends Vue {\n plantId!: number;\n commandGroup!: AggregateCommandDTO;\n defaultSettings!: IDefaultDevicesSettingsDTO[];\n\n nextEnabled = true;\n\n emitIsNextEnabled() {\n this.$emit('next-enabled', this.nextEnabled);\n }\n}\n","import { toDisplayString as _toDisplayString, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"add-device-to-linkable-object wizard-panels\" }\nconst _hoisted_2 = { class: \"wizard-panels__left\" }\nconst _hoisted_3 = { class: \"devices-list\" }\nconst _hoisted_4 = { class: \"wizard-panels__right p-4\" }\nconst _hoisted_5 = { class: \"d-flex mb-3\" }\nconst _hoisted_6 = { class: \"p-input-icon-left ml-auto input-filter-search\" }\nconst _hoisted_7 = /*#__PURE__*/_createVNode(\"i\", { class: \"pi pi-search\" }, null, -1)\nconst _hoisted_8 = { class: \"devices-grid\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_DeviceAndSlotDetail = _resolveComponent(\"DeviceAndSlotDetail\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_TabPanel = _resolveComponent(\"TabPanel\")\n const _component_TabView = _resolveComponent(\"TabView\")\n\n return (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", null, _toDisplayString(_ctx.$t(\"AppResource.SelectManuallyFromList\")), 1),\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_3, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.currentDevices, (device, index) => {\n return (_openBlock(), _createBlock(_component_DeviceAndSlotDetail, {\n device: device,\n key: device.id,\n onRemoveDevice: ($event: any) => (_ctx.removeDevice(index)),\n class: \"flex-basis-1\",\n isSingleDeviceSelection: _ctx.isSingleDeviceSelection,\n isOnlyDeviceSelection: _ctx.isOnlyDeviceSelection,\n linkableObject: _ctx.linkableObject,\n ruleServiceType: _ctx.ruleServiceType\n }, null, 8, [\"device\", \"onRemoveDevice\", \"isSingleDeviceSelection\", \"isOnlyDeviceSelection\", \"linkableObject\", \"ruleServiceType\"]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_TabView, { class: \"p-tabview--custom\" }, {\n default: _withCtx(() => [\n _createVNode(_component_TabPanel, {\n header: _ctx.$t('assignObject.selectFromLastScan')\n }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"span\", _hoisted_6, [\n _hoisted_7,\n _createVNode(_component_InputText, {\n type: \"text\",\n placeholder: _ctx.$t('AppResource.FilterByText'),\n modelValue: _ctx.searchTerm,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.searchTerm = $event))\n }, null, 8, [\"placeholder\", \"modelValue\"])\n ])\n ]),\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_8, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.availableAssignableDevices, (device) => {\n return (_openBlock(), _createBlock(_component_DeviceAndSlotDetail, {\n device: device,\n key: device.id,\n class: \"flex-basis-1\",\n onAddDevice: _ctx.addDevice,\n \"is-add\": true,\n isSingleDeviceSelection: \n _ctx.isSingleDeviceSelection\n ,\n isOnlyDeviceSelection: _ctx.isOnlyDeviceSelection,\n linkableObject: _ctx.linkableObject,\n ruleServiceType: _ctx.ruleServiceType\n }, null, 8, [\"device\", \"onAddDevice\", \"isSingleDeviceSelection\", \"isOnlyDeviceSelection\", \"linkableObject\", \"ruleServiceType\"]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"header\"]),\n _createVNode(_component_TabPanel, {\n header: _ctx.$t('assignObject.selectFromCatalogue')\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"assignObject.selectFromCatalogue\")), 1)\n ]),\n _: 1\n }, 8, [\"header\"])\n ]),\n _: 1\n })\n ])\n ]))\n}","import { Options, Vue } from 'vue-class-component';\nimport DeviceAndSlotDetail from '@/views/components/DeviceAndSlotDetail/DeviceAndSlotDetail.vue';\nimport { PropType } from 'vue';\nimport {\n ComponentType,\n DeviceDTO,\n IAggregateCommandDTO,\n ILinkableObject,\n SlotStatus,\n} from '@/../client-generator/generated-clients/plants';\nimport { SlotRuleServiceType } from '@/core/services/slots-assign-rules-service/slots-assign-rules-interfaces';\nimport { AUTOMATION_WIZARD_NEXT_CALLED } from '@/core/utils/emitter-events';\n\n@Options({\n name: 'AddDeviceToLinkableObject',\n props: {\n currentDevices: {\n type: Object as PropType,\n required: true,\n },\n assignableDevices: {\n type: Object as PropType,\n required: true,\n },\n linkableObject: {\n type: Object as PropType,\n required: true,\n },\n addToastMessage: {\n type: String,\n required: true,\n },\n ruleServiceType: {\n type: Number,\n required: true,\n },\n deleteUnusedDevices: {\n type: Boolean,\n default: false,\n },\n isSingleDeviceSelection: {\n type: Boolean,\n default: false,\n },\n isOnlyDeviceSelection: {\n type: Boolean,\n default: false,\n },\n },\n components: {\n DeviceAndSlotDetail,\n },\n})\nexport default class AddDeviceToLinkableObject extends Vue {\n currentDevices!: DeviceDTO[];\n assignableDevices!: DeviceDTO[];\n linkableObject!: ILinkableObject;\n addToastMessage!: string;\n ruleServiceType!: SlotRuleServiceType;\n deleteUnusedDevices!: boolean;\n isSingleDeviceSelection!: boolean;\n isOnlyDeviceSelection!: boolean;\n\n searchTerm = '';\n\n get availableAssignableDevices() {\n return this.assignableDevices.filter(\n (x) =>\n !this.currentDevices?.find((d) => d.id === x.id) &&\n (!this.searchTerm ||\n x.id?.toLowerCase().includes(this.searchTerm.toLowerCase()) ||\n x.model?.toLowerCase().includes(this.searchTerm.toLowerCase()))\n );\n }\n\n mounted() {\n this.$emitter.on(\n AUTOMATION_WIZARD_NEXT_CALLED,\n this.deleteUnusedDevicesAction\n );\n }\n\n beforeUnmount() {\n this.$emitter.off(\n AUTOMATION_WIZARD_NEXT_CALLED,\n this.deleteUnusedDevicesAction\n );\n }\n\n addDevice(device: DeviceDTO) {\n if (this.isSingleDeviceSelection) {\n for (let i = this.currentDevices.length - 1; i >= 0; i--) {\n this.removeDevice(i, true);\n }\n }\n if (this.isOnlyDeviceSelection) {\n const slot = device.slots?.find((k) => !!k);\n if (slot) {\n slot.status = SlotStatus.MarkedForLinking;\n switch (this.ruleServiceType) {\n case SlotRuleServiceType.THERMO_THERMO:\n slot.assignedComponentType = ComponentType.Thermo;\n break;\n case SlotRuleServiceType.THERMO_PROBE:\n slot.assignedComponentType = ComponentType.Probe;\n break;\n }\n }\n }\n this.linkableObject.devices?.push(device);\n\n this.$toast.add({\n severity: 'success',\n summary: this.addToastMessage,\n closable: false,\n life: 3000,\n });\n }\n\n removeDevice(index: number, removeSlots: boolean = false) {\n if (!this.currentDevices) return;\n if (removeSlots) {\n const slot = this.currentDevices[index].slots?.find((k) => !!k);\n if (slot) slot.status = SlotStatus.NotConfigured;\n }\n const realIndex = this.linkableObject.devices?.indexOf(\n this.currentDevices[index]\n );\n if (realIndex != undefined && realIndex >= 0) {\n this.linkableObject.devices?.splice(realIndex, 1);\n }\n }\n\n deleteUnusedDevicesAction() {\n if (!this.deleteUnusedDevices) return;\n for (let i = (this.linkableObject.devices?.length ?? 0) - 1; i >= 0; i--) {\n if (\n !this.linkableObject.devices![i].slots?.some(\n (s) =>\n s.status === SlotStatus.MarkedForLinking ||\n (s.status === SlotStatus.Configured &&\n s.linkedObjects?.some((l) => l.id === this.linkableObject.id))\n )\n ) {\n this.linkableObject.devices!.splice(i, 1);\n }\n }\n }\n}\n","import { render } from \"./AddDeviceToLinkableObject.vue?vue&type=template&id=e91d6346&ts=true\"\nimport script from \"./AddDeviceToLinkableObject.ts?vue&type=script&lang=ts\"\nexport * from \"./AddDeviceToLinkableObject.ts?vue&type=script&lang=ts\"\n\nimport \"./AddDeviceToLinkableObject.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./AddDeviceToLinkableObject.scss?vue&type=style&index=0&lang=scss\""],"sourceRoot":""}