{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.flat.js","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/NewRoomObject/NewRoomObject.scss?4306","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/AddRoomObjectDialog.scss?b8ec","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack:///./node_modules/core-js/modules/es.array.flat-map.js","webpack:///./node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack:///./src/views/pages/PlantDetail/PlantStructure/DialogStructureCreate/DialogStructureCreate.scss?68b9","webpack:///./src/views/pages/PlantDetail/PlantDetail.vue?38fb","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/AddRoomObjectDialog.vue?7abf","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/NewRoomObject/NewRoomObject.vue?fe3a","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/NewRoomObject/NewRoomObject.ts","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/NewRoomObject/NewRoomObject.vue","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/AddRoomObjectDialog.ts","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/AddRoomObjectDialog.vue","webpack:///./src/views/pages/PlantDetail/PlantStructure/DialogStructureCreate/DialogStructureCreate.vue?82aa","webpack:///./src/views/pages/PlantDetail/PlantStructure/DialogStructureCreate/DialogStructureCreate.ts","webpack:///./src/views/pages/PlantDetail/PlantStructure/DialogStructureCreate/DialogStructureCreate.vue","webpack:///./src/views/pages/PlantDetail/PlantDetail.ts","webpack:///./src/views/pages/PlantDetail/PlantDetail.vue","webpack:///./node_modules/core-js/internals/flatten-into-array.js","webpack:///./src/views/pages/PlantDetail/PlantDetail.scss?783e"],"names":["$","flattenIntoArray","toObject","toLength","toInteger","arraySpeciesCreate","target","proto","flat","depthArg","arguments","length","undefined","O","this","sourceLen","A","addToUnscopables","aFunction","flatMap","callbackfn","_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","key","render","_ctx","_cache","$props","$setup","$data","$options","_component_MenuSharing","_component_InlineSvgScoped","_component_Button","_component_ElDropdownItem","_component_ElDropdownMenu","_component_ElDropdown","_component_ElPopover","_component_router_view","_component_AddRoomObjectDialog","_component_DialogStructureCreate","_component_DialogPlantCreate","_component_DialogConfirmDeletePlant","_component_DialogConfirmTransferOwnership","_component_ConfirmPlantUpdated","_component_DialogPlantDuplicate","hideFooter","currentPlant","default","Component","onAddObject","toggleAddRoomObjectDialog","onAddStructure","toggleCreateStructureDialog","onUpdateList","fetchPlant","plant","onAddInvitedUser","handleInvitedUser","onRemoveSharingUser","handleRemoveSharingUser","onClick","togglePlantFromFavorites","src","favouriteIcon","_","trigger","placement","dropdown","style","handleDuplicatePlant","$t","toggleEditDialog","disabled","plantEditEnabled","plantDeleteEnabled","toggleDeletePlantConfirm","getParsedDate","lastModify","title","username","reference","userInitials","iconDeviceLabel","iconDevice","tags","tag","value","$event","onSaveAndExitClick","room","currentRoom","onHideDialog","isVisibleAddRoomObjectDialog","isVisibleCreateStructureDialog","editPlantId","selectedPlantId","editPlantType","PlantType","AUTOMATION_PLANT","onPlantEdited","isVisibleEditDialog","plantName","onConfirm","handleDeletePlant","isVisibleDeletePlantConfirm","isVisibleTransferOwnershipConfirm","toggleTransferOwnershipConfirm","hideConfirmPlantUpdated","isVisibleConfirmPlantUpdated","onFetchPlants","handlePlantDuplicated","isPlantDuplicateDialogVisible","handleHidePlantDuplicateDialog","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_component_NewRoomObject","_component_ElScrollbar","_component_Dialog","modal","showHeader","onHide","doHideDialog","visible","isDialogVisible","name","label","handleHideDialog","anyNameIsUnderComputation","objectTypes","objectType","id","objects","getObjectIconFromType","type","getObjectLabelFromType","busy","handleAddObject","object","index","onObjectChange","handleRoomObjectChange","onRemoveObject","handleObjectRemove","plantId","desktopId","buttonSubmitLabel","handleButtonSubmitAction","for","_hoisted_15","_hoisted_16","_component_InputText","_component_Dropdown","newRoomObject","isInvalid","onInput","onInputChange","invalidReason","RoomObjectType","Shutter","optionLabel","optionValue","options","shutterTypes","modelValue","isManagePosition","Light","lightTypes","lightType","Fancoil","fancoilTypes","thermoTypeOfObject","Thermostat","thermostatTypes","showOtherField","thermostatAssociatedPump","thermoAssociatedPump","invalidNameReason","Dimmer","OnOff","Heating","Cooling","HeatingAndCooling","Yes","No","mainObjectType","$emit","e","emits","props","required","Object","Number","__exports__","i18n","global","t","expandedItems","Blind","ColoredLight","Lock","Socket","DimmerDmx","Xmeter","Player","TowelWarmer","find","ot","isVisible","addObjects","$nextTick","resetObjects","$toast","add","severity","summary","closable","life","setTimeout","roomId","$route","params","$store","dispatch","request","map","k","plants","roomObjectsPOST","messageError","status","$emitter","emit","$router","push","toString","validateChanges","completeObjectsListClone","parentObjType","objType","idx","parentObjTypeIdx","findIndex","o","Error","validateRoomObjectAgainstList","updateAdditionalEntitiesList","parentObject","innerObject","suggestNextValidEntityName","eType","ROOM_OBJECT","metadata","roomType","roomObjectType","suggestedName","data","obj","currentName","plantEntityType","newList","d","additionalEntities","objectsTypesToFlatPlantEntitiesList","objToAdd","splice","forEach","p","components","NewRoomObject","Boolean","watch","newValue","flushCache","_component_DialogPlantCreateStep3","_component_ProgressSpinner","onIsLoading","handleLoading","isEditMode","isLoading","resetRoomsCount","handleAddRooms","roomsCounts","filter","count","roomsPOST","DialogPlantCreateStep3","MHS1Icon","C300EOSIcon","tempPlant","isPlantDirty","isDevicesCardLoading","isPausedFetchupdate","intervalFetchUpdate","timeoutRenewSession","to","mxServer","model","Classe300EOS","isAlarmConfigured","lastModifyByDesktop","menuItemsContextual","menuItem","additionalClass","getMenuItemClass","lastModifyBy","surname","includes","isFavourite","menuItemsContextualWithActiveClasses","parseInt","registerEmitterEvents","registerPeriodicFetchUpdates","renewSessionTimeout","unregisterEmitterEvents","unregisterPeriodicFetchUpdates","unregisterRenewSessionTimeout","plantGET","rooms","roomObjects","roomObject","devices","device","defaultSettings","ds","console","log","on","handleRefreshPlantFromOuterEvent","off","doFetchUpdatesInternal","$config","PLANT_REFRESH_INTERVAL","clearTimeout","newPlant","session","renewSecondsDto","renewSessionSeconds","routeName","date","month","day","year","hour","minute","toLocaleString","plantDELETE","alert","fromJS","userEmail","newUser","invitedEmail","confirmed","sharedWith","user","userIndex","u","userId","Date","replace","path","MenuSharing","DialogPlantCreate","AddRoomObjectDialog","ConfirmPlantUpdated","DialogPlantDuplicate","DialogStructureCreate","DialogConfirmDeletePlant","DialogConfirmTransferOwnership","computed","isArray","bind","original","source","start","depth","mapper","thisArg","element","targetIndex","sourceIndex","mapFn","TypeError","module","exports"],"mappings":"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","file":"js/page-plant-detail.3228124f.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flat` method\n// https://tc39.es/ecma262/#sec-array.prototype.flat\n$({ target: 'Array', proto: true }, {\n flat: function flat(/* depthArg = 1 */) {\n var depthArg = arguments.length ? arguments[0] : undefined;\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n","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!./NewRoomObject.scss?vue&type=style&index=0&lang=scss\"","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!./AddRoomObjectDialog.scss?vue&type=style&index=0&lang=scss\"","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","'use strict';\nvar $ = require('../internals/export');\nvar flattenIntoArray = require('../internals/flatten-into-array');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar aFunction = require('../internals/a-function');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\n// `Array.prototype.flatMap` method\n// https://tc39.es/ecma262/#sec-array.prototype.flatmap\n$({ target: 'Array', proto: true }, {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A;\n aFunction(callbackfn);\n A = arraySpeciesCreate(O, 0);\n A.length = flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return A;\n }\n});\n","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","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!./DialogStructureCreate.scss?vue&type=style&index=0&lang=scss\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, resolveDynamicComponent as _resolveDynamicComponent, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"apartment__head-menu\" }\nconst _hoisted_2 = { class: \"bt-icon bt-icon--sm mr-3 text-gray\" }\nconst _hoisted_3 = { class: \"btn-stripped d-flex align-items-center\" }\nconst _hoisted_4 = { class: \"bt-icon bt-icon--sm mr-3 text-gray\" }\nconst _hoisted_5 = { class: \"btn-stripped text-danger\" }\nconst _hoisted_6 = { class: \"fs-18 text-gray mr-2\" }\nconst _hoisted_7 = { class: \"list-bubbles\" }\nconst _hoisted_8 = { class: \"bt-icon bt-icon--sm\" }\nconst _hoisted_9 = { class: \"apartment__tags\" }\nconst _hoisted_10 = {\n key: 1,\n class: \"apartment__footer\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MenuSharing = _resolveComponent(\"MenuSharing\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_ElDropdownItem = _resolveComponent(\"ElDropdownItem\")\n const _component_ElDropdownMenu = _resolveComponent(\"ElDropdownMenu\")\n const _component_ElDropdown = _resolveComponent(\"ElDropdown\")\n const _component_ElPopover = _resolveComponent(\"ElPopover\")\n const _component_router_view = _resolveComponent(\"router-view\")\n const _component_AddRoomObjectDialog = _resolveComponent(\"AddRoomObjectDialog\")\n const _component_DialogStructureCreate = _resolveComponent(\"DialogStructureCreate\")\n const _component_DialogPlantCreate = _resolveComponent(\"DialogPlantCreate\")\n const _component_DialogConfirmDeletePlant = _resolveComponent(\"DialogConfirmDeletePlant\")\n const _component_DialogConfirmTransferOwnership = _resolveComponent(\"DialogConfirmTransferOwnership\")\n const _component_ConfirmPlantUpdated = _resolveComponent(\"ConfirmPlantUpdated\")\n const _component_DialogPlantDuplicate = _resolveComponent(\"DialogPlantDuplicate\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"article\", {\n class: [\"apartment\", { 'has--footer': !_ctx.hideFooter }]\n }, [\n (_ctx.currentPlant)\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }, {\n default: _withCtx(({ Component }) => [\n (_openBlock(), _createBlock(_resolveDynamicComponent(Component), {\n onAddObject: _ctx.toggleAddRoomObjectDialog,\n onAddStructure: _ctx.toggleCreateStructureDialog,\n onUpdateList: _ctx.fetchPlant,\n currentPlant: _ctx.currentPlant ?? undefined\n }, {\n \"head-menu\": _withCtx(() => [\n _createVNode(\"nav\", _hoisted_1, [\n _createVNode(_component_MenuSharing, {\n plant: _ctx.currentPlant,\n onAddInvitedUser: _ctx.handleInvitedUser,\n onRemoveSharingUser: _ctx.handleRemoveSharingUser\n }, null, 8, [\"plant\", \"onAddInvitedUser\", \"onRemoveSharingUser\"]),\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary p-1\",\n onClick: _ctx.togglePlantFromFavorites\n }, {\n default: _withCtx(() => [\n _createVNode(_component_InlineSvgScoped, {\n src: _ctx.favouriteIcon,\n \"aria-label\": \"icon-favorite-outline\"\n }, null, 8, [\"src\"])\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_ElDropdown, {\n trigger: \"click\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, { style: {\"width\":\"300px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_ElDropdownItem, null, {\n default: _withCtx(() => [\n _createVNode(\"button\", {\n class: \"btn-stripped d-flex align-items-center\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.handleDuplicatePlant && _ctx.handleDuplicatePlant(...args)))\n }, [\n _createVNode(\"span\", _hoisted_2, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-duplication.svg')\n ,\n \"aria-label\": \"icon-duplication\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResource.Duplicate\")), 1)\n ])\n ]),\n _: 1\n }),\n _createVNode(_component_ElDropdownItem, {\n onClick: _ctx.toggleEditDialog,\n disabled: !_ctx.plantEditEnabled\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_3, [\n _createVNode(\"span\", _hoisted_4, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-edit.svg')\n ,\n \"aria-label\": \"icon-edit\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResource.Edit\")), 1)\n ])\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(_component_ElDropdownItem, {\n disabled: !_ctx.plantDeleteEnabled,\n onClick: _ctx.toggleDeletePlantConfirm\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_5, _toDisplayString(_ctx.$t(\"AppResource.Delete\")), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_Button, { class: \"p-button-text p-button-secondary p-1\" }, {\n default: _withCtx(() => [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-ellipsis-v.svg')\n ,\n \"aria-label\": \"icon-ellipsis-v\"\n }, null, 8, [\"src\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ])\n ]),\n \"update-time-meta\": _withCtx(() => [\n _createVNode(\"time\", _hoisted_6, _toDisplayString(_ctx.$t(\"general.modified\")) + \": \" + _toDisplayString(_ctx.getParsedDate(_ctx.currentPlant?.lastModify)), 1),\n _createVNode(\"span\", _hoisted_7, [\n _createVNode(_component_ElPopover, {\n placement: \"top\",\n trigger: \"hover\",\n title: _ctx.username,\n \"popper-class\": \"el-popover--dark el-popover--slim\"\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_Button, {\n disabled: \"\",\n class: \"p-button-rounded p-button-sm p-button-secondary\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.userInitials), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"]),\n _createVNode(_component_ElPopover, {\n placement: \"top\",\n trigger: \"hover\",\n title: _ctx.iconDeviceLabel,\n \"popper-class\": \"el-popover--dark el-popover--slim\"\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_Button, {\n disabled: \"\",\n class: \"p-button-rounded p-button-icon-only p-button-sm p-button-secondary\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_8, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/${_ctx.iconDevice}.svg`)\n ,\n \"aria-label\": _ctx.iconDevice\n }, null, 8, [\"src\", \"aria-label\"])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"title\"])\n ]),\n _createVNode(\"ul\", _hoisted_9, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.currentPlant.tags, (tag) => {\n return (_openBlock(), _createBlock(\"li\", { key: tag }, _toDisplayString(tag.value), 1))\n }), 128))\n ])\n ]),\n _: 2\n }, 1032, [\"onAddObject\", \"onAddStructure\", \"onUpdateList\", \"currentPlant\"]))\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (!_ctx.hideFooter)\n ? (_openBlock(), _createBlock(\"footer\", _hoisted_10, [\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button-raised p-button--m\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.onSaveAndExitClick()))\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Exit\")), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createVNode(_component_AddRoomObjectDialog, {\n room: _ctx.currentRoom,\n onUpdateList: _ctx.fetchPlant,\n onHideDialog: _ctx.toggleAddRoomObjectDialog,\n currentPlant: _ctx.currentPlant ?? undefined,\n \"is-visible\": _ctx.isVisibleAddRoomObjectDialog\n }, null, 8, [\"room\", \"onUpdateList\", \"onHideDialog\", \"currentPlant\", \"is-visible\"]),\n _createVNode(_component_DialogStructureCreate, {\n \"is-edit-mode\": true,\n onUpdateList: _ctx.fetchPlant,\n currentPlant: _ctx.currentPlant ?? undefined,\n onHideDialog: _ctx.toggleCreateStructureDialog,\n \"is-visible\": _ctx.isVisibleCreateStructureDialog\n }, null, 8, [\"onUpdateList\", \"currentPlant\", \"onHideDialog\", \"is-visible\"]),\n _createVNode(_component_DialogPlantCreate, {\n editPlantId: _ctx.selectedPlantId,\n editPlantType: _ctx.PlantType.AUTOMATION_PLANT,\n onPlantEdited: _ctx.fetchPlant,\n onHideDialog: _ctx.toggleEditDialog,\n \"is-visible\": _ctx.isVisibleEditDialog\n }, null, 8, [\"editPlantId\", \"editPlantType\", \"onPlantEdited\", \"onHideDialog\", \"is-visible\"]),\n _createVNode(_component_DialogConfirmDeletePlant, {\n \"plant-name\": _ctx.plantName,\n onConfirm: _ctx.handleDeletePlant,\n onHideDialog: _ctx.toggleDeletePlantConfirm,\n \"is-visible\": _ctx.isVisibleDeletePlantConfirm\n }, null, 8, [\"plant-name\", \"onConfirm\", \"onHideDialog\", \"is-visible\"]),\n _createVNode(_component_DialogConfirmTransferOwnership, {\n \"plant-name\": _ctx.plantName,\n \"is-visible\": _ctx.isVisibleTransferOwnershipConfirm,\n onHideDialog: _ctx.toggleTransferOwnershipConfirm\n }, null, 8, [\"plant-name\", \"is-visible\", \"onHideDialog\"]),\n _createVNode(_component_ConfirmPlantUpdated, {\n onHideDialog: _ctx.hideConfirmPlantUpdated,\n \"is-visible\": _ctx.isVisibleConfirmPlantUpdated\n }, null, 8, [\"onHideDialog\", \"is-visible\"]),\n (!!_ctx.currentPlant)\n ? (_openBlock(), _createBlock(_component_DialogPlantDuplicate, {\n key: 0,\n plant: _ctx.currentPlant,\n onFetchPlants: _ctx.handlePlantDuplicated,\n \"is-visible\": _ctx.isPlantDuplicateDialogVisible,\n onHideDialog: _ctx.handleHidePlantDuplicateDialog\n }, null, 8, [\"plant\", \"onFetchPlants\", \"is-visible\", \"onHideDialog\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = /*#__PURE__*/_createTextVNode(\" Choose the objects to add to \")\nconst _hoisted_4 = { class: \"bt-icon bt-icon--sm\" }\nconst _hoisted_5 = { class: \"dialog-custom__content\" }\nconst _hoisted_6 = { class: \"list-blocks list-blocks--fill mt-3\" }\nconst _hoisted_7 = { class: \"list-blocks__item-head\" }\nconst _hoisted_8 = { class: \"bt-icon bt-icon--m\" }\nconst _hoisted_9 = { class: \"ml-3 mb-0\" }\nconst _hoisted_10 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_11 = { class: \"ml-2\" }\nconst _hoisted_12 = { class: \"list-blocks__item-content\" }\nconst _hoisted_13 = {\n key: 0,\n class: \"list-unstyled pl-5\"\n}\nconst _hoisted_14 = { class: \"dialog-custom__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_NewRoomObject = _resolveComponent(\"NewRoomObject\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n modal: true,\n showHeader: false,\n onHide: _ctx.doHideDialog,\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.isDialogVisible = $event)),\n class: \"dialog-custom dialog-add-object\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('AppResource.AddAnObject')), 1),\n _createVNode(\"p\", null, [\n _hoisted_3,\n _createVNode(\"strong\", null, _toDisplayString(_ctx.room?.name), 1)\n ])\n ]),\n _createVNode(_component_Button, {\n label: \"close\",\n onClick: _ctx.handleHideDialog,\n disabled: _ctx.anyNameIsUnderComputation,\n class: \"dialog-custom__close-button p-button-text\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_4, [\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/icons/icon-close.svg`)\n }, null, 8, [\"src\"])\n ])\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"]),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.objectTypes, (objectType) => {\n return (_openBlock(), _createBlock(\"li\", {\n key: objectType.id,\n name: objectType.id,\n class: [\"list-blocks__item\", {\n 'is--empty': objectType.objects.length === 0,\n }]\n }, [\n _createVNode(\"header\", _hoisted_7, [\n _createVNode(\"span\", _hoisted_8, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/${_ctx.getObjectIconFromType(\n objectType.type\n )}.svg`)\n \n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h3\", _hoisted_9, _toDisplayString(_ctx.getObjectLabelFromType(objectType.type)), 1),\n _createVNode(_component_Button, {\n disabled: objectType.busy,\n onClick: _withModifiers(() => _ctx.handleAddObject(objectType), [\"stop\"]),\n class: \"ml-auto p-button-rounded p-button-outlined py-1\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_10, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-plus-outline.svg`)\n ,\n \"aria-label\": \"icon-grid\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t(\"AppResource.Add\")), 1)\n ]),\n _: 2\n }, 1032, [\"disabled\", \"onClick\"])\n ]),\n _createVNode(\"main\", _hoisted_12, [\n (objectType.objects.length > 0)\n ? (_openBlock(), _createBlock(\"ul\", _hoisted_13, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(objectType.objects, (object, index) => {\n return (_openBlock(), _createBlock(_component_NewRoomObject, {\n key: object.id,\n class: \"d-flex align-items-center mt-3\",\n onObjectChange: _ctx.handleRoomObjectChange,\n onRemoveObject: \n () =>\n _ctx.handleObjectRemove(\n objectType,\n index\n )\n ,\n room: _ctx.room,\n \"new-room-object\": object,\n plantId: _ctx.currentPlant?.desktopId,\n \"main-object-type\": objectType.type\n }, null, 8, [\"onObjectChange\", \"onRemoveObject\", \"room\", \"new-room-object\", \"plantId\", \"main-object-type\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ], 10, [\"name\"]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"footer\", _hoisted_14, [\n _createVNode(_component_Button, {\n label: _ctx.buttonSubmitLabel,\n onClick: _ctx.handleButtonSubmitAction,\n disabled: _ctx.anyNameIsUnderComputation,\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"label\", \"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"onHide\", \"visible\"]))\n}","import { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"new-object\" }\nconst _hoisted_2 = { class: \"form-custom d-flex align-items-center w-100\" }\nconst _hoisted_3 = { class: \"p-field mr-4\" }\nconst _hoisted_4 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_5 = { class: \"d-flex flex-column\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"fs-13 label-error\"\n}\nconst _hoisted_7 = {\n key: 0,\n class: \"p-field\"\n}\nconst _hoisted_8 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_9 = {\n key: 1,\n class: \"p-field\"\n}\nconst _hoisted_10 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_11 = {\n key: 2,\n class: \"p-field\"\n}\nconst _hoisted_12 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_13 = {\n key: 3,\n class: \"p-field\"\n}\nconst _hoisted_14 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_15 = {\n key: 4,\n class: \"p-field\"\n}\nconst _hoisted_16 = {\n class: \"p-field-label\",\n for: \"address\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_Dropdown = _resolveComponent(\"Dropdown\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(\"li\", _hoisted_1, [\n _createVNode(\"form\", _hoisted_2, [\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"label\", _hoisted_4, _toDisplayString(_ctx.$t('AppResource.Name')) + \":\", 1),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_InputText, {\n type: \"text\",\n class: [\"w-100\", { 'input-error': _ctx.newRoomObject.isInvalid }],\n onInput: _ctx.onInputChange,\n value: _ctx.newRoomObject.name\n }, null, 8, [\"onInput\", \"value\", \"class\"]),\n (_ctx.newRoomObject.isInvalid)\n ? (_openBlock(), _createBlock(\"label\", _hoisted_6, _toDisplayString(_ctx.newRoomObject.invalidReason), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n (_ctx.newRoomObject.type === _ctx.RoomObjectType.Shutter)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_7, [\n _createVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t('AppResource.ManagePosition')) + \": \", 1),\n _createVNode(_component_Dropdown, {\n optionLabel: \"label\",\n optionValue: \"value\",\n options: _ctx.shutterTypes,\n modelValue: _ctx.newRoomObject.isManagePosition,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.newRoomObject.isManagePosition = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.newRoomObject.type === _ctx.RoomObjectType.Light)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_9, [\n _createVNode(\"label\", _hoisted_10, _toDisplayString(_ctx.$t('AppResource.TypeUpper')) + \":\", 1),\n _createVNode(_component_Dropdown, {\n optionLabel: \"label\",\n optionValue: \"value\",\n options: _ctx.lightTypes,\n modelValue: _ctx.newRoomObject.lightType,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.newRoomObject.lightType = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : (_ctx.newRoomObject.type === _ctx.RoomObjectType.Fancoil)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_11, [\n _createVNode(\"label\", _hoisted_12, _toDisplayString(_ctx.$t('AppResource.TypeUpper')) + \":\", 1),\n _createVNode(_component_Dropdown, {\n optionLabel: \"label\",\n optionValue: \"value\",\n options: _ctx.fancoilTypes,\n modelValue: _ctx.newRoomObject.thermoTypeOfObject,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.newRoomObject.thermoTypeOfObject = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : (_ctx.newRoomObject.type === _ctx.RoomObjectType.Thermostat)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_13, [\n _createVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t('AppResource.TypeUpper')) + \":\", 1),\n _createVNode(_component_Dropdown, {\n optionLabel: \"label\",\n optionValue: \"value\",\n options: _ctx.thermostatTypes,\n modelValue: _ctx.newRoomObject.thermoTypeOfObject,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.newRoomObject.thermoTypeOfObject = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showOtherField)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_15, [\n _createVNode(\"label\", _hoisted_16, _toDisplayString(_ctx.$t('AppResource.AssociatedPump')) + \": \", 1),\n _createVNode(_component_Dropdown, {\n optionLabel: \"label\",\n optionValue: \"value\",\n options: _ctx.thermostatAssociatedPump,\n modelValue: _ctx.newRoomObject.thermoAssociatedPump,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_ctx.newRoomObject.thermoAssociatedPump = $event))\n }, null, 8, [\"options\", \"modelValue\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Button, {\n label: _ctx.$t('AppResource.Delete'),\n class: \"ml-auto p-button-text\",\n onClick: _ctx.handleObjectRemove\n }, null, 8, [\"label\", \"onClick\"])\n ])\n ]))\n}","import debounce from 'lodash.debounce';\nimport {\n AddRoomObjectDTO,\n LightType,\n RoomDTO,\n RoomObjectType,\n ThermoAssociatedPump,\n ThermoTypeOfObject,\n} from '@/../client-generator/generated-clients/plants';\nimport { PropType } from 'vue';\nimport { Vue, Options } from 'vue-class-component';\nimport { IValidableObjectType } from '@/core/services/naming.service';\n\n@Options({\n name: 'NewRoomObject',\n emits: ['remove-object', 'object-change'],\n props: {\n newRoomObject: {\n required: true,\n type: Object as PropType,\n },\n mainObjectType: {\n required: true,\n type: Number as PropType,\n },\n plantId: {\n type: Number,\n required: true,\n },\n room: {\n type: Object as PropType,\n required: true,\n },\n },\n})\nexport default class NewRoomObject extends Vue {\n room!: RoomDTO;\n plantId!: number;\n mainObjectType!: RoomObjectType;\n RoomObjectType = RoomObjectType;\n newRoomObject!: IValidableObjectType;\n\n invalidNameReason = '';\n\n get shutterTypes() {\n return [\n {\n value: true,\n label: this.$t('AppResource.Yes'),\n },\n {\n value: false,\n label: this.$t('AppResource.No'),\n },\n ];\n }\n get lightTypes() {\n return [\n {\n value: LightType.Dimmer,\n label: this.$t('AppResource.Dimmer'),\n },\n {\n value: LightType.OnOff,\n label: this.$t('AppResource.OnOffLight'),\n },\n ];\n }\n\n get fancoilTypes() {\n return [\n {\n value: ThermoTypeOfObject.Heating,\n label: this.$t('AppResource.Heating'),\n },\n {\n value: ThermoTypeOfObject.Cooling,\n label: this.$t('AppResource.Cooling'),\n },\n ];\n }\n\n get thermostatTypes() {\n return [\n {\n value: ThermoTypeOfObject.Heating,\n label: this.$t('AppResource.Heating'),\n },\n {\n value: ThermoTypeOfObject.Cooling,\n label: this.$t('AppResource.Cooling'),\n },\n {\n value: ThermoTypeOfObject.HeatingAndCooling,\n label: this.$t('AppResource.HeatingAndCooling'),\n },\n ];\n }\n get thermostatAssociatedPump() {\n return [\n {\n value: ThermoAssociatedPump.Yes,\n label: this.$t('AppResource.Yes'),\n },\n {\n value: ThermoAssociatedPump.No,\n label: this.$t('AppResource.No'),\n },\n ];\n }\n \n get showOtherField() {\n return this.mainObjectType === RoomObjectType.Thermostat;\n }\n\n handleObjectRemove() {\n this.$emit('remove-object');\n }\n\n onInputChange(e: any) {\n const newRoomObject = { ...this.newRoomObject };\n newRoomObject.name = e.target.value;\n this.$emit('object-change', newRoomObject);\n }\n}\n","import { render } from \"./NewRoomObject.vue?vue&type=template&id=39cad2fa&ts=true\"\nimport script from \"./NewRoomObject.ts?vue&type=script&lang=ts\"\nexport * from \"./NewRoomObject.ts?vue&type=script&lang=ts\"\n\nimport \"./NewRoomObject.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__","import i18n from '@/core/translations/i18n';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\nimport {\n AddRoomObjectDTO,\n LightType,\n PlantDetailDTO,\n RoomDTO,\n RoomObjectType,\n ThermoAssociatedPump,\n ThermoTypeOfObject,\n} from '@/../client-generator/generated-clients/plants';\nimport { Vue, Options } from 'vue-class-component';\nimport NewRoomObject from './NewRoomObject/NewRoomObject.vue';\nimport plantsClient from '@/core/services/plants';\nimport { PropType } from 'vue';\nimport { HANDLE_REFRESH_PLANT } from '@/core/utils/emitter-events';\nimport {\n IValidableObjectType,\n NamingService,\n RoomObjectsTypes,\n} from '@/core/services/naming.service';\nimport {\n PlantEntityType,\n PlantFlatEntityDTO,\n} from '@/../client-generator/generated-clients/configurations';\nimport {\n getObjectIconFromType,\n getObjectLabelFromType,\n} from '@/core/utils/utils';\n\nconst $t = i18n.global.t;\n@Options({\n name: 'AddRoomObjectDialog',\n components: {\n NewRoomObject,\n },\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n room: {\n required: true,\n },\n currentPlant: {\n type: Object as PropType,\n required: false,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n if (!this.isDialogVisible) {\n this.objectTypes.forEach((ot: RoomObjectsTypes) => (ot.objects = []));\n NamingService.flushCache();\n }\n },\n },\n emits: ['hide-dialog', 'update-list'],\n})\nexport default class AddRoomObjectDialog extends Vue {\n room!: RoomDTO;\n currentPlant!: PlantDetailDTO;\n isVisible!: boolean;\n isDialogVisible = false;\n\n getObjectIconFromType = getObjectIconFromType;\n getObjectLabelFromType = getObjectLabelFromType;\n\n expandedItems = [];\n objectTypes: RoomObjectsTypes[] = [\n {\n id: 'blind',\n objects: [],\n type: RoomObjectType.Blind,\n },\n {\n id: 'light',\n objects: [],\n type: RoomObjectType.Light,\n },\n {\n id: 'colored-light',\n objects: [],\n type: RoomObjectType.ColoredLight,\n },\n {\n id: 'Lock',\n objects: [],\n type: RoomObjectType.Lock,\n },\n {\n id: 'shutter',\n objects: [],\n type: RoomObjectType.Shutter,\n },\n {\n id: 'socket',\n objects: [],\n type: RoomObjectType.Socket,\n },\n {\n id: 'thermostat',\n objects: [],\n type: RoomObjectType.Thermostat,\n },\n {\n id: 'dimmerDmx',\n objects: [],\n type: RoomObjectType.DimmerDmx,\n },\n {\n id: 'fancoil',\n objects: [],\n type: RoomObjectType.Fancoil,\n },\n {\n id: 'xmeter',\n objects: [],\n type: RoomObjectType.Xmeter,\n },\n {\n id: 'player',\n objects: [],\n type: RoomObjectType.Player,\n },\n {\n id: 'towelWarmer',\n objects: [],\n type: RoomObjectType.TowelWarmer,\n },\n ];\n\n get anyNameIsUnderComputation(): boolean {\n return !!this.objectTypes.find((ot) => ot.busy);\n }\n\n get buttonSubmitLabel() {\n return this.$t('AppResource.Save');\n }\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n async handleButtonSubmitAction() {\n this.isDialogVisible = false;\n\n await this.addObjects();\n\n await this.$nextTick(async () => {\n this.$emit('update-list');\n this.resetObjects();\n this.$toast.add({\n severity: 'success',\n summary: this.$t('plantDetail.objectsCreated'),\n closable: false,\n life: 3000,\n });\n const summary = this.$t('general.synced');\n setTimeout(() => {\n this.$toast.add({\n severity: 'success',\n summary: summary,\n closable: false,\n life: 3000,\n });\n }, 1500);\n });\n }\n\n async addObjects() {\n if (this.currentPlant.desktopId === undefined) return;\n const roomId = this.room.id ?? (this.$route.params.roomId as string);\n\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n const request: Array = this.objectTypes\n .map((k) => k.objects)\n .flat();\n\n await plantsClient.roomObjectsPOST(\n this.currentPlant.desktopId,\n roomId,\n request\n );\n } catch (error) {\n let messageError = '';\n\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 handleRoomObjectChange(e: IValidableObjectType) {\n this.validateChanges(e);\n }\n\n private async validateChanges(e: IValidableObjectType) {\n // we want to prevent vue's change detections on this list while\n // we are editing it\n let completeObjectsListClone = [...this.objectTypes];\n const parentObjType = completeObjectsListClone.find(\n (objType) => objType.type === e.type\n );\n\n // re-assign the new object on the cloned parent\n parentObjType!.objects[e.idx!] = e;\n const parentObjTypeIdx = completeObjectsListClone.findIndex(\n (o) => o.type === e.type\n );\n if (parentObjTypeIdx === -1)\n throw new Error(\"Can't find parent obj type in cloned list of objects\");\n\n // re-assign the object type parent on the cloned list\n completeObjectsListClone[parentObjTypeIdx] = parentObjType!;\n\n // validate the cloned list\n completeObjectsListClone = await NamingService.validateRoomObjectAgainstList(\n completeObjectsListClone,\n e\n );\n\n this.updateAdditionalEntitiesList();\n\n for (const parentObject of completeObjectsListClone) {\n for (const innerObject of parentObject.objects) {\n if (innerObject.isInvalid) {\n let suggestedName: string = await NamingService.suggestNextValidEntityName(\n {\n eType: PlantEntityType.ROOM_OBJECT,\n plantId: this.currentPlant.desktopId as any,\n metadata: {\n room: this.room,\n roomType: this.room.type,\n roomObjectType: innerObject.type,\n },\n }\n );\n innerObject.invalidReason = this.$t(\n `uniqueNaming.validationErrorWithSuggestion`,\n { suggestedName }\n );\n }\n }\n }\n\n this.objectTypes = completeObjectsListClone;\n }\n\n private objectsTypesToFlatPlantEntitiesList(): PlantFlatEntityDTO[] {\n const data: PlantFlatEntityDTO[][] = this.objectTypes.map(\n (objType: RoomObjectsTypes) => {\n return objType.objects.map((obj) => {\n return new PlantFlatEntityDTO({\n currentName: obj.name,\n id: null!,\n objectType: obj.type,\n plantEntityType: PlantEntityType.ROOM_OBJECT,\n });\n });\n }\n );\n const newList = [...data.flatMap((d) => d)];\n return newList;\n }\n\n private updateAdditionalEntitiesList() {\n NamingService.additionalEntities = this.objectsTypesToFlatPlantEntitiesList();\n }\n\n async handleAddObject(objType: RoomObjectsTypes) {\n const objectType = { ...objType };\n objectType.busy = true;\n const suggestedName = await NamingService.suggestNextValidEntityName({\n eType: PlantEntityType.ROOM_OBJECT,\n plantId: this.currentPlant.desktopId as any,\n metadata: {\n room: this.room,\n roomType: this.room.type,\n roomObjectType: objectType.type,\n },\n });\n\n const objToAdd = new AddRoomObjectDTO({\n name: suggestedName,\n type: objectType.type,\n lightType:\n objectType.type === RoomObjectType.Light ? LightType.OnOff : undefined,\n isManagePosition:\n objectType.type === RoomObjectType.Shutter ? false : undefined,\n thermoTypeOfObject:\n objectType.type === RoomObjectType.Thermostat ||\n objectType.type === RoomObjectType.Fancoil\n ? ThermoTypeOfObject.Heating\n : undefined,\n thermoAssociatedPump:\n objectType.type === RoomObjectType.Thermostat\n ? ThermoAssociatedPump.Yes\n : undefined,\n });\n\n (objToAdd as IValidableObjectType).idx = objectType.objects.length;\n objectType.objects.push(objToAdd);\n objectType.busy = false;\n this.updateAdditionalEntitiesList();\n }\n\n handleObjectRemove(objectType: RoomObjectsTypes, index: number) {\n objectType.objects.splice(index, 1);\n this.updateAdditionalEntitiesList();\n }\n\n resetObjects() {\n this.objectTypes.forEach((p) => (p.objects = []));\n }\n}\n","import { render } from \"./AddRoomObjectDialog.vue?vue&type=template&id=adb5c34e&ts=true\"\nimport script from \"./AddRoomObjectDialog.ts?vue&type=script&lang=ts\"\nexport * from \"./AddRoomObjectDialog.ts?vue&type=script&lang=ts\"\n\nimport \"./AddRoomObjectDialog.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__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon bt-icon--sm\" }\nconst _hoisted_2 = { class: \"dialog-custom__footer\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"app-loader app-loader--contextual\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_DialogPlantCreateStep3 = _resolveComponent(\"DialogPlantCreateStep3\")\n const _component_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.isDialogVisible = $event)),\n showHeader: false,\n modal: true,\n onHide: _ctx.doHideDialog,\n class: \"dialog-custom dialog-structure-create\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_Button, {\n label: \"close\",\n onClick: _ctx.handleHideDialog,\n class: \"dialog-custom__close-button p-button-text\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/icons/icon-close.svg`)\n }, null, 8, [\"src\"])\n ])\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_DialogPlantCreateStep3, {\n plant: _ctx.plant,\n onIsLoading: _ctx.handleLoading,\n \"is-in-edit-mode\": _ctx.isEditMode\n }, null, 8, [\"plant\", \"onIsLoading\", \"is-in-edit-mode\"]),\n _createVNode(\"footer\", _hoisted_2, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleButtonSubmitAction,\n label: _ctx.$t('AppResource.SaveAndExit'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ]),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_3, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n PlantDetailDTO,\n PlantRoomCount,\n} from '@/../client-generator/generated-clients/plants';\nimport DialogPlantCreateStep3 from '@/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep3/DialogPlantCreateStep3.vue';\nimport { PropType } from 'vue';\nimport plantsClient from '@/core/services/plants';\nimport { cloneObject, defaultNewPlant } from '@/core/utils/utils';\nimport { FETCH_PLANT, HANDLE_REFRESH_PLANT } from '@/core/utils/emitter-events';\nimport { NamingService } from '../../../../../core/services/naming.service';\n\n@Options({\n name: 'DialogStructureCreate',\n components: {\n DialogPlantCreateStep3,\n },\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n currentPlant: {\n type: Object as PropType,\n required: false,\n },\n isEditMode: {\n type: Boolean,\n default: false,\n required: false,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n if (this.isEditMode && this.isDialogVisible) this.resetRoomsCount();\n },\n },\n emits: ['hide-dialog', 'update-list'],\n})\nexport default class DialogStructureCreate extends Vue {\n isEditMode!: boolean;\n currentPlant!: PlantDetailDTO;\n isVisible!: boolean;\n isDialogVisible = false;\n isLoading = false;\n\n plant = cloneObject(defaultNewPlant);\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n }\n\n handleHideDialog() {\n this.resetRoomsCount();\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.resetRoomsCount();\n this.$emit('hide-dialog');\n }\n\n async handleButtonSubmitAction() {\n await this.handleAddRooms();\n\n this.isDialogVisible = false;\n this.resetRoomsCount();\n\n this.$nextTick(async () => {\n this.$emit('update-list');\n\n this.$toast.add({\n severity: 'success',\n summary: this.$t('AppResource.RoomCreated'),\n closable: false,\n life: 3000,\n });\n const summary = this.$t('general.synced');\n setTimeout(() => {\n this.$toast.add({\n severity: 'success',\n summary: summary,\n closable: false,\n life: 3000,\n });\n }, 1500);\n });\n }\n\n async handleAddRooms() {\n if (!this.plant.roomsCounts || !this.currentPlant.desktopId) return;\n\n this.isLoading = true;\n\n try {\n const request = this.plant.roomsCounts?.filter(\n (room) => (room.count as number) > 0\n );\n\n await plantsClient.roomsPOST(this.currentPlant.desktopId, request);\n this.$emitter.emit(FETCH_PLANT);\n } catch (error) {\n let messageError = '';\n\n switch (error.status) {\n case 409:\n this.$emitter.emit(HANDLE_REFRESH_PLANT);\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.isLoading = false;\n }\n }\n\n resetRoomsCount() {\n this.plant.roomsCounts?.forEach((p) => (p.count = 0));\n }\n\n handleLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n}\n","import { render } from \"./DialogStructureCreate.vue?vue&type=template&id=a2213b96&ts=true\"\nimport script from \"./DialogStructureCreate.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogStructureCreate.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogStructureCreate.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__","import {\n cloneObject,\n getPlantLastModifyByIcon,\n getPlantLastModifyByLabel,\n parseShutterActuatorSettings,\n getUserInitialsForBubble,\n} from '@/core/utils/utils';\nimport {\n SET_APP_LOADING,\n SET_SELECTED_PLANT,\n SET_SELECTED_PLANT_ID,\n SET_CONTEXTUAL_MENU_ITEMS,\n} from '@/core/store/action-types';\nimport { mapGetters, mapState } from 'vuex';\nimport plantsClient from '@/core/services/plants';\nimport { Vue, Options } from 'vue-class-component';\nimport MenuSharing from './MenuSharing/MenuSharing.vue';\nimport {\n RoomDTO,\n ServerModel,\n PlantDetailDTO,\n PlantSharingDTO,\n PlantType,\n} from '@/../client-generator/generated-clients/plants';\nimport MegaMenuItem, { MenuItemRoute } from '@/core/models/menu-items';\nimport { FETCH_PLANT, HANDLE_REFRESH_PLANT } from '@/core/utils/emitter-events';\nimport ConfirmPlantUpdated from './ConfirmPlantUpdated/ConfirmPlantUpdated.vue';\nimport AddRoomObjectDialog from './AddRoomObjectDialog/AddRoomObjectDialog.vue';\nimport DialogPlantCreate from '../PlantsHub/DialogPlantCreate/DialogPlantCreate.vue';\nimport DialogPlantDuplicate from '../PlantsHub/DialogPlantDuplicate/DialogPlantDuplicate.vue';\nimport DialogStructureCreate from './PlantStructure/DialogStructureCreate/DialogStructureCreate.vue';\nimport DialogConfirmDeletePlant from '@/views/components/DialogConfirmDeletePlant/DialogConfirmDeletePlant.vue';\nimport DialogConfirmTransferOwnership from '@/views/components/DialogConfirmTransferOwnership/DialogConfirmTransferOwnership.vue';\n\nconst MHS1Icon = require('@/assets/images/icons/icon-server-mhs-1.svg');\nconst C300EOSIcon = require('@/assets/images/icons/icon-mx-server.svg');\n\n@Options({\n name: 'PlantDetail',\n watch: {\n menuItemsContextualWithActiveClasses(newValue) {\n this.$store.dispatch(SET_CONTEXTUAL_MENU_ITEMS, newValue);\n },\n },\n components: {\n MenuSharing,\n DialogPlantCreate,\n AddRoomObjectDialog,\n ConfirmPlantUpdated,\n DialogPlantDuplicate,\n DialogStructureCreate,\n DialogConfirmDeletePlant,\n DialogConfirmTransferOwnership,\n },\n computed: {\n ...mapState(['currentPlant']),\n ...mapGetters('UI', ['plantEditEnabled', 'plantDeleteEnabled']),\n },\n})\nexport default class AppResourcePlantDetail extends Vue {\n PlantType = PlantType;\n plantEditEnabled!: boolean;\n plantDeleteEnabled!: boolean;\n currentPlant!: PlantDetailDTO;\n selectedPlantId: number | null = null;\n isPlantDuplicateDialogVisible = false;\n tempPlant: PlantDetailDTO | null = null;\n\n get menuItemsContextual(): MegaMenuItem[] {\n return [\n {\n label: this.$t('AppResource.Structure'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-general-view.svg')});`,\n to: {\n name: 'page-plant-dashboard',\n },\n },\n {\n label: this.currentPlant?.mxServer\n ? this.$t(\n `AppResource.${ServerModel[this.currentPlant?.mxServer?.model!]}`\n )\n : 'No plant type',\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${\n this.currentPlant?.mxServer?.model === ServerModel.Classe300EOS\n ? C300EOSIcon\n : MHS1Icon\n });`,\n to: {\n name: 'page-plant-settings',\n },\n },\n {\n label: this.$t('AppResource.Devices'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-network.svg')});`,\n to: {\n name: 'page-plant-devices',\n },\n },\n {\n label: this.$t('AppResource.GeneralCommandsAndGroups'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-command.svg')});`,\n to: {\n name: 'page-commands-groups',\n },\n },\n {\n label: this.$t('AppResource.Scenes'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-automation.svg')});`,\n to: {\n name: 'page-plant-scenes',\n },\n },\n {\n label: this.$t('AppResource.Alarmsystem'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-security.svg')});`,\n to: {\n name: 'page-plant-alarmsystem',\n },\n visible: this.currentPlant?.mxServer?.isAlarmConfigured ?? false,\n },\n {\n label: this.$t('menuLabel.notesAndDocuments'),\n class: 'p-menuitem-main p-menuitem-custom-icon',\n style: `--menuitem-icon-url: url(${require('@/assets/images/icons/icon-paperclip.svg')});`,\n visible: false,\n },\n ];\n }\n\n isPlantDirty = false;\n isVisibleEditDialog = false;\n isDevicesCardLoading = false;\n isVisibleDeletePlantConfirm = false;\n isVisibleConfirmPlantUpdated = false;\n isVisibleAddRoomObjectDialog = false;\n isVisibleCreateStructureDialog = false;\n isVisibleTransferOwnershipConfirm = false;\n\n currentRoom: any = null;\n\n isPausedFetchupdate = false;\n intervalFetchUpdate: any | null = null;\n timeoutRenewSession: any | null = null;\n\n get iconDevice() {\n return getPlantLastModifyByIcon(this.currentPlant?.lastModifyByDesktop);\n }\n\n get iconDeviceLabel() {\n return getPlantLastModifyByLabel(this.currentPlant?.lastModifyByDesktop);\n }\n\n get menuItemsContextualWithActiveClasses(): MegaMenuItem[] {\n return this.menuItemsContextual.map((menuItem) => {\n let additionalClass = '';\n if (menuItem.to && (menuItem.to as MenuItemRoute).name) {\n additionalClass = this.getMenuItemClass(\n (menuItem.to as MenuItemRoute).name\n );\n }\n\n return {\n ...menuItem,\n class: `${menuItem.class} ${additionalClass}`,\n };\n });\n }\n\n get username() {\n return `${this.currentPlant?.lastModifyBy?.name} ${this.currentPlant?.lastModifyBy?.surname}`;\n }\n\n get userInitials() {\n return getUserInitialsForBubble(this.currentPlant.lastModifyBy);\n }\n\n get hideFooter() {\n return [\n 'page-plant-room',\n 'page-scene-wizard',\n 'page-plant-scenes',\n 'page-plant-devices',\n 'page-command-wizard',\n 'page-plant-settings',\n 'page-commands-groups',\n 'page-plant-alarmsystem',\n 'page-assign-room-object',\n 'page-assign-thermo-room-object',\n ].includes(this.$route.name as string);\n }\n\n get favouriteIcon() {\n return require(`@/assets/images/icons/icon-favourite${\n !this.currentPlant?.isFavourite ? '-outline' : ''\n }.svg`);\n }\n\n get plantName() {\n if (this.currentPlant) {\n return this.currentPlant.name;\n }\n\n return '';\n }\n\n created() {\n this.$store.dispatch(SET_SELECTED_PLANT, null);\n }\n\n unmounted() {\n this.$store.dispatch(SET_SELECTED_PLANT, null);\n }\n\n async mounted() {\n this.$store.dispatch(\n SET_CONTEXTUAL_MENU_ITEMS,\n this.menuItemsContextualWithActiveClasses\n );\n\n this.selectedPlantId = parseInt(this.$route.params.plantId.toString(), 10);\n this.$store.dispatch(SET_SELECTED_PLANT_ID, this.selectedPlantId);\n await this.fetchPlant();\n\n this.registerEmitterEvents();\n this.registerPeriodicFetchUpdates();\n this.renewSessionTimeout();\n }\n\n beforeUnmount() {\n this.unregisterEmitterEvents();\n this.unregisterPeriodicFetchUpdates();\n this.unregisterRenewSessionTimeout();\n\n this.$store.dispatch(SET_SELECTED_PLANT_ID, null);\n }\n\n async fetchPlant() {\n if (!this.selectedPlantId) return;\n try {\n this.$store.dispatch(SET_APP_LOADING, true);\n const plant = await plantsClient.plantGET(\n this.selectedPlantId,\n undefined\n );\n plant.rooms?.forEach((room) => {\n room.roomObjects?.forEach((roomObject) => {\n roomObject.devices?.forEach((device) => {\n device.defaultSettings?.forEach((ds) => {\n parseShutterActuatorSettings(ds);\n });\n });\n });\n });\n\n this.$store.dispatch(SET_SELECTED_PLANT, plant);\n } catch (error) {\n switch (error.status) {\n case 423:\n this.$router.push({\n name: 'page-plants-hub',\n });\n break;\n }\n console.log(error);\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n registerEmitterEvents() {\n this.$emitter.on(FETCH_PLANT, this.fetchPlant);\n this.$emitter.on(\n HANDLE_REFRESH_PLANT,\n this.handleRefreshPlantFromOuterEvent\n );\n }\n\n unregisterEmitterEvents() {\n this.$emitter.off(FETCH_PLANT, this.fetchPlant);\n this.$emitter.off(\n HANDLE_REFRESH_PLANT,\n this.handleRefreshPlantFromOuterEvent\n );\n }\n\n registerPeriodicFetchUpdates() {\n this.intervalFetchUpdate = setTimeout(async () => {\n await this.doFetchUpdatesInternal();\n this.registerPeriodicFetchUpdates();\n }, this.$config.PLANT_REFRESH_INTERVAL);\n }\n\n unregisterPeriodicFetchUpdates() {\n clearTimeout(this.intervalFetchUpdate);\n }\n\n private async doFetchUpdatesInternal() {\n if (this.isPausedFetchupdate) {\n return;\n }\n\n try {\n const newPlant = await plantsClient.plantGET(\n this.selectedPlantId as number,\n this.currentPlant?.lastModify\n );\n\n if (newPlant && newPlant.desktopId) {\n this.isVisibleConfirmPlantUpdated = true;\n this.isPausedFetchupdate = true;\n this.tempPlant = newPlant;\n }\n } catch (error) {\n switch (error.status) {\n case 423:\n this.$router.push({\n name: 'page-plants-hub',\n });\n break;\n }\n console.log(error);\n }\n }\n\n async renewSessionTimeout() {\n if (!this.selectedPlantId) return;\n try {\n var renewSecondsDto = await plantsClient.session(this.selectedPlantId);\n this.timeoutRenewSession = setTimeout(\n this.renewSessionTimeout,\n (renewSecondsDto.renewSessionSeconds ?? 60) * 1000\n );\n } catch (error) {\n switch (error.status) {\n case 423:\n this.$router.push({\n name: 'page-plants-hub',\n });\n break;\n }\n console.log(error);\n }\n }\n\n unregisterRenewSessionTimeout() {\n clearTimeout(this.timeoutRenewSession);\n }\n\n handleRefreshPlantFromOuterEvent() {\n this.isPausedFetchupdate = true;\n this.isVisibleConfirmPlantUpdated = true;\n }\n\n getMenuItemClass(routeName: string) {\n if (this.$route.name === routeName) {\n return 'p-menuitem-active';\n }\n\n return '';\n }\n\n toggleAddRoomObjectDialog(room: RoomDTO) {\n this.currentRoom = this.isVisibleAddRoomObjectDialog ? null : room;\n this.isVisibleAddRoomObjectDialog = !this.isVisibleAddRoomObjectDialog;\n }\n\n toggleCreateStructureDialog() {\n this.isVisibleCreateStructureDialog = !this.isVisibleCreateStructureDialog;\n }\n\n toggleEditDialog() {\n this.isVisibleEditDialog = !this.isVisibleEditDialog;\n }\n\n getParsedDate(date?: Date) {\n if (!date) return '';\n const options: any = {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n };\n return date.toLocaleString('en-GB', options);\n }\n\n toggleDeletePlantConfirm() {\n this.isVisibleDeletePlantConfirm = !this.isVisibleDeletePlantConfirm;\n }\n\n toggleTransferOwnershipConfirm() {\n this.isVisibleTransferOwnershipConfirm = !this\n .isVisibleTransferOwnershipConfirm;\n }\n\n async handleDeletePlant() {\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n await plantsClient.plantDELETE(this.currentPlant?.desktopId as number);\n this.$router.push({\n name: 'page-plants-hub',\n });\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 3000,\n });\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n async handleDuplicatePlant() {\n this.isPlantDuplicateDialogVisible = true;\n }\n\n handleDuplicatePlantFull() {\n alert(`Duplicate full`);\n }\n\n async hideConfirmPlantUpdated() {\n this.isVisibleConfirmPlantUpdated = false;\n\n if (!this.tempPlant) {\n // Handle refresh plant triggered by\n // an event (API call) from another\n // (sub)component\n await this.fetchPlant();\n } else {\n // Handle refresh plant triggered by\n // the periodic API call for\n // checking if the plant was updated.\n // The plant was already fetched from\n // the aforementioned API call and\n // stored in tempPlant.\n\n this.$store.dispatch(\n SET_SELECTED_PLANT,\n PlantDetailDTO.fromJS(cloneObject(this.tempPlant))\n );\n this.tempPlant = null;\n }\n\n this.isPausedFetchupdate = false;\n }\n\n handleInvitedUser(userEmail: string) {\n const newUser = new PlantSharingDTO({\n invitedEmail: userEmail,\n confirmed: false,\n });\n\n this.currentPlant?.sharedWith?.push(newUser);\n }\n\n handleRemoveSharingUser(user: PlantSharingDTO) {\n const userIndex = this.currentPlant?.sharedWith?.findIndex(\n (u) => u.userId === user.userId\n );\n\n if (userIndex != null && userIndex >= 0) {\n this.currentPlant?.sharedWith?.splice(userIndex, 1);\n }\n }\n\n async togglePlantFromFavorites() {\n if (!this.currentPlant?.desktopId) return;\n try {\n this.$store.dispatch(SET_APP_LOADING, true);\n this.currentPlant.isFavourite = await plantsClient.togglePlantFromFavorites(\n this.currentPlant.desktopId\n );\n this.currentPlant.lastModify = new Date();\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 3000,\n });\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n\n onSaveAndExitClick(): void {\n this.$router.replace({\n path: '/',\n replace: true,\n });\n }\n\n async handleHidePlantDuplicateDialog() {\n this.isPlantDuplicateDialogVisible = false;\n }\n\n async handlePlantDuplicated() {\n this.onSaveAndExitClick();\n }\n}\n","import { render } from \"./PlantDetail.vue?vue&type=template&id=1b9a5792&ts=true\"\nimport script from \"./PlantDetail.ts?vue&type=script&lang=ts\"\nexport * from \"./PlantDetail.ts?vue&type=script&lang=ts\"\n\nimport \"./PlantDetail.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__","'use strict';\nvar isArray = require('../internals/is-array');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\n\n// `FlattenIntoArray` abstract operation\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar flattenIntoArray = function (target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? bind(mapper, thisArg, 3) : false;\n var element;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n if (depth > 0 && isArray(element)) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","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!./PlantDetail.scss?vue&type=style&index=0&lang=scss\""],"sourceRoot":""}