{"version":3,"sources":["webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardPlantTypeSelection/WizardPlantTypeSelection.scss?53a9","webpack:///./src/assets/images/icons/icon-toilets.svg","webpack:///./src/assets/images/icons/icon-device.svg","webpack:///./src/assets/images/icons/icon-alert-hight-full.svg","webpack:///./src/assets/images/icons/icon-xmeter.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/WizardEntrancePlant.scss?53a4","webpack:///./src/assets/images/icons/icon-filter.svg","webpack:///./src/assets/images/icons/icon-round.svg","webpack:///./src/assets/images/icons/icon-star.svg","webpack:///./src/assets/images/icons/icon_command_night.svg","webpack:///./src/assets/images/icons/icon-datetime.svg","webpack:///./src/assets/images/icons/icon-all-plants.svg","webpack:///./src/assets/images/icons/icon-garden.svg","webpack:///./src/assets/images/icons/icon-refresh.svg","webpack:///./src/views/components/CardContainer/CardContainer.scss?6b44","webpack:///./src/assets/images/icons/icon-general-view.svg","webpack:///./src/assets/images/icons/icon-shutter.svg","webpack:///./src/assets/images/icons/icon-done.svg","webpack:///./src/assets/images/icons/icon-edit.svg","webpack:///./src/assets/images/icons/icon-automation-2.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantDuplicate/DialogPlantDuplicate.scss?7a23","webpack:///./node_modules/core-js/modules/es.number.parse-int.js","webpack:///./src/assets/images/icons/icon-laundry.svg","webpack:///./src/assets/images/icons/icon-light.svg","webpack:///./src/assets/images/icons/icon-towel-rail.svg","webpack:///./src/assets/images/icons/icon-music-player.svg","webpack:///./src/assets/images/icons/icon-electrical-cabinet.svg","webpack:///./src/assets/images/icons/icon-livingroom.svg","webpack:///./src/assets/images/icons/icon-bedroom.svg","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/NewRoomObject/NewRoomObject.scss?4306","webpack:///./src/assets/images/icons/icon-security-2.svg","webpack:///./src/assets/images/icons/icon-blind.svg","webpack:///./node_modules/lodash.kebabcase/index.js","webpack:///./src/assets/images/icons/icon-automation.svg","webpack:///./src/assets/images/icons/icon-faq.svg","webpack:///./src/assets/images/icons/icon-duplication.svg","webpack:///./src/assets/images/icons/icon-bathroom.svg","webpack:///./src/views/pages/PlantDetail/AddRoomObjectDialog/AddRoomObjectDialog.scss?b8ec","webpack:///./src/assets/images/icons/icon-expand-menu.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep5/DialogEntrancePlantCreateStep5.scss?727f","webpack:///./src/assets/images/icons/icon-actuator-2.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantDuplicate/DialogPlantDuplicate.vue?418e","webpack:///./src/views/pages/PlantsHub/DialogPlantDuplicate/DialogPlantDuplicate.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantDuplicate/DialogPlantDuplicate.vue","webpack:///./src/assets/images/icons/icon-alert-hight-outline.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep4/DialogEntrancePlantCreateStep4.scss?f901","webpack:///./src/assets/images/icons/icon-socket.svg","webpack:///./src/assets/images/icons/icon-sync.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep3/DialogPlantCreateStep3.vue?3cd3","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep3/DialogPlantCreateStep3.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep3/DialogPlantCreateStep3.vue","webpack:///./src/views/components/DialogConfirmDeletePlant/DialogConfirmDeletePlant.vue?0373","webpack:///./src/views/components/DialogConfirmDeletePlant/DialogConfirmDeletePlant.ts","webpack:///./src/views/components/DialogConfirmDeletePlant/DialogConfirmDeletePlant.vue","webpack:///./src/assets/images/icons/icon-diningroom.svg","webpack:///./src/assets/images/icons/icon-grid.svg","webpack:///./src/assets/images/icons/icon-blueprint.svg","webpack:///./src/assets/images/icons/icon-round-outline.svg","webpack:///./src/assets/images/icons/icon-confirm-outline.svg","webpack:///./src/views/pages/PlantDetail/MenuSharing/MenuSharing.scss?e4b0","webpack:///./src/assets/images/icons sync ^\\.\\/.*\\.svg$","webpack:///./src/assets/images/plants/server/ImagesMX-300EOS.png","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./src/assets/images/icons/icon-server-mhs-1.svg","webpack:///./src/assets/images/icons/icon-search.svg","webpack:///./src/assets/images/icons/icon-wizard-assegna-attuatore.svg","webpack:///./src/assets/images/icons/icon-arrows-back.svg","webpack:///./src/assets/images/icons/icon-push-notification.svg","webpack:///./src/assets/images/icons/icon-outdoor.svg","webpack:///./src/views/pages/PlantDetail/ConfirmPlantUpdated/ConfirmPlantUpdated.vue?ee77","webpack:///./src/views/pages/PlantDetail/ConfirmPlantUpdated/ConfirmPlantUpdated.ts","webpack:///./src/views/pages/PlantDetail/ConfirmPlantUpdated/ConfirmPlantUpdated.vue","webpack:///./src/assets/images/icons sync ^\\.\\/icon\\-favourite.*\\.svg$","webpack:///./src/assets/images/icons/icon-arrows-down.svg","webpack:///./src/assets/images/icons/icon-confirm-full.svg","webpack:///./src/assets/images/icons/icon-arrows-up.svg","webpack:///./src/assets/images/icons/icon_command_day.svg","webpack:///./src/assets/images/icons/icon-failed-outline.svg","webpack:///./src/views/components/CardContainer/CardContainer.vue?1f0f","webpack:///./src/views/components/CardContainer/CardContainer.ts","webpack:///./src/views/components/CardContainer/CardContainer.vue","webpack:///./src/assets/images/icons/icon-office.svg","webpack:///./src/assets/images/icons/icon-remove-hand-02.svg","webpack:///./src/assets/images/icons/icon-dimmer-dmx.svg","webpack:///./src/assets/images/icons/icon-checkbox-disabled.svg","webpack:///./src/assets/images/icons/icon-fancoil.svg","webpack:///./src/views/pages/PlantDetail/MenuSharing/ConfirmDeleteUser/ConfirmDeleteUser.vue?5561","webpack:///./src/views/pages/PlantDetail/MenuSharing/ConfirmDeleteUser/ConfirmDeleteUser.ts","webpack:///./src/views/pages/PlantDetail/MenuSharing/ConfirmDeleteUser/ConfirmDeleteUser.vue","webpack:///./src/assets/images/icons/icon-assistant.svg","webpack:///./src/assets/images/icon-check.svg","webpack:///./src/assets/images/icons/icon-colored-light.svg","webpack:///./src/assets/images/icons/icon-general-light.svg","webpack:///./src/assets/images/icons/icon-arrows-next.svg","webpack:///./src/assets/images/icons/icon-staff.svg","webpack:///./src/assets/images/icons/icon-add-outline.svg","webpack:///./src/assets/images/icons/icon-delete.svg","webpack:///./src/assets/images/icons/icon-desktop.svg","webpack:///./src/views/pages/PlantDetail/PlantStructure/DialogStructureCreate/DialogStructureCreate.scss?68b9","webpack:///./src/assets/images/icons/icon-list.svg","webpack:///./src/views/pages/PlantDetail/PlantDetail.vue?38fb","webpack:///./src/views/pages/PlantDetail/MenuSharing/MenuSharing.vue?7d26","webpack:///./src/views/pages/PlantDetail/MenuSharing/UserItem/UserItem.vue?31ac","webpack:///./src/views/pages/PlantDetail/MenuSharing/UserItem/UserItem.ts","webpack:///./src/views/pages/PlantDetail/MenuSharing/UserItem/UserItem.vue","webpack:///./src/views/pages/PlantDetail/MenuSharing/MenuSharing.ts","webpack:///./src/views/pages/PlantDetail/MenuSharing/MenuSharing.vue","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:///./src/assets/images/icons/icon-alert-triangle-outline.svg","webpack:///./src/assets/images/plants/server/ImagesMHS1.png","webpack:///./src/assets/images/icons/icon-close.svg","webpack:///./src/assets/images/icons/icon-security.svg","webpack:///./src/assets/images/icons/icon-connected-server.svg","webpack:///./src/assets/images/icons/icon-staircase.svg","webpack:///./src/assets/images/icons/icon-lock.svg","webpack:///./src/assets/images/icons/icon-thermostat.svg","webpack:///./src/assets/images/icons/icon-room.svg","webpack:///./src/assets/images/icons/icon-book.svg","webpack:///./src/assets/images/icons/icon-user.svg","webpack:///./src/assets/images/icons/icon-add-circle-outline.svg","webpack:///./src/assets/images/icons/icon-failed-full.svg","webpack:///./src/assets/images/icons/icon_command_enter.svg","webpack:///./src/assets/images/icons/icon-entrance.svg","webpack:///./src/assets/images/icons/icon-energy.svg","webpack:///./src/assets/images/icons/icon-scan-qr-code-02.svg","webpack:///./src/assets/images/icons/icon-duplication-all.svg","webpack:///./src/assets/images/icons/icon-corridor.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/WizardAutomationPlant.scss?0daf","webpack:///./node_modules/core-js/internals/number-parse-int.js","webpack:///./src/assets/images/icons/icon-wifi-01-1.svg","webpack:///./src/assets/images/icons/icon_command_exit.svg","webpack:///./src/assets/images/icons/icon-scene.svg","webpack:///./src/assets/images/icons/icon-no-view.svg","webpack:///./src/assets/images/icons/icon-player.svg","webpack:///./src/assets/images/icons/icon-group-lights.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/DialogPlantCreate.scss?8a0a","webpack:///./src/views/components/ButtonSelection/ButtonSelection.vue?e3dd","webpack:///./src/views/components/ButtonSelection/ButtonSelection.ts","webpack:///./src/views/components/ButtonSelection/ButtonSelection.vue","webpack:///./src/assets/images/icons/icon-ban-light.svg","webpack:///./src/views/components/DialogConfirmTransferOwnership/DialogConfirmTransferOwnership.vue?672d","webpack:///./src/views/components/DialogConfirmTransferOwnership/DialogConfirmTransferOwnership.ts","webpack:///./src/views/components/DialogConfirmTransferOwnership/DialogConfirmTransferOwnership.vue","webpack:///./src/assets/images/icons/icon-edit-page.svg","webpack:///./src/assets/images/icons/icon-info-circle.svg","webpack:///./src/assets/images/icons/icon-thermo.svg","webpack:///./src/assets/images/icons/icon-notification.svg","webpack:///./src/assets/images/icons/icon-command.svg","webpack:///./src/assets/images/icons/icon-alert-medium-full.svg","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/DialogPlantCreate.vue?6822","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardPlantTypeSelection/WizardPlantTypeSelection.vue?ddf3","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardPlantTypeSelection/WizardPlantTypeSelection.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardPlantTypeSelection/WizardPlantTypeSelection.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/WizardAutomationPlant.vue?a195","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep1/DialogPlantCreateStep1.vue?a59b","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep1/DialogPlantCreateStep1.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep1/DialogPlantCreateStep1.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep2/DialogPlantCreateStep2.vue?c774","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep2/DialogPlantCreateStep2.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/DialogAutomationPlantCreate/DialogPlantCreateStep2/DialogPlantCreateStep2.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/WizardAutomationPlant.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardAutomationPlant/WizardAutomationPlant.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/WizardEntrancePlant.vue?7a89","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep1/DialogEntrancePlantCreateStep1.vue?63fb","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep1/DialogEntrancePlantCreateStep1.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep1/DialogEntrancePlantCreateStep1.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep2/DialogEntrancePlantCreateStep2.vue?0c50","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep2/DialogEntrancePlantCreateStep2.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep2/DialogEntrancePlantCreateStep2.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep3/DialogEntrancePlantCreateStep3.vue?2d0f","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep3/DialogEntrancePlantCreateStep3.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep3/DialogEntrancePlantCreateStep3.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep4/DialogEntrancePlantCreateStep4.vue?5eff","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep4/DialogEntrancePlantCreateStep4.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep4/DialogEntrancePlantCreateStep4.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep5/DialogEntrancePlantCreateStep5.vue?0587","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep5/DialogEntrancePlantCreateStep5.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep5/DialogEntrancePlantCreateStep5.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep6/DialogEntrancePlantCreateStep6.vue?ebe6","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep6/DialogEntrancePlantCreateStep6.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep6/DialogEntrancePlantCreateStep6.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep7/DialogEntrancePlantCreateStep7.vue?4ac5","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep7/DialogEntrancePlantCreateStep7.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/DialogEntrancePlantCreate/DialogEntrancePlantCreateStep7/DialogEntrancePlantCreateStep7.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/WizardEntrancePlant.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/WizardEntrancePlant/WizardEntrancePlant.vue","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/DialogPlantCreate.ts","webpack:///./src/views/pages/PlantsHub/DialogPlantCreate/DialogPlantCreate.vue","webpack:///./src/assets/images/icons/icon-garage.svg","webpack:///./src/assets/images/icons/icon-loading.svg","webpack:///./src/assets/images/icons/icon-network.svg","webpack:///./src/assets/images/icons/icon-weather.svg","webpack:///./src/assets/images/icons/icon-mx-server.svg","webpack:///./src/assets/images/icons/icon-favourite.svg","webpack:///./src/assets/images/icons/icon-favourite-outline.svg","webpack:///./src/assets/images/icons/icon-wifi.svg","webpack:///./src/assets/images/icons/icon-email.svg","webpack:///./src/assets/images/icons/icon-filters.svg","webpack:///./src/views/pages/PlantDetail/PlantDetail.scss?783e","webpack:///./src/assets/images/icons/icon-kitchen.svg","webpack:///./node_modules/lodash.debounce/index.js","webpack:///./src/assets/images/icons/icon-start-plan.svg","webpack:///./src/assets/images/icons/icon-paperclip.svg","webpack:///./src/assets/images/icons/icon-reorder-drag-and-drop.svg","webpack:///./src/assets/images/icons/icon-mobile-device.svg","webpack:///./src/views/components/ButtonSelection/ButtonSelection.scss?4a7a","webpack:///./src/assets/images/icons/icon-plan-duplicate.svg"],"names":["module","exports","$","parseInt","target","stat","forced","Number","INFINITY","symbolTag","reAsciiWord","reLatin","rsAstralRange","rsComboMarksRange","rsComboSymbolsRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsLowerMisc","rsUpperMisc","rsOptLowerContr","rsOptUpperContr","reOptMod","rsOptVar","rsOptJoin","join","rsSeq","rsEmoji","reApos","RegExp","reComboMark","reUnicodeWord","reHasUnicodeWord","deburredLetters","freeGlobal","global","Object","freeSelf","self","root","Function","arrayReduce","array","iteratee","accumulator","initAccum","index","length","asciiWords","string","match","basePropertyOf","object","key","undefined","deburrLetter","hasUnicodeWord","test","unicodeWords","objectProto","prototype","objectToString","toString","Symbol","symbolProto","symbolToString","baseToString","value","isSymbol","call","result","createCompounder","callback","words","deburr","replace","isObjectLike","kebabCase","word","toLowerCase","pattern","guard","_hoisted_1","class","_hoisted_2","_hoisted_3","id","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","render","_ctx","_cache","$props","$setup","$data","$options","_component_ProgressSpinner","_component_NumberButtons","_component_InputText","_component_ElScrollbar","_component_Button","_component_Dialog","modal","showHeader","onHide","doHideDialog","visible","isDialogVisible","$event","default","dialogTitle","isLoading","$t","modelValue","plantsCount","plantsToCreate","plant","idx","type","ref","name","isInvalid","onInput","handleNameChange","_","onClick","handleHideDialog","doConfirm","disabled","isConfirmDisabled","entitiesPrefetchDone","this","allValidNames","every","p","console","log","$emit","$store","dispatch","plants","duplicatePlant","desktopId","map","$toast","add","severity","summary","closable","life","validatePlantAgainstList","flushCache","prefetchFlatEntities","PLANT","suggestNameIfNeeded","prevValue","currValue","suggestNextValidEntityName","eType","plantId","metadata","plantSourceName","updateNamingServiceAdditionalEntities","pop","push","additionalEntities","currentName","props","isVisible","Boolean","required","watch","newValue","dispose","doFirstPrefetch","initializeFirstName","emits","components","NumberButtons","__exports__","style","_component_InlineSvgScoped","$attrs","stepTitle","stepSubTitle","roomTypes","roomType","src","getRoomIcon","label","count","updatePlantRoom","isInEditMode","rooms","roomsCounts","fetchRooms","defaultRoomsList","forEach","r","rt","theRooms","plantRoomCount","find","rc","room","plantRoom","plantName","code","codeToCheck","onSubmit","maxlength","theCode","onPaste","resetCodes","$nextTick","randStr","i","String","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","keys","resolve","collection","collectionStrong","init","arguments","_component_Card","content","$slots","titleIcon","title","showActionButton","onActionButtonClick","actionButtonLabel","_component_MenuSharing","_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","Component","onAddObject","toggleAddRoomObjectDialog","onAddStructure","toggleCreateStructureDialog","onUpdateList","fetchPlant","onAddInvitedUser","handleInvitedUser","onRemoveSharingUser","handleRemoveSharingUser","togglePlantFromFavorites","favouriteIcon","trigger","placement","dropdown","handleDuplicatePlant","toggleEditDialog","plantEditEnabled","plantDeleteEnabled","toggleDeletePlantConfirm","getParsedDate","lastModify","username","reference","userInitials","iconDeviceLabel","iconDevice","tags","tag","onSaveAndExitClick","currentRoom","onHideDialog","isVisibleAddRoomObjectDialog","isVisibleCreateStructureDialog","editPlantId","selectedPlantId","editPlantType","PlantType","AUTOMATION_PLANT","onPlantEdited","isVisibleEditDialog","onConfirm","handleDeletePlant","isVisibleDeletePlantConfirm","isVisibleTransferOwnershipConfirm","toggleTransferOwnershipConfirm","hideConfirmPlantUpdated","isVisibleConfirmPlantUpdated","onFetchPlants","handlePlantDuplicated","isPlantDuplicateDialogVisible","handleHidePlantDuplicateDialog","for","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_component_UserItem","_component_ConfirmDeleteUser","sharedWith","user","userIndex","getUserInitials","isPopperVisible","width","togglePopper","invitePerson","placeholder","newUserToShare","owner","isMeTheOwner","onDeleteUser","handleDeleteUser","onTransferOwnership","handleTransferOwnership","isConfirmDeleteUserVisible","toggleConfirmDeleteUser","deleteUser","transferOwnership","opacity","invitedEmail","email","isOwner","isConfirmed","handleDeleteSharingUser","userId","account","localAccountId","confirmed","displayName","surname","computed","doShow","tempUser","sharingPOST","sharingDELETE","$router","password","shouldCurrentUserRightsBeRemoved","message","status","UserItem","ConfirmDeleteUser","DialogConfirmTransferOwnership","_component_NewRoomObject","anyNameIsUnderComputation","objectTypes","objectType","objects","getObjectIconFromType","getObjectLabelFromType","busy","handleAddObject","onObjectChange","handleRoomObjectChange","onRemoveObject","handleObjectRemove","buttonSubmitLabel","handleButtonSubmitAction","_hoisted_16","_component_Dropdown","newRoomObject","onInputChange","invalidReason","RoomObjectType","Shutter","optionLabel","optionValue","options","shutterTypes","isManagePosition","Light","lightTypes","lightType","Fancoil","fancoilTypes","thermoTypeOfObject","Thermostat","thermostatTypes","showOtherField","thermostatAssociatedPump","thermoAssociatedPump","invalidNameReason","Dimmer","OnOff","Heating","Cooling","HeatingAndCooling","Yes","No","mainObjectType","i18n","t","expandedItems","Blind","ColoredLight","Lock","Socket","DimmerDmx","Xmeter","Player","TowelWarmer","ot","addObjects","resetObjects","setTimeout","roomId","$route","params","request","k","flat","roomObjectsPOST","messageError","$emitter","emit","validateChanges","completeObjectsListClone","parentObjType","objType","parentObjTypeIdx","findIndex","validateRoomObjectAgainstList","updateAdditionalEntitiesList","parentObject","innerObject","ROOM_OBJECT","roomObjectType","suggestedName","data","obj","plantEntityType","newList","flatMap","d","objectsTypesToFlatPlantEntitiesList","objToAdd","splice","NewRoomObject","_component_DialogPlantCreateStep3","onIsLoading","handleLoading","isEditMode","resetRoomsCount","handleAddRooms","filter","roomsPOST","DialogPlantCreateStep3","MHS1Icon","C300EOSIcon","tempPlant","isPlantDirty","isDevicesCardLoading","isPausedFetchupdate","intervalFetchUpdate","timeoutRenewSession","to","mxServer","model","Classe300EOS","isAlarmConfigured","lastModifyByDesktop","menuItemsContextual","menuItem","additionalClass","getMenuItemClass","lastModifyBy","includes","isFavourite","menuItemsContextualWithActiveClasses","registerEmitterEvents","registerPeriodicFetchUpdates","renewSessionTimeout","unregisterEmitterEvents","unregisterPeriodicFetchUpdates","unregisterRenewSessionTimeout","plantGET","roomObjects","roomObject","devices","device","defaultSettings","ds","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","u","Date","path","MenuSharing","DialogPlantCreate","AddRoomObjectDialog","ConfirmPlantUpdated","DialogPlantDuplicate","DialogStructureCreate","DialogConfirmDeletePlant","trim","whitespaces","$parseInt","hex","FORCED","radix","S","_withId","active","localValue","toggleValue","icon","_component_WizardPlantTypeSelection","_component_WizardAutomationPlant","_component_WizardEntrancePlant","plantCreateSteps","PlantCreateSteps","TYPE_SELECTION","plantType","selectedPlantType","residentialType","selectedResidentialType","handleContinueButton","WIZARD_AUTOMATION","localPlantId","onUpdate","updateId","onExitWizard","WIZARD_ENTRANCE","isEdit","_component_SelectButton","toUpperCase","pt","plantTypesImages","option","slotProps","imageURLs","alt","subTitle","Type","ENTRANCE_PLANT","residentialTypesButtons","button","changeRtValue","val","NEW_PLANT","CONFIGURED_PLANT","faqUrl","window","open","newVal","dialogStepComponent","handleStepLoading","onNextEnabled","handleNextEnabledChange","isBackButtonVisible","handleStepBack","nextEnabled","dialogStep","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","isValidName","country","countries","address","images","srcset","addTag","newTagName","tempTags","isTagSelected","toggleTagSelection","drawScaledImage","ctx","img","scale","Math","max","canvas","height","x","y","drawImage","image","plantEditImageCustomEnabled","customIconDataUrl","customIconImageUrl","ICON_CUSTOM","Promise","all","fetchPlantTags","fetchCountries","finally","verifyValidityOfName","checkNextButtonState","document","querySelector","remove","removeEventListener","handlerUploadInput","addEventListener","initialName","imageBinary","tagsList","countriesAutocomplete","preventDefault","stopPropagation","stopImmediatePropagation","uploadInput","createElement","setAttribute","body","append","reader","FileReader","onload","evLoad","Image","getContext","fileRead","toDataURL","onerror","err","error","files","readAsDataURL","click","tagKey","some","newTag","groupIndex","g","validName","isValidEntityTypeName","preSelectedTags","plantServerImages","ServerModel","MyHomeServer1","plantServerUseMHS1Only","ENTRANCE_PLANT_ENABLED","initFormPlant","fetchPlantDetails","handleEditPlant","handleCreatePlant","createdPlantId","goToPlantDetail","createdPlant","plantPOST","plantPUT","isNew","DialogPlantCreateStep1","DialogPlantCreateStep2","dialogStepEntrancePlantComponent","entrancePlant","onOnBack","handleBack","onOnNext","handleNext","handleEditedPlant","_hoisted_27","timeZone","handleBackButton","handleNextButton","nextButtonLabel","Intl","DateTimeFormat","resolvedOptions","c","timeZoneId","regex","usedNames","initialEntities","wizardStep","headCreate","updatePlantStructure","getDataToSave","createPlant","peId","structure","entranceplantPOST","_component_ToggleSwitchButton","_component_CallModeForm","_component_DialogImportFile","infoPlant","language","validLanguages","switchboardActive","isBRFA","triggerFilePicker","onChange","onFileSelected","accept","entrancePlantDetail","importedData","isVisibleDialogImportFile","handleCloseDialog","onOverwrite","overwrite","isCreationMode","onUpdatePlant","handleUpdatePlant","onGrouped","handleGrouped","Language","CallMode","settingsList","Numbers","Letters","initializeData","browserLanguage","navigator","split","addressBookSorting","addressingType","denominationApartments","denominationBuildings","denominationFloors","denominationRisers","toLocaleLowerCase","callingCodeShowAddressBook","grouped","dictionary","buildingKey","building","apartment","apartmentName","scsAddr","labels","Private","line1","line2","companyName","Business","isPrivate","labelType","information","info","badgeList","badges","keypadCode","buildings","apartments","DirectCall_Alphanumeric","DirectCall_NumbersOnly","BuildingRiserFloorApartment","infoCreate","switchboard","switchboardPOST","input","getElementById","event","file","text","details","readAsText","ToggleSwitchButton","HelpPopupButton","CallModeForm","DialogImportFile","_component_CardContainer","cantAddBuildingString","titleCard","onOnActionButtonClick","addBuilding","apartmentsCount","noAppartmentOptions","handleBuildingRemove","buldingIndex","otherBuildings","totalApartments","reduce","acc","getNewBuildingName","cantAddBuilding","maxApartments","fillBuildings","buildingId","newBuildingName","counter","buildingsCreate","nextPage","CardContainer","buildingName","changingBuilding","allApartmentsAssigned","mismatchedApartmentsErrorText","actionButton","lightTheme","minValue","risersCount","onIncrement","addRiser","onDecrement","removeRiser","currentRFAConfig","risers","riser","riserName","floorsCountValues","floors","changeFloorNumber","floor","floorName","apartmentCountValues","numberOfApartments","changeApartmentNumber","currentBuildingIndex","distributeApartmentsToRaisersAndFloors","rfaConfig","currentBuilding","Array","firstLine","secondLine","totalAssignedApartments","addFloors","abs","removeFloors","floorsCount","floorIndex","riserId","a","floorId","plantConfigStructure","changeBuilding","direction","gray","recapCode","riserDoubleChars","floorDoubleChars","apartmentDoubleChars","buildingCode","riserCode","floorCode","apartmentCode","callingcoderecap","gates","addGate","reachedMaxGates","gate","handleGateRemove","scsAddressHelper","availableScsAddressGate","getNewGateName","newGateName","gateCreate","prevPage","_component_ButtonSelection","_component_ListItemCheck","pageTitle","currentGate","changingGate","newPeSelected","newPeDisabled","keypadSelected","keypadDisabled","smartReaderSelected","smartReaderDisabled","scsAddrNotValid","min","MIN_SCS_ADDRESS","MAX_SCS_ADDRESS","scsAddress","invalidScsReason","currentGateId","inputId","allBuildings","handleUpdateBuildingSelection","AllBuildingsValue","binary","last","selectedBuildingIds","selectedBuildings","b","allRisers","handleUpdateRiserSelection","AllRisersValue","selectedRiserIds","currentGateIndex","gateConfig","gateId","connectedBuildingIds","gateName","Linea5000","KeyPad","SmartAccess","connectedRiserIds","connectedApartmentsIds","buildForm","refreshDeviceSelection","gateConfigStructure","scsAddressesPlusCurrentAdress","addr","currentGateScs","acceptedRange","isItAvailable","selectBuildings","selectedApartments","apartmentId","changeGate","Set","values","retrieveApartmentIds","devicesSelected","buildingsSelected","risersSelected","element","ButtonSelection","verifyValidityOfScsAddress","fetchPePlant","nextComponentName","prevComponentName","entranceplantGET","DialogEntrancePlantCreateStep1","DialogEntrancePlantCreateStep2","DialogEntrancePlantCreateStep3","DialogEntrancePlantCreateStep4","DialogEntrancePlantCreateStep5","DialogEntrancePlantCreateStep6","DialogEntrancePlantCreateStep7","WizardPlantTypeSelection","WizardAutomationPlant","WizardEntrancePlant","FUNC_ERROR_TEXT","NAN","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","now","debounce","func","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","toNumber","isObject","other","valueOf","isBinary","slice"],"mappings":"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","file":"js/page-plant-detail.72ec0820.js","sourcesContent":["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!./WizardPlantTypeSelection.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/icon-toilets.475eec05.svg\";","module.exports = __webpack_public_path__ + \"img/icon-device.fd288cca.svg\";","module.exports = __webpack_public_path__ + \"img/icon-alert-hight-full.3b0f559f.svg\";","module.exports = __webpack_public_path__ + \"img/icon-xmeter.cdd95f85.svg\";","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!./WizardEntrancePlant.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/icon-filter.4f75b6cb.svg\";","module.exports = __webpack_public_path__ + \"img/icon-round.e7c23e5d.svg\";","module.exports = __webpack_public_path__ + \"img/icon-star.50c24909.svg\";","module.exports = __webpack_public_path__ + \"img/icon_command_night.badbdbf4.svg\";","module.exports = __webpack_public_path__ + \"img/icon-datetime.25498852.svg\";","module.exports = __webpack_public_path__ + \"img/icon-all-plants.8e1b500b.svg\";","module.exports = __webpack_public_path__ + \"img/icon-garden.b5326b97.svg\";","module.exports = __webpack_public_path__ + \"img/icon-refresh.e78fba07.svg\";","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!./CardContainer.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/icon-general-view.6e8cf869.svg\";","module.exports = __webpack_public_path__ + \"img/icon-shutter.b88b133c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-done.3da9ef41.svg\";","module.exports = __webpack_public_path__ + \"img/icon-edit.e6654111.svg\";","module.exports = __webpack_public_path__ + \"img/icon-automation-2.bdcf38c1.svg\";","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!./DialogPlantDuplicate.scss?vue&type=style&index=0&lang=scss\"","var $ = require('../internals/export');\nvar parseInt = require('../internals/number-parse-int');\n\n// `Number.parseInt` method\n// https://tc39.es/ecma262/#sec-number.parseint\n$({ target: 'Number', stat: true, forced: Number.parseInt != parseInt }, {\n parseInt: parseInt\n});\n","module.exports = __webpack_public_path__ + \"img/icon-laundry.6b1b960c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-light.9f4df880.svg\";","module.exports = __webpack_public_path__ + \"img/icon-towel-rail.a4348895.svg\";","module.exports = __webpack_public_path__ + \"img/icon-music-player.88e7fe63.svg\";","module.exports = __webpack_public_path__ + \"img/icon-electrical-cabinet.2f0f7dac.svg\";","module.exports = __webpack_public_path__ + \"img/icon-livingroom.b9d081af.svg\";","module.exports = __webpack_public_path__ + \"img/icon-bedroom.acd3f824.svg\";","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\"","module.exports = __webpack_public_path__ + \"img/icon-security-2.2f15498d.svg\";","module.exports = __webpack_public_path__ + \"img/icon-blind.dd2cda6f.svg\";","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = kebabCase;\n","module.exports = __webpack_public_path__ + \"img/icon-automation.9592e7a0.svg\";","module.exports = __webpack_public_path__ + \"img/icon-faq.0c68bdd5.svg\";","module.exports = __webpack_public_path__ + \"img/icon-duplication.6f861d54.svg\";","module.exports = __webpack_public_path__ + \"img/icon-bathroom.da2ccc30.svg\";","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\"","module.exports = __webpack_public_path__ + \"img/icon-expand-menu.b4f3b9a9.svg\";","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!./DialogEntrancePlantCreateStep5.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/icon-actuator-2.eda64991.svg\";","import { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header mb-4\" }\nconst _hoisted_2 = { class: \"dialog-custom__title mb-0\" }\nconst _hoisted_3 = {\n key: 0,\n id: \"dialog-plant-duplicate-spinner\"\n}\nconst _hoisted_4 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_5 = { class: \"p-field mb-4\" }\nconst _hoisted_6 = { class: \"d-block mb-2 p-field-label\" }\nconst _hoisted_7 = { class: \"mr-3\" }\nconst _hoisted_8 = { class: \"p-field\" }\nconst _hoisted_9 = { class: \"p-field-label\" }\nconst _hoisted_10 = { class: \"dialog-custom__footer\" }\nconst _hoisted_11 = {\n key: 1,\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_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n const _component_NumberButtons = _resolveComponent(\"NumberButtons\")\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n modal: true,\n showHeader: false,\n onHide: _ctx.doHideDialog,\n id: \"plant-duplicate-dialog\",\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.isDialogVisible = $event)),\n class: \"dialog-custom dialog-plant-duplicate\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.dialogTitle), 1)\n ]),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_3, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"plantDialogDuplicate.howManyCopies\")), 1),\n _createVNode(_component_NumberButtons, {\n modelValue: _ctx.plantsCount,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.plantsCount = $event)),\n \"disable-decrease\": _ctx.plantsCount === 1\n }, null, 8, [\"modelValue\", \"disable-decrease\"])\n ]),\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"div\", _hoisted_8, [\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t(\"plantsList.duplicateDialog.inputLabel\")), 1),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.plantsToCreate, (plant, idx) => {\n return (_openBlock(), _createBlock(_component_InputText, {\n type: \"text\",\n ref: \"nameInput\",\n modelValue: plant.name,\n \"onUpdate:modelValue\": ($event: any) => (plant.name = $event),\n key: 'plant_ ' + idx,\n class: [\"mt-2 mb-4 w-100\", {\n 'input-error': !!plant.isInvalid,\n }],\n onInput: ($event: any) => (_ctx.handleNameChange(plant))\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onInput\", \"class\"]))\n }), 128))\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleHideDialog,\n class: \"p-button-text p-button-secondary text-uppercase mr-2\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.doConfirm,\n disabled: _ctx.isConfirmDisabled,\n class: \"p-button-rounded p-button--m\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Ok\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ]),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_11, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"onHide\", \"visible\"]))\n}","import { PropType } from 'vue';\nimport debounce from 'lodash.debounce';\nimport { Options, Vue } from 'vue-class-component';\nimport {\n PlantDTO,\n PlantListDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport plantsClient from '../../../../core/services/plants';\nimport {\n PlantEntityType,\n PlantFlatEntityDTO,\n} from '@/../client-generator/generated-clients/configurations';\nimport { NAME_VALIDATION_DEBOUNCE_TIME } from '@/core/utils/utils';\nimport { SET_APP_LOADING } from '../../../../core/store/action-types';\nimport { NamingService, ValidablePlant } from '@/core/services/naming.service';\nimport NumberButtons from '../../../components/NumberButtons/NumberButtons.vue';\n\n@Options({\n name: 'DialogPlantDuplicate',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n plant: {\n type: Object as PropType,\n required: true,\n },\n },\n watch: {\n isVisible: async function (newValue) {\n this.isDialogVisible = newValue;\n\n if (!this.plant.desktopId || !this.isDialogVisible) {\n this.dispose();\n return;\n }\n\n await this.doFirstPrefetch();\n await this.initializeFirstName();\n },\n plantsCount: async function (newValue, prevValue) {\n await this.suggestNameIfNeeded(prevValue, newValue);\n },\n },\n emits: ['hide-dialog', 'plant-edited', 'fetch-plants'],\n components: {\n NumberButtons,\n },\n})\nexport default class DialogPlantCreate extends Vue {\n plantsCount = 1;\n isLoading = false;\n isVisible!: boolean;\n plant!: PlantListDTO;\n isDialogVisible = false;\n entitiesPrefetchDone = false;\n\n plantsToCreate: ValidablePlant[] = [];\n\n get dialogTitle() {\n return `${this.$t('AppResource.PlantDuplication')}: ${ this.plant.name}`;\n }\n\n get isConfirmDisabled(): boolean {\n const allValidNames = this.plantsToCreate.every((p) => !p.isInvalid);\n console.log(allValidNames);\n return !allValidNames;\n }\n\n async doConfirm() {\n this.$emit('hide-dialog');\n try {\n this.$store.dispatch(SET_APP_LOADING, true);\n await plantsClient.duplicatePlant(\n +this.plant.desktopId!,\n this.plantsToCreate.map((p) => p.name) as string[]\n );\n this.$toast.add({\n severity: 'success',\n summary: this.$t('plantDialogDuplicate.success'),\n closable: true,\n life: 3000,\n });\n } catch (e) {\n console.log('Error duplicating plant', e);\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 this.$emit('fetch-plants');\n }\n }\n\n mounted() {\n this.handleNameChange = debounce(\n this.handleNameChange,\n NAME_VALIDATION_DEBOUNCE_TIME\n );\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n async handleNameChange() {\n // validate the cloned list\n this.plantsToCreate = [\n ...NamingService.validatePlantAgainstList(this.plantsToCreate),\n ];\n }\n\n // DO NOT DELETE ME\n // I'm used in the watcher\n private dispose() {\n NamingService.flushCache();\n this.entitiesPrefetchDone = false;\n this.plantsCount = 1;\n this.plantsToCreate = [];\n }\n\n // DO NOT DELETE ME\n // I'm used in the watcher\n private async doFirstPrefetch() {\n this.isLoading = true;\n await NamingService.prefetchFlatEntities(\n +this.plant.desktopId!,\n PlantEntityType.PLANT\n );\n this.entitiesPrefetchDone = true;\n this.isLoading = false;\n }\n\n // DO NOT DELETE ME\n // I'm used in the watcher\n private async initializeFirstName() {\n this.isLoading = true;\n await this.suggestNameIfNeeded(0, 0);\n this.isLoading = false;\n console.log(this.plantsToCreate);\n return;\n }\n\n // DO NOT DELETE ME\n // I'm used in the watcher\n private async suggestNameIfNeeded(prevValue: number, currValue: number) {\n if (currValue === 0) {\n this.plantsCount = 1;\n this.plantsToCreate = [\n {\n name: await NamingService.suggestNextValidEntityName({\n eType: PlantEntityType.PLANT,\n plantId: +this.plant.desktopId!,\n metadata: { plantSourceName: this.plant.name },\n }),\n },\n ];\n this.updateNamingServiceAdditionalEntities();\n return;\n }\n\n if (prevValue > currValue) {\n this.plantsToCreate.pop();\n this.updateNamingServiceAdditionalEntities();\n return;\n }\n\n this.plantsToCreate.push({\n name: await NamingService.suggestNextValidEntityName({\n eType: PlantEntityType.PLANT,\n plantId: +this.plant.desktopId!,\n metadata: { plantSourceName: this.plant.name },\n }),\n });\n\n this.updateNamingServiceAdditionalEntities();\n }\n\n private updateNamingServiceAdditionalEntities() {\n NamingService.additionalEntities = this.plantsToCreate.map(\n (p, id) =>\n new PlantFlatEntityDTO({\n id: id.toString(),\n currentName: p.name,\n })\n );\n }\n}\n","import { render } from \"./DialogPlantDuplicate.vue?vue&type=template&id=24289664&ts=true\"\nimport script from \"./DialogPlantDuplicate.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogPlantDuplicate.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogPlantDuplicate.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__","module.exports = __webpack_public_path__ + \"img/icon-alert-hight-outline.2c606bba.svg\";","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!./DialogEntrancePlantCreateStep4.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/icon-socket.27818ce0.svg\";","module.exports = __webpack_public_path__ + \"img/icon-sync.504e71f4.svg\";","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 } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__title mb-0\" }\nconst _hoisted_2 = { class: \"fs-18 text-gray\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 330px)\"} }\nconst _hoisted_5 = {\n class: \"p-selectbutton--blocks p-2\",\n style: {\"--cols\":\"6\"}\n}\nconst _hoisted_6 = { class: \"bt-icon text-gray\" }\nconst _hoisted_7 = { class: \"mb-3\" }\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_NumberButtons = _resolveComponent(\"NumberButtons\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", {\n \"data-plant\": _ctx.$attrs.plantId,\n class: \"dialog-custom__header\"\n }, [\n _createVNode(\"h1\", _hoisted_1, _toDisplayString(_ctx.stepTitle), 1),\n _createVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.stepSubTitle), 1)\n ], 8, [\"data-plant\"]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.roomTypes, (roomType) => {\n return (_openBlock(), _createBlock(\"div\", {\n key: roomType.type,\n class: \"p-button text-primary\"\n }, [\n _createVNode(\"span\", _hoisted_6, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/${_ctx.getRoomIcon(roomType.type)}.svg`)\n \n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"p\", _hoisted_7, _toDisplayString(roomType.label), 1),\n _createVNode(_component_NumberButtons, {\n modelValue: roomType.count,\n \"onUpdate:modelValue\": ($event: any) => (roomType.count = $event),\n onInput: ($event: any) => (_ctx.updatePlantRoom(roomType))\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"onInput\"])\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n PlantDetailDTO,\n PlantDTO,\n PlantRoomCount,\n RoomDTO,\n RoomType,\n} from '@/../client-generator/generated-clients/plants';\nimport { getRoomIconFromType } from '@/core/utils/utils';\nimport configurationsClient from '@/core/services/configurations-service';\nimport { DefaultRoomDTO } from '@/../client-generator/generated-clients/configurations';\n\nimport NumberButtons from '@/views/components/NumberButtons/NumberButtons.vue';\n\n@Options({\n name: 'DialogPlantCreateStep3',\n props: {\n plant: {\n required: true,\n type: Object as () => PlantDTO,\n },\n isInEditMode: {\n type: Boolean,\n },\n },\n components: {\n NumberButtons,\n },\n emits: ['is-loading'],\n})\nexport default class DialogPlantCreateStep3 extends Vue {\n plant!: PlantDTO;\n roomTypes: DefaultRoomDTO[] = [];\n getRoomIcon = getRoomIconFromType;\n isInEditMode!: boolean;\n\n get stepTitle() {\n if (this.isInEditMode) return this.$t('AppResource.AddARoom');\n return this.$t('AppResource.CreateStructure');\n }\n get stepSubTitle() {\n if (this.isInEditMode) return this.$t('AppResource.ChooseRoomToAdd');\n return this.$t('AppResource.SelectRoomsText');\n }\n\n get theRooms() {\n return this.isInEditMode\n ? (this.plant as PlantDetailDTO).rooms\n : (this.plant as PlantDTO).roomsCounts;\n }\n\n async created() {\n this.fetchRooms();\n }\n\n async fetchRooms() {\n this.$emit('is-loading', true);\n try {\n this.roomTypes = await configurationsClient.defaultRoomsList();\n this.roomTypes.forEach(r => r.label = this.$t(`AppResource.${RoomType[r.type!]}`))\n if (this.isInEditMode) this.roomTypes.forEach((rt) => (rt.count = 0));\n const theRooms = this.plant.roomsCounts;\n if (!theRooms || (theRooms && theRooms.length === 0)) {\n (this.plant as PlantDTO).roomsCounts = this.roomTypes.map(\n (rt) =>\n ({\n type: rt.type!,\n count: rt.count!,\n } as PlantRoomCount)\n );\n }\n\n this.roomTypes = this.roomTypes.map(\n (rt) =>\n ({\n ...rt,\n count: (() => {\n if (!this.isInEditMode) {\n const plantRoomCount = theRooms?.find(\n (rc) => rc.type === rt.type\n );\n if (plantRoomCount) {\n return plantRoomCount.count;\n }\n return rt.count;\n }\n return 0;\n })(),\n } as DefaultRoomDTO)\n );\n } catch (error) {\n console.log(error);\n } finally {\n this.$emit('is-loading', false);\n }\n }\n\n updatePlantRoom(room: DefaultRoomDTO) {\n const plantRoom = this.plant.roomsCounts?.find(\n (rc) => rc.type === room.type\n );\n\n if (!plantRoom) {\n console.log('Plant room not found');\n return;\n }\n\n plantRoom.count = room.count;\n plantRoom.label = room.label;\n }\n}\n","import { render } from \"./DialogPlantCreateStep3.vue?vue&type=template&id=467fb4cd&ts=true\"\nimport script from \"./DialogPlantCreateStep3.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogPlantCreateStep3.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 { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = { class: \"p-field\" }\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_6 = { class: \"dialog-confirm__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_InputText = _resolveComponent(\"InputText\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.isDialogVisible = $event)),\n onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert-medium-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.PlantDeletion\")), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t(\"plantDetail.deletePlantConfirm\", {\n plantName: _ctx.plantName,\n code: _ctx.codeToCheck,\n })), 1),\n _createVNode(\"form\", {\n class: \"w-50 mb-4\",\n onSubmit: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_InputText, {\n type: \"text\",\n class: \"w-100\",\n maxlength: \"6\",\n modelValue: _ctx.theCode,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.theCode = $event)),\n onPaste: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"prevent\"]))\n }, null, 8, [\"modelValue\"])\n ])\n ], 32),\n _hoisted_5,\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary text-uppercase mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.doConfirm,\n disabled: _ctx.isConfirmDisabled\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Ok\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\nimport { getRandomInt } from '../../../core/utils/utils';\n\n@Options({\n name: 'DialogConfirmDeletePlant',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n plantName: {\n type: String,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n },\n },\n emits: ['hide-dialog', 'confirm'],\n})\nexport default class DialogConfirmDeletePlant extends Vue {\n isVisible!: boolean;\n isDialogVisible = false;\n codeToCheck = '';\n theCode = '';\n\n get isConfirmDisabled() {\n return this.theCode !== this.codeToCheck;\n }\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n this.resetCodes();\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n\n this.$nextTick(() => {\n this.resetCodes();\n });\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n doConfirm() {\n this.$emit('confirm');\n this.handleHideDialog();\n }\n\n resetCodes() {\n this.theCode = '';\n let randStr = ``;\n for (let i = 0; i < 4; i++) randStr += getRandomInt(0, 9, true);\n this.codeToCheck = randStr;\n }\n}\n","import { render } from \"./DialogConfirmDeletePlant.vue?vue&type=template&id=090d81b2&ts=true\"\nimport script from \"./DialogConfirmDeletePlant.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogConfirmDeletePlant.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__","module.exports = __webpack_public_path__ + \"img/icon-diningroom.492ece47.svg\";","module.exports = __webpack_public_path__ + \"img/icon-grid.d7beaf2c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-blueprint.ef378b33.svg\";","module.exports = __webpack_public_path__ + \"img/icon-round-outline.3cd1592a.svg\";","module.exports = __webpack_public_path__ + \"img/icon-confirm-outline.dba5a9f6.svg\";","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!./MenuSharing.scss?vue&type=style&index=0&lang=scss\"","var map = {\n\t\"./icon-actuator-2.svg\": \"46f4\",\n\t\"./icon-add-circle-outline.svg\": \"a2b6\",\n\t\"./icon-add-outline.svg\": \"94b1\",\n\t\"./icon-add.svg\": \"605f\",\n\t\"./icon-alert-hight-full.svg\": \"0450\",\n\t\"./icon-alert-hight-outline.svg\": \"4a7c\",\n\t\"./icon-alert-medium-full.svg\": \"df0f\",\n\t\"./icon-alert-medium-outline.svg\": \"8c5c\",\n\t\"./icon-alert-triangle-outline.svg\": \"9cb1\",\n\t\"./icon-all-plants.svg\": \"15c1\",\n\t\"./icon-arrows-back.svg\": \"6b1a\",\n\t\"./icon-arrows-down.svg\": \"7526\",\n\t\"./icon-arrows-next.svg\": \"8cbd\",\n\t\"./icon-arrows-up.svg\": \"764e\",\n\t\"./icon-assistant.svg\": \"8049\",\n\t\"./icon-automation-2.svg\": \"1f93\",\n\t\"./icon-automation.svg\": \"33d3\",\n\t\"./icon-ban-light.svg\": \"cba1\",\n\t\"./icon-bathroom.svg\": \"3a90\",\n\t\"./icon-bedroom.svg\": \"2dc5\",\n\t\"./icon-blind.svg\": \"3343\",\n\t\"./icon-blueprint.svg\": \"50da\",\n\t\"./icon-book.svg\": \"a24e\",\n\t\"./icon-checkbox-disabled.svg\": \"7a74\",\n\t\"./icon-close.svg\": \"9f16\",\n\t\"./icon-colored-light.svg\": \"89d8\",\n\t\"./icon-command.svg\": \"df05\",\n\t\"./icon-confirm-full.svg\": \"754d\",\n\t\"./icon-confirm-outline.svg\": \"56b2\",\n\t\"./icon-connected-server.svg\": \"a17c\",\n\t\"./icon-corridor.svg\": \"b9ef\",\n\t\"./icon-datetime.svg\": \"1496\",\n\t\"./icon-delete.svg\": \"94ba\",\n\t\"./icon-desktop.svg\": \"983e\",\n\t\"./icon-device.svg\": \"03b8\",\n\t\"./icon-dimmer-dmx.svg\": \"7a49\",\n\t\"./icon-diningroom.svg\": \"501c\",\n\t\"./icon-done.svg\": \"1e96\",\n\t\"./icon-duplication-all.svg\": \"b32a\",\n\t\"./icon-duplication.svg\": \"3a03\",\n\t\"./icon-edit-page.svg\": \"d0d6\",\n\t\"./icon-edit.svg\": \"1eee\",\n\t\"./icon-electrical-cabinet.svg\": \"2aa1\",\n\t\"./icon-ellipsis-v.svg\": \"137d\",\n\t\"./icon-email.svg\": \"f1cb\",\n\t\"./icon-energy.svg\": \"b05d\",\n\t\"./icon-entrance.svg\": \"b000\",\n\t\"./icon-expand-menu.svg\": \"420d\",\n\t\"./icon-failed-full.svg\": \"a6b2\",\n\t\"./icon-failed-outline.svg\": \"78b2\",\n\t\"./icon-fancoil.svg\": \"7b42\",\n\t\"./icon-faq.svg\": \"3437\",\n\t\"./icon-favourite-outline.svg\": \"efba\",\n\t\"./icon-favourite.svg\": \"ef9e\",\n\t\"./icon-filter.svg\": \"0931\",\n\t\"./icon-filters.svg\": \"f5b0\",\n\t\"./icon-garage.svg\": \"e25a\",\n\t\"./icon-garden.svg\": \"18bc\",\n\t\"./icon-general-light.svg\": \"8bae\",\n\t\"./icon-general-view.svg\": \"1cb3\",\n\t\"./icon-grid.svg\": \"5084\",\n\t\"./icon-group-lights.svg\": \"c7c0\",\n\t\"./icon-import.svg\": \"467b\",\n\t\"./icon-info-circle.svg\": \"d5db\",\n\t\"./icon-kitchen.svg\": \"f795\",\n\t\"./icon-laundry.svg\": \"26cc\",\n\t\"./icon-less.svg\": \"1fe0\",\n\t\"./icon-light.svg\": \"2967\",\n\t\"./icon-list.svg\": \"9a3b\",\n\t\"./icon-livingroom.svg\": \"2d2a\",\n\t\"./icon-loading.svg\": \"e315\",\n\t\"./icon-lock.svg\": \"a1b1\",\n\t\"./icon-mail.svg\": \"aaa7\",\n\t\"./icon-mobile-device.svg\": \"fcc4\",\n\t\"./icon-music-player.svg\": \"2a2b\",\n\t\"./icon-mx-server.svg\": \"eba1\",\n\t\"./icon-network.svg\": \"e331\",\n\t\"./icon-no-view.svg\": \"c6d8\",\n\t\"./icon-notification.svg\": \"dce2\",\n\t\"./icon-office.svg\": \"790c\",\n\t\"./icon-outdoor.svg\": \"6f2c\",\n\t\"./icon-paperclip.svg\": \"fa60\",\n\t\"./icon-plan-duplicate.svg\": \"fffe\",\n\t\"./icon-plants.svg\": \"f643\",\n\t\"./icon-player.svg\": \"c733\",\n\t\"./icon-plus-outline.svg\": \"1212\",\n\t\"./icon-profile.svg\": \"4fab\",\n\t\"./icon-push-notification.svg\": \"6d4c\",\n\t\"./icon-refresh.svg\": \"1af7\",\n\t\"./icon-remove-hand-02.svg\": \"797b\",\n\t\"./icon-remove-outline.svg\": \"79ab\",\n\t\"./icon-reorder-drag-and-drop.svg\": \"fcb4\",\n\t\"./icon-room.svg\": \"a24d\",\n\t\"./icon-round-outline.svg\": \"5115\",\n\t\"./icon-round.svg\": \"0b54\",\n\t\"./icon-scan-qr-code-02.svg\": \"b205\",\n\t\"./icon-scene.svg\": \"c4c4\",\n\t\"./icon-search.svg\": \"6a1a\",\n\t\"./icon-security-2.svg\": \"2f55\",\n\t\"./icon-security.svg\": \"a13f\",\n\t\"./icon-server-mhs-1.svg\": \"63ec\",\n\t\"./icon-setting.svg\": \"e942\",\n\t\"./icon-shutter.svg\": \"1e5c\",\n\t\"./icon-socket.svg\": \"4e1f\",\n\t\"./icon-staff.svg\": \"8dec\",\n\t\"./icon-staircase.svg\": \"a1a2\",\n\t\"./icon-star.svg\": \"0c24\",\n\t\"./icon-start-plan.svg\": \"f9fc\",\n\t\"./icon-sync.svg\": \"4e9a\",\n\t\"./icon-thermo.svg\": \"dc59\",\n\t\"./icon-thermostat.svg\": \"a231\",\n\t\"./icon-toilets.svg\": \"01b6\",\n\t\"./icon-towel-rail.svg\": \"2a06\",\n\t\"./icon-user.svg\": \"a26a\",\n\t\"./icon-weather.svg\": \"e6c0\",\n\t\"./icon-wifi-01-1.svg\": \"c297\",\n\t\"./icon-wifi.svg\": \"f077\",\n\t\"./icon-wizard-assegna-attuatore.svg\": \"6a9d\",\n\t\"./icon-xmeter.svg\": \"0519\",\n\t\"./icon_command_day.svg\": \"78b0\",\n\t\"./icon_command_enter.svg\": \"afda\",\n\t\"./icon_command_exit.svg\": \"c34e\",\n\t\"./icon_command_night.svg\": \"0ec0\",\n\t\"./icon_parameters_and_settings_folder_2.svg\": \"14b1\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"5981\";","module.exports = __webpack_public_path__ + \"img/ImagesMX-300EOS.2eddd116.png\";","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","module.exports = __webpack_public_path__ + \"img/icon-server-mhs-1.ea1fa748.svg\";","module.exports = __webpack_public_path__ + \"img/icon-search.9e4d57d8.svg\";","module.exports = __webpack_public_path__ + \"img/icon-wizard-assegna-attuatore.ff6687dc.svg\";","module.exports = __webpack_public_path__ + \"img/icon-arrows-back.36b433eb.svg\";","module.exports = __webpack_public_path__ + \"img/icon-push-notification.b4cc549d.svg\";","module.exports = __webpack_public_path__ + \"img/icon-outdoor.5771a8e2.svg\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_5 = { class: \"dialog-confirm__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_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 onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert-medium-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.$t(\"plantDetail.newUpdates\")), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t(\"plantDetail.willRefreshToReflectChanges\")), 1),\n _hoisted_4,\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Ok\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'ConfirmPlantUpdated',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n },\n },\n emits: ['hide-dialog'],\n})\nexport default class ConfirmPlantUpdated extends Vue {\n isVisible!: boolean;\n isDialogVisible = false;\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","import { render } from \"./ConfirmPlantUpdated.vue?vue&type=template&id=94c1768c&ts=true\"\nimport script from \"./ConfirmPlantUpdated.ts?vue&type=script&lang=ts\"\nexport * from \"./ConfirmPlantUpdated.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 map = {\n\t\"./icon-favourite-outline.svg\": \"efba\",\n\t\"./icon-favourite.svg\": \"ef9e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"7235\";","module.exports = __webpack_public_path__ + \"img/icon-arrows-down.d33a9aed.svg\";","module.exports = __webpack_public_path__ + \"img/icon-confirm-full.e9a56b47.svg\";","module.exports = __webpack_public_path__ + \"img/icon-arrows-up.78952d2b.svg\";","module.exports = __webpack_public_path__ + \"img/icon_command_day.6344b347.svg\";","module.exports = __webpack_public_path__ + \"img/icon-failed-outline.bd9eeab3.svg\";","import { renderSlot as _renderSlot, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"card__head d-flex align-items-center\" }\nconst _hoisted_2 = { class: \"d-flex align-items-center\" }\nconst _hoisted_3 = { class: \"ml-2\" }\nconst _hoisted_4 = { class: \"ml-auto mr-2\" }\nconst _hoisted_5 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_6 = { class: \"ml-2\" }\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_Card = _resolveComponent(\"Card\")\n\n return (_openBlock(), _createBlock(_component_Card, { class: \"card--primary\" }, {\n content: _withCtx(() => [\n _createVNode(\"div\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"title\", {}, () => [\n _createVNode(\"h3\", _hoisted_2, [\n _createVNode(_component_InlineSvgScoped, { src: _ctx.titleIcon }, null, 8, [\"src\"]),\n _createVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.title), 1)\n ])\n ]),\n _createVNode(\"div\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"actionButton\", {}, () => [\n (_ctx.showActionButton)\n ? (_openBlock(), _createBlock(_component_Button, {\n key: 0,\n disabled: _ctx.disabled,\n onClick: _ctx.onActionButtonClick,\n class: \"p-button-rounded p-button-outlined\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_5, [\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_6, _toDisplayString(_ctx.actionButtonLabel), 1)\n ]),\n _: 1\n }, 8, [\"disabled\", \"onClick\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 1\n }))\n}","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'CardContainer',\n components: {},\n props: {\n titleIcon: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n required: true,\n },\n showActionButton: {\n type: Boolean,\n required: false,\n },\n actionButtonLabel: {\n type: String,\n required: false,\n },\n disabled: {\n type:Boolean,\n required: false, \n default: false\n\n }\n },\n watch: {},\n emits: ['on-Action-Button-Click']\n})\n\nexport default class CardContainer extends Vue {\n titleIcon!: string;\n title!: string;\n showActionButton!: boolean;\n actionButtonLabel!: string;\n disabled!:boolean;\n\n\n\n onActionButtonClick () {\n this.$emit('on-Action-Button-Click');\n }\n}\n","import { render } from \"./CardContainer.vue?vue&type=template&id=5aab2bae&ts=true\"\nimport script from \"./CardContainer.ts?vue&type=script&lang=ts\"\nexport * from \"./CardContainer.ts?vue&type=script&lang=ts\"\n\nimport \"./CardContainer.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__","module.exports = __webpack_public_path__ + \"img/icon-office.87b0bb72.svg\";","module.exports = __webpack_public_path__ + \"img/icon-remove-hand-02.b3013ce2.svg\";","module.exports = __webpack_public_path__ + \"img/icon-dimmer-dmx.6b6ebf5a.svg\";","module.exports = __webpack_public_path__ + \"img/icon-checkbox-disabled.e73b0c58.svg\";","module.exports = __webpack_public_path__ + \"img/icon-fancoil.4c6f40ef.svg\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_5 = { class: \"dialog-confirm__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_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 onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert-medium-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.AreYouSureToRemoveUser\")), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t(\"AppResource.AreYouSureToRemoveUserDescription\")), 1),\n _hoisted_4,\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary text-uppercase mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.No\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.doConfirm\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Yes\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'ConfirmDeleteUser',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n },\n },\n emits: ['hide-dialog', 'confirm'],\n})\nexport default class ConfirmDeleteUser extends Vue {\n isVisible!: boolean;\n isDialogVisible = false;\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 doConfirm() {\n this.$emit('confirm');\n this.handleHideDialog();\n }\n}\n","import { render } from \"./ConfirmDeleteUser.vue?vue&type=template&id=bddcd266&ts=true\"\nimport script from \"./ConfirmDeleteUser.ts?vue&type=script&lang=ts\"\nexport * from \"./ConfirmDeleteUser.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__","module.exports = __webpack_public_path__ + \"img/icon-assistant.fe90f648.svg\";","module.exports = __webpack_public_path__ + \"img/icon-check.ea86f165.svg\";","module.exports = __webpack_public_path__ + \"img/icon-colored-light.ac91883d.svg\";","module.exports = __webpack_public_path__ + \"img/icon-general-light.5d647674.svg\";","module.exports = __webpack_public_path__ + \"img/icon-arrows-next.74ae035b.svg\";","module.exports = __webpack_public_path__ + \"img/icon-staff.6521f768.svg\";","module.exports = __webpack_public_path__ + \"img/icon-add-outline.c9d7b603.svg\";","module.exports = __webpack_public_path__ + \"img/icon-delete.07c02c83.svg\";","module.exports = __webpack_public_path__ + \"img/icon-desktop.71f04af6.svg\";","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\"","module.exports = __webpack_public_path__ + \"img/icon-list.bef321b2.svg\";","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, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"list-bubbles mr-4\" }\nconst _hoisted_2 = { class: \"list-bubbles__label fs-14 text-gray\" }\nconst _hoisted_3 = { class: \"bt-icon\" }\nconst _hoisted_4 = { class: \"p-4 mb-3\" }\nconst _hoisted_5 = { class: \"fs-20 text-dark\" }\nconst _hoisted_6 = { class: \"p-field p-field-with-button\" }\nconst _hoisted_7 = {\n class: \"p-field-label\",\n for: \"person-name\"\n}\nconst _hoisted_8 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_9 = { class: \"ml-2\" }\nconst _hoisted_10 = { class: \"form-custom mt-5\" }\nconst _hoisted_11 = {\n class: \"p-field-label\",\n for: \"person-name\"\n}\nconst _hoisted_12 = { class: \"list-users-collab mt-3\" }\nconst _hoisted_13 = /*#__PURE__*/_createVNode(\"hr\", { class: \"my-0\" }, null, -1)\nconst _hoisted_14 = { class: \"d-flex justify-content-end p-4 py-3\" }\nconst _hoisted_15 = {\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_Button = _resolveComponent(\"Button\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_UserItem = _resolveComponent(\"UserItem\")\n const _component_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n const _component_ElPopover = _resolveComponent(\"ElPopover\")\n const _component_ConfirmDeleteUser = _resolveComponent(\"ConfirmDeleteUser\")\n const _component_DialogConfirmTransferOwnership = _resolveComponent(\"DialogConfirmTransferOwnership\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.PlantSharing\")), 1),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.plant.sharedWith, (user, userIndex) => {\n return (_openBlock(), _createBlock(_component_Button, {\n key: `user-${userIndex}`,\n class: \"p-button-secondary p-button-rounded p-button-sm no-click\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.getUserInitials(user)), 1)\n ]),\n _: 2\n }, 1024))\n }), 128)),\n _createVNode(_component_ElPopover, {\n visible: _ctx.isPopperVisible,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.isPopperVisible = $event)),\n trigger: \"manual\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context p-0\",\n width: \"500px\"\n }, {\n reference: _withCtx(() => [\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button-icon-only p-button-text\",\n onClick: _ctx.togglePopper\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_3, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-plus-outline.svg')\n ,\n \"aria-label\": \"icon-plus-outline\"\n }, null, 8, [\"src\"])\n ])\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"h4\", _hoisted_5, _toDisplayString(_ctx.$t(\"AppResource.PlantSharing\")), 1),\n _createVNode(\"form\", {\n class: \"form-custom mt-5\",\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.invitePerson && _ctx.invitePerson(...args)), [\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t(\"AppResource.InviteNewUser\")), 1),\n _createVNode(_component_InputText, {\n id: \"person-name\",\n type: \"email\",\n required: \"true\",\n class: \"w-100\",\n placeholder: _ctx.$t('AppResource.InviteUserDescription'),\n modelValue: _ctx.newUserToShare,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.newUserToShare = $event))\n }, null, 8, [\"placeholder\", \"modelValue\"]),\n _createVNode(_component_Button, {\n class: \"p-button-outlined p-button-rounded p-button-field\",\n type: \"submit\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_8, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-add-circle-outline.svg')\n ,\n \"aria-label\": \"icon-add-circle-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t(\"AppResource.Invite\")), 1)\n ]),\n _: 1\n })\n ])\n ], 32),\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t(\"AppResource.UsersUpper\")), 1),\n _createVNode(\"ul\", _hoisted_12, [\n _createVNode(_component_UserItem, {\n user: _ctx.plant.owner,\n \"is-owner\": true\n }, null, 8, [\"user\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.plant.sharedWith, (user, userIndex) => {\n return (_openBlock(), _createBlock(_component_UserItem, {\n user: user,\n key: `user-item-${userIndex}`,\n \"is-me-the-owner\": _ctx.isMeTheOwner,\n onDeleteUser: _ctx.handleDeleteUser,\n onTransferOwnership: _ctx.handleTransferOwnership\n }, null, 8, [\"user\", \"is-me-the-owner\", \"onDeleteUser\", \"onTransferOwnership\"]))\n }), 128))\n ])\n ])\n ]),\n _hoisted_13,\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button-raised p-button--m\",\n onClick: _ctx.togglePopper\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.DoneUpper\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_15, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"visible\"])\n ]),\n _createVNode(_component_ConfirmDeleteUser, {\n \"is-visible\": _ctx.isConfirmDeleteUserVisible,\n onHideDialog: _ctx.toggleConfirmDeleteUser,\n onConfirm: _ctx.deleteUser\n }, null, 8, [\"is-visible\", \"onHideDialog\", \"onConfirm\"]),\n _createVNode(_component_DialogConfirmTransferOwnership, {\n \"plant-name\": _ctx.plantName,\n \"is-visible\": _ctx.isVisibleTransferOwnershipConfirm,\n onHideDialog: _ctx.toggleTransferOwnershipConfirm,\n onConfirm: _ctx.transferOwnership\n }, null, 8, [\"plant-name\", \"is-visible\", \"onHideDialog\", \"onConfirm\"])\n ], 64))\n}","import { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\n\nconst _hoisted_1 = { class: \"d-flex align-items-center\" }\nconst _hoisted_2 = { class: \"fs-14 text-dark\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"fs-14 pr-2\"\n}\nconst _hoisted_4 = { class: \"btn-stripped d-flex align-items-center\" }\nconst _hoisted_5 = { class: \"btn-stripped d-flex align-items-center text-danger\" }\nconst _hoisted_6 = { class: \"btn-stripped d-flex align-items-center text-danger\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\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\n return (_openBlock(), _createBlock(\"li\", _hoisted_1, [\n _createVNode(\"span\", {\n class: \"list-bubbles mr-2\",\n style: { opacity: _ctx.user.invitedEmail ? '.5' : '1' }\n }, [\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button-sm p-button-secondary no-click\",\n style: {\"--size-bubble\":\"40px\"}\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.userInitials), 1)\n ]),\n _: 1\n })\n ], 4),\n _createVNode(\"div\", {\n style: { opacity: _ctx.user.invitedEmail ? '.5' : '1' },\n class: \"d-flex flex-column align-items-center justify-content-between mr-auto\"\n }, [\n _createVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.user.email ?? _ctx.user.invitedEmail), 1)\n ], 4),\n (_ctx.isOwner)\n ? (_openBlock(), _createBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.$t(\"AppResource.Owner\")), 1))\n : (_ctx.isConfirmed)\n ? (_openBlock(), _createBlock(_component_ElDropdown, {\n key: 1,\n trigger: \"hover\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, { style: {\"width\":\"240px\"} }, {\n default: _withCtx(() => [\n (_ctx.isMeTheOwner)\n ? (_openBlock(), _createBlock(_component_ElDropdownItem, {\n key: 0,\n onClick: _withModifiers(_ctx.handleTransferOwnership, [\"prevent\",\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_4, _toDisplayString(_ctx.$t(\"AppResource.MakeOwner\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_ElDropdownItem, {\n onClick: _withModifiers(_ctx.handleDeleteSharingUser, [\"prevent\",\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_5, _toDisplayString(_ctx.$t(\"AppResource.Remove\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_Button, { class: \"p-button-text p-button-sm\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Collaborator\")), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(_component_ElDropdown, {\n key: 2,\n trigger: \"hover\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, { style: {\"width\":\"240px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_ElDropdownItem, {\n onClick: _withModifiers(_ctx.handleDeleteSharingUser, [\"prevent\",\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResource.Remove\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(_component_Button, { class: \"p-button-text p-button-sm\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.InvitePending\")), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ]))\n}","import { Vue, Options } from 'vue-class-component';\nimport { PropType } from 'vue';\n\nimport {\n PlantSharingDTO,\n UserDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { getUserInitialsForBubble } from '@/core/utils/utils';\nimport { mapState } from 'vuex';\nimport { AccountInfo } from '@azure/msal-browser';\n\n@Options({\n name: 'UserItem',\n props: {\n user: {\n required: true,\n type: Object as PropType,\n },\n isOwner: {\n type: Boolean,\n },\n isMeTheOwner: {\n type: Boolean,\n },\n },\n emits: ['delete-user', 'transfer-ownership'],\n computed: {\n ...mapState(['account']),\n },\n})\nexport default class UserItem extends Vue {\n user!: PlantSharingDTO | UserDTO;\n isOwner!: boolean;\n isMeTheOwner!: boolean;\n account!: AccountInfo;\n\n get isUserMe() {\n return (\n ((this.user as PlantSharingDTO).userId || (this.user as UserDTO).id) ===\n this.account.localAccountId\n );\n }\n\n get isConfirmed() {\n if ('confirmed' in this.user) {\n return !!this.user.confirmed;\n }\n return false;\n }\n\n get userInitials() {\n return getUserInitialsForBubble(this.user);\n }\n\n get userDisplayName() {\n let displayName = '';\n\n if (this.user.name) {\n displayName += this.user.name;\n }\n\n if (this.user.surname) {\n displayName += ` ${this.user.surname}`;\n }\n\n return displayName;\n }\n\n handleDeleteSharingUser() {\n this.$emit('delete-user', this.user);\n }\n\n handleTransferOwnership() {\n this.$emit('transfer-ownership', this.user);\n }\n}\n","import { render } from \"./UserItem.vue?vue&type=template&id=6b908cae&ts=true\"\nimport script from \"./UserItem.ts?vue&type=script&lang=ts\"\nexport * from \"./UserItem.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 { PropType } from 'vue';\nimport { mapState } from 'vuex';\nimport UserItem from './UserItem/UserItem.vue';\nimport { AccountInfo } from '@azure/msal-browser';\nimport plantsClient from '@/core/services/plants';\nimport { Vue, Options } from 'vue-class-component';\nimport {\n PlantDetailDTO,\n PlantSharingDTO,\n TransferOwnershipDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { getUserInitialsForBubble } from '@/core/utils/utils';\nimport ConfirmDeleteUser from './ConfirmDeleteUser/ConfirmDeleteUser.vue';\nimport DialogConfirmTransferOwnership from '@/views/components/DialogConfirmTransferOwnership/DialogConfirmTransferOwnership.vue';\n\n@Options({\n name: 'MenuSharing',\n props: {\n plant: {\n type: Object as PropType,\n required: true,\n },\n },\n components: {\n UserItem,\n ConfirmDeleteUser,\n DialogConfirmTransferOwnership,\n },\n emits: ['add-invited-user', 'remove-sharing-user'],\n computed: {\n ...mapState(['account']),\n },\n})\nexport default class MenuSharing extends Vue {\n plant!: PlantDetailDTO;\n getUserInitials = getUserInitialsForBubble;\n\n isLoading = false;\n isPopperVisible = false;\n isConfirmDeleteUserVisible = false;\n isVisibleTransferOwnershipConfirm = false;\n\n doShow = false;\n newUserToShare: string | null = null;\n\n tempUser: PlantSharingDTO | null = null;\n account!: AccountInfo;\n\n get isMeTheOwner() {\n return this.plant.owner?.id === this.account?.localAccountId;\n }\n\n get plantName() {\n if (this.plant) {\n return this.plant.name;\n }\n\n return '';\n }\n\n togglePopper() {\n this.isPopperVisible = !this.isPopperVisible;\n }\n\n async invitePerson() {\n this.isLoading = true;\n\n try {\n await plantsClient.sharingPOST(\n this.plant.desktopId ?? -1,\n this.newUserToShare ?? ''\n );\n\n this.$emit('add-invited-user', this.newUserToShare);\n this.newUserToShare = '';\n } catch (error) {\n console.log(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.isLoading = false;\n }\n }\n\n async handleDeleteUser(user: PlantSharingDTO) {\n this.toggleConfirmDeleteUser();\n this.tempUser = user;\n }\n\n async handleTransferOwnership(user: PlantSharingDTO) {\n this.toggleTransferOwnershipConfirm();\n this.tempUser = user;\n }\n\n toggleConfirmDeleteUser() {\n this.isConfirmDeleteUserVisible = !this.isConfirmDeleteUserVisible;\n this.isPopperVisible = !this.isPopperVisible;\n }\n\n toggleTransferOwnershipConfirm() {\n this.isVisibleTransferOwnershipConfirm = !this\n .isVisibleTransferOwnershipConfirm;\n this.isPopperVisible = !this.isPopperVisible;\n }\n\n async deleteUser() {\n this.isLoading = true;\n\n try {\n await plantsClient.sharingDELETE(\n this.plant.desktopId ?? -1,\n this.tempUser?.confirmed\n ? this.tempUser?.email\n : this.tempUser?.invitedEmail\n );\n if (this.tempUser?.userId === this.account.localAccountId) {\n this.$router.push({\n name: 'page-plants-hub',\n });\n } else {\n this.$emit('remove-sharing-user', this.tempUser);\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.isLoading = false;\n this.tempUser = null;\n }\n }\n\n async transferOwnership(password: string) {\n this.isLoading = true;\n\n try {\n await plantsClient.transferOwnership(\n this.plant.desktopId ?? -1,\n this.tempUser?.confirmed\n ? this.tempUser?.email\n : this.tempUser?.invitedEmail,\n new TransferOwnershipDTO({\n shouldCurrentUserRightsBeRemoved: false,\n password,\n })\n );\n this.$router.push({ name: 'page-plants-hub' });\n } catch (error) {\n let message = this.$t('general.operationError');\n switch (error.status) {\n case 400:\n message = this.$t('general.invalidPassword');\n break;\n }\n this.$toast.add({\n severity: 'error',\n summary: message,\n closable: true,\n life: 3000,\n });\n } finally {\n this.isLoading = false;\n this.tempUser = null;\n }\n }\n}\n","import { render } from \"./MenuSharing.vue?vue&type=template&id=1af167c6&ts=true\"\nimport script from \"./MenuSharing.ts?vue&type=script&lang=ts\"\nexport * from \"./MenuSharing.ts?vue&type=script&lang=ts\"\n\nimport \"./MenuSharing.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 { 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__","module.exports = __webpack_public_path__ + \"img/icon-alert-triangle-outline.e4ec6016.svg\";","module.exports = __webpack_public_path__ + \"img/ImagesMHS1.905aa28c.png\";","module.exports = __webpack_public_path__ + \"img/icon-close.87d20c21.svg\";","module.exports = __webpack_public_path__ + \"img/icon-security.348daf12.svg\";","module.exports = __webpack_public_path__ + \"img/icon-connected-server.8dcc623c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-staircase.35c161c5.svg\";","module.exports = __webpack_public_path__ + \"img/icon-lock.8a711cb2.svg\";","module.exports = __webpack_public_path__ + \"img/icon-thermostat.dd8c3261.svg\";","module.exports = __webpack_public_path__ + \"img/icon-room.0000d9fd.svg\";","module.exports = __webpack_public_path__ + \"img/icon-book.356ba9c9.svg\";","module.exports = __webpack_public_path__ + \"img/icon-user.5b7b44ae.svg\";","module.exports = __webpack_public_path__ + \"img/icon-add-circle-outline.37b9f1a7.svg\";","module.exports = __webpack_public_path__ + \"img/icon-failed-full.71b91db3.svg\";","module.exports = __webpack_public_path__ + \"img/icon_command_enter.b137fbf5.svg\";","module.exports = __webpack_public_path__ + \"img/icon-entrance.e9394a23.svg\";","module.exports = __webpack_public_path__ + \"img/icon-energy.6218eb17.svg\";","module.exports = __webpack_public_path__ + \"img/icon-scan-qr-code-02.02353839.svg\";","module.exports = __webpack_public_path__ + \"img/icon-duplication-all.2082cf06.svg\";","module.exports = __webpack_public_path__ + \"img/icon-corridor.bfa294ac.svg\";","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!./WizardAutomationPlant.scss?vue&type=style&index=0&lang=scss\"","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","module.exports = __webpack_public_path__ + \"img/icon-wifi-01-1.c4c4f56a.svg\";","module.exports = __webpack_public_path__ + \"img/icon_command_exit.b2fa1a4e.svg\";","module.exports = __webpack_public_path__ + \"img/icon-scene.ac54a2af.svg\";","module.exports = __webpack_public_path__ + \"img/icon-no-view.d400a52f.svg\";","module.exports = __webpack_public_path__ + \"img/icon-player.f26ab061.svg\";","module.exports = __webpack_public_path__ + \"img/icon-group-lights.e1c60001.svg\";","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!./DialogPlantCreate.scss?vue&type=style&index=0&lang=scss\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-0849788d\")\n\n_pushScopeId(\"data-v-0849788d\")\nconst _hoisted_1 = {\n key: 0,\n class: \"badge\"\n}\nconst _hoisted_2 = { class: \"ml-2\" }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) => {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n\n return (_openBlock(), _createBlock(\"div\", {\n class: [\"button-selection\", { disabled: _ctx.disabled, active: _ctx.localValue }],\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.toggleValue()))\n }, [\n (_ctx.localValue)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/icon-check.svg`),\n \"aria-label\": \"icon-blueprint\"\n }, null, 8, [\"src\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_InlineSvgScoped, {\n src: _ctx.icon,\n \"aria-label\": \"icon-blueprint\"\n }, null, 8, [\"src\"]),\n _createVNode(\"span\", _hoisted_2, _toDisplayString(_ctx.label), 1)\n ], 2))\n})","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'ButtonSelection',\n props: {\n modelValue: {\n type: Boolean,\n required: true,\n },\n disabled: {\n type: Boolean,\n default: false,\n required: true,\n },\n icon: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: true,\n },\n },\n emits: ['update:modelValue'],\n})\nexport default class ToggleSwitchButton extends Vue {\n modelValue?: boolean;\n disabled?: boolean;\n icon !: string;\n label !: string;\n\n get localValue (){\n return this.modelValue ?? false\n }\n set localValue (value: boolean){\n if (this.disabled) return;\n this.$emit('update:modelValue', value);\n }\n\n toggleValue() {\n this.localValue = !this.localValue;\n }\n}\n","import { render } from \"./ButtonSelection.vue?vue&type=template&id=0849788d&scoped=true&ts=true\"\nimport script from \"./ButtonSelection.ts?vue&type=script&lang=ts\"\nexport * from \"./ButtonSelection.ts?vue&type=script&lang=ts\"\n\nimport \"./ButtonSelection.scss?vue&type=style&index=0&id=0849788d&lang=scss&scoped=true\"\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],['__scopeId',\"data-v-0849788d\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/icon-ban-light.7cc014d7.svg\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = { class: \"p-field\" }\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_6 = { class: \"dialog-confirm__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_InputText = _resolveComponent(\"InputText\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.isDialogVisible = $event)),\n onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert-medium-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.TransferOwnership\")), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t(\"AppResource.TransferOwnershipPasswordRequest\", {\n plantName: _ctx.plantName,\n })), 1),\n _createVNode(\"form\", {\n class: \"w-100 mb-4\",\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(() => {}, [\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_InputText, {\n type: \"password\",\n class: \"w-100\",\n modelValue: _ctx.password,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.password = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ], 32),\n _hoisted_5,\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary text-uppercase mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.doConfirm,\n disabled: _ctx.isConfirmDisabled\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Confirm\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\", \"disabled\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","import { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'DialogConfirmTransferOwnership',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n plantName: {\n type: String,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n },\n },\n emits: ['hide-dialog', 'confirm'],\n})\nexport default class DialogConfirmTransferOwnership extends Vue {\n isVisible!: boolean;\n isDialogVisible = false;\n password = '';\n\n get isConfirmDisabled() {\n return !this.password;\n }\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n\n this.$nextTick(() => {\n this.password = '';\n });\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n doConfirm() {\n this.$emit('confirm', this.password);\n this.handleHideDialog();\n }\n}\n","import { render } from \"./DialogConfirmTransferOwnership.vue?vue&type=template&id=486a7d3d&ts=true\"\nimport script from \"./DialogConfirmTransferOwnership.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogConfirmTransferOwnership.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__","module.exports = __webpack_public_path__ + \"img/icon-edit-page.8332bf81.svg\";","module.exports = __webpack_public_path__ + \"img/icon-info-circle.22d5a45a.svg\";","module.exports = __webpack_public_path__ + \"img/icon-thermo.2a08b930.svg\";","module.exports = __webpack_public_path__ + \"img/icon-notification.15686f96.svg\";","module.exports = __webpack_public_path__ + \"img/icon-command.3f00fc4d.svg\";","module.exports = __webpack_public_path__ + \"img/icon-alert-medium-full.bcb368fc.svg\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, Fragment as _Fragment, 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: 3,\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_WizardPlantTypeSelection = _resolveComponent(\"WizardPlantTypeSelection\")\n const _component_WizardAutomationPlant = _resolveComponent(\"WizardAutomationPlant\")\n const _component_WizardEntrancePlant = _resolveComponent(\"WizardEntrancePlant\")\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[5] || (_cache[5] = ($event: any) => (_ctx.isDialogVisible = $event)),\n showHeader: false,\n modal: true,\n onHide: _ctx.doHideDialog,\n class: \"dialog-custom dialog-plant-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 (_ctx.plantCreateSteps == _ctx.PlantCreateSteps.TYPE_SELECTION)\n ? (_openBlock(), _createBlock(_Fragment, { key: 0 }, [\n _createVNode(_component_WizardPlantTypeSelection, {\n plantType: _ctx.selectedPlantType,\n \"onUpdate:plantType\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.selectedPlantType = $event)),\n residentialType: _ctx.selectedResidentialType,\n \"onUpdate:residentialType\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.selectedResidentialType = $event))\n }, null, 8, [\"plantType\", \"residentialType\"]),\n _createVNode(\"footer\", _hoisted_2, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleContinueButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ])\n ], 64))\n : _createCommentVNode(\"\", true),\n (_ctx.plantCreateSteps == _ctx.PlantCreateSteps.WIZARD_AUTOMATION)\n ? (_openBlock(), _createBlock(_component_WizardAutomationPlant, {\n key: 1,\n plantId: _ctx.localPlantId,\n onUpdate: _ctx.updateId,\n onPlantEdited: _ctx.onPlantEdited,\n onExitWizard: _cache[3] || (_cache[3] = ($event: any) => (_ctx.plantCreateSteps = _ctx.PlantCreateSteps.TYPE_SELECTION))\n }, null, 8, [\"plantId\", \"onUpdate\", \"onPlantEdited\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.plantCreateSteps == _ctx.PlantCreateSteps.WIZARD_ENTRANCE)\n ? (_openBlock(), _createBlock(_component_WizardEntrancePlant, {\n key: 2,\n plantId: _ctx.localPlantId,\n isEdit: _ctx.isEdit,\n onUpdate: _ctx.updateId,\n onPlantEdited: _ctx.onPlantEdited,\n onExitWizard: _cache[4] || (_cache[4] = ($event: any) => (_ctx.plantCreateSteps = _ctx.PlantCreateSteps.TYPE_SELECTION))\n }, null, 8, [\"plantId\", \"isEdit\", \"onUpdate\", \"onPlantEdited\"]))\n : _createCommentVNode(\"\", true),\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 { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__title mb-0\" }\nconst _hoisted_2 = { class: \"fs-18 text-gray\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 330px)\"} }\nconst _hoisted_5 = { class: \"plant-type-selection\" }\nconst _hoisted_6 = { class: \"centered\" }\nconst _hoisted_7 = { class: \"px-3 mt-3 text-dark\" }\nconst _hoisted_8 = { class: \"text-dark\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"residential-plant-type\"\n}\nconst _hoisted_10 = { class: \"mx-3\" }\nconst _hoisted_11 = { class: \"text-dark\" }\nconst _hoisted_12 = { class: \"text-gray\" }\nconst _hoisted_13 = { class: \"residential-type-card__content\" }\nconst _hoisted_14 = { class: \"residential-type-card__icon bt-icon\" }\nconst _hoisted_15 = { class: \"residential-type-card__head ml-4\" }\nconst _hoisted_16 = { class: \"text-gray\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SelectButton = _resolveComponent(\"SelectButton\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Card = _resolveComponent(\"Card\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", {\n \"data-plant\": _ctx.$attrs.plantId,\n class: \"dialog-custom__header\"\n }, [\n _createVNode(\"h1\", _hoisted_1, _toDisplayString(_ctx.$t(\"AppResource.Typeofplant\")), 1),\n _createVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.TypeofplantDescription\").toUpperCase()), 1)\n ], 8, [\"data-plant\"]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.pt,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.pt = $event)),\n options: _ctx.plantTypesImages,\n optionLabel: \"value\",\n optionValue: \"value\",\n class: \"p-selectbutton--blocks p-selectbutton--img-only m-3\"\n }, {\n option: _withCtx((slotProps) => [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"img\", {\n src: slotProps.option.imageURLs[0],\n alt: \"img\"\n }, null, 8, [\"src\"]),\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"strong\", null, _toDisplayString(slotProps.option.title), 1)\n ]),\n _createVNode(\"div\", _hoisted_8, _toDisplayString(slotProps.option.subTitle), 1)\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"options\"]),\n (_ctx.pt == _ctx.Type.ENTRANCE_PLANT)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_9, [\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"h4\", _hoisted_11, _toDisplayString(_ctx.$t(\"AppResourceEP.ChooseEntrancePlantTypeTitle\")), 1),\n _createVNode(\"p\", _hoisted_12, _toDisplayString(_ctx.$t(\"AppResourceEP.ChooseEntrancePlantTypeDescription\")), 1)\n ]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.residentialTypesButtons, (button, i) => {\n return (_openBlock(), _createBlock(_component_Card, {\n key: i,\n class: [\"residential-type-card m-3\", {'residential-type-card--selected-type': button.value == _ctx.rt}],\n onClick: ($event: any) => (_ctx.changeRtValue(button.value))\n }, {\n content: _withCtx(() => [\n _createVNode(\"div\", _hoisted_13, [\n _createVNode(\"span\", _hoisted_14, [\n _createVNode(_component_InlineSvgScoped, {\n src: button.imageURLs,\n \"aria-label\": \"icon-badge\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"div\", _hoisted_15, [\n _createVNode(\"h5\", null, _toDisplayString(button.title), 1),\n _createVNode(\"small\", _hoisted_16, _toDisplayString(button.subTitle), 1)\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"onClick\", \"class\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport { PlantType } from '@/../client-generator/generated-clients/plants';\nimport { ResidentialTypePlant } from '@/core/utils/EntrancePlant/entrance-plant.utils';\n\n@Options({\n name: 'WizardPlantTypeSelection',\n props: {\n plantType: {\n required: true,\n type: Number as () => PlantType,\n },\n residentialType: {\n required: true,\n type: Number as () => ResidentialTypePlant,\n },\n },\n watch: {\n plantType: function (newVal: PlantType) {\n if (newVal === PlantType.ENTRANCE_PLANT) {\n this.rt = ResidentialTypePlant.NEW_PLANT;\n }\n }\n },\n emits: ['update:plantType', 'update:residentialType'],\n})\nexport default class WizardPlantTypeSelection extends Vue {\n plantType!: PlantType;\n residentialType!: ResidentialTypePlant;\n\n Type = PlantType;\n\n get pt() {\n return this.plantType;\n }\n\n set pt(val) {\n this.$emit('update:plantType', val);\n }\n\n get rt() {\n return this.residentialType;\n }\n\n set rt(val) {\n this.$emit('update:residentialType', val);\n }\n\n get plantTypesImages() {\n return [\n {\n imageURLs: [require('@/assets/images/plants/plantType/smart-home.jpg')],\n value: PlantType.AUTOMATION_PLANT,\n title: this.$t('AppResourceEP.DomoticSmartHome').toString(),\n subTitle: `${this.$t('AppResource.MxServer').toString()}, ${this.$t(\n 'AppResource.MyHomeServer1'\n ).toString()}`,\n },\n {\n imageURLs: [\n require('@/assets/images/entrancePlants/plantType/enrtance-plant.webp'),\n ],\n value: PlantType.ENTRANCE_PLANT,\n title: this.$t('AppResourceEP.ResidentialDoorEntrySystem').toString(),\n subTitle: this.$t('AppResourceEP.NewPeDevice').toString(),\n },\n ];\n }\n\n get residentialTypesButtons() {\n return [\n {\n imageURLs: require('@/assets/images/icons/icon-add.svg'),\n value: ResidentialTypePlant.NEW_PLANT,\n title: this.$t('AppResourceEP.EntrancePlantNewTitle').toString(),\n subTitle: `${this.$t('AppResourceEP.EntrancePlantNewDescription').toString()}`,\n },\n {\n imageURLs:require('@/assets/images/entrancePlants/icon-plant-configured.svg'),\n value: ResidentialTypePlant.CONFIGURED_PLANT,\n title: this.$t('AppResourceEP.EntrancePlantConfiguredTitle').toString(),\n subTitle: this.$t('AppResourceEP.EntrancePlantConfiguredDescription').toString(),\n },\n ];\n }\n\n changeRtValue(value: ResidentialTypePlant) {\n if(value === ResidentialTypePlant.NEW_PLANT){\n this.rt = value;\n }\n else {\n const faqUrl = \"https://qna.legrand.com/linea-5000/b2e83fb2-e7f2-4d9a-b106-62fe3b444f8f/LIN018?\";\n window.open(faqUrl, \"_blank\");\n }\n }\n}\n","import { render } from \"./WizardPlantTypeSelection.vue?vue&type=template&id=1dfca87f&ts=true\"\nimport script from \"./WizardPlantTypeSelection.ts?vue&type=script&lang=ts\"\nexport * from \"./WizardPlantTypeSelection.ts?vue&type=script&lang=ts\"\n\nimport \"./WizardPlantTypeSelection.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 { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__footer\" }\nconst _hoisted_2 = {\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_Button = _resolveComponent(\"Button\")\n const _component_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.dialogStepComponent), {\n plant: _ctx.plant,\n plantId: _ctx.plantId,\n onIsLoading: _ctx.handleStepLoading,\n onNextEnabled: _ctx.handleNextEnabledChange\n }, null, 8, [\"plant\", \"plantId\", \"onIsLoading\", \"onNextEnabled\"])),\n _createVNode(\"footer\", _hoisted_1, [\n (_ctx.isBackButtonVisible)\n ? (_openBlock(), _createBlock(_component_Button, {\n key: 0,\n onClick: _ctx.handleStepBack,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Button, {\n onClick: _ctx.handleButtonSubmitAction,\n label: _ctx.buttonSubmitLabel,\n disabled: \n !_ctx.nextEnabled ||\n (_ctx.dialogStep === 2 && _ctx.plant.mxServer?.model == undefined)\n ,\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\", \"disabled\"])\n ]),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_2, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, withModifiers as _withModifiers, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { class: \"dialog-plant-create__grid\" }\nconst _hoisted_5 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_6 = { class: \"mr-3\" }\nconst _hoisted_7 = { class: \"p-field\" }\nconst _hoisted_8 = {\n class: \"p-field-label\",\n for: \"plantname\"\n}\nconst _hoisted_9 = {\n for: \"name\",\n class: \"fs-13 label-error\"\n}\nconst _hoisted_10 = { class: \"p-field\" }\nconst _hoisted_11 = {\n class: \"p-field-label\",\n for: \"country\"\n}\nconst _hoisted_12 = { class: \"p-field\" }\nconst _hoisted_13 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_14 = { class: \"p-field mr-3 mb-4\" }\nconst _hoisted_15 = { class: \"p-field-label mb-4 ml-3\" }\nconst _hoisted_16 = { class: \"p-field\" }\nconst _hoisted_17 = { class: \"p-field-label\" }\nconst _hoisted_18 = { class: \"p-field-with-button\" }\nconst _hoisted_19 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_20 = { class: \"ml-2\" }\nconst _hoisted_21 = { class: \"menu-filters mt-3\" }\nconst _hoisted_22 = { class: \"menu-filters__buttons list-unstyled p-select-button\" }\nconst _hoisted_23 = { class: \"p-button-label\" }\nconst _hoisted_24 = {\n key: 0,\n class: \"bt-icon bt-icon--2xs p-button-icon-hidden\"\n}\nconst _hoisted_25 = { class: \"ml-3 bt-icon bt-icon--2xs\" }\nconst _hoisted_26 = { key: 1 }\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_SelectButton = _resolveComponent(\"SelectButton\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.title), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t(\"AppResource.PlantNameUpper\")), 1),\n _createVNode(_component_InputText, {\n id: \"plantname\",\n type: \"text\",\n class: [\"w-100\", { 'input-error': !_ctx.isValidName }],\n modelValue: _ctx.plant.name,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.plant.name = $event))\n }, null, 8, [\"modelValue\", \"class\"]),\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.invalidNameReason), 1)\n ]),\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t(\"AppResource.PlantCountry\")), 1),\n _createVNode(_component_Dropdown, {\n id: \"country\",\n modelValue: _ctx.plant.country,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.plant.country = $event)),\n options: _ctx.countries,\n optionLabel: \"name\",\n optionValue: \"code\",\n class: \"w-100\"\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t(\"AppResource.HomeAddressUpper\")), 1),\n _createVNode(_component_InputText, {\n id: \"address\",\n type: \"text\",\n class: \"w-100\",\n modelValue: _ctx.plant.address,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.plant.address = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(\"label\", _hoisted_15, _toDisplayString(_ctx.$t(\"AppResource.PlantIcon\")), 1),\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.plant.icon,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.plant.icon = $event)),\n options: _ctx.images,\n optionLabel: \"value\",\n optionValue: \"value\",\n class: \"p-selectbutton--blocks p-selectbutton--img-only pl-3\"\n }, {\n option: _withCtx((slotProps) => [\n _createVNode(\"img\", {\n class: \"automation\",\n src: slotProps.option.imageURLs[0],\n srcset: \n slotProps.option.imageURLs\n .length === 1\n ? `${slotProps.option.imageURLs[0]}`\n : `${slotProps.option.imageURLs[0]}, ${slotProps.option.imageURLs[1]} 2x, ${slotProps.option.imageURLs[2]} 3x`\n ,\n alt: \"img\"\n }, null, 8, [\"src\", \"srcset\"])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"options\"])\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"div\", _hoisted_16, [\n _createVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t(\"AppResource.PlantGroups\")), 1),\n _createVNode(\"form\", {\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.addTag && _ctx.addTag(...args)), [\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_18, [\n _createVNode(_component_InputText, {\n type: \"text\",\n placeholder: _ctx.$t('newPlantDialog.insertGroup'),\n class: \"w-100\",\n modelValue: _ctx.newTagName,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_ctx.newTagName = $event))\n }, null, 8, [\"placeholder\", \"modelValue\"]),\n _createVNode(_component_Button, {\n class: \"p-button-outlined p-button-rounded p-button-field\",\n type: \"submit\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_19, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-plus-outline.svg`)\n ,\n \"aria-label\": \"icon-plus-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(\"AppResource.Add\")), 1)\n ]),\n _: 1\n })\n ])\n ], 32),\n _createVNode(\"div\", _hoisted_21, [\n _createVNode(\"ul\", _hoisted_22, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.tempTags, (tag) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: [\"p-button has--hidden-icon pr-3\", { 'p-highlight': _ctx.isTagSelected(tag) }],\n key: tag.key,\n onClick: ($event: any) => (_ctx.toggleTagSelection(tag))\n }, [\n _createVNode(\"span\", _hoisted_23, [\n _createTextVNode(_toDisplayString(tag.value) + \" \", 1),\n (_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(\"span\", _hoisted_24, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-close.svg')\n ,\n \"aria-label\": \"icon-close\"\n }, null, 8, [\"src\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(\"span\", _hoisted_25, [\n (!_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(_component_InlineSvgScoped, {\n key: 0,\n src: \n require('@/assets/images/icons/icon-add.svg')\n ,\n \"aria-label\": \"icon-close\"\n }, null, 8, [\"src\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(\"span\", _hoisted_26, \"✓\"))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 10, [\"onClick\"]))\n }), 128))\n ])\n ])\n ])\n ])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n PlantDTO,\n PlantIconEnum,\n PlantTagDTO,\n PlantType,\n} from '@/../client-generator/generated-clients/plants';\nimport debounce from 'lodash.debounce';\nimport plantsClient from '@/core/services/plants';\nimport {\n getPlantIconImages,\n getPlantIconImageUrls,\n NAME_VALIDATION_DEBOUNCE_TIME,\n} from '@/core/utils/utils';\nimport {\n Country,\n PlantEntityType,\n} from '@/../client-generator/generated-clients/configurations';\n\nimport { SET_APP_LOADING } from '@/core/store/action-types';\nimport { NamingService } from '@/core/services/naming.service';\nimport configurationsClient from '@/core/services/configurations-service';\nimport { mapGetters } from 'vuex';\n\nconst kebabCase = require('lodash.kebabcase');\n\n// get the max scale to fit\nfunction drawScaledImage(ctx: any, img: any) {\n var scale = Math.max(\n ctx.canvas.width / img.width,\n ctx.canvas.height / img.height\n );\n var x = (ctx.canvas.width - img.width * scale) / 2;\n var y = (ctx.canvas.height - img.height * scale) / 2;\n ctx.drawImage(img, x, y, img.width * scale, img.height * scale);\n}\n\n@Options({\n name: 'DialogPlantCreateStep1',\n props: {\n plant: {\n required: true,\n type: Object as () => PlantDTO,\n },\n plantId: {\n type: Number,\n required: false,\n },\n preSelectedTags: {\n type: Object as () => PlantTagDTO[],\n },\n },\n watch: {\n 'plant.name': function () {\n this.verifyValidityOfName();\n },\n 'plant.address': function () {\n this.checkNextButtonState();\n }\n },\n emits: ['is-loading', 'next-enabled'],\n computed: {\n ...mapGetters('UI', ['plantEditImageCustomEnabled']),\n },\n})\nexport default class DialogPlantCreateStep1 extends Vue {\n plant!: PlantDTO;\n initialName!: string;\n preSelectedTags!: PlantTagDTO[] | undefined;\n plantEditImageCustomEnabled!: boolean;\n\n plantId: number | null = null;\n\n tempTags: PlantTagDTO[] = [];\n countries: Country[] = [];\n newTagName = '';\n\n // Naming validation props\n isValidName = true;\n invalidNameReason: string = '';\n\n get title() {\n return this.$t(\n !this.plantId ? 'AppResource.CreateThePlant' : 'AppResource.PlantInfo'\n ).toString();\n }\n\n get isCreateTagDisabled() {\n return !this.newTagName.trim();\n }\n\n get images() {\n const images = [\n ...getPlantIconImages().map((image) => ({\n imageURLs: getPlantIconImageUrls(image),\n value: image.value,\n })),\n ];\n if (this.plantEditImageCustomEnabled)\n images.push({\n imageURLs: [\n this.plant.customIconDataUrl ||\n (this.plant as any).customIconImageUrl ||\n require(`@/assets/images/plants/add-your-image-here.jpg`),\n ],\n value: PlantIconEnum.ICON_CUSTOM,\n });\n return images;\n }\n\n created() {\n if (this.plant.tags && this.plant.tags.length > 0) {\n this.tempTags = this.plant.tags;\n }\n\n if (\n !this.tempTags ||\n this.tempTags.length === 0 ||\n this.countries.length === 0\n ) {\n this.$emit('is-loading', true);\n Promise.all([this.fetchPlantTags(), this.fetchCountries()]).finally(\n () => {\n this.$emit('is-loading', false);\n }\n );\n }\n }\n\n async beforeMount() {\n this.verifyValidityOfName = debounce(\n this.verifyValidityOfName,\n NAME_VALIDATION_DEBOUNCE_TIME\n );\n this.checkNextButtonState();\n\n NamingService.flushCache();\n await NamingService.prefetchFlatEntities(\n 0, // this must be 0, as from API specification\n PlantEntityType.PLANT\n );\n }\n\n beforeUnmount() {\n document.querySelector('#uploadCustomImageInput')?.remove();\n document\n .querySelector(\n `.el-scrollbar__view .p-button[aria-label=\"${PlantIconEnum.ICON_CUSTOM}\"]`\n )\n ?.removeEventListener('click', this.handlerUploadInput);\n }\n\n async mounted() {\n document\n .querySelector(\n `.el-scrollbar__view .p-button[aria-label=\"${PlantIconEnum.ICON_CUSTOM}\"]`\n )\n ?.addEventListener('click', this.handlerUploadInput);\n }\n\n updated() {\n if (this.plantId && this.plant?.name) this.initialName = this.plant.name;\n }\n\n fileRead(imageBinary: string | undefined) {\n if (!imageBinary) {\n this.plant.icon = undefined;\n }\n this.plant.customIconDataUrl = imageBinary;\n }\n\n async fetchPlantTags() {\n try {\n this.tempTags = await plantsClient.tagsList();\n } catch (error) {\n console.log(error);\n }\n }\n\n async fetchCountries() {\n try {\n this.countries = await configurationsClient.countriesAutocomplete(PlantType.AUTOMATION_PLANT);\n } catch (error) {\n console.log(error);\n }\n }\n\n handlerUploadInput(e: any) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n let uploadInput: any = document.querySelector('#uploadCustomImageInput');\n if (!uploadInput) {\n // upload input create\n uploadInput = document.createElement('input');\n uploadInput.id = 'uploadCustomImageInput';\n uploadInput.setAttribute('type', 'file');\n uploadInput.setAttribute('hidden', '');\n uploadInput.setAttribute('accept', '.bmp,.gif,.jpeg,.jpg,.png,.tiff');\n document.body.append(uploadInput);\n\n // upload input change listener\n uploadInput.addEventListener('change', (e: any) => {\n const reader = new FileReader();\n reader.onload = (evLoad) => {\n // reader loaded data url\n let image = new Image();\n image.onload = () => {\n // image loaded for size reason)\n let canvas = document.createElement('CANVAS') as any;\n canvas.width = 680;\n canvas.height = 320;\n let ctx = canvas.getContext('2d');\n // use canvas and image for scaling the size\n drawScaledImage(ctx, image);\n this.fileRead(canvas.toDataURL());\n };\n image.src = evLoad.target?.result as string;\n };\n reader.onerror = (err) => {\n console.error(err);\n };\n\n if (e.target.files.length > 0) {\n reader.readAsDataURL(uploadInput.files[0]);\n } else {\n this.fileRead(undefined);\n }\n });\n }\n uploadInput.click();\n }\n\n addTag() {\n this.newTagName = this.newTagName.trim();\n\n if (!this.newTagName) return;\n\n const tagKey = kebabCase(this.newTagName);\n\n if (!this.plant.tags) {\n console.log('plant.tags undefined');\n return;\n }\n if (this.plant.tags.some((t) => t.key == tagKey)) {\n return;\n }\n const newTag = new PlantTagDTO({\n key: tagKey,\n value: this.newTagName,\n });\n this.tempTags.push(newTag);\n this.plant.tags.push(newTag);\n\n this.newTagName = '';\n }\n\n toggleTagSelection(tag: PlantTagDTO) {\n if (!this.plant.tags) {\n console.log('plant.tags undefined');\n return;\n }\n\n const groupIndex = this.plant.tags.findIndex((g) => g.key === tag.key);\n\n if (groupIndex >= 0) {\n this.plant.tags.splice(groupIndex, 1);\n } else {\n this.plant.tags.push(tag);\n }\n }\n\n isTagSelected(tag: PlantTagDTO) {\n return this.plant.tags?.some((x) => x.key === tag.key);\n }\n\n private async verifyValidityOfName() {\n this.$store.dispatch(SET_APP_LOADING, true);\n const validName = NamingService.isValidEntityTypeName(this.plant.name);\n if (this.plant.name && this.initialName !== this.plant.name && !validName) {\n const suggestedName = await NamingService.suggestNextValidEntityName({\n plantId: this.plantId!,\n eType: PlantEntityType.PLANT,\n metadata: { plantSourceName: this.plant.name },\n });\n this.isValidName = validName;\n this.invalidNameReason = this.$t(\n `uniqueNaming.validationErrorWithSuggestion`,\n { suggestedName }\n );\n this.$emit('next-enabled', false);\n } else {\n this.isValidName = true;\n this.invalidNameReason = '';\n this.$emit('next-enabled', true);\n }\n this.checkNextButtonState();\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n\n private checkNextButtonState() {\n if (this.plant.name && this.isValidName && this.plant.address)\n this.$emit('next-enabled', true);\n else this.$emit('next-enabled', false);\n }\n}\n","import { render } from \"./DialogPlantCreateStep1.vue?vue&type=template&id=e3d6eae4&ts=true\"\nimport script from \"./DialogPlantCreateStep1.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogPlantCreateStep1.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__title mb-0\" }\nconst _hoisted_2 = { class: \"fs-18 text-gray\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"dialog-custom__content form-custom\"\n}\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 330px)\"} }\nconst _hoisted_5 = { class: \"centered\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_SelectButton = _resolveComponent(\"SelectButton\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", {\n \"data-plant\": _ctx.$attrs.plantId,\n class: \"dialog-custom__header\"\n }, [\n _createVNode(\"h1\", _hoisted_1, _toDisplayString(_ctx.$t(\"AppResource.Associatethegateway\")), 1),\n _createVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.ChoosegatewayTitle\")), 1)\n ], 8, [\"data-plant\"]),\n (_ctx.plant.mxServer)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.plant.mxServer.model,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.plant.mxServer.model = $event)),\n options: _ctx.plantServerImages,\n optionLabel: \"value\",\n optionValue: \"value\",\n class: \"p-selectbutton--blocks p-selectbutton--img-only\"\n }, {\n option: _withCtx((slotProps) => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"img\", {\n src: slotProps.option.imageURLs[0],\n alt: \"img\"\n }, null, 8, [\"src\"]),\n _createVNode(\"div\", {\n class: [\"p-3\", {'text-dark': _ctx.plant.mxServer.model !== slotProps.option.value }]\n }, _toDisplayString(_ctx.$t(`AppResource.${_ctx.ServerModel[slotProps.option.value]}`)), 3)\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"options\"])\n ]),\n _: 1\n })\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n PlantDTO,\n ServerModel,\n} from '@/../client-generator/generated-clients/plants';\nimport { getRoomIconFromType } from '@/core/utils/utils';\nimport { DefaultRoomDTO } from '@/../client-generator/generated-clients/configurations';\n\nimport NumberButtons from '@/views/components/NumberButtons/NumberButtons.vue';\nimport { mapGetters } from 'vuex';\n\n@Options({\n name: 'DialogPlantCreateStep2',\n props: {\n plant: {\n required: true,\n type: Object as () => PlantDTO,\n },\n },\n computed: {\n ...mapGetters('UI', ['plantServerUseMHS1Only']),\n },\n components: {\n NumberButtons,\n },\n emits: ['is-loading'],\n})\nexport default class DialogPlantCreateStep2 extends Vue {\n plant!: PlantDTO;\n ServerModel = ServerModel;\n roomTypes: DefaultRoomDTO[] = [];\n getRoomIcon = getRoomIconFromType;\n private readonly plantServerUseMHS1Only!: boolean;\n\n get plantServerImages() {\n return [\n {\n imageURLs: [\n require('@/assets/images/plants/server/ImagesMX-300EOS.png'),\n ],\n value: ServerModel.Classe300EOS,\n },\n {\n imageURLs: [require('@/assets/images/plants/server/ImagesMHS1.png')],\n value: ServerModel.MyHomeServer1,\n },\n ].filter((x) =>\n this.plantServerUseMHS1Only ? x.value === ServerModel.MyHomeServer1 : true\n );\n }\n\n async created() {}\n\n updatePlantRoom(room: DefaultRoomDTO) {\n const plantRoom = this.plant.roomsCounts?.find(\n (rc) => rc.type === room.type\n );\n\n if (!plantRoom) {\n console.log('Plant room not found');\n return;\n }\n\n plantRoom.count = room.count;\n }\n}\n","import { render } from \"./DialogPlantCreateStep2.vue?vue&type=template&id=61d4d610&ts=true\"\nimport script from \"./DialogPlantCreateStep2.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogPlantCreateStep2.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 {\n PlantDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport DialogPlantCreateStep1 from './DialogAutomationPlantCreate/DialogPlantCreateStep1/DialogPlantCreateStep1.vue';\nimport DialogPlantCreateStep2 from './DialogAutomationPlantCreate/DialogPlantCreateStep2/DialogPlantCreateStep2.vue';\nimport DialogPlantCreateStep3 from './DialogAutomationPlantCreate/DialogPlantCreateStep3/DialogPlantCreateStep3.vue';\n\nimport plantsClient from '@/core/services/plants';\nimport {\n SET_SELECTED_PLANT_ID,\n} from '@/core/store/action-types';\nimport { defaultNewPlant, cloneObject } from '@/core/utils/utils';\n@Options({\n name: 'WizardAutomationPLant',\n components: {\n DialogPlantCreateStep1,\n DialogPlantCreateStep2,\n DialogPlantCreateStep3,\n },\n props: {\n plantId: {\n type: Number,\n required: false,\n },\n },\n emits: ['exit-wizard', 'plant-edited', 'update'],\n})\nexport default class WizardAutomationPLant extends Vue {\n plantId: number | null = null;\n isLoading = false;\n nextEnabled = true;\n dialogStep = 1;\n plant: PlantDTO = cloneObject(defaultNewPlant);\n\n get dialogStepComponent() {\n return `DialogPlantCreateStep${this.dialogStep}`;\n }\n get buttonSubmitLabel() {\n if (this.plantId) {\n return this.$t('AppResource.Save');\n }\n if (!this.plantId) {\n if (this.dialogStep <= 2) {\n return this.$t('AppResource.Continue');\n }\n }\n return this.$t('AppResource.Create');\n }\n\n get isBackButtonVisible() {\n return this.dialogStep == 1 ? this.plantId ? false : this.$config.ENTRANCE_PLANT_ENABLED : true;\n }\n\n mounted(): void {\n this.initFormPlant();\n }\n\n initFormPlant() {\n if (this.plantId) {\n this.fetchPlantDetails();\n } else {\n this.plant = cloneObject(defaultNewPlant);\n }\n }\n\n handleNextEnabledChange(e: boolean) {\n this.nextEnabled = e;\n }\n\n async fetchPlantDetails() {\n this.isLoading = true;\n\n try {\n this.plant = await plantsClient.plantGET(\n this.plantId as number,\n undefined\n );\n this.plant.roomsCounts = [];\n } catch (error) {\n console.log(error);\n } finally {\n this.isLoading = false;\n }\n }\n\n async handleButtonSubmitAction() {\n if (this.plantId) {\n await this.handleEditPlant();\n } else {\n if (this.dialogStep <= 2) {\n this.dialogStep++;\n } else {\n const createdPlantId = await this.handleCreatePlant();\n if (createdPlantId) {\n this.goToPlantDetail(createdPlantId, true);\n }\n }\n }\n }\n\n handleStepBack() {\n if (this.dialogStep == 1) {\n this.plant = cloneObject(defaultNewPlant);\n this.nextEnabled = true;\n this.$emit(\"exit-wizard\");\n }\n this.dialogStep--;\n }\n\n async handleCreatePlant() {\n let createdPlant = null;\n this.isLoading = true;\n\n try {\n this.plant.roomsCounts = this.plant.roomsCounts?.filter(\n (room) => (room.count as number) > 0\n );\n createdPlant = await plantsClient.plantPOST(this.plant);\n this.$emit('update', createdPlant)\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.isLoading = false;\n }\n\n return createdPlant;\n }\n\n async handleEditPlant() {\n if (!this.plantId) return;\n\n this.isLoading = true;\n\n try {\n await plantsClient.plantPUT(this.plantId, this.plant);\n this.$emit('plant-edited');\n } catch (error) {\n console.log(error);\n } finally {\n this.isLoading = false;\n }\n }\n\n goToPlantDetail(plantId: number | null, isNew = false) {\n this.$nextTick(async () => {\n await this.$store.dispatch(SET_SELECTED_PLANT_ID, plantId);\n this.$router.push({\n name: 'page-plant-dashboard',\n params: { plantId: plantId?.toString() ?? '' },\n });\n\n this.$toast.add({\n severity: 'success',\n summary: this.$t(\n isNew ? 'AppResource.PlantCreated' : 'newPlantDialog.modified'\n ),\n closable: false,\n life: 3000,\n });\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 handleStepLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n}\n","import { render } from \"./WizardAutomationPlant.vue?vue&type=template&id=c0025736&ts=true\"\nimport script from \"./WizardAutomationPlant.ts?vue&type=script&lang=ts\"\nexport * from \"./WizardAutomationPlant.ts?vue&type=script&lang=ts\"\n\nimport \"./WizardAutomationPlant.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 { resolveDynamicComponent as _resolveDynamicComponent, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\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_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_resolveDynamicComponent(_ctx.dialogStepEntrancePlantComponent), {\n ref: _ctx.dialogStepEntrancePlantComponent,\n plant: _ctx.entrancePlant,\n \"plant-id\": _ctx.plantId,\n isEdit: _ctx.isEdit,\n onIsLoading: _ctx.handleStepLoading,\n onOnBack: _ctx.handleBack,\n onOnNext: _ctx.handleNext,\n onPlantEdited: _ctx.handleEditedPlant\n }, null, 8, [\"plant\", \"plant-id\", \"isEdit\", \"onIsLoading\", \"onOnBack\", \"onOnNext\", \"onPlantEdited\"])),\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, withModifiers as _withModifiers, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { class: \"dialog-plant-create__grid\" }\nconst _hoisted_5 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_6 = { class: \"mr-3\" }\nconst _hoisted_7 = { class: \"p-field\" }\nconst _hoisted_8 = {\n class: \"p-field-label\",\n for: \"plantname\"\n}\nconst _hoisted_9 = {\n for: \"name\",\n class: \"fs-13 label-error\"\n}\nconst _hoisted_10 = { class: \"p-field\" }\nconst _hoisted_11 = {\n class: \"p-field-label\",\n for: \"country\"\n}\nconst _hoisted_12 = { class: \"p-field\" }\nconst _hoisted_13 = {\n class: \"p-field-label\",\n for: \"address\"\n}\nconst _hoisted_14 = { class: \"p-field mr-3 mb-4\" }\nconst _hoisted_15 = { class: \"p-field-label mb-4 ml-3\" }\nconst _hoisted_16 = { class: \"p-field\" }\nconst _hoisted_17 = { class: \"p-field-label\" }\nconst _hoisted_18 = { class: \"p-field-with-button\" }\nconst _hoisted_19 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_20 = { class: \"ml-2\" }\nconst _hoisted_21 = { class: \"menu-filters mt-3\" }\nconst _hoisted_22 = { class: \"menu-filters__buttons list-unstyled p-select-button\" }\nconst _hoisted_23 = { class: \"p-button-label\" }\nconst _hoisted_24 = {\n key: 0,\n class: \"bt-icon bt-icon--2xs p-button-icon-hidden\"\n}\nconst _hoisted_25 = { class: \"ml-3 bt-icon bt-icon--2xs\" }\nconst _hoisted_26 = { key: 1 }\nconst _hoisted_27 = { class: \"dialog-custom__footer\" }\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_SelectButton = _resolveComponent(\"SelectButton\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.title), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t(\"AppResource.PlantNameUpper\")), 1),\n _createVNode(_component_InputText, {\n id: \"plantname\",\n type: \"text\",\n class: [\"w-100\", { 'input-error': !_ctx.isValidName }],\n modelValue: _ctx.plant.name,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.plant.name = $event))\n }, null, 8, [\"modelValue\", \"class\"]),\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.invalidNameReason), 1)\n ]),\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t(\"AppResource.PlantCountry\")), 1),\n _createVNode(_component_Dropdown, {\n id: \"country\",\n modelValue: _ctx.plant.timeZone,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.plant.timeZone = $event)),\n options: _ctx.countries,\n optionLabel: \"extendedName\",\n optionValue: \"timeZoneId\",\n class: \"w-100\"\n }, null, 8, [\"modelValue\", \"options\"])\n ]),\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t(\"AppResource.HomeAddressUpper\")), 1),\n _createVNode(_component_InputText, {\n id: \"address\",\n type: \"text\",\n class: \"w-100\",\n modelValue: _ctx.plant.address,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.plant.address = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(\"label\", _hoisted_15, _toDisplayString(_ctx.$t(\"AppResource.PlantIcon\")), 1),\n _createVNode(_component_SelectButton, {\n modelValue: _ctx.plant.icon,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.plant.icon = $event)),\n options: _ctx.images,\n optionLabel: \"value\",\n optionValue: \"value\",\n class: \"p-selectbutton--blocks p-selectbutton--img-only pl-3\"\n }, {\n option: _withCtx((slotProps) => [\n _createVNode(\"img\", {\n src: slotProps.option.imageURLs[0],\n srcset: \n slotProps.option.imageURLs\n .length === 1\n ? `${slotProps.option.imageURLs[0]}`\n : `${slotProps.option.imageURLs[0]}, ${slotProps.option.imageURLs[1]} 2x, ${slotProps.option.imageURLs[2]} 3x`\n ,\n alt: \"img\"\n }, null, 8, [\"src\", \"srcset\"])\n ]),\n _: 1\n }, 8, [\"modelValue\", \"options\"])\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"div\", _hoisted_16, [\n _createVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t(\"AppResource.PlantGroups\")), 1),\n _createVNode(\"form\", {\n onSubmit: _cache[6] || (_cache[6] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.addTag && _ctx.addTag(...args)), [\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_18, [\n _createVNode(_component_InputText, {\n type: \"text\",\n placeholder: _ctx.$t('newPlantDialog.insertGroup'),\n class: \"w-100\",\n modelValue: _ctx.newTagName,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_ctx.newTagName = $event))\n }, null, 8, [\"placeholder\", \"modelValue\"]),\n _createVNode(_component_Button, {\n class: \"p-button-outlined p-button-rounded p-button-field\",\n type: \"submit\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_19, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-plus-outline.svg`)\n ,\n \"aria-label\": \"icon-plus-outline\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(\"AppResource.Add\")), 1)\n ]),\n _: 1\n })\n ])\n ], 32),\n _createVNode(\"div\", _hoisted_21, [\n _createVNode(\"ul\", _hoisted_22, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.tempTags, (tag) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: [\"p-button has--hidden-icon pr-3\", { 'p-highlight': _ctx.isTagSelected(tag) }],\n key: tag.key,\n onClick: ($event: any) => (_ctx.toggleTagSelection(tag))\n }, [\n _createVNode(\"span\", _hoisted_23, [\n _createTextVNode(_toDisplayString(tag.value) + \" \", 1),\n (_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(\"span\", _hoisted_24, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-close.svg')\n ,\n \"aria-label\": \"icon-close\"\n }, null, 8, [\"src\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(\"span\", _hoisted_25, [\n (!_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(_component_InlineSvgScoped, {\n key: 0,\n src: \n require('@/assets/images/icons/icon-add.svg')\n ,\n \"aria-label\": \"icon-close\"\n }, null, 8, [\"src\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.isTagSelected(tag))\n ? (_openBlock(), _createBlock(\"span\", _hoisted_26, \"✓\"))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ], 10, [\"onClick\"]))\n }), 128))\n ])\n ])\n ])\n ])\n ]),\n _createVNode(\"footer\", _hoisted_27, [\n (!_ctx.plantId)\n ? (_openBlock(), _createBlock(_component_Button, {\n key: 0,\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.nextButtonLabel,\n disabled: !_ctx.nextEnabled,\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\", \"disabled\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\nEntrancePlantDetailDTO,\n EntrancePlantHeadCreateDTO,\n EntrancePlantStructureCreateDTO,\n PlantIconEnum,\n PlantTagDTO,\n PlantType,\n} from '@/../client-generator/generated-clients/plants';\nimport debounce from 'lodash.debounce';\nimport plantsClient from '@/core/services/plants';\nimport {\n getEpPlantIconImages,\n getEpPlantIconImageUrls,\n NAME_VALIDATION_DEBOUNCE_TIME,\n} from '@/core/utils/utils';\nimport {\n Country,\n PlantEntityType,\n} from '@/../client-generator/generated-clients/configurations';\n\nimport { NamingService } from '@/core/services/naming.service';\nimport configurationsClient from '@/core/services/configurations-service';\nimport { mapGetters } from 'vuex';\nimport { PropType } from 'vue';\n\nconst kebabCase = require('lodash.kebabcase');\n\n// get the max scale to fit\nfunction drawScaledImage(ctx: any, img: any) {\n var scale = Math.max(\n ctx.canvas.width / img.width,\n ctx.canvas.height / img.height\n );\n var x = (ctx.canvas.width - img.width * scale) / 2;\n var y = (ctx.canvas.height - img.height * scale) / 2;\n ctx.drawImage(img, x, y, img.width * scale, img.height * scale);\n}\n\n@Options({\n name: 'DialogEntrancePlantCreateStep1',\n props: {\n plant: {\n required: true,\n type: Object as PropType,\n },\n plantId: {\n type: Number,\n required: false,\n },\n preSelectedTags: {\n type: Object as PropType,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n 'plant.name': function () {\n this.verifyValidityOfName();\n },\n 'plant.address': function () {\n this.checkNextButtonState();\n },\n 'plant.timeZone': function () {\n this.plant.country = this.countries.find((c: Country) => c.timeZoneId === this.plant.timeZone)?.code;\n }\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {\n ...mapGetters('UI', ['plantEditImageCustomEnabled']),\n },\n})\nexport default class DialogEntrancePlantCreateStep1 extends Vue {\n plant!: EntrancePlantDetailDTO;\n isEdit!: boolean;\n initialName!: string;\n preSelectedTags!: PlantTagDTO[] | undefined;\n plantEditImageCustomEnabled!: boolean;\n\n plantId: number | null = null;\n\n tempTags: PlantTagDTO[] = [];\n countries: Country[] = [];\n newTagName = '';\n nextEnabled = false;\n\n // Naming validation props\n isValidName = true;\n invalidNameReason: string = '';\n\n get title() {\n return this.$t(\n this.plantId ? 'AppResourceEP.EditEntrancePlantDetails' : 'AppResourceEP.CreateEntrancePlant'\n ).toString();\n }\n\n get isCreateTagDisabled() {\n return !this.newTagName.trim();\n }\n\n get images() {\n const images = [\n ...getEpPlantIconImages().map((image) => ({\n imageURLs: getEpPlantIconImageUrls(image),\n value: image.value,\n })),\n ];\n if (this.plantEditImageCustomEnabled)\n images.push({\n imageURLs: [\n this.plant.customIconDataUrl ||\n (this.plant as any).customIconImageUrl ||\n require(`@/assets/images/plants/add-your-image-here.jpg`),\n ],\n value: PlantIconEnum.ICON_CUSTOM,\n });\n return images;\n }\n\n created() {\n if (this.plant.tags && this.plant.tags.length > 0) {\n this.tempTags = this.plant.tags;\n }\n\n if (\n !this.tempTags ||\n this.tempTags.length === 0 ||\n this.countries.length === 0\n ) {\n this.$emit('is-loading', true);\n Promise.all([this.fetchPlantTags(), this.fetchCountries()]).finally(\n () => {\n this.$emit('is-loading', false);\n }\n );\n }\n }\n\n async beforeMount() {\n this.verifyValidityOfName();\n this.checkNextButtonState();\n\n NamingService.flushCache();\n await NamingService.prefetchFlatEntities(\n 0, // this must be 0, as from API specification\n PlantEntityType.PLANT\n );\n }\n\n beforeUnmount() {\n document.querySelector('#uploadCustomImageInput')?.remove();\n document\n .querySelector(\n `.el-scrollbar__view .p-button[aria-label=\"${PlantIconEnum.ICON_CUSTOM}\"]`\n )\n ?.removeEventListener('click', this.handlerUploadInput);\n }\n\n async mounted() {\n document\n .querySelector(\n `.el-scrollbar__view .p-button[aria-label=\"${PlantIconEnum.ICON_CUSTOM}\"]`\n )\n ?.addEventListener('click', this.handlerUploadInput);\n }\n\n updated() {\n if (this.plantId && this.plant?.name) this.initialName = this.plant.name;\n if (!this.plantId) {\n this.plant.timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n this.plant.country = this.countries.find((c: Country) => c.timeZoneId === this.plant.timeZone)?.code;\n }\n }\n\n fileRead(imageBinary: string | undefined) {\n if (!imageBinary) {\n this.plant.icon = undefined;\n }\n this.plant.customIconDataUrl = imageBinary;\n }\n\n async fetchPlantTags() {\n try {\n this.tempTags = await plantsClient.tagsList();\n } catch (error) {\n console.log(error);\n }\n }\n\n async fetchCountries() {\n try {\n this.countries = await configurationsClient.countriesAutocomplete(PlantType.ENTRANCE_PLANT);\n } catch (error) {\n console.log(error);\n }\n }\n\n handlerUploadInput(e: any) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n let uploadInput: any = document.querySelector('#uploadCustomImageInput');\n if (!uploadInput) {\n // upload input create\n uploadInput = document.createElement('input');\n uploadInput.id = 'uploadCustomImageInput';\n uploadInput.setAttribute('type', 'file');\n uploadInput.setAttribute('hidden', '');\n uploadInput.setAttribute('accept', '.bmp,.gif,.jpeg,.jpg,.png,.tiff');\n document.body.append(uploadInput);\n\n // upload input change listener\n uploadInput.addEventListener('change', (e: any) => {\n const reader = new FileReader();\n reader.onload = (evLoad) => {\n // reader loaded data url\n let image = new Image();\n image.onload = () => {\n // image loaded for size reason)\n let canvas = document.createElement('CANVAS') as any;\n canvas.width = 680;\n canvas.height = 320;\n let ctx = canvas.getContext('2d');\n // use canvas and image for scaling the size\n drawScaledImage(ctx, image);\n this.fileRead(canvas.toDataURL());\n };\n image.src = evLoad.target?.result as string;\n };\n reader.onerror = (err) => {\n console.error(err);\n };\n\n if (e.target.files.length > 0) {\n reader.readAsDataURL(uploadInput.files[0]);\n } else {\n this.fileRead(undefined);\n }\n });\n }\n uploadInput.click();\n }\n\n addTag() {\n this.newTagName = this.newTagName.trim();\n\n if (!this.newTagName) return;\n\n const tagKey = kebabCase(this.newTagName);\n\n if (!this.plant.tags) {\n console.log('plant.tags undefined');\n return;\n }\n if (this.plant.tags.some((t) => t.key == tagKey)) {\n return;\n }\n const newTag = new PlantTagDTO({\n key: tagKey,\n value: this.newTagName,\n });\n this.tempTags.push(newTag);\n this.plant.tags.push(newTag);\n\n this.newTagName = '';\n }\n\n toggleTagSelection(tag: PlantTagDTO) {\n if (!this.plant.tags) {\n console.log('plant.tags undefined');\n return;\n }\n\n const groupIndex = this.plant.tags.findIndex((g) => g.key === tag.key);\n\n if (groupIndex >= 0) {\n this.plant.tags.splice(groupIndex, 1);\n } else {\n this.plant.tags.push(tag);\n }\n }\n\n isTagSelected(tag: PlantTagDTO) {\n return this.plant.tags?.some((x) => x.key === tag.key);\n }\n\n private async verifyValidityOfName() {\n const regex = new RegExp(\"^[\\\\w\\\\sÀ-ÖØ-öø-ÿ:.,_-]*$\");\n if (!regex.test(this.plant.name!)) {\n this.isValidName = false;\n this.invalidNameReason = this.$t('AppResource.characternotallowed');\n this.nextEnabled = false;\n return;\n }\n const usedNames = NamingService.initialEntities;\n\n if (this.plantId) {\n const idx = usedNames.findIndex((e) => e.id === this.plantId!.toString());\n if (idx > -1) usedNames.splice(idx, 1);\n }\n const validName = usedNames.every((e) => e.currentName?.toLowerCase().trim() !== this.plant.name?.toLowerCase().trim());\n if (this.plant.name && this.initialName !== this.plant.name && !validName) {\n const suggestedName = await NamingService.suggestNextValidEntityName({\n plantId: this.plantId!,\n eType: PlantEntityType.PLANT,\n metadata: { plantSourceName: this.plant.name },\n });\n this.isValidName = validName;\n this.invalidNameReason = this.$t(\n `uniqueNaming.validationErrorWithSuggestion`,\n { suggestedName }\n );\n this.nextEnabled = false;\n } else {\n this.isValidName = true;\n this.invalidNameReason = '';\n this.nextEnabled = true;\n }\n this.checkNextButtonState();\n }\n\n private checkNextButtonState() {\n this.nextEnabled = this.plant.name && this.isValidName && this.plant.address ? true : false;\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 2,\n headCreate: new EntrancePlantHeadCreateDTO({\n address: this.plant.address,\n country: this.plant.country,\n timeZone: this.plant.timeZone,\n customIconDataUrl: this.plant.customIconDataUrl,\n customIconImageUrl: this.plant.customIconImageUrl,\n desktopId: this.plant.desktopId,\n icon : this.plant.icon,\n name: this.plant.name,\n plantType: this.plant.plantType,\n tags: this.plant.tags\n }),\n });\n }\n\n get nextButtonLabel() {\n return this.plantId ? this.$t('save') : this.$t('saveAndContinue');\n }\n\n handleBackButton(){\n if (this.plantId) return;\n this.$emit(\"onBack\")\n }\n\n async handleNextButton(){\n if (this.plantId) {\n await this.updatePlantStructure(this.getDataToSave());\n if (this.isEdit) {\n this.$emit('plant-edited');\n } else {\n this.$emit(\"onNext\", \"DialogEntrancePlantCreateStep2\")\n }\n } else {\n const peId = await this.createPlant(this.getDataToSave());\n this.$emit(\"onNext\", \"DialogEntrancePlantCreateStep2\", peId)\n }\n }\n\n async createPlant(structure: EntrancePlantStructureCreateDTO) {\n let createdPlantId = null;\n this.$emit('is-loading', true);\n\n try {\n createdPlantId = await plantsClient.entranceplantPOST(structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n\n return createdPlantId;\n }\n\n async updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep1.vue?vue&type=template&id=b7ab0d8c&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep1.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep1.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_5 = { class: \"row mx-0\" }\nconst _hoisted_6 = { class: \"col-6\" }\nconst _hoisted_7 = { class: \"mb-4\" }\nconst _hoisted_8 = { class: \"p-field\" }\nconst _hoisted_9 = { class: \"p-field-label\" }\nconst _hoisted_10 = {\n class: \"col-6\",\n style: {\"padding-top\":\"48px\"}\n}\nconst _hoisted_11 = { class: \"p-field\" }\nconst _hoisted_12 = { class: \"d-flex align-items-center\" }\nconst _hoisted_13 = { class: \"p-field-label\" }\nconst _hoisted_14 = { class: \"mt-2\" }\nconst _hoisted_15 = { class: \"row mx-0\" }\nconst _hoisted_16 = {\n class: \"col-6\",\n style: {\"padding-top\":\"40px\"}\n}\nconst _hoisted_17 = { class: \"d-flex align-items-center\" }\nconst _hoisted_18 = { class: \"title\" }\nconst _hoisted_19 = { class: \"bt-icon bt-icon--xs\" }\nconst _hoisted_20 = { class: \"ml-2\" }\nconst _hoisted_21 = { class: \"dialog-custom__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Dropdown = _resolveComponent(\"Dropdown\")\n const _component_ToggleSwitchButton = _resolveComponent(\"ToggleSwitchButton\")\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_CallModeForm = _resolveComponent(\"CallModeForm\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_DialogImportFile = _resolveComponent(\"DialogImportFile\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupThePlant\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"h5\", _hoisted_7, _toDisplayString(_ctx.$t(\"AppResourceEP.SystemParameters\")), 1),\n _createVNode(\"div\", _hoisted_8, [\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t(\"AppResourceEP.DeviceLanguage\")), 1),\n _createVNode(_component_Dropdown, {\n modelValue: _ctx.infoPlant.language,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.infoPlant.language = $event)),\n options: _ctx.validLanguages,\n optionLabel: \"name\",\n optionValue: \"code\",\n class: \"w-100\"\n }, null, 8, [\"modelValue\", \"options\"])\n ])\n ]),\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"div\", _hoisted_11, [\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"div\", null, [\n _createVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t(\"AppResourceEP.Switchboard\")), 1),\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(\"small\", null, _toDisplayString(_ctx.$t(\n \"AppResourceEP.InsertASwitchboardAtPlantCreation\"\n )), 1)\n ])\n ]),\n _createVNode(_component_ToggleSwitchButton, {\n class: \"ml-auto\",\n modelValue: _ctx.switchboardActive,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.switchboardActive = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ])\n ])\n ]),\n _createVNode(\"div\", _hoisted_15, [\n _createVNode(\"div\", _hoisted_16, [\n _createVNode(\"div\", _hoisted_17, [\n _createVNode(\"label\", _hoisted_18, _toDisplayString(_ctx.$t(\"AppResourceEP.CallMode\")), 1),\n (!_ctx.isBRFA)\n ? (_openBlock(), _createBlock(_component_Button, {\n key: 0,\n class: \"p-button-rounded ml-auto p-button-outlined\",\n style: {\"max-height\":\"24px !important\"},\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.triggerFilePicker()))\n }, {\n default: _withCtx(() => [\n _createVNode(\"input\", {\n type: \"file\",\n id: \"fileInput\",\n style: {\"display\":\"none\"},\n onChange: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.onFileSelected && _ctx.onFileSelected(...args))),\n accept: \".csv\"\n }, null, 32),\n _createVNode(\"span\", _hoisted_19, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-alert-medium-outline.svg`)\n ,\n \"aria-label\": \"icon-alert\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(\"general.import\")), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n _createVNode(_component_CallModeForm, {\n class: \"mt-4\",\n ref: \"callModeForm\",\n infoPlant: _ctx.infoPlant\n }, null, 8, [\"infoPlant\"])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(\"footer\", _hoisted_21, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ]),\n _createVNode(_component_DialogImportFile, {\n entrancePlantDetail: _ctx.infoPlant,\n importedData: _ctx.importedData,\n isVisible: _ctx.isVisibleDialogImportFile,\n onHideDialog: _ctx.handleCloseDialog,\n onOverwrite: _ctx.overwrite,\n isCreationMode: true,\n onUpdatePlant: _ctx.handleUpdatePlant,\n onGrouped: _ctx.handleGrouped\n }, null, 8, [\"entrancePlantDetail\", \"importedData\", \"isVisible\", \"onHideDialog\", \"onOverwrite\", \"onUpdatePlant\", \"onGrouped\"])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n Language,\n EntrancePlantDetailDTO,\n EntrancePlantInfoCreateDTO,\n EntrancePlantStructureCreateDTO,\n ApartmentLabelDTO,\n ApartmentDTO,\n LabelType,\n BuildingImportDto,\n AddressingType,\n SwitchboardConfigDTO,\n SwitchboardDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport i18n from '@/core/translations/i18n';\nimport { DenominationMode } from '@/../client-generator/generated-clients/plants';\nimport { setLanguageByCode, validLanguages } from '@/core/utils/utils';\nimport plantsClient from '@/core/services/plants';\nimport { CallMode, fileIsCsv, processCsvData, SimpleLabel, SingleLabelApartment } from '@/core/utils/EntrancePlant/entrance-plant.utils';\nimport ToggleSwitchButton from '@/views/components/ToggleSwitchButton/ToggleSwitchButton.vue';\nimport HelpPopupButton from '@/views/components/HelpPopupButton/HelpPopupButton.vue';\nimport CallModeForm from '@/views/components/CallModeForm/CallModeForm.vue';\nimport DialogImportFile from '@/views/pages/EntrancePlantDetail/EntrancePlantResidents/DialogImportFile/DialogImportFile.vue';\nimport { PropType } from 'vue';\ntype SelectButtonValue = {\n label: string;\n value: DenominationMode;\n};\n\n@Options({\n name: 'DialogEntrancePlantCreateStep2',\n components: {\n ToggleSwitchButton,\n HelpPopupButton,\n CallModeForm,\n DialogImportFile,\n },\n props: {\n plant: {\n type: Object as PropType,\n required: true,\n },\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n plant: function (newValue) {\n if (newValue) this.initializeData();\n },\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n})\nexport default class DialogEntrancePlantCreateStep2 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n infoPlant: EntrancePlantInfoCreateDTO = new EntrancePlantInfoCreateDTO();\n Language = Language;\n CallMode = CallMode;\n validLanguages = validLanguages;\n settingsList: SelectButtonValue[] = [\n {\n label: i18n.global.t('AppResourceEP.SetupBrfaNumbers'),\n value: DenominationMode.Numbers,\n },\n {\n label: i18n.global.t('AppResourceEP.SetupBrfaLetters'),\n value: DenominationMode.Letters,\n },\n ];\n importedData: SingleLabelApartment[] = [];\n isVisibleDialogImportFile: boolean = false;\n\n switchboardActive: boolean = false;\n\n mounted(): void {\n this.initializeData();\n }\n\n initializeData() {\n const browserLanguage = navigator.language.split('-')[0];\n\n this.infoPlant = new EntrancePlantInfoCreateDTO({\n addressBookSorting: this.plant.addressBookSorting,\n addressingType: this.plant.addressingType,\n denominationApartments: this.plant.denominationApartments,\n denominationBuildings: this.plant.denominationBuildings,\n denominationFloors: this.plant.denominationFloors,\n denominationRisers: this.plant.denominationRisers,\n language: setLanguageByCode(browserLanguage.toLocaleLowerCase()),\n callingCodeShowAddressBook: this.plant.callingCodeShowAddressBook,\n });\n }\n\n handleGrouped(grouped: { [buildingKey: string]: { apartmentName: string, scsAddr: number, labels: SimpleLabel[], badges:string[], keypadCode: string}[] }) {\n let dictionary = {} as { [key: string]: ApartmentDTO[] };\n for (const buildingKey in grouped) {\n const building = grouped[buildingKey];\n dictionary[buildingKey] = building.map((apartment) => {\n return new ApartmentDTO({\n name: apartment.apartmentName,\n scsAddr: apartment.scsAddr,\n labels: apartment.labels.map((label) => {\n return new ApartmentLabelDTO({\n surname: label.type === LabelType.Private ? label.line1 : undefined,\n name: label.type === LabelType.Private ? label.line2 : undefined,\n companyName: label.type === LabelType.Business ? label.line1 : undefined,\n isPrivate: label.type === LabelType.Private,\n labelType: label.type,\n information: label.info,\n });\n }),\n badgeList: apartment.badges,\n keypadCode: apartment.keypadCode,\n });\n });\n }\n\n this.infoPlant.buildings = Object.keys(dictionary).map((key) => {\n return new BuildingImportDto({\n name: key,\n apartments: dictionary[key],\n });\n });\n }\n\n get isCallingCode() {\n return (\n this.infoPlant.addressingType ===\n AddressingType.DirectCall_Alphanumeric ||\n this.infoPlant.addressingType === AddressingType.DirectCall_NumbersOnly\n );\n }\n\n get isBRFA() {\n return (\n this.infoPlant.addressingType ===\n AddressingType.BuildingRiserFloorApartment\n );\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 2,\n infoCreate: this.infoPlant,\n });\n }\n\n handleBackButton() {\n this.$emit('onBack', 'DialogEntrancePlantCreateStep1');\n }\n async handleNextButton() {\n await this.updatePlantStructure(this.getDataToSave());\n this.$emit('onNext', 'DialogEntrancePlantCreateStep3');\n }\n async updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n if(this.switchboardActive) {\n const switchboard = new SwitchboardConfigDTO ({\n switchboard: new SwitchboardDTO({\n name: `${this.$t('AppResourceEP.Switchboard')} 1`,\n scsAddr: 0,\n }),\n devices: [],\n });\n await plantsClient.switchboardPOST(this.plant.desktopId!, switchboard);\n }\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n triggerFilePicker() {\n const input = document.getElementById('fileInput') as HTMLInputElement;\n input.value = '';\n input.click();\n }\n\n async onFileSelected(event: Event): Promise {\n const input = event.target as HTMLInputElement;\n if (!input.files || input.files.length === 0) {\n console.error('No file selected!');\n return;\n }\n\n const file = input.files[0];\n if (!fileIsCsv(file)) {\n console.error('File is not a CSV!');\n return;\n }\n this.$store.dispatch('SET_APP_LOADING', true);\n const reader = new FileReader();\n\n reader.onload = async (e: ProgressEvent) => {\n let text = e.target?.result;\n if (typeof text !== 'string') {\n console.error('Failed to read file as text!');\n this.$store.dispatch('SET_APP_LOADING', false);\n return;\n } else {\n try {\n const data = await processCsvData(text);\n this.importedData = data;\n this.isVisibleDialogImportFile = true;\n } catch (error) {\n console.error('Failed to parse CSV data!', error);\n const message = (error as Error).message.split('|');\n this.$toast.add({\n severity: 'error',\n summary: message[0] ?? this.$t('importFile.error'),\n details: message[1],\n closable: true,\n life: 10000,\n });\n } finally {\n this.$store.dispatch('SET_APP_LOADING', false);\n }\n }\n };\n\n reader.onerror = (e) => {\n console.error('Failed to read file!', e);\n };\n reader.readAsText(file); // Legge il contenuto del file come stringa\n }\n\n handleCloseDialog() {\n this.importedData = [];\n this.isVisibleDialogImportFile = false;\n }\n\n async overwrite() {\n this.handleCloseDialog();\n this.handleNextButton();\n }\n\n async handleUpdatePlant(plant: EntrancePlantDetailDTO) {\n this.plant = plant;\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep2.vue?vue&type=template&id=bf58db64&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep2.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep2.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_5 = {\n class: \"p-field d-flex mb-3 align-items-end\",\n style: {\"height\":\"23px\"}\n}\nconst _hoisted_6 = { class: \"p-field-label\" }\nconst _hoisted_7 = { class: \"fs-15 label-error ml-auto\" }\nconst _hoisted_8 = { class: \"list-blocks\" }\nconst _hoisted_9 = { class: \"form-custom d-flex align-items-center w-100\" }\nconst _hoisted_10 = { class: \"p-field mr-2\" }\nconst _hoisted_11 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_12 = { class: \"d-flex flex-column\" }\nconst _hoisted_13 = { class: \"p-field\" }\nconst _hoisted_14 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_15 = { class: \"dialog-custom__footer\" }\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 const _component_CardContainer = _resolveComponent(\"CardContainer\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.CreateStructure\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", null, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupBuilding\")), 1),\n _createVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.cantAddBuildingString), 1)\n ]),\n _createVNode(_component_CardContainer, {\n titleIcon: \n require(`@/assets/images/entrancePlants/icon-building.svg`)\n ,\n title: _ctx.titleCard,\n showActionButton: true,\n onOnActionButtonClick: _ctx.addBuilding,\n actionButtonLabel: _ctx.$t('AppResource.Add')\n }, {\n default: _withCtx(() => [\n _createVNode(\"ul\", _hoisted_8, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.buildings, (building, i) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: \"new-building\",\n key: i\n }, [\n _createVNode(\"form\", _hoisted_9, [\n _createVNode(\"div\", _hoisted_10, [\n _createVNode(\"label\", _hoisted_11, _toDisplayString(`${_ctx.$t(\"NameBuilding\")} ${\n i + 1\n }`) + \": \", 1),\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(_component_InputText, {\n type: \"text\",\n class: \"w-100\",\n modelValue: building.name,\n \"onUpdate:modelValue\": ($event: any) => (building.name = $event)\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(\"div\", _hoisted_13, [\n _createVNode(\"label\", _hoisted_14, _toDisplayString(_ctx.$t(\n \"AppResourceEP.NumberOfApartmentsUpper\"\n )) + \": \", 1),\n _createVNode(_component_Dropdown, {\n modelValue: building.apartmentsCount,\n \"onUpdate:modelValue\": ($event: any) => (building.apartmentsCount = $event),\n options: _ctx.noAppartmentOptions(i),\n optionLabel: \"label\",\n optionValue: \"value\"\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"options\"])\n ]),\n _createVNode(_component_Button, {\n disabled: _ctx.buildings.length == 1,\n label: _ctx.$t('AppResource.Delete'),\n class: [\"ml-auto p-button-text\", {\n 'text-gray': _ctx.buildings.length === 1,\n }],\n onClick: ($event: any) => (_ctx.handleBuildingRemove(i))\n }, null, 8, [\"disabled\", \"label\", \"class\", \"onClick\"])\n ])\n ]))\n }), 128))\n ])\n ]),\n _: 1\n }, 8, [\"titleIcon\", \"title\", \"onOnActionButtonClick\", \"actionButtonLabel\"])\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(\"footer\", _hoisted_15, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n BuildingCreateDTO,\n EntrancePlantDetailDTO,\n EntrancePlantStructureCreateDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { AddressingType } from '@/../client-generator/generated-clients/plants';\nimport CardContainer from '@/views/components/CardContainer/CardContainer.vue';\nimport { toLabel } from '@/core/utils/EntrancePlant/denomination-helper';\nimport { noAppartmentOptions } from '@/core/utils/EntrancePlant/entrance-plant.utils';\nimport plantsClient from '@/core/services/plants';\n\n@Options({\n name: 'DialogEntrancePlantCreateStep3',\n components: {\n CardContainer,\n },\n props: {\n plant: {\n required: true,\n type: Object as () => EntrancePlantDetailDTO,\n },\n plantId: {\n type: Number,\n required: false,\n }, \n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n plant: function (newValue) {\n if (newValue) this.initializeData();\n },\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {},\n})\nexport default class DialogEntrancePlantCreateStep3 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n buildings: BuildingCreateDTO[] = [];\n cantAddBuildingString = '';\n\n get titleCard() {\n return `${this.buildings.length} ${this.$t(\n this.buildings.length == 1\n ? 'AppResourceEP.Building'\n : 'AppResourceEP.Buildings'\n ).toString()}`;\n }\n\n noAppartmentOptions(buldingIndex: number) {\n const otherBuildings = this.buildings.filter(\n (building, index) => index !== buldingIndex\n );\n const totalApartments = otherBuildings.reduce(\n (acc, building) => acc + building.apartmentsCount!,\n 0\n );\n return noAppartmentOptions(3999-totalApartments);\n } \n\n addBuilding() {\n if(this.noAppartmentOptions(this.buildings.length).length === 0) {\n this.cantAddBuilding();\n return;\n }\n this.buildings.push(\n new BuildingCreateDTO({\n name: this.getNewBuildingName(this.plant),\n apartmentsCount: 1,\n })\n );\n }\n\n cantAddBuilding() {\n this.cantAddBuildingString = this.$t('entrancePlant.apartmentLimitReached', { maxApartments: 3999 });\n setTimeout(() => {\n this.cantAddBuildingString = '';\n }, 4000);\n }\n\n mounted(): void {\n this.initializeData();\n }\n\n initializeData() {\n this.fillBuildings();\n if (this.buildings.length === 0) {\n this.addBuilding();\n }\n }\n\n fillBuildings() {\n this.plant.buildings?.forEach((building) => {\n this.buildings.push(\n new BuildingCreateDTO({\n apartmentsCount: building.apartments?.length,\n buildingId: building.buildingId,\n name: building.name,\n })\n );\n });\n }\n\n handleBuildingRemove(index: number) {\n this.buildings.splice(index, 1);\n }\n\n private getNewBuildingName(plant: EntrancePlantDetailDTO): string {\n let newBuildingName: string;\n let buildingIndex: number;\n let counter = 0;\n do {\n counter++;\n buildingIndex = this.buildings.length + counter;\n newBuildingName = `${this.$t('AppResourceEP.Building')} ${toLabel(\n counter,\n plant.denominationBuildings\n )}`;\n } while (this.buildings.some((x) => x.name == newBuildingName));\n return newBuildingName;\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 3,\n buildingsCreate: this.buildings,\n });\n }\n\n handleBackButton() {\n this.$emit('onBack', 'DialogEntrancePlantCreateStep2');\n }\n\n async handleNextButton() {\n await this.updatePlantStructure(this.getDataToSave());\n\n const nextPage =\n this.plant.addressingType === AddressingType.BuildingRiserFloorApartment\n ? 'DialogEntrancePlantCreateStep4'\n : 'DialogEntrancePlantCreateStep6';\n\n this.$emit('onNext', nextPage);\n }\n\n async updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep3.vue?vue&type=template&id=2564ca9a&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep3.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep3.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, renderList as _renderList, Fragment as _Fragment, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header stepfour-header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 287px)\"} }\nconst _hoisted_5 = {\n class: \"p-field d-flex mb-3 align-items-end\",\n style: {\"height\":\"36px\"}\n}\nconst _hoisted_6 = { class: \"p-field-label\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"p-field-label error-mismatch fs-15 ml-auto mr-2\"\n}\nconst _hoisted_8 = /*#__PURE__*/_createVNode(\"br\", null, null, -1)\nconst _hoisted_9 = { class: \"label-error\" }\nconst _hoisted_10 = {\n key: 0,\n class: \"list-blocks\"\n}\nconst _hoisted_11 = {\n class: \"d-flex\",\n style: {\"align-items\":\"start\"}\n}\nconst _hoisted_12 = { class: \"p-field mr-3\" }\nconst _hoisted_13 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_14 = { class: \"d-flex flex-column\" }\nconst _hoisted_15 = { class: \"p-field\" }\nconst _hoisted_16 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_17 = {\n key: 0,\n class: \"list-blocks-secondary p-0\"\n}\nconst _hoisted_18 = { class: \"form-custom d-flex\" }\nconst _hoisted_19 = { class: \"p-field mr-4\" }\nconst _hoisted_20 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_21 = { class: \"d-flex flex-column\" }\nconst _hoisted_22 = { class: \"p-field\" }\nconst _hoisted_23 = { class: \"p-field-label bigger-label\" }\nconst _hoisted_24 = { class: \"dialog-custom__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_NumberButtons = _resolveComponent(\"NumberButtons\")\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_Dropdown = _resolveComponent(\"Dropdown\")\n const _component_CardContainer = _resolveComponent(\"CardContainer\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"SetupRisersTitle\", { buildingName: _ctx.buildingName })), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n (!_ctx.changingBuilding)\n ? (_openBlock(), _createBlock(_component_ElScrollbar, {\n key: 0,\n class: \"dialog-scroll\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"div\", null, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupBuilding\")), 1),\n (!_ctx.allApartmentsAssigned)\n ? (_openBlock(), _createBlock(\"span\", _hoisted_7, [\n _createVNode(\"label\", null, _toDisplayString(_ctx.mismatchedApartmentsErrorText[0]), 1),\n _hoisted_8,\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.mismatchedApartmentsErrorText[1]), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(_component_CardContainer, {\n titleIcon: require(`@/assets/images/entrancePlants/icon-riser.svg`),\n title: _ctx.titleCard,\n showActionButton: false\n }, {\n actionButton: _withCtx(() => [\n _createVNode(_component_NumberButtons, {\n lightTheme: \"\",\n minValue: 1,\n modelValue: _ctx.risersCount,\n onIncrement: _ctx.addRiser,\n onDecrement: _ctx.removeRiser\n }, null, 8, [\"modelValue\", \"onIncrement\", \"onDecrement\"])\n ]),\n default: _withCtx(() => [\n (_ctx.currentRFAConfig)\n ? (_openBlock(), _createBlock(\"ul\", _hoisted_10, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.currentRFAConfig.risers, (riser, i) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: \"riser-row\",\n key: i\n }, [\n _createVNode(\"form\", _hoisted_11, [\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.riserName(riser.index)) + \": \", 1),\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(_component_InputText, {\n type: \"text\",\n modelValue: riser.name,\n \"onUpdate:modelValue\": ($event: any) => (riser.name = $event)\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(\"div\", _hoisted_15, [\n _createVNode(\"label\", _hoisted_16, _toDisplayString(_ctx.$t(\"AppResourceEP.NumberOfFloorsUpper\")) + \": \", 1),\n _createVNode(_component_Dropdown, {\n options: _ctx.floorsCountValues,\n modelValue: riser.floors.length,\n onChange: (e) => _ctx.changeFloorNumber(riser, e.value)\n }, null, 8, [\"options\", \"modelValue\", \"onChange\"])\n ]),\n (riser.floors)\n ? (_openBlock(), _createBlock(\"ul\", _hoisted_17, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(riser.floors, (floor, i) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: \"riser-row\",\n key: i\n }, [\n _createVNode(\"form\", _hoisted_18, [\n _createVNode(\"div\", _hoisted_19, [\n _createVNode(\"label\", _hoisted_20, _toDisplayString(_ctx.floorName(floor.index)) + \": \", 1),\n _createVNode(\"div\", _hoisted_21, [\n _createVNode(_component_InputText, {\n type: \"text\",\n class: \"w-100\",\n modelValue: floor.name,\n \"onUpdate:modelValue\": ($event: any) => (floor.name = $event)\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(\"div\", _hoisted_22, [\n _createVNode(\"label\", _hoisted_23, _toDisplayString(_ctx.$t(\"AppResourceEP.NumberOfApartmentsUpper\")) + \": \", 1),\n _createVNode(_component_Dropdown, {\n options: _ctx.apartmentCountValues,\n optionLabel: \"label\",\n optionValue: \"value\",\n modelValue: floor.numberOfApartments,\n onChange: (e) => _ctx.changeApartmentNumber(floor, e.value)\n }, null, 8, [\"options\", \"modelValue\", \"onChange\"])\n ])\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"titleIcon\", \"title\"])\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(\"footer\", _hoisted_24, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\",\n disabled: !_ctx.allApartmentsAssigned\n }, null, 8, [\"onClick\", \"label\", \"disabled\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n FloorConfigDTO,\n RiserConfigDTO,\n RFAConfigDTO,\n BuildingDTO,\n EntrancePlantDetailDTO,\n EntrancePlantStructureCreateDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport CardContainer from '@/views/components/CardContainer/CardContainer.vue';\nimport NumberButtons from '@/views/components/NumberButtons/NumberButtons.vue';\nimport plantsClient from '@/core/services/plants';\nimport { \n DEFAULT_NUMBER_OF_FLOORS_IN_RISER, \n distributeApartmentsToRaisersAndFloors \n} from '@/core/utils/EntrancePlant/entrance-plant.utils';\nimport { toLabel } from '@/core/utils/EntrancePlant/denomination-helper';\n\n@Options({\n name: 'DialogEntrancePlantCreateStep4',\n components: {\n CardContainer,\n NumberButtons,\n },\n props: {\n plant: {\n required: true,\n type: Object as () => EntrancePlantDetailDTO,\n },\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n plant: function (newValue) {\n if (newValue) this.initializeData();\n },\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {},\n})\nexport default class DialogEntrancePlantCreateStep4 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n currentBuildingIndex = 0;\n distributeApartmentsToRaisersAndFloors = distributeApartmentsToRaisersAndFloors;\n\n changingBuilding = false;\n rfaConfig: { [key: string]: RFAConfigDTO } = {};\n floorsCountValues: number[] = [];\n\n get titleCard() {\n return `${this.risersCount} ${this.$t(\n this.risersCount == 1 ? 'AppResourceEP.Riser' : 'AppResourceEP.Risers'\n ).toString()}`;\n }\n\n get buildingName() {\n return this.currentBuilding?.name;\n }\n\n get currentBuilding(): BuildingDTO | null {\n if (this.plant.buildings) {\n return this.plant.buildings[this.currentBuildingIndex];\n }\n return null;\n }\n\n get currentRFAConfig(): RFAConfigDTO | null {\n if (!this.currentBuilding) return null;\n if (!this.currentBuilding.buildingId) return null;\n return this.rfaConfig[this.currentBuilding.buildingId];\n }\n\n get risersCount(): number {\n if (!this.currentRFAConfig) return 0;\n if (!this.currentRFAConfig.risers) return 0;\n return this.currentRFAConfig.risers.length;\n }\n\n get apartmentCountValues(): { label: number; value: number }[] {\n if (!this.currentBuilding?.apartments) return [{ label: 0, value: 0 }];\n return [...Array(this.currentBuilding?.apartments?.length + 1).keys()].map(\n (i) => {\n return { label: i, value: i };\n });\n }\n\n get mismatchedApartmentsErrorText() {\n const firstLine = this.$t('entrancePlant.buildingApartments') + ': ' + this.currentBuilding?.apartments?.length;\n const secondLine = this.$t('entrancePlant.assignedApartmets') + ': ' + this.totalAssignedApartments;\n return [firstLine, secondLine];\n }\n\n get totalAssignedApartments() {\n if (!this.currentRFAConfig || !this.currentRFAConfig.risers) return 0;\n return this.currentRFAConfig.risers.reduce(\n (acc, riser) =>\n acc +\n riser.floors!.reduce(\n (acc, floor) => acc + (floor.numberOfApartments ?? 0),\n 0\n ),\n 0\n );\n }\n\n get allApartmentsAssigned() {\n if (!this.currentRFAConfig || !this.currentRFAConfig.risers) return false;\n return this.currentRFAConfig.numberOfApartments === this.totalAssignedApartments;\n }\n\n riserName(index?: number): string {\n if (!index) return '';\n return `${this.$t('AppResourceEP.Name')} ${this.$t(\n 'AppResourceEP.Riser'\n )} ${toLabel(index, this.plant.denominationRisers)}`;\n }\n\n floorName(index?: number): string {\n if (!index) return '';\n return `${this.$t('AppResourceEP.Name')} ${this.$t(\n 'AppResourceEP.Floor'\n )} ${toLabel(index, this.plant.denominationFloors)}`;\n }\n\n changeFloorNumber(riser: RiserConfigDTO, value: number) {\n if (!this.currentRFAConfig) return;\n if (!riser.floors) riser.floors = [];\n const count = riser.floors.length - value;\n if (count < 0) {\n this.addFloors(riser, Math.abs(count));\n } else {\n this.removeFloors(riser, count);\n }\n this.distributeApartmentsToRaisersAndFloors(this.currentRFAConfig);\n }\n\n changeApartmentNumber(floor: FloorConfigDTO, value: number) {\n if (!this.currentRFAConfig) return;\n floor.numberOfApartments = value;\n }\n\n addRiser() {\n if (!this.currentRFAConfig) return;\n if (!this.currentRFAConfig.risers) this.currentRFAConfig.risers = [];\n\n const riserName = `${this.$t('AppResourceEP.Riser')} ${toLabel(\n this.risersCount + 1,\n this.plant.denominationRisers\n )}`;\n\n const riser = new RiserConfigDTO({\n index: this.risersCount + 1,\n name: riserName,\n });\n\n this.addFloors(riser, DEFAULT_NUMBER_OF_FLOORS_IN_RISER);\n\n this.currentRFAConfig.risers.push(riser);\n this.distributeApartmentsToRaisersAndFloors(this.currentRFAConfig);\n }\n\n addFloors(riser: RiserConfigDTO, floorsCount: number) {\n if (!riser.floors) riser.floors = [];\n\n for (let index = 0; index < floorsCount; index++) {\n const floorIndex = riser.floors.length + 1;\n const floorName = `${this.$t('AppResourceEP.Floor')} ${toLabel(\n floorIndex,\n this.plant.denominationFloors\n )}`;\n\n riser.floors.push(\n new FloorConfigDTO({\n index: floorIndex,\n name: floorName,\n })\n );\n }\n }\n\n removeFloors(riser: RiserConfigDTO, floorsCount: number) {\n if (!riser.floors) return;\n riser.floors.splice(riser.floors.length - floorsCount, floorsCount);\n }\n\n removeRiser() {\n if (!this.currentRFAConfig) return;\n if (!this.currentRFAConfig.risers) return;\n this.currentRFAConfig.risers.splice(\n this.currentRFAConfig.risers.length - 1,\n 1\n );\n this.distributeApartmentsToRaisersAndFloors(this.currentRFAConfig);\n }\n\n mounted(): void {\n this.initializeData();\n }\n\n initializeData() {\n this.floorsCountValues = [\n ...Array(200).keys(),\n ].map((i) => i + 1);\n if (this.plant.buildings) {\n for (const building of this.plant.buildings) {\n if (!building.buildingId) continue;\n if (!building.apartments) continue;\n if (building.risers == null || building.risers.length == 0) {\n this.rfaConfig[building.buildingId] = new RFAConfigDTO({\n numberOfApartments: building.apartments.length,\n risers: [\n new RiserConfigDTO({\n index: 1,\n name: `${this.$t('AppResourceEP.Riser')} ${toLabel(\n 1,\n this.plant.denominationRisers\n )}`,\n }),\n new RiserConfigDTO({\n index: 2,\n name: `${this.$t('AppResourceEP.Riser')} ${toLabel(\n 2,\n this.plant.denominationRisers\n )}`,\n }),\n ],\n });\n this.addFloors(this.rfaConfig[building.buildingId].risers![0], DEFAULT_NUMBER_OF_FLOORS_IN_RISER);\n this.addFloors(this.rfaConfig[building.buildingId].risers![1], DEFAULT_NUMBER_OF_FLOORS_IN_RISER);\n distributeApartmentsToRaisersAndFloors(this.rfaConfig[building.buildingId]);\n }\n else {\n var rfaConfig = new RFAConfigDTO({\n numberOfApartments: building.apartments.length,\n risers: [],\n });\n building.risers.forEach((riser) => {\n rfaConfig.risers?.push(\n new RiserConfigDTO({\n riserId: riser.riserId,\n index: Number.parseInt(riser.index!),\n name: riser.name,\n floors: building.floors?.filter(r=>r.riserId==riser.riserId).map((floor) => {\n return new FloorConfigDTO({\n index: Number.parseInt(floor.index!),\n name: floor.name,\n numberOfApartments:building.apartments?.filter(a=>a.floorId==floor.floorId).length,\n });\n }),\n }),\n );\n });\n this.rfaConfig[building.buildingId] = rfaConfig;\n }\n }\n }\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 4,\n plantConfigStructure: this.rfaConfig,\n });\n }\n\n handleBackButton() {\n if (this.plant.buildings) {\n if (this.currentBuildingIndex > 0) {\n this.changeBuilding('back');\n return;\n }\n }\n this.$emit('onBack', 'DialogEntrancePlantCreateStep3');\n }\n\n async handleNextButton() {\n if (this.plant.buildings) {\n if (this.currentBuildingIndex < this.plant.buildings.length - 1) {\n await this.changeBuilding('next');\n return;\n }\n await this.updatePlantStructure(this.getDataToSave());\n }\n this.$emit('onNext', 'DialogEntrancePlantCreateStep5');\n }\n\n async changeBuilding(direction: 'next' | 'back') {\n this.$emit('is-loading', true);\n this.changingBuilding = true;\n if (direction === 'next') {\n this.currentBuildingIndex++;\n } else {\n this.currentBuildingIndex--;\n }\n setTimeout(() => {\n this.changingBuilding = false;\n this.$emit('is-loading', false)\n }, 500);\n }\n\n async updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep4.vue?vue&type=template&id=33d3fd7c&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep4.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep4.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogEntrancePlantCreateStep4.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_5 = { class: \"p-field mr-3\" }\nconst _hoisted_6 = { class: \"p-field-label mb-3\" }\nconst _hoisted_7 = { class: \"calling-code-container\" }\nconst _hoisted_8 = { class: \"calling-code-card\" }\nconst _hoisted_9 = { class: \"column-code\" }\nconst _hoisted_10 = /*#__PURE__*/_createVNode(\"div\", { class: \"vertical-line\" }, null, -1)\nconst _hoisted_11 = /*#__PURE__*/_createVNode(\"span\", { class: \"code\" }, \"B\", -1)\nconst _hoisted_12 = { class: \"column-code\" }\nconst _hoisted_13 = /*#__PURE__*/_createVNode(\"div\", { class: \"vertical-line\" }, null, -1)\nconst _hoisted_14 = { class: \"code\" }\nconst _hoisted_15 = { class: \"column-code\" }\nconst _hoisted_16 = /*#__PURE__*/_createVNode(\"div\", { class: \"vertical-line\" }, null, -1)\nconst _hoisted_17 = { class: \"code\" }\nconst _hoisted_18 = { class: \"column-code\" }\nconst _hoisted_19 = /*#__PURE__*/_createVNode(\"div\", { class: \"vertical-line\" }, null, -1)\nconst _hoisted_20 = { class: \"code\" }\nconst _hoisted_21 = { class: \"text-center mt-4\" }\nconst _hoisted_22 = /*#__PURE__*/_createVNode(\"b\", null, \"Example:\", -1)\nconst _hoisted_23 = { class: \"code\" }\nconst _hoisted_24 = { class: \"code\" }\nconst _hoisted_25 = { class: \"code\" }\nconst _hoisted_26 = { class: \"code\" }\nconst _hoisted_27 = { class: \"dialog-custom__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupWizardStepSummaryTitle\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupWizardStepSummarySubTitle\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"div\", _hoisted_8, [\n _createVNode(\"div\", _hoisted_9, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.Building\")), 1),\n _hoisted_10,\n _hoisted_11\n ]),\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.Riser\")), 1),\n _hoisted_13,\n _createVNode(\"div\", _hoisted_14, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.RiserShort\")), 1),\n _createVNode(\"span\", {\n class: {\n gray: !_ctx.recapCode.riserDoubleChars,\n }\n }, _toDisplayString(_ctx.$t(\"AppResourceEP.RiserShort\")), 3)\n ])\n ]),\n _createVNode(\"div\", _hoisted_15, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.Floor\")), 1),\n _hoisted_16,\n _createVNode(\"div\", _hoisted_17, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.FloorShort\")), 1),\n _createVNode(\"span\", {\n class: {\n gray: !_ctx.recapCode.floorDoubleChars,\n }\n }, _toDisplayString(_ctx.$t(\"AppResourceEP.FloorShort\")), 3)\n ])\n ]),\n _createVNode(\"div\", _hoisted_18, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.Apartment\")), 1),\n _hoisted_19,\n _createVNode(\"div\", _hoisted_20, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResourceEP.ApartmentShort\")), 1),\n _createVNode(\"span\", {\n class: {\n gray: !_ctx.recapCode.apartmentDoubleChars,\n }\n }, _toDisplayString(_ctx.$t(\"AppResourceEP.ApartmentShort\")), 3)\n ])\n ])\n ]),\n _createVNode(\"div\", _hoisted_21, [\n _hoisted_22,\n _createVNode(\"div\", null, [\n _createVNode(\"span\", _hoisted_23, _toDisplayString(_ctx.recapCode.buildingCode), 1),\n _createVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.recapCode.riserCode), 1),\n _createVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.recapCode.floorCode), 1),\n _createVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.recapCode.apartmentCode), 1)\n ])\n ])\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(\"footer\", _hoisted_27, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\nCallingCodeDTO,\n EntrancePlantDetailDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport plantsClient from '@/core/services/plants';\n\n@Options({\n name: 'DialogEntrancePlantCreateStep5',\n components: {\n },\n props: {\n plant: {\n required: true,\n type: Object as () => EntrancePlantDetailDTO,\n },\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n plant: function (newValue) {\n if (newValue) this.initializeData();\n },\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {},\n})\nexport default class DialogEntrancePlantCreateStep5 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n recapCode = new CallingCodeDTO();\n \n mounted(): void {\n this.initializeData();\n }\n\n async initializeData() {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n this.recapCode = await plantsClient.callingcoderecap(this.plantId);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n\n\n handleBackButton() {\n this.$emit('onBack', 'DialogEntrancePlantCreateStep4');\n }\n\n async handleNextButton() {\n this.$emit('onNext', 'DialogEntrancePlantCreateStep6');\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep5.vue?vue&type=template&id=a58b476a&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep5.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep5.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogEntrancePlantCreateStep5.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 { 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 } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = { class: \"dialog-custom__content form-custom\" }\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_5 = { class: \"p-field\" }\nconst _hoisted_6 = { class: \"p-field-label mb-3\" }\nconst _hoisted_7 = { class: \"list-blocks\" }\nconst _hoisted_8 = { class: \"form-custom d-flex align-items-center w-100\" }\nconst _hoisted_9 = { class: \"p-field mr-4\" }\nconst _hoisted_10 = { class: \"p-field-label\" }\nconst _hoisted_11 = { class: \"d-flex flex-column\" }\nconst _hoisted_12 = { class: \"dialog-custom__footer\" }\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_Button = _resolveComponent(\"Button\")\n const _component_CardContainer = _resolveComponent(\"CardContainer\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResourceEP.AddGates\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(_component_ElScrollbar, { class: \"dialog-scroll\" }, {\n default: _withCtx(() => [\n _createVNode(\"div\", null, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupNumberOfGates\")), 1)\n ]),\n (_ctx.plant.gates)\n ? (_openBlock(), _createBlock(_component_CardContainer, {\n key: 0,\n titleIcon: require(`@/assets/images/entrancePlants/icon-gate.svg`),\n title: _ctx.titleCard,\n showActionButton: true,\n onOnActionButtonClick: _ctx.addGate,\n disabled: _ctx.reachedMaxGates,\n actionButtonLabel: _ctx.$t('AppResource.Add')\n }, {\n default: _withCtx(() => [\n _createVNode(\"ul\", _hoisted_7, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.plant.gates, (gate, i) => {\n return (_openBlock(), _createBlock(\"li\", {\n class: \"new-building\",\n key: i\n }, [\n _createVNode(\"form\", _hoisted_8, [\n _createVNode(\"div\", _hoisted_9, [\n _createVNode(\"label\", _hoisted_10, _toDisplayString(_ctx.$t(\"AppResourceEP.Name\")) + \": \", 1),\n _createVNode(\"div\", _hoisted_11, [\n _createVNode(_component_InputText, {\n type: \"text\",\n class: \"w-100\",\n modelValue: gate.name,\n \"onUpdate:modelValue\": ($event: any) => (gate.name = $event)\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ])\n ]),\n _createVNode(_component_Button, {\n disabled: _ctx.plant.gates.length == 1,\n label: _ctx.$t('AppResource.Delete'),\n class: \"ml-auto p-button-text\",\n onClick: ($event: any) => (_ctx.handleGateRemove(i))\n }, null, 8, [\"disabled\", \"label\", \"onClick\"])\n ])\n ]))\n }), 128))\n ])\n ]),\n _: 1\n }, 8, [\"titleIcon\", \"title\", \"onOnActionButtonClick\", \"disabled\", \"actionButtonLabel\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n })\n ])\n ]),\n _createVNode(\"footer\", _hoisted_12, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\"\n }, null, 8, [\"onClick\", \"label\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n AddressingType,\n EntrancePlantDetailDTO,\n EntrancePlantStructureCreateDTO,\n GateDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { DenominationMode } from '@/../client-generator/generated-clients/plants';\nimport CardContainer from '@/views/components/CardContainer/CardContainer.vue';\nimport { toLabel } from '@/core/utils/EntrancePlant/denomination-helper';\nimport plantsClient from '@/core/services/plants';\n\n@Options({\n name: 'DialogEntrancePlantCreateStep6',\n components: {\n CardContainer,\n },\n props: {\n plant: {\n required: true,\n type: Object as () => EntrancePlantDetailDTO,\n },\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {},\n})\nexport default class DialogEntrancePlantCreateStep6 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n\n get titleCard() {\n return `${this.plant.gates?.length} ${this.$t(\n this.plant.gates?.length == 1\n ? 'AppResourceEP.Gate'\n : 'AppResourceEP.Gates'\n ).toString()}`;\n }\n\n get reachedMaxGates() {\n return this.plant.gates?.length === this.plant.scsAddressHelper?.availableScsAddressGate?.length;\n }\n\n addGate() {\n if (!this.plant.gates) this.plant.gates = [];\n if (this.reachedMaxGates) {\n return;\n }\n\n this.plant.gates.push(\n new GateDTO({\n name: this.getNewGateName(),\n apartments: [],\n })\n );\n }\n\n mounted(): void {\n if (!this.plant.gates || this.plant.gates.length === 0) {\n this.plant.gates = [];\n this.addGate();\n }\n }\n\n handleGateRemove(index: number) {\n if (!this.plant.gates) return;\n this.plant.gates.splice(index, 1);\n }\n\n private getNewGateName(): string {\n let newGateName: string;\n let counter = 0;\n do {\n counter++;\n newGateName = `${this.$t('AppResourceEP.Gate')} ${counter}`;\n } while (this.plant.gates?.some((x) => x.name == newGateName));\n return newGateName;\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 3,\n gateCreate: this.plant.gates,\n });\n }\n\n handleBackButton() {\n const prevPage =\n this.plant.addressingType !== AddressingType.BuildingRiserFloorApartment\n ? 'DialogEntrancePlantCreateStep3'\n : 'DialogEntrancePlantCreateStep5';\n this.$emit('onBack', prevPage);\n }\n async handleNextButton() {\n await this.updatePlantStructure(this.getDataToSave());\n this.$emit('onNext', 'DialogEntrancePlantCreateStep7');\n }\n async updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep6.vue?vue&type=template&id=51326d29&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep6.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep6.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 { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"dialog-custom__header\" }\nconst _hoisted_2 = { class: \"dialog-custom__title\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"dialog-custom__content form-custom\"\n}\nconst _hoisted_4 = { style: {\"height\":\"calc(100vh - 300px)\"} }\nconst _hoisted_5 = { class: \"p-field\" }\nconst _hoisted_6 = { class: \"p-field-label mb-3\" }\nconst _hoisted_7 = { class: \"d-flex mb-4\" }\nconst _hoisted_8 = {\n class: \"p-field-label mt-1\",\n for: \"scsAddr\"\n}\nconst _hoisted_9 = {\n for: \"scsAddr\",\n class: \"fs-13 label-error\"\n}\nconst _hoisted_10 = { class: \"p-field-label mt-5 mb-3\" }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { key: 1 }\nconst _hoisted_13 = { class: \"mt-4 mb-3 secondary-label fw-normal fs-12 text-uppercase\" }\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_ButtonSelection = _resolveComponent(\"ButtonSelection\")\n const _component_InputText = _resolveComponent(\"InputText\")\n const _component_ListItemCheck = _resolveComponent(\"ListItemCheck\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_Button = _resolveComponent(\"Button\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _hoisted_1, [\n _createVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.pageTitle), 1)\n ]),\n (_ctx.currentGate)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_3, [\n _createVNode(\"div\", _hoisted_4, [\n (!_ctx.changingGate)\n ? (_openBlock(), _createBlock(_component_ElScrollbar, {\n key: 0,\n class: \"list\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"SelectDevicesInGate\")), 1)\n ]),\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(_component_ButtonSelection, {\n class: \"ml-1 mr-4\",\n icon: require(`@/assets/images/entrancePlants/icon-new-pe.svg`)\n ,\n label: _ctx.$t('AppResourceEP.NewPeDevice'),\n modelValue: _ctx.currentGate.newPeSelected,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.currentGate.newPeSelected = $event)),\n disabled: _ctx.newPeDisabled\n }, null, 8, [\"icon\", \"label\", \"modelValue\", \"disabled\"]),\n _createVNode(_component_ButtonSelection, {\n class: \"mr-4\",\n icon: require(`@/assets/images/entrancePlants/icon-keypad.svg`)\n ,\n label: _ctx.$t('AppResourceEP.KeyPad'),\n modelValue: _ctx.currentGate.keypadSelected,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.currentGate.keypadSelected = $event)),\n disabled: _ctx.keypadDisabled\n }, null, 8, [\"icon\", \"label\", \"modelValue\", \"disabled\"]),\n _createVNode(_component_ButtonSelection, {\n class: \"mr-4\",\n icon: require(`@/assets/images/entrancePlants/icon-smart-reader.svg`)\n ,\n label: _ctx.$t('AppResourceEP.SmartReader'),\n modelValue: _ctx.currentGate.smartReaderSelected,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => (_ctx.currentGate.smartReaderSelected = $event)),\n disabled: _ctx.smartReaderDisabled\n }, null, 8, [\"icon\", \"label\", \"modelValue\", \"disabled\"])\n ]),\n _createVNode(\"label\", _hoisted_8, _toDisplayString(_ctx.$t(\"AppResourceEP.DeviceScsAddress\")), 1),\n _createVNode(_component_InputText, {\n id: \"scsAddr\",\n class: {'input-error': _ctx.scsAddrNotValid},\n type: \"number\",\n style: {\"width\":\"40%\"},\n min: _ctx.MIN_SCS_ADDRESS,\n max: _ctx.MAX_SCS_ADDRESS,\n modelValue: _ctx.currentGate.scsAddress,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.currentGate.scsAddress = $event))\n }, null, 8, [\"class\", \"min\", \"max\", \"modelValue\"]),\n _createVNode(\"div\", null, [\n _createVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.invalidScsReason), 1)\n ]),\n _createVNode(\"label\", _hoisted_10, _toDisplayString(_ctx.$t(\"AppResourceEP.SetupDefineGatesBuildingGovern\")), 1),\n (_ctx.plant.buildings && _ctx.currentGateId)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_11, [\n _createVNode(_component_ListItemCheck, {\n label: _ctx.$t('AppResource.All'),\n inputId: \"AllBuilding\",\n name: \"building\",\n modelValue: _ctx.allBuildings[_ctx.currentGateId],\n \"onUpdate:modelValue\": [\n _cache[5] || (_cache[5] = ($event: any) => (_ctx.allBuildings[_ctx.currentGateId] = $event)),\n _cache[6] || (_cache[6] = ($event: any) => (_ctx.handleUpdateBuildingSelection(_ctx.AllBuildingsValue)))\n ],\n binary: \"\"\n }, null, 8, [\"label\", \"modelValue\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.plant.buildings, (building, i) => {\n return (_openBlock(), _createBlock(_component_ListItemCheck, {\n key: i,\n last: i == _ctx.plant.buildings.length - 1,\n label: building.name,\n value: building.buildingId,\n inputId: 'building' + i,\n name: \"building\",\n modelValue: _ctx.selectedBuildingIds[_ctx.currentGateId],\n \"onUpdate:modelValue\": [\n _cache[7] || (_cache[7] = ($event: any) => (_ctx.selectedBuildingIds[_ctx.currentGateId] = $event)),\n ($event: any) => (_ctx.handleUpdateBuildingSelection('', building.buildingId))\n ]\n }, null, 8, [\"last\", \"label\", \"value\", \"inputId\", \"modelValue\", \"onUpdate:modelValue\"]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isBRFA && _ctx.currentGateId)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_12, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.selectedBuildings, (b, i) => {\n return (_openBlock(), _createBlock(_Fragment, { key: i }, [\n _createVNode(\"div\", _hoisted_13, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResource.For\")) + \" \" + _toDisplayString(b.name) + \" \" + _toDisplayString(_ctx.$t(\"TheyManage\")), 1)\n ]),\n (b && b.risers && b.buildingId)\n ? (_openBlock(), _createBlock(_Fragment, { key: 0 }, [\n _createVNode(_component_ListItemCheck, {\n label: _ctx.$t('AppResourceEP.SetupDefineGatesBuildingAllRisers'),\n inputId: \"AllRisers_b_{{b.buildingId}}\",\n name: \"riser\",\n modelValue: _ctx.allRisers[_ctx.currentGateId][b.buildingId],\n \"onUpdate:modelValue\": [($event: any) => (_ctx.allRisers[_ctx.currentGateId][b.buildingId] = $event), ($event: any) => (_ctx.handleUpdateRiserSelection(_ctx.AllRisersValue, b.buildingId))],\n binary: \"\"\n }, null, 8, [\"label\", \"modelValue\", \"onUpdate:modelValue\"]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(b.risers, (riser, i) => {\n return (_openBlock(), _createBlock(_component_ListItemCheck, {\n key: i,\n last: i == b.risers.length - 1,\n label: riser.name,\n value: riser.riserId,\n inputId: 'riser' + i,\n name: \"riser\",\n modelValue: _ctx.selectedRiserIds[_ctx.currentGateId][b.buildingId],\n \"onUpdate:modelValue\": [($event: any) => (_ctx.selectedRiserIds[_ctx.currentGateId][b.buildingId] = $event), ($event: any) => (_ctx.handleUpdateRiserSelection('', b.buildingId))]\n }, null, 8, [\"last\", \"label\", \"value\", \"inputId\", \"modelValue\", \"onUpdate:modelValue\"]))\n }), 128))\n ], 64))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(\"footer\", _hoisted_14, [\n _createVNode(_component_Button, {\n onClick: _ctx.handleBackButton,\n label: _ctx.$t('AppResource.Back'),\n class: \"p-button-text mr-3\"\n }, null, 8, [\"onClick\", \"label\"]),\n _createVNode(_component_Button, {\n onClick: _ctx.handleNextButton,\n label: _ctx.$t('AppResource.Continue'),\n class: \"p-button-rounded p-button-raised p-button--m\",\n disabled: !_ctx.nextEnabled\n }, null, 8, [\"onClick\", \"label\", \"disabled\"])\n ])\n ], 64))\n}","import { Vue, Options } from 'vue-class-component';\nimport {\n AddressingType,\n BuildingDTO,\n EntrancePlantDetailDTO,\n EntrancePlantStructureCreateDTO,\n EPDeviceTypeEnum,\n GateConfigDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport plantsClient from '@/core/services/plants';\nimport ButtonSelection from '@/views/components/ButtonSelection/ButtonSelection.vue';\nimport { SET_SELECTED_PLANT_ID } from '@/core/store/action-types';\n\n@Options({\n name: 'DialogEntrancePlantCreateStep7',\n components: {\n ButtonSelection,\n },\n props: {\n plant: {\n required: true,\n type: Object as () => EntrancePlantDetailDTO,\n },\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n plant: function (newValue) {\n if (newValue) this.initializeData();\n },\n \"currentGate.scsAddress\"() {\n this.verifyValidityOfScsAddress();\n },\n \"currentGate.newPeSelected\": function (newVal) {\n if (newVal) {\n this.smartReaderDisabled = true;\n this.keypadDisabled = false;\n } else if (!this.currentGate.keypadSelected) {\n this.smartReaderDisabled = false;\n }\n },\n \"currentGate.keypadSelected\": function (newVal) {\n if (newVal) {\n this.smartReaderDisabled = true;\n this.newPeDisabled = false;\n } else if (!this.currentGate.newPeSelected) {\n this.smartReaderDisabled = false;\n }\n },\n \"currentGate.smartReaderSelected\": function (newVal) {\n if (newVal) {\n this.newPeDisabled = true;\n this.keypadDisabled = true;\n } else {\n this.newPeDisabled = false;\n this.keypadDisabled = false;\n }\n },\n },\n emits: ['is-loading', 'onBack', 'onNext', 'plant-edited'],\n computed: {},\n})\nexport default class DialogEntrancePlantCreateStep7 extends Vue {\n plant!: EntrancePlantDetailDTO;\n plantId!: number;\n currentGateIndex = 0;\n gateConfig: { [key: string]: GateConfigDTO } = {};\n readonly MIN_SCS_ADDRESS = 0;\n readonly MAX_SCS_ADDRESS = 95;\n scsAddrNotValid: boolean = false;\n invalidScsReason: string = '';\n\n changingGate = false;\n\n readonly AllBuildingsValue = \"All_buildings\";\n readonly AllRisersValue = \"All_risers\";\n \n allBuildings: {[key: string]: boolean} = {};\n allRisers: { [key: string]: { [innerKey: string]: boolean } } = {};\n selectedBuildingIds:{ [key: string]: string[] } = {};\n selectedRiserIds: { [key: string]: { [innerKey: string]: string[] } } = {};\n\n get selectedBuildings(): BuildingDTO[] | null {\n if (!this.plant.buildings) return null;\n return this.plant.buildings.filter(b => this.selectedBuildingIds[this.currentGateId!].includes(b.buildingId!));\n }\n\n get currentGateId(): string | null {\n if (!this.plant.gates) return null;\n return this.plant.gates[this.currentGateIndex].gateId ?? null;\n }\n\n get currentGateScs(): number {\n return this.plant.gates![this.currentGateIndex].scsAddress!;\n }\n\n get currentGate(): GateConfigDTO | null {\n if (!this.plant.gates) return null;\n const gateId = this.currentGateId;\n if (!gateId) return null;\n const g = this.gateConfig[gateId];\n return g;\n }\n get isBRFA() { \n return this.plant.addressingType==AddressingType.BuildingRiserFloorApartment;\n }\n\n get pageTitle() {\n return `${this.$t('AppResourceEP.SetupGateTitle').toString()} ${\n this.currentGateIndex + 1\n }`;\n }\n\n mounted(): void {\n this.initializeData();\n }\n\n initializeData() {\n if (!this.plant.gates) return; \n for (const gate of this.plant.gates) {\n this.selectedBuildingIds[gate.gateId!] = [];\n this.selectedRiserIds[gate.gateId!] = {};\n this.allBuildings[gate.gateId!] = false;\n this.allRisers[gate.gateId!] = {};\n this.plant.buildings?.forEach((building) => {\n this.selectedRiserIds[gate.gateId!][building.buildingId!] = [];\n this.allRisers[gate.gateId!][building.buildingId!] = false;\n });\n gate!.connectedBuildingIds!.forEach((buildingId) => {\n this.selectedRiserIds[gate.gateId!][buildingId] = [];\n this.allRisers[gate.gateId!][buildingId] = false;\n });\n this.gateConfig[gate.gateId!] = new GateConfigDTO({\n scsAddress: gate.scsAddress,\n gateName: gate.name,\n newPeSelected: gate.devices?.some((d) => d.type == EPDeviceTypeEnum.Linea5000) ?? false,\n keypadSelected: gate.devices?.some((d) => d.type == EPDeviceTypeEnum.KeyPad) ?? false,\n smartReaderSelected: gate.devices?.some((d) => d.type == EPDeviceTypeEnum.SmartAccess) ?? false,\n connectedBuildingIds: gate.connectedBuildingIds ?? [],\n connectedRiserIds: gate.connectedRiserIds ?? [],\n connectedApartmentsIds: gate.apartments ?? [],\n });\n }\n this.buildForm(); \n this.refreshDeviceSelection();\n }\n buildForm() {\n if (this.plant.gates && this.plant.gates.length > 0) {\n for (const gate of this.plant.gates) {\n if (gate.connectedBuildingIds) {\n gate.connectedBuildingIds!.forEach((buildingId) => {\n this.selectedBuildingIds[gate.gateId!].push(buildingId);\n let buildings = this.plant.buildings!.filter(b => b.buildingId == buildingId);\n let building = buildings.length > 0 ? buildings[0] : null;\n if (building) {\n gate.connectedRiserIds!.forEach(riserId => {\n if (!this.selectedRiserIds[gate.gateId!][buildingId].includes(riserId!) && building!.risers!.some(r => r.riserId == riserId!)) {\n this.selectedRiserIds[gate.gateId!][buildingId].push(riserId);\n }\n });\n }\n });\n }\n }\n }\n }\n\n getDataToSave() {\n return new EntrancePlantStructureCreateDTO({\n wizardStep: 3,\n gateConfigStructure: this.gateConfig,\n });\n }\n\n checkInputValidity() {\n if(this.currentGate) {\n if(this.currentGate.scsAddress! < this.MIN_SCS_ADDRESS)this.currentGate.scsAddress = this.MIN_SCS_ADDRESS\n if(this.currentGate.scsAddress! > this.MAX_SCS_ADDRESS)this.currentGate.scsAddress = this.MAX_SCS_ADDRESS\n }\n }\n\n verifyValidityOfScsAddress() {\n if(this.currentGate) {\n if (this.currentGate.scsAddress === undefined) return false;\n \n const value = Number(this.currentGate.scsAddress);\n\n const scsAddressesPlusCurrentAdress = this.plant.scsAddressHelper!.availableScsAddressGate!.map(addr => addr) ?? [];\n scsAddressesPlusCurrentAdress?.push(this.currentGateScs);\n\n const acceptedRange = value >= this.MIN_SCS_ADDRESS && value <= this.MAX_SCS_ADDRESS;\n const isItAvailable = scsAddressesPlusCurrentAdress.includes(value) ?? false;\n this.scsAddrNotValid = !acceptedRange || !isItAvailable;\n if (!acceptedRange) {\n this.invalidScsReason = this.$t('AppResourceEP.GateScsAddressOutOfRange');\n } else if (!isItAvailable) {\n this.invalidScsReason = this.$t('AppResourceEP.ScsAddressAlreadyInUse');\n } else {\n this.invalidScsReason = '';\n }\n }\n }\n\n retrieveApartmentIds() {\n if (this.isBRFA)\n {\n const selectBuildings = (this.plant.buildings || [])\n .filter((b) => this.currentGate!.connectedBuildingIds?.includes(b.buildingId!));\n const selectedApartments = selectBuildings\n .flatMap((b) => b.apartments || [])\n .filter((r) => r.riserId && this.currentGate!.connectedRiserIds?.includes(r.riserId))\n .map((a) => a.apartmentId!);\n this.currentGate!.connectedApartmentsIds = selectedApartments;\n } \n else \n {\n this.currentGate!.connectedApartmentsIds = this.plant.buildings\n ?.filter((b) => this.currentGate!.connectedBuildingIds?.includes(b.buildingId!))\n .flatMap((b) => b.apartments || [])\n .map((a) => a.apartmentId!) || [];\n }\n }\n\n async handleBackButton() {\n if (this.plant.gates) {\n if (this.currentGateIndex > 0) {\n await this.changeGate('back');\n this.refreshDeviceSelection();\n return;\n }\n }\n this.$emit('onBack', 'DialogEntrancePlantCreateStep6');\n }\n\n async handleNextButton() {\n if (this.currentGate) {\n this.currentGate.connectedRiserIds =[... new Set(Object.values(this.selectedRiserIds[this.currentGateId!]).flat())];\n this.currentGate.connectedBuildingIds = [...new Set(this.selectedBuildingIds[this.currentGateId!])];\n this.retrieveApartmentIds();\n }\n if (this.plant.gates) {\n if (this.currentGateIndex < this.plant.gates.length - 1) {\n await this.changeGate('next');\n this.refreshDeviceSelection();\n return;\n }\n await this.updatePlantStructure(this.getDataToSave());\n }\n this.goToPlantDetail();\n }\n\n async changeGate(direction: 'next' | 'back') {\n this.$emit('is-loading', true);\n this.changingGate = true;\n if (direction === 'next') {\n this.currentGateIndex++;\n } else {\n this.currentGateIndex--;\n }\n setTimeout(() => {\n this.changingGate = false;\n this.$emit('is-loading', false)\n }, 500);\n }\n\n goToPlantDetail() {\n this.$nextTick(async () => {\n await this.$store.dispatch(SET_SELECTED_PLANT_ID, this.plantId);\n this.$router.push({\n name: 'page-entranceplant-dashboard',\n params: { plantId: this.plantId.toString() ?? '' },\n });\n this.$toast.add({\n severity: 'success',\n summary: this.$t('AppResource.PlantCreated'),\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 updatePlantStructure(structure: EntrancePlantStructureCreateDTO) {\n if (!this.plantId) return;\n this.$emit('is-loading', true);\n try {\n await plantsClient.structure(this.plant.desktopId!, structure);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.$emit('is-loading', false);\n }\n }\n newPeDisabled = false;\n keypadDisabled = false;\n smartReaderDisabled = false;\n refreshDeviceSelection() {\n if (!this.currentGate) return;\n this.newPeDisabled = false;\n this.keypadDisabled = false;\n this.smartReaderDisabled = false;\n\n if(this.selectedBuildingIds[this.currentGateId!].length==this.plant.buildings?.length) {\n this.allBuildings[this.currentGateId!] = true;\n }\n this.selectedBuildingIds[this.currentGateId!].forEach((buildingId) => { \n if(this.selectedRiserIds[this.currentGateId!][buildingId].length==this.plant.buildings?.filter(b => b.buildingId == buildingId)[0].risers?.length) {\n this.allRisers[this.currentGateId!][buildingId] = true;\n }\n });\n }\n\n get nextEnabled(): boolean {\n if (this.scsAddrNotValid) return false\n if (!this.currentGate || !this.selectedBuildingIds[this.currentGateId!]) return false;\n let devicesSelected= ((this.currentGate.newPeSelected == true || this.currentGate.keypadSelected == true || this.currentGate.smartReaderSelected == true));\n let buildingsSelected = this.selectedBuildingIds[this.currentGateId!].length > 0;\n let risersSelected = true;\n if (this.isBRFA) {\n //foreach building selected, check if one riser is selected\n this.selectedBuildingIds[this.currentGateId!].forEach((buildingId) => { \n if (this.selectedRiserIds[this.currentGateId!] && this.selectedRiserIds[this.currentGateId!][buildingId]) {\n risersSelected = risersSelected && this.selectedRiserIds[this.currentGateId!][buildingId].length > 0;\n }\n });\n return devicesSelected && buildingsSelected && risersSelected;\n }\n return devicesSelected && buildingsSelected;\n }\n\n handleUpdateBuildingSelection(option: string, buildingId?: string) {\n if (option == this.AllBuildingsValue) {\n if (!this.allBuildings[this.currentGateId!]) {\n this.selectedBuildingIds[this.currentGateId!].splice(0);\n this.plant.buildings!.forEach(b => {\n this.selectedRiserIds[this.currentGateId!][b.buildingId!] = [];\n this.allRisers[this.currentGateId!][b.buildingId!] = false;\n });\n }\n else {\n this.plant.buildings!.forEach(element => {\n if(!this.selectedBuildingIds[this.currentGateId!].includes(element.buildingId!)) {\n this.selectedBuildingIds[this.currentGateId!].push(element.buildingId!);\n this.selectedRiserIds[this.currentGateId!][element.buildingId!] = [];\n this.allRisers[this.currentGateId!][element.buildingId!] = false;\n }\n });\n }\n }\n else if(buildingId) {\n if (!this.allBuildings[this.currentGateId!] && this.selectedBuildingIds[this.currentGateId!].length == this.plant.buildings?.length) {\n this.allBuildings[this.currentGateId!] = true;\n this.selectedRiserIds[this.currentGateId!][buildingId] = [];\n this.allRisers[this.currentGateId!][buildingId] = false;\n }\n else if (this.allBuildings[this.currentGateId!]) {\n this.allBuildings[this.currentGateId!] = false;\n this.selectedRiserIds[this.currentGateId!][buildingId] = [];\n this.allRisers[this.currentGateId!][buildingId] = false;\n }\n }\n }\n\n handleUpdateRiserSelection(option: string, buildingId: string) {\n let building = this.plant.buildings!.find(b => b.buildingId == buildingId);\n if (building) { \n if (option == this.AllRisersValue) {\n if (!this.allRisers[this.currentGateId!][buildingId]) {\n this.selectedRiserIds[this.currentGateId!][buildingId].splice(0);\n }\n else {\n this.selectedRiserIds[this.currentGateId!][buildingId] = building.risers!.map(r => r.riserId!);\n }\n }\n else {\n if (!this.allRisers[this.currentGateId!][buildingId] && this.selectedRiserIds[this.currentGateId!][buildingId].length == building.risers!.length) {\n this.allRisers[this.currentGateId!][buildingId] = true;\n }\n else if (this.allRisers[this.currentGateId!][buildingId]) {\n this.allRisers[this.currentGateId!][buildingId] = false;\n }\n }\n }\n }\n}\n","import { render } from \"./DialogEntrancePlantCreateStep7.vue?vue&type=template&id=28b56892&ts=true\"\nimport script from \"./DialogEntrancePlantCreateStep7.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogEntrancePlantCreateStep7.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 {\n EntrancePlantDetailDTO,\n EntrancePlantStructureCreateDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport DialogEntrancePlantCreateStep1 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep1/DialogEntrancePlantCreateStep1.vue';\nimport DialogEntrancePlantCreateStep2 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep2/DialogEntrancePlantCreateStep2.vue';\nimport DialogEntrancePlantCreateStep3 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep3/DialogEntrancePlantCreateStep3.vue';\nimport DialogEntrancePlantCreateStep4 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep4/DialogEntrancePlantCreateStep4.vue';\nimport DialogEntrancePlantCreateStep5 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep5/DialogEntrancePlantCreateStep5.vue';\nimport DialogEntrancePlantCreateStep6 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep6/DialogEntrancePlantCreateStep6.vue';\nimport DialogEntrancePlantCreateStep7 from './DialogEntrancePlantCreate/DialogEntrancePlantCreateStep7/DialogEntrancePlantCreateStep7.vue';\n\nimport plantsClient from '@/core/services/plants';\nimport { SET_SELECTED_PLANT_ID } from '@/core/store/action-types';\nimport { cloneObject, defaultNewEntrancePlant } from '@/core/utils/utils';\n@Options({\n name: 'WizardEntrancePlant',\n components: {\n DialogEntrancePlantCreateStep1,\n DialogEntrancePlantCreateStep2,\n DialogEntrancePlantCreateStep3,\n DialogEntrancePlantCreateStep4,\n DialogEntrancePlantCreateStep5,\n DialogEntrancePlantCreateStep6,\n DialogEntrancePlantCreateStep7,\n },\n props: {\n plantId: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n emits: ['exit-wizard', 'plant-edited', 'update'],\n})\nexport default class WizardEntrancePlant extends Vue {\n plantId: number | null = null;\n isLoading = false;\n nextEnabled = true;\n isEdit!: boolean;\n dialogStep = 1;\n entrancePlant: EntrancePlantDetailDTO = cloneObject(defaultNewEntrancePlant);\n\n dialogStepEntrancePlantComponent = 'DialogEntrancePlantCreateStep1';\n\n mounted() {\n this.initFormPlant();\n }\n\n async initFormPlant() {\n if (this.plantId) {\n await this.fetchPePlant(this.plantId);\n } else {\n this.entrancePlant = cloneObject(defaultNewEntrancePlant);\n }\n }\n\n async handleNext(nextComponentName: string, plantId: number) {\n if (plantId) {\n this.$emit('update', plantId);\n await this.fetchPePlant(plantId);\n } else {\n await this.fetchPePlant(this.plantId);\n }\n this.dialogStepEntrancePlantComponent = nextComponentName;\n }\n\n async handleBack(prevComponentName: string) {\n if (!prevComponentName) this.$emit('exit-wizard');\n else this.dialogStepEntrancePlantComponent = prevComponentName;\n }\n\n async handleEditedPlant() {\n if (this.plantId && this.isEdit) \n this.$emit('plant-edited');\n }\n\n async fetchPePlant(peId: number | null) {\n if (!peId) return;\n this.isLoading = true;\n\n try {\n this.entrancePlant = await plantsClient.entranceplantGET(peId, undefined);\n } catch (error) {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('general.operationError'),\n closable: true,\n life: 6000,\n });\n } finally {\n this.isLoading = false;\n }\n }\n\n handleStepLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n}\n","import { render } from \"./WizardEntrancePlant.vue?vue&type=template&id=6a941a97&ts=true\"\nimport script from \"./WizardEntrancePlant.ts?vue&type=script&lang=ts\"\nexport * from \"./WizardEntrancePlant.ts?vue&type=script&lang=ts\"\n\nimport \"./WizardEntrancePlant.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 { Vue, Options } from 'vue-class-component';\nimport { PlantType } from '@/../client-generator/generated-clients/plants';\nimport WizardPlantTypeSelection from './WizardPlantTypeSelection/WizardPlantTypeSelection.vue';\nimport WizardAutomationPlant from './WizardAutomationPlant/WizardAutomationPlant.vue'\nimport WizardEntrancePlant from './WizardEntrancePlant/WizardEntrancePlant.vue'\nimport { ResidentialTypePlant } from '@/core/utils/EntrancePlant/entrance-plant.utils';\n\nenum PlantCreateSteps {\n TYPE_SELECTION,\n WIZARD_AUTOMATION,\n WIZARD_ENTRANCE,\n}\n\n@Options({\n name: 'DialogPlantCreate',\n components: {\n WizardPlantTypeSelection,\n WizardAutomationPlant,\n WizardEntrancePlant,\n },\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n editPlantId: {\n type: Number,\n required: false,\n },\n editPlantType: {\n type: Number,\n required: false,\n },\n isEdit: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n if (newValue) this.initFormPlant();\n },\n },\n emits: ['hide-dialog', 'plant-edited'],\n})\nexport default class DialogPlantCreate extends Vue {\n isVisible!: boolean;\n editPlantId: number | null = null;\n localPlantId: number | null = this.editPlantId;\n editPlantType: PlantType | null = null;\n isDialogVisible = false;\n isLoading = false;\n isEdit!: boolean;\n PlantCreateSteps = PlantCreateSteps;\n plantCreateSteps: PlantCreateSteps = PlantCreateSteps.TYPE_SELECTION;\n selectedPlantType: PlantType = PlantType.AUTOMATION_PLANT;\n selectedResidentialType: ResidentialTypePlant = ResidentialTypePlant.NEW_PLANT;\n\n mounted() {\n this.localPlantId = this.editPlantId;\n this.isDialogVisible = this.isVisible;\n }\n\n initFormPlant() {\n this.localPlantId = this.editPlantId;\n if (this.editPlantId) {\n if (this.editPlantType == PlantType.ENTRANCE_PLANT) {\n this.plantCreateSteps = PlantCreateSteps.WIZARD_ENTRANCE;\n } else {\n this.plantCreateSteps = PlantCreateSteps.WIZARD_AUTOMATION;\n }\n } else {\n if (this.$config.ENTRANCE_PLANT_ENABLED) {\n this.plantCreateSteps = PlantCreateSteps.TYPE_SELECTION;\n } else {\n this.plantCreateSteps = PlantCreateSteps.WIZARD_AUTOMATION;\n }\n }\n }\n\n handleContinueButton(){\n if (this.selectedPlantType == PlantType.ENTRANCE_PLANT) {\n this.plantCreateSteps = PlantCreateSteps.WIZARD_ENTRANCE;\n } else {\n this.plantCreateSteps = PlantCreateSteps.WIZARD_AUTOMATION;\n }\n }\n\n updateId(e: number){\n this.localPlantId = e\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n onPlantEdited() {\n this.isDialogVisible = false;\n this.$emit('plant-edited');\n }\n\n handleStepLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n}\n","import { render } from \"./DialogPlantCreate.vue?vue&type=template&id=576365f6&ts=true\"\nimport script from \"./DialogPlantCreate.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogPlantCreate.ts?vue&type=script&lang=ts\"\n\nimport \"./DialogPlantCreate.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__","module.exports = __webpack_public_path__ + \"img/icon-garage.ff736917.svg\";","module.exports = __webpack_public_path__ + \"img/icon-loading.83458905.svg\";","module.exports = __webpack_public_path__ + \"img/icon-network.0411b7d4.svg\";","module.exports = __webpack_public_path__ + \"img/icon-weather.5a72b355.svg\";","module.exports = __webpack_public_path__ + \"img/icon-mx-server.529b5e1c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-favourite.ce7f9138.svg\";","module.exports = __webpack_public_path__ + \"img/icon-favourite-outline.56d4bb98.svg\";","module.exports = __webpack_public_path__ + \"img/icon-wifi.d72ad1e9.svg\";","module.exports = __webpack_public_path__ + \"img/icon-email.b2a6500a.svg\";","module.exports = __webpack_public_path__ + \"img/icon-filters.c0b258d4.svg\";","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\"","module.exports = __webpack_public_path__ + \"img/icon-kitchen.40fc9f7b.svg\";","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","module.exports = __webpack_public_path__ + \"img/icon-start-plan.2cb818f6.svg\";","module.exports = __webpack_public_path__ + \"img/icon-paperclip.f564901c.svg\";","module.exports = __webpack_public_path__ + \"img/icon-reorder-drag-and-drop.7f077836.svg\";","module.exports = __webpack_public_path__ + \"img/icon-mobile-device.1ca476dd.svg\";","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!./ButtonSelection.scss?vue&type=style&index=0&id=0849788d&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/icon-plan-duplicate.7f36dbd5.svg\";"],"sourceRoot":""}