{"version":3,"sources":["webpack:///./src/views/pages/PlantDetail/PlantScenes/SceneWizard/SceneWizard.vue?0cee","webpack:///./src/views/pages/PlantDetail/PlantScenes/SceneWizard/SceneWizard.ts","webpack:///./src/views/pages/PlantDetail/PlantScenes/SceneWizard/SceneWizard.vue","webpack:///./node_modules/core-js/modules/es.number.is-nan.js"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","render","_ctx","_cache","$props","$setup","$data","$options","_component_ElStep","_component_ElSteps","_component_Button","_component_WizardStepper","default","currentStepTitle","scene","key","active","activeStep","steps","step","index","_","activeStepComponent","onNextEnabled","nextEnabledEvent","onClick","handleButtonBackAction","label","$t","handleButtonSubmitAction","buttonSubmitLabel","disabled","nextDisabled","isEdit","sceneId","title","componentName","show","this","filter","s","length","currentPlant","desktopId","$route","params","id","fetchScene","sceneIndex","parseInt","newSceneIndex","Number","isNaN","name","type","Custom","triggers","actions","conditions","console","log","goToScenes","$store","dispatch","scenesGET","messageError","status","$emitter","emit","$router","push","toString","$toast","add","severity","summary","closable","life","scenesPUT","plantId","scenesPOST","flushCache","nextEnabled","props","Object","required","components","SceneWizardStep1","SceneWizardStep2","SceneWizardStep3","SceneWizardStep4","__exports__","$","target","stat","number"],"mappings":"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","file":"js/page-wizard-scene.cf2f7858.js","sourcesContent":["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, createCommentVNode as _createCommentVNode, resolveDynamicComponent as _resolveDynamicComponent } from \"vue\"\n\nconst _hoisted_1 = { class: \"mb-5\" }\nconst _hoisted_2 = { class: \"mt-3\" }\nconst _hoisted_3 = { class: \"custom-footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ElStep = _resolveComponent(\"ElStep\")\n const _component_ElSteps = _resolveComponent(\"ElSteps\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_WizardStepper = _resolveComponent(\"WizardStepper\")\n\n return (_openBlock(), _createBlock(_component_WizardStepper, null, {\n default: _withCtx(() => [\n _createVNode(\"h1\", _hoisted_1, _toDisplayString(_ctx.currentStepTitle), 1),\n _createVNode(\"div\", _hoisted_2, [\n (_ctx.scene != null)\n ? (_openBlock(), _createBlock(_component_ElSteps, {\n key: 0,\n active: _ctx.activeStep,\n class: \"w-50\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.steps, (step, index) => {\n return (_openBlock(), _createBlock(_component_ElStep, { key: index }))\n }), 128))\n ]),\n _: 1\n }, 8, [\"active\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.scene)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.activeStepComponent), {\n key: 1,\n scene: _ctx.scene,\n onNextEnabled: _ctx.nextEnabledEvent\n }, null, 8, [\"scene\", \"onNextEnabled\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"footer\", _hoisted_3, [\n _createVNode(_component_Button, {\n class: \"p-button-text\",\n onClick: _ctx.handleButtonBackAction,\n label: _ctx.$t('AppResource.Back')\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n class: \"p-button-text ml-auto\",\n onClick: _ctx.handleButtonSubmitAction,\n label: _ctx.buttonSubmitLabel,\n disabled: _ctx.nextDisabled\n }, null, 8, [\"onClick\", \"label\", \"disabled\"])\n ])\n ]),\n _: 1\n }))\n}","import { Vue, Options } from 'vue-class-component';\nimport { PropType, defineAsyncComponent } from 'vue';\n\nimport {\n PlantDetailDTO,\n SceneDTO,\n SceneType,\n} from '@/../client-generator/generated-clients/plants';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\nimport { HANDLE_REFRESH_PLANT } from '@/core/utils/emitter-events';\nimport plantsClient from '@/core/services/plants';\nimport { isDefaultScene } from '@/core/utils/utils';\nimport { NamingService } from '../../../../../core/services/naming.service';\n\n@Options({\n name: 'SceneWizard',\n props: {\n currentPlant: {\n type: Object as PropType,\n required: false,\n },\n },\n components: {\n SceneWizardStep1: defineAsyncComponent(\n () => import('./SceneWizardStep1/SceneWizardStep1.vue')\n ),\n SceneWizardStep2: defineAsyncComponent(\n () => import('./SceneWizardStep2/SceneWizardStep2.vue')\n ),\n SceneWizardStep3: defineAsyncComponent(\n () => import('./SceneWizardStep3/SceneWizardStep3.vue')\n ),\n SceneWizardStep4: defineAsyncComponent(\n () => import('./SceneWizardStep4/SceneWizardStep4.vue')\n ),\n // To be defined\n // SceneWizardStep5: defineAsyncComponent(\n // () => import('./SceneWizardStep5/SceneWizardStep5.vue')\n // ),\n },\n})\nexport default class SceneWizard extends Vue {\n currentPlant!: PlantDetailDTO;\n\n isEdit = false;\n sceneId = '';\n activeStep = 0;\n nextDisabled = false;\n scene: SceneDTO | null = null;\n\n get steps() {\n return [\n {\n title: 'AppResource.Name',\n componentName: 'SceneWizardStep1',\n show: true,\n },\n {\n title: `AppResource.AddTheActions`,\n componentName: 'SceneWizardStep2',\n show: true,\n },\n {\n title: 'AppResource.AddTheTriggers',\n componentName: 'SceneWizardStep3',\n show: !isDefaultScene(this.scene),\n },\n {\n title: 'AppResource.AddTheConditions',\n componentName: 'SceneWizardStep4',\n show: !isDefaultScene(this.scene),\n },\n // To be defined\n // {\n // title: 'scenesWizard.overview',\n // componentName: 'SceneWizardStep5',\n // },\n ].filter((s) => s.show);\n }\n\n get currentStepTitle() {\n return this.$t(this.steps[this.activeStep].title);\n }\n\n get activeStepComponent() {\n return this.steps[this.activeStep].componentName;\n }\n\n get buttonSubmitLabel() {\n if (this.activeStep < this.steps.length - 1) {\n return this.$t('AppResource.Next');\n }\n\n return this.$t('AppResource.SaveAndExit');\n }\n\n get plantId() {\n if (this.currentPlant) {\n return this.currentPlant.desktopId;\n }\n\n return null;\n }\n\n async mounted() {\n try {\n this.sceneId = this.$route.params.id as string;\n this.isEdit = !!this.sceneId;\n\n if (this.isEdit) {\n this.fetchScene();\n } else {\n const sceneIndex = parseInt(\n this.$route.params.sceneIndex as string,\n 10\n );\n\n const newSceneIndex =\n !Number.isNaN(sceneIndex) && sceneIndex !== 0 ? ` ${sceneIndex}` : '';\n\n this.scene = new SceneDTO({\n name: `${this.$t('AppResource.Scene')}${newSceneIndex}`,\n type: SceneType.Custom,\n triggers: [],\n actions: [],\n conditions: [],\n });\n }\n } catch (error) {\n console.log('Error reading scene id, redirecting to scenes page.');\n this.goToScenes();\n return;\n }\n }\n\n async fetchScene() {\n this.$store.dispatch(SET_APP_LOADING, true);\n\n try {\n this.scene = await plantsClient.scenesGET(\n this.currentPlant.desktopId as number,\n this.sceneId\n );\n } catch (error) {\n let messageError = '';\n switch (error.status) {\n case 409:\n this.$emitter.emit(HANDLE_REFRESH_PLANT);\n this.$router.push({\n name: 'page-plant-dashboard',\n params: this.$route.params,\n });\n break;\n default:\n messageError = this.$t('apiErrors.serverError').toString();\n }\n\n if (messageError) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 3000,\n });\n }\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n goToScenes() {\n this.$router.push({ name: 'page-plant-scenes' });\n }\n\n handleButtonBackAction() {\n if (this.activeStep > 0) {\n this.nextDisabled = false;\n this.activeStep--;\n } else {\n this.goToScenes();\n }\n }\n\n async handleButtonSubmitAction() {\n if (this.activeStep < this.steps.length - 1) {\n this.activeStep++;\n return;\n }\n\n try {\n this.$store.dispatch(SET_APP_LOADING, true);\n\n if (this.isEdit && this.sceneId) {\n await plantsClient.scenesPUT(\n this.plantId as number,\n this.sceneId,\n this.scene as SceneDTO\n );\n this.goToScenes();\n } else {\n await plantsClient.scenesPOST(\n this.plantId as number,\n this.scene as SceneDTO\n );\n this.goToScenes();\n }\n } catch (error) {\n let messageError = '';\n switch (error.status) {\n case 409:\n this.$emitter.emit(HANDLE_REFRESH_PLANT);\n this.$router.push({\n name: 'page-plant-dashboard',\n params: this.$route.params,\n });\n break;\n default:\n messageError = this.$t('apiErrors.serverError').toString();\n }\n\n if (messageError) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 3000,\n });\n }\n } finally {\n NamingService.flushCache();\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n nextEnabledEvent(nextEnabled: boolean) {\n this.nextDisabled = !nextEnabled;\n }\n}\n","import { render } from \"./SceneWizard.vue?vue&type=template&id=706d9928&ts=true\"\nimport script from \"./SceneWizard.ts?vue&type=script&lang=ts\"\nexport * from \"./SceneWizard.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__","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n"],"sourceRoot":""}