{"version":3,"sources":["webpack:///./src/ui/components/components/ConnectivityChecker.vue","webpack:///./src/ui/components/components/ConnectivityChecker.vue?f65d","webpack:///./src/ui/components/components/ConnectivityChecker.vue?580a","webpack:///./src/ui/components/components/ConnectivityChecker.vue?d954","webpack:///./src/ui/views/Project/Settings/General.vue?d034","webpack:///./src/ui/views/Project/Settings/General.vue","webpack:///./src/ui/components/components/ManageProjectDuplicateWindow.vue","webpack:///./src/ui/components/components/DuplicationNavigation.vue","webpack:///./src/ui/components/components/DuplicationNavigation.vue?4833","webpack:///./src/ui/components/components/DuplicationNavigation.vue?7807","webpack:///./src/ui/components/components/DuplicationNavigation.vue?ce58","webpack:///./src/ui/components/components/ManageProjectDuplicateWindow.vue?659f","webpack:///./src/ui/components/components/ManageProjectDuplicateWindow.vue?f56a","webpack:///./src/ui/components/components/ManageProjectDuplicateWindow.vue?9de3","webpack:///./src/ui/views/Project/Settings/LynusQrCode.vue","webpack:///./src/ui/views/Project/Settings/LynusQrCode.vue?df61","webpack:///./src/ui/views/Project/Settings/LynusQrCode.vue?458a","webpack:///./src/ui/views/Project/Settings/LynusQrCode.vue?3a8a","webpack:///./src/ui/views/Project/Settings/General.vue?31d4","webpack:///./src/ui/views/Project/Settings/General.vue?e8f4","webpack:///./src/ui/views/Project/Settings/General.vue?38e7","webpack:///./src/ui/components/components/ManageProjectDuplicateWindow.vue?8774","webpack:///./src/ui/views/Project/Settings/LynusQrCode.vue?c834","webpack:///./src/ui/components/components/DuplicationStatusIndicator.vue","webpack:///./src/ui/components/components/DuplicationStatusIndicator.vue?36b0","webpack:///./src/ui/components/components/DuplicationStatusIndicator.vue?0fda","webpack:///./src/ui/components/components/DuplicationStatusIndicator.vue?b6ff"],"names":["_setup","_vm","staticStyle","style","isInModal","_c","$t","staticClass","model","value","conModel","expression","attrs","on","_s","tag","render","staticRenderFns","ConChecker","Vue","constructor","actions","enabled","this","projectsState","project","handleChange","val","$emit","created","JSON","parse","stringify","connectivity","addAction","type","action","params","headers","method","body","url","recipients","subject","push","deleteActionByIndex","index","splice","localProject","updateProject","__decorate","Prop","default","State","Action","Watch","deep","Component","components","email","EmailAction","webhook","WebhookAction","alert","AlertAction","component","ref","valid","callback","description","searchPlaces","_e","$event","$vuetify","resetButtonClickedVariable","fileObject","handleFileUpload","nativeOn","handleWeatherService","isWeatherServiceActive","rules","counter","$set","expert","country","superAdmin","plcPerformanceItems","hasMultipleBatteryTypes","batteryTypesItems","_v","proxy","key","stage","newProjectName","decrementStage","incrementStage","userFilteredRuleList","handleStageChange2","finalRuleList","length","ruleIndex","actionIndex","items","search","clearItems","scopedSlots","_u","fn","item","role","user","isLoading","roomIndex","duplicationStatus","rulesStatus","some","el","error","next","DuplicationNavigation","previous","ManageProjectDuplicateWindow","mixins","Validation","autoRuleIdList","loading","usersForNewProject","roomIdMapping","loadingText","rulesWithRecipients","finalRuleListOriginal","timer","undefined","isDuplicationDone","memberStatus","roomStatus","devicesStatus","variablesStatus","weatherServiceStatus","positionStatus","oldDevicesMap","handleDeleteMailSelection","recipientIndex","rulesState","rulesList","name","UserRoleCode","admin","readOnly","handleSelectAll","forEach","element","isDuplicated","ruleList","newList","currentRule","helperRule","find","id","rule","_","cloneDeep","deleteMember","onSelected","newUser","fetchUsers","isEmailValid","UserService","fetchUserByEmail","then","res","finally","s","re","test","toLowerCase","loadRules","$route","fetchDevices","fetchMPCListByProject","fetchVariables","fetchMeasurements","deviceList","devicesState","devices","toJS","mpcList","mpcState","mpcControllers","autoRuleList","Object","values","device","isDeviceHasErrorWarning","data","mappings","ShowEvent_errorWarningState","meta","errorRule","warningRule","mpc","controllerMappings","errorWarning","map","newElement","helperArray","includes","clearTimeout","window","stop","setReport","shouldShow","$refs","ModalWindowInstance","closeDialog","resetForm","beforeDestroy","roomsList","rooms","measurementsList","measurementsState","measurements","variablesList","variablesState","variables","newProject","created_at","plcLastUpdate","secret","roomsPositions","stats","wasInstallationWizardCompleted","disableInstallationWizardPopup","wasTenantWizardCompleted","loggerInformation","loggerType","solarmanLoggerInfo","checkProtocol","hasLynusInverter","overallProductionMeasurement","oldMember","currentMember","oldProject","resultNewProject","copyProject","setProject","removeConnection","$router","path","loadProject","createConnection","setMqttInfo","mqttClientInfo","password","username","mqttInfo","latitude","projectModel","lat","longitude","lon","returnWeatherStatus","activateWeatherService","mappedDevices","copyDevicesAndRoom","updateRoomPositions","addMembers","updateMemberOrders","addRulesNewProject","copyVariables","aliasObject","entries","async","currentVariable","varElement","variable","currentMeasurement","replaceAll","canDuplicate","regex","alias","returnStatus","modifyVariableAliasList","projectId","variablesObject","allPromises","Promise","allSettled","newRule","active","conditions","timeout","$store","dispatch","ruleModel","promise","status","newUserWithoutCollection","collection","newMember","createMember","member","showMessage","resultMember","newCollectionArray","collections","collectionId","roomEntrie","updateMemberCollections","project_id","collectionsList","roomMeta","roomItem","sortRoom","resultObject","copyRoomWithDevices","resultRoom","deviceResultList","resultDevices","deviceEntrie","deviceName","handleSelection","userElement","selections","getDevicesByCollectionID","collection_id","devicesList","getMpcList","Getter","Mutation","computed","ModalWindow","ManageCollectionsModal","CircleSpinner","DuplicationStatusIndicator","_self","require","LynusQrCode","qrOptions","errorCorrectionLevel","showDisableField","controller","joinable","handleDisable","disableQR","resetQRCode","resetQR","downloadQRCode","canvas","document","createElement","width","height","ctx","getContext","qrCodeImg","qrCode","firstChild","drawImage","text","controllerProjectId","textSize","font","fillStyle","textWidth","measureText","textX","textY","fillText","logoWidth","logoHeight","logoX","logoY","radius","enlargedRadius","beginPath","arc","Math","PI","fill","clip","logoImg","qrLogoImg","projectName","link","download","href","toDataURL","click","mounted","registerHooks","General","isWeatherServiceShow","envSettingsShowWeatherService","enableControllerSettings","envEnableControllerSettings","projectSnapshot","uploadButtonClicked","AllBatteryTypes","placesArr","getLocationWithDelay","isCustomLabel","envAppShowProjectTypeSelection","isDuplicating","PlcPerformanceCategorie","low","medium","high","appState","super_admin","location","isEqual","isProjectDataEqual","isLocationEqual","batterySystemType","isEqualToSaved","display_name","system","BatteryType","DEYE","toString","setLocation","handleChipsChange","tags","handleNavigationGuard","isDisable","createProjectSnapshot","changePlcDate","event","Date","toISOString","Number","wasLocationChanged","deactivateWeatherService","fetchWeather","isEmpty","all","deleteMPC","mpcObject","deleteProject","lastIndexOf","result","postAsset","imageId","e","preventDefault","stopPropagation","to","from","isLocalOriginProjectEqual","confirmationModal","confirmAction","reloadLocalProject","street","city","zip","phone","employeeName","serialNumber","plcPerformanceLevel","debounce","LocationService","fetchLocations","place","$nextTick","fetchMPCWeatherStatus","fetchRooms","LeaveConfirmationModal","DeleteModalForm","ProjectTagsField","iconSize"],"mappings":"qKAA4DA,EAAOC,WAAsB,MAAU,KAAOC,UAAY,GAAQ,EAAC,kB,OAAO,SAACC,YAAWC,CAA+EC,MAAQ,Q,OAAoC,IAAtB,YAAsB,qD,CAAC,QAAqB,aAAIJ,iBAAkBK,MAAwFC,eAAY,S,CAAc,KAAO,EAACN,GAAIK,EAAG,uEAAgE,U,YAAS,O,MAAO,CAAkB,QAAa,GAAC,iEAAM,aAAkB,gBAACE,eAAM,EAACC,eAAWC,I,MAA8C,CAAmC,MAAC,mBAACC,SAAU,SAAC,GAAkB,gCAAcT,WAAY,sBAAiB,SAAE,YAAS,CAACA,QAAY,S,CAAgB,OAAiC,aAAID,MAAOA,OAA6FM,gBAAY,oBAAuBA,QAAY,6EAAwB,SAACK,YAAM,U,CAAC,UAAe,YAAC,yBAACC,MAAG,CAAC,UAAQ,K,GAA8C,CAAC,kBAAIZ,OAAO,EAAIA,UAAU,Y,CAAkJ,SAAY,qGAAG,YAAC,8BAACY,MAAG,CAAC,UAAQ,K,GAAgD,CAAC,kBAAIZ,OAAO,EAAIA,UAAU,c,CAAoJ,SAAY,uGAAG,YAAC,8BAACY,MAAG,CAAC,UAAQ,K,GAA8C,CAAC,kBAAIZ,OAAO,EAAIA,UAAU,Y,CAAuKC,SAAY,sI,OAAC,SAAuB,MAAE,YAAU,CAACA,iBAAY,SAAoB,SAAE,YAAaY,CAAmHC,cAAe,QAAoBH,GAAK,GAAC,0G,IAAC,Y,YAAqB,OAAyB,OAAIP,OAAU,EAAC,OAACE,oBAAY,KAAyC,U,YAAqC,4BAAO,YAAC,CAACK,mBAAM,UAAC,eAAiBC,MAAG,CAAC,UAAQ,K,GAAsD,CAAC,kBAAIZ,OAAO,EAAIA,oBAAc,MAAsI,UAAa,KAAM,4FAAc,IAAb,YAAa,SAAiB,aAAII,aAAW,OAACE,aAAY,oB,CAAsC,UAAmB,YAAC,yBAACK,YAAM,CAAC,aAAY,QAAKC,MAAG,CAAC,UAAQ,K,GAA2C,CAAC,kBAAIZ,OAAO,EAAIA,mBAIlnF,GAASe,OAAQC,UAAe,oG,yFCehC,IAAqBC,EAArB,cAAwCC,OAAxCC,c,oBAKI,KAAAV,SAAgB,CACdW,QAAS,GACTC,SAAS,GAGX,cACE,OAAOC,KAAKC,cAAcC,QAI5BC,aAAaC,GACXJ,KAAKK,MAAM,eAAgBD,GAG7BE,UACEN,KAAKb,SAAWoB,KAAKC,MAAMD,KAAKE,UAAUT,KAAKE,QAAQQ,eAOzDC,UAAUC,GACR,MAAMC,EAAS,CAAE,KAAQD,EAAME,OAAQ,IAEvC,OAAQF,GACN,IAAK,UACHC,EAAOC,OAAS,CACdC,QAAS,CACP,eAAgB,oBAElBC,OAAQ,OACRC,KAAM,GACNC,IAAK,IAEP,MACF,IAAK,QACHL,EAAOC,OAAS,CACdK,WAAY,CAAC,oBACbC,QAAS,GACTH,KAAM,IAER,MACF,IAAK,QACHJ,EAAOC,OAAS,CACdF,KAAM,EACNK,KAAM,IAER,MAGJjB,KAAKb,SAASW,QAAQuB,KAAKR,GAO7BS,oBAAoBC,GAClBvB,KAAKb,SAASW,QAAQ0B,OAAOD,EAAO,GAGtC,sBACE,MAAME,EAAelB,KAAKC,MAAMD,KAAKE,UAAUT,KAAKE,UACpDuB,EAAaf,aAAeV,KAAKb,eAC3Ba,KAAK0B,cAAcD,KArEHE,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,gCACNF,gBAAlBG,eAAM,aAAW,oCACgBH,gBAAjCI,eAAO,2BAAyB,oCAY/BJ,gBADCK,eAAM,WAAY,CAAEC,MAAM,KAAO,iCAdjBtC,EAAU,gBAP9BuC,eAAU,CACTC,WAAY,CACVC,MAAOC,OACPC,QAASC,OACTC,MAAOC,WAGU9C,WCnB6Z,I,YCO9a+C,EAAY,eACd,EACA,EACAhD,GACA,EACA,KACA,KACA,MAIa,OAAAgD,E,2CClBf,W,mLCAuN,EAAS,W,IAA8EC,EAAW3D,OAAoCC,EAAK,EAAC,SAAQP,EAAIkE,MAAM,Y,OAACC,SAAS,C,YAAyB,2B,MAAK,CAACzD,UAAqB,CAACN,EAAG,OAAeE,YAAY,0BAAeK,GAAK,GAAC,uE,IAAC,OAAU,oCAAE,MAAK,CAAqBA,MAAM,QAAC,SAAQ,YAAC,EAAK,MAAI,GAAU,qBAAuBA,GAAK,OAAC,C,YAASX,e,MAAyD,CAAiB,W,CAA8D,YAAY,QAAI,MAAC,CAACO,GAAM,IAACC,GAAK,KAAyB2D,U,CAAgE,EAAC,Q,MAACzD,CAA8B,6DAAIN,MAAG,SAAgBO,SAAM,GAAC,MAAQX,GAAIK,MAAG,0BAAyD,UAAQ,M,MAAuB,CAAiB,0BAACE,SAAM,YAACC,EAAK,KAAMuC,eAAkBqB,W,WAA+CpE,uBAA4CU,SAAW,CAA+B,OAAIN,MAAQ,EAAC,4DAACH,MAAW,SAAE,SAAS,GAAM,gBAAyBU,MAAM,CAAC,MAAO,EAACX,aAAa,iBAAC,kBAAmBqE,GAAa,OAAW,EAAG,oCAAkB,WAAW,mCAAqB,S,YAAe,CAAmB,gB,CAA6C,SAAa,C,MAAc,CAAmB,MAAQrE,EAAIK,UAA8C,eAAc,eAAgC,aAAG,MAAC,SAAC,Y,eAA0CgE,GAAmB,YAAC,GAAC,mB,eAA2CA,GAAmB,2BAAE,2BAAC9D,gBAAM,GAACC,MAAOR,EAAIO,GAAM,2CAAC4D,YAAS,iC,GAA8B,CAACzD,qBAAW,YAAO,kBAA0DC,sBAAM,YAAC,eAAmB,I,MAAU,CAAqC,cAAI,SAAQ2D,SAAQ,GAAa3D,EAAM,SAAU,WAAS,YAAU,+CAAE,MAAK,CAAOL,kBAAY,G,GAAkC,CAAe,sCAAcA,KAAW,MAAC,aAAc,MAAK,CAAOA,OAAqBF,GAAG,KAAwBO,GAAM,O,CAA6D,QAAK,C,YAA6B,qB,YAAmB,CAA2C,OAAU,S,CAAuF,QAAS,C,YAAa,e,CAAM,QAAOX,C,YAAgC,QAAwC,2BAACY,MAAG,CAAC,MAAQ,WAAS2D,aAAO,0B,GAAKxB,oBAAwD,0BAAC,2CAAI,WAAO,EAAM,mBAACzC,MAAW,EAAC,mDAASF,OAAG,KAAwBO,OAAM,EAAC,KAAO,EAAC,SAAQ,WAA8E,MAAK,oBAAmB,qB,GAA6B,CAA2C,eAAea,GAAmB,eAAe,0CAAgF,KAAOxB,MAAIwE,C,YAA4B,QAAwC,2BAAC5D,MAAG,CAAC,MAAQ,SAAgB,QAAP2D,EAAO,qF,GAAC,oBAAgC,0BAAC,2CAAI,WAAO,EAAM,mBAACjE,MAAW,EAAC,uDAAkEF,OAAG,KAAgBE,OAAW,EAA+BK,KAAM,sBAAC,MAAQ,cAAQ,2B,GAAe,CAAuD,eAAiB,GAAC,uBAAqB,QAAwB,KAAQ,MAAK8D,CAA0B,YAAC,iEAAClE,GAAK,OAAC,C,YAAYmE,8B,MAAYP,C,MAA6BO,SAAc,SAAC,GAAChE,QAAW,2CAAY,kBAAIN,qBAAW,oBAAoBO,IAAO,OAAQ,8B,MAAuC,CAAgB,mBAAG,SAAC,YAAC,aAAYgE,GAAoBvE,WAAU,gBAA0BJ,EAAG,OAAIA,CAA4FC,YAAY,O,MAAC,CAAgB,eAAID,UAAWA,EAAIa,cAAqFP,UAAY,KAAwLA,IAAmBK,MAAM,qB,CAA+B,SAAQ,C,YAAiBX,Y,CAA+D,UAAc,EAAC,kEAA+E,OAA/E,SAAE,YAAC,CAAC4E,MAAS,W,GAA2B,OAAWC,2DAA4B,gB,YAAA,sBAAE,iGAAm2B,OAAn2B,0CAACtE,YAAM,O,MAAM,CAA8B4D,SAAwB,OAAf,Q,MAAoBW,SAA0B,MAAC,6DAACpE,eAAW,IAA2B,SAAO,CAAoBC,SAAM,YAAC,OAAQX,EAAIK,qBAAG,K,MAA8F,CAAoB,+BAAkB,qBAACE,EAAM,0BAAyD4D,WAAS,4BAAkF,iB,MAACzD,CAAwD,sEAAI,MAAO,SAAmHC,cAAM,EAAC,eAAO,EAAI,mBAAcL,OAA0BN,MAAO,EAAG,aAAYK,KAAG,0BAAyEC,SAAW,SAAO,GAACK,EAAM,yDAAU,WAAS,kDAAU,iGAAE,MAAK,CAAgBA,KAAM,O,CAAyE,QAAQ,C,YAAmB,a,CAAI,KAAO,IAAK,EAACoE,GAAMC,KAAO,oDAAC,mB,YAAY,OAAK,MAAC,CAACzE,GAAM,IAACC,GAAK,KAAqC2D,U,CAA4E,EAAC,Q,MAACzD,CAA0C,oEAAI,MAAO,SAASJ,SAAY,GAAOK,MAAM,kBAAC,UAAQ,M,MAAe,CAAK,sCAAIP,SAAG,SAAe,GAACO,EAAM,2CAA0E,WAAQ,oCAAuB,YAAY,CAAI,YAAC,OAACJ,MAAM,CAACC,GAAK,IAA6C2D,Q,GAA6Bc,O,CAAyDvE,SAAW,CAAuC,OAAI,MAAO,KAAO,0DAAEJ,MAAW,SAAQK,SAAM,GAAC,UAAQ,M,MAAe,CAAK,8CAAIP,SAAG,SAAe,GAACO,EAAM,mDAAmE,WAAQ,4CAAuB,KAAO,OAAMoE,C,YAA0B,OAAK,MAAC,CAACxE,GAAM,IAACC,GAAK,KAAsC2D,U,CAA6E,EAAC,Q,MAACzD,CAA2C,8DAAI,MAAO,SAASJ,SAAY,GAAOK,MAAM,kBAAC,UAAQ,M,MAAe,CAAK,uCAAIP,SAAG,SAAe,GAACO,EAAM,4CAAmE,WAAQ,qCAAuB,KAAO,OAAMoE,C,YAA0B,OAAK,MAAC,CAACxE,GAAM,IAACC,GAAK,KAAsC2D,U,CAA6E,EAAC,Q,MAACzD,CAA2C,8DAAI,MAAO,SAASJ,SAAY,GAAOK,MAAM,kBAAC,UAAQ,M,MAAe,CAAK,uCAAIP,SAAU,SAAC,GAACE,OAAY,eAAM,wBAAQ,WAAQ,qCAAW,GAAI,EAAC,QAAI,mBAAE,MAAK,CAAgBK,GAAM,IAAC,QAAmE,WAA+B,UAAgB,YAAC,OAACJ,MAAM,CAACC,GAAK,IAAuC2D,Q,GAA6Bc,O,CAAmDvE,SAAW,CAAiC,OAAIN,MAAG,yDAAgBO,MAAM,SAAC,SAAW,GAAsD,UAAQ,M,MAAuB,CAAiB,wCAACJ,SAAM,YAACC,EAAK,KAAMuC,eAAiB,KAACmC,OAAY,a,WAAmClF,qCAA4CU,SAAW,CAA+B,OAAI,MAAO,KAAO,kDAAEJ,MAAW,SAAQK,SAAM,GAAC,UAAQ,M,MAAe,CAAK,sCAAIP,SAAG,SAAe,GAACO,EAAM,2CAAqE,WAAQ,oCAAuB,YAAY,CAAI,YAAC,OAACJ,MAAM,CAACC,GAAK,IAAoC2D,Q,GAA6Bc,O,CAAgDvE,SAAW,CAA8B,OAAIN,MAAG,0DAAgBO,MAAM,SAAC,SAAW,GAAyD,UAAQ,M,MAAuB,CAAiB,qCAACJ,SAAM,YAACC,EAAK,KAAMuC,eAAiB,KAACmC,OAAOC,MAAQ,I,WAAmCnF,kCAA+CU,SAAW,CAAkC,OAAI,MAAO,KAAO,qDAAEC,MAAM,SAAC,SAAO,GAAI,gBAAcL,OAA0BN,MAAO,EAAG,aAAYK,KAAG,eAA0EM,SAAM,YAAC,EAAK,KAAG,yCAAW,WAAK,uCAAQP,GAAG,UAAgBO,MAAM,CAAC,KAAO,O,CAA4E,QAAU,C,YAAaX,a,CAAmB,SAAY,EAAI,gF,MAAC,CAA2B,OAACO,GAAM,KAACC,GAAK,O,GAAkER,OAAa+C,C,MAA2C,CAACrC,QAAW,sDAAmC,eAAIN,SAAG,GAAgBO,MAAM,kBAAC,UAAYN,KAA8D,UAAQ,EAAQ,Y,MAAe,CAA4B,QAAW,aAAK,qBAAC,SAAU,SAAM+E,GAAW,iDAAQ5E,WAAWuC,uC,EAAoE/C,OAAa+C,C,MAAmD,CAACrC,QAAW,8DAA2C,eAAIN,SAAG,GAAYO,MAAM,kBAAC,UAAY0E,KAAoB,UAAYhF,EAAG,Y,MAAmF,CAAc,QAAW,aAAK,6BAAC,kBAAkB,GAAC,OAAU,EAAEL,aAAIoF,mCAAY7E,WAAM,+CAA8D4D,SAAS,C,MAAmB,CAAmE,MAAC,sBAACzD,QAAW,qEAAkD,eAAKV,SAAIsF,GAA0E3E,UAAM,KAAC,gBAAe,GAAyE,UAAQ,EAAQ,Y,MAAe,CAAiB,QAAU,aAAC,oCAAK,qBAACJ,EAAM,8DAAmD4D,WAAS,sDAA2E,EAAC,8D,MAACzD,CAAkD,oFAAG,MAAS,SAAiBC,SAAM,GAAC,UAAQ,KAAC,UAAS,GAAU,OAAIP,MAAG,eAAe,yBAACO,SAAM,YAAC,OAAQX,EAAM,aAAC,+BAAyE,WAAW,2CAA+B,QAAW,GAAC,EAAI,Q,MAAC,CAA2B,OAACO,GAAM,KAACC,GAAK,O,GAAuER,OAAa+C,C,MAAgD,CAACrC,QAAW,2DAAwC,eAAIN,SAAG,GAAYO,MAAM,kBAAC,UAAY4E,KAAkB,UAAYlF,EAAG,Y,MAA6E,CAAc,qBAAkB,0BAAC,SAAU,SAAM+E,GAAW,sDAAQ5E,WAAWuC,4C,EAAyE/C,OAASA,C,MAA4D,CAACU,QAAW,kBAAgD,uEAAI,MAAO,SAAqHJ,SAAY,GAA6BN,gBAAgBI,GAAmCO,UAAM,c,MAAmD,CAAwB,qBAAmBJ,kCAAM,qBAAI,8D,WAAuD,qDAAgC,cAAmB,SAASgE,kBAAO,+D,YAAKxB,2B,CAAqB,EAAC,6C,MAAC,CAAsC,8CAAG,SAAW,EAAI,SAA+GzC,aAAY,SAAmBA,IAAiDF,2BAAW,YAACE,OAAW,EAAC,sBAAiB,IAAQ,mBAAe,YAAC,eAAQ,GAAaF,cAAU,wBAAsCJ,EAAIwF,MAAO3E,KAAOR,EAAG,oCAAwC,EAAO,cAAC,sCAACC,YAAY,QAAuBK,GAAK,MAAC,C,YAAS,oC,CAAS,U,YAA0B,kBAAW,MAAC,CAAG,UAAC,IAAC,MAAQX,YAA4B,CAACI,EAAG,OAAO,CAACE,YAAY,wBAAY,CAACN,EAAIwF,GAAGxF,EAAIa,GAAGb,EAAIK,GAAG,qCAAqC,EAAG,OAAI,CAA4BC,YAAY,uBAAgB,MAAK,CAAOA,MAAW,SAAUN,UAAa,IAAoGW,UAAM,SAAmC,GAAC,CAAG,MAAC,0BAAkC,WAAE,YAAY,YAAEL,QAAY,4CAAiB,+BAACK,YAAM,iB,CAAC,QAAQ,C,YAAmB,QAAI,uGAAE,MAAK,CAAQL,gBAAY,gBAAuFA,IAA8BK,cAAM,kB,CAAiB,U,YAAyB,kBAAI,OAAIP,MAAS,QAAEE,UAAY,MAAsH2D,GAAI,QAAoBhE,YAAY,Y,CAAC,OAAS,2DAAG,YAAC,kBAACU,MAAM,CAAC,cAAoE,YAA+D,gBACnha,WACGK,wBAEJ,GAASD,KAAQC,8CAAe,6C,4ZCJoS,W,MAAiB,K,IAAe,SAAIZ,EAAG,MAAO,Y,SAACE,cAAY,C,IAAW,sB,MAAgF,CAACmF,MAAM,OAAK,SAAC,OAACC,mBAAgB,a,YAAuB1F,EAAIwF,GAAG,EAA8D,IAAC,YAACC,cAAY,iBAAI,YAAO,kBAAI,OAAW,MAAW,SAAOnF,UAAY,MAA8DL,UAAY,C,YAAC,YAA+B,0E,OAAQO,G,sCAA0DE,MAAU,IAAC,wD,OAAWN,G,KAAuD,O,GAAsBO,W,MAAO,GAAO,MAAC,C,YAAmB,oB,CAAe,oBAAmlR,OAA5kR,UAAG,aAAIX,aAAWA,mB,MAAkH,CAAiB,QAAU,MAAe,SAAO,YAAG,WAA6HW,WAAM,U,CAAkB,SAAegF,C,YAAiB,oBAAG,WAAE,MAAMH,CAA4H7E,MAAM,SAAC,SAAQ,QAAQ,EAAC,WAAmC,sGAAE,MAAM6E,CAAqH7E,MAAM,SAAC,SAAQ,QAAQ,EAAC,WAAmC,mGAAE,MAAM6E,CAA4H7E,MAAM,SAAC,SAAQ,QAAQ,EAAC,KAAO,MAAM,CAACX,EAAIwF,GAAG,IAAIxF,EAAIa,GAAGb,EAAIK,GAAG,2DAA2D,OAAKD,EAAG,iBAAkB,CAACE,OAAiCF,MAAG,SAAqBO,SAAM,UAAC,KAAO,MAAM,CAACP,EAAG,OAAM,yFAACE,OAAmCF,MAAQ,SAAEH,SAAY,UAAC,KAAO,MAAS,CAACG,EAAG,SAAc,GAAC,2FAACE,OAA+BK,MAAM,SAAC,KAAO,M,CAAmC,KAAO,IAAKN,EAAG,6DAAiE,qB,YAAW,oB,CAAI,SAAa,C,MAAC,CAAiB,W,CAAQG,QAAU,C,YAA0B,sB,GAAgBR,MAAI4F,C,YAAmB,CAAClF,cAA+B,GAAG,OAAM,CAAyBC,YAAM,mB,MAAC,CAAwB,yBAAG,QAAC,GAAC,QAAWX,GAAI6F,kEAAe,SAAWC,GAAc,YAAI,MAAO,U,MAA4B,CAAU,uBAAI1F,SAAS,YAACE,iBAAY,GAAwEA,WAAY,qBAAkLA,OAAW,wBAAC,CAAO,MAAMkF,CAAqJlF,oBAAY,G,GAA8B,CAA2B,0BAAIF,KAAG,EAAQ,mBAAiCJ,GAAIwF,EAAGxF,OAAc,CAAwH,MAAOI,CAAUsF,KAAI7C,MAAyB,GAAEzC,MAAQ,C,YAAa,qB,CAAkB,I,EAAhB,qBAAgB,gB,YAAC,yB,GAAkC,SAAe,GAAC,2H,YAAgB,QAAE,GAAI,GAAC,IAAM,iI,YAAY,0BAAO,GAAGJ,CAA8CM,QAAY,kB,CAA0BL,U,YAAa,mB,GAAmB,UAAc,6G,OAAM,SAACU,IAAK,E,YAAU,Q,CAAS,SAAiB,YAAC,CAACJ,QAAM,OAACC,kBAAWuF,gBAA0C5B,gBAAS,mB,CAA8E,EAAC,O,YAAW,QAA2C,uCAAG,YAAQ,QAAI,CAAC,EAAE/D,OAAG,CAA2B,YAAC,CAAC,aAAeyF,MAAe,cAAWG,OAAsB,MAAM,CAAsBrF,MAAM,SAAC,eAAO,IAAOP,MAAG,CAAOE,MAAW,EAAC,qCAAuBN,SAAIiG,SAAcC,GAAwB5F,OAAY,6CAA4LA,WAAY,+CAA2P,WAAiBoF,GAAIS,2BAAS,GAAEnG,CAAmD,SAAU,EAAK,e,KAAM,yB,GAAiGM,SAAY,C,MAAU8F,C,KAAwR,M,SAAgD9F,C,YAA0B,qB,CAAsB,I,EAANK,cAAM,gB,YAAC,yB,MAAoG,MAAU,GAAG,iI,YAAC,Q,GAAgB,GAAC,gN,OAACJ,QAAM,C,YAA6F4D,WAAS,SAAe,K,SAACnE,MAASA,C,IAA0F,Y,CAAY,U,EAAXU,MAAW,sC,YAAiF,QAAE,CAAa,IAAZ,EAAY,mM,OAACJ,QAAY,CAAkCK,IAAK,YAAC,E,YAAU,U,CAAC,SAAY,CAAG,MAAC,CAAG,MAAC,2DAAC,SAAQ,G,MAAwBX,UAAsE,OAAII,MAAG,EAAQ,cAAS,GAAe,QAAM,GAAC,qBAAK,SAAQ,SAAI,GAAK,6DAAsC,gGAAqC,EAACJ,OAAI8F,CAAc,8CAAO,MAAI,CAA2B,QAAO,UAAC,KAAU,GAAK,CAAExF,MAAY,YAA6B,OAAIN,EAAM,0BAAQ,UAA2G,GAAQA,OAAIqG,GAAK,8BAAC,GAAS,EAAI,UAAS,OAA0B,6BAAc,C,GAAC,CAAkB,SAAW,EAAC,eAAQ,OAAY,mBAAwB,YAAa,C,MAAC,CAAqE,WAAmBzF,CAAE,EAAC,O,YAAC,qB,GAAsCZ,GAAIsG,IAAM,EAAC/B,KAAM,yE,YAAC,O,MAAC,C,MAA2C+B,EAAM,MAAO,QAAC,UAAC,eAAWC,SAAW,aAACC,eAAgBC,GAAKf,YAAU,QAACgB,aAAY,Q,MAAEC,OAAK,SAAE,G,MAAQ,EAAI,GAAG,sDAA6D,mB,GAAIjB,CAAgBgB,qBAAY,YAAEC,Y,sBAA2B3G,SAAO2G,GAAiD,YAA2BpG,KAAM,c,YAA4B,O,IAAmB,OAAU,GAAC,eAACG,IAAwB,MAAM,CAAC,0DAAsBN,CAAUE,gBAAqBN,GAAIwF,UAAUxF,KAAoH,IAA2BM,SAAY,OAAM,kDAAc,QAAU,Y,MAAkB,CAAiC,cAAE,SAAU,SAAC,GAACA,QAAY,G,WAA4B,WAAO,EAAEN,MAAO,C,YAAwF,Q,GAAE,O,YAAoB,Q,GAAoB,QAAY,EAAC,GAAK,iG,OAAC,QAAa,CAAM,IAAC,EAACW,YAAM,O,YAASX,CAAkB,0BAAqB,kBAAkB,kB,CAAmB,S,YAA6B,O,YAAc,CAAC,MAAO,QAAoB,oEAACO,YAAM,CAACC,YAAYoG,QAAMzC,cAAS,M,aAAyB0C,MAAkB,cAAC,OAAuB,OAAIzG,MAAQ,EAAC,cAACE,aAAY,QAAYuG,YAAS,OAA0DlG,eAAM,GAAC,gBAAekG,GAAK,YAA4B,SAAG,KAAC,GAAC,gBAA4C,MAAKvC,CAAiB3D,MAAM,OAAC,SAAO,YAAG,oBAAK,WAAQ,eAA+C,SAAC,sBAAG,CAACP,EAAG,SAAa,+CAACO,MAAM,CAAC,aAAc,EAAC,qBAAO,GAAO,GAAG,CAAc,oBAAS,qBAA6B,OAAWX,EAAI6F,QAAe,MAAM,CAAmB,SAAgClF,GAAK,CAAE,MAAO,YAAG,4BAAgDP,CAAE,EAAC,aAAa,CAACH,OAAa,aAAoB,cAAQ,QAAY,OAAK,kCAACW,GAAG,CAAC,WAAeZ,eAAgB,0BAAsC,GAAC,U,MAAC,CAA8B,KAAOA,MAAsB,GAAG,MAAI,CAAqBW,YAAM,qB,CAAC,eAAO,CAAG,aAAIP,aAAS,QAAiC,MAAO0G,CAAqBxG,WAAY,GAA0CK,IAAO,aAAQ,EAAQ,iBAAU,8BAAG,GAAG,CAAQL,SAAY,iBAASN,KAAOA,EAAIa,mBAA8D,GAAC,U,MAAC,CAAwB,WAAwHF,GAAK,MAAC,C,YAAY,qBAAkB,sBAACC,YAAG,qB,CAAC,kBAAeiF,C,MAAe,CAAiC,eAAG,KAAO,MAAuE,QAAU,CAAoB,oBAAG,CAACzF,EAAG,GAAI,EAAC,+BAACE,YAAY,aAAO,GAAEN,CAA4GW,MAAM,iBAAe,4EAAsOP,EAAG,KAAzO,2BAAE,MAAK,CAA8DE,YAAY,kBAA4CA,IAAmBK,SAAM,iBAAC,OAAWX,2BAA6E,wCAACM,YAAY,CAASN,SAAU,sB,CAAmO0F,EAAG,KAAIqB,C,YAA2B,QAAQ,GAAI,GAAC,EAAK,GAAC,6E,MAACzG,CAA0B,UAAK,K,CAAiDK,SAAM,oB,YAAC,U,GAA0B,6BAAW,C,YAAE,OAAC,MAAM,CAEn7T,SAAU,EAAK,kBAAC,oC,EAA0BL,O,YAA+B,Q,GAA8BA,OAAW,EAAC,KAAM,2J,OAACK,EAAK,MAAC,C,IAAC,S,YAA4B,Q,CAAa,SAAC,YAAU,eAAuC,GAAG,8BAAG,YAAUX,OAAiHM,OAAyB,SAAC,QAA8BA,SAAY,MAAc,OAAU,CAACN,EAAIgH,UAAkBC,UAAYC,GAAI,EAAI,GAAKC,EAAGC,kBAAc,gCAAC,gBAAM,IAAO,EAAN,OAAO9G,YAAY,eAAY,CAACkF,EAAG,6BAAkB,CAAsL,YAAgB,OAACE,MAAI7C,CAAMvC,SAAY,QAAkB,SAAC,MAAiDK,EAAM,iCAAC,M,MAAsB,GAAW,IAAX,EAAW,kE,YAAE,UAAE,CAAC,EAACX,6BAA4B,CAAW,YAAS,OAA6HM,OAAuBF,SAAG,oBAA6B,qCAAoBO,EAAK,MAAC,C,YAAW,QAAmE,uKAAG,OAAI,EAAK,MAAC,CAACL,MAAqBN,YAAWA,eAAsM,GAAOI,6BAAS,CAACsF,YAAS,OAACpF,OAA4BF,SAAG,QAA8BE,SAAY,MAAc,SAAWqG,EAAKS,KAAK,kB,MAAC,GAAU,EAAC,8E,YAAE,UAAE,CAAC,EAACpH,6BAA4B,CAAW,YAAS,OAAkCW,MAAM,CAAC,SAAW,0DAAQP,EAAG,OAA4BO,YAAM,Q,CAAC,SAAa,EAAC,6JAAM,gBAAIP,IAAG,EAAOE,YAAY,eAAWF,CAAE,EAAC,6BAA6B,CAACO,YAAM,OAAC,OAAqD,iBAAM,SAAO,MAA2BX,EAAM,GAAC,IAAIA,EAAM,GAACA,EAAO,kBAA8GW,MAAM,oB,MAAC,CAAe,cAAmCA,GAAK,OAAC,C,MAAC,CAAoB,uBAAcL,SAAW,CAAU,YAAK,UAA8BK,GAAK,6BAAC,C,MAAC,CAA2D,qDAAcL,QAAW,CAAa,YAAY,aAAiIK,GAAK,GAAC,8G,MAAC,CAAe,cAAmCA,GAAK,OAAC,C,MAAC,CAAoB,uBAAcL,SAAW,CAAU,YAAK,UAA8BK,GAAK,6BAAC,C,MAAC,CAAsD,2DAAcL,QAAW,CAAa,YAAY,aAAoHA,UAAY,OAAW,uGAACL,OAAa,UAAW,I,CAAuB,SAAS,CAAG,MAAC,CAACU,cAAM,S,CAAkB,QAAO,CAAE,YAAC,UAACC,CAAE,EAAC,8B,MAAC,CAAuB,sDAAuC,SAAC6E,YAAM,aAAM,uHAAG,wBACnkG,aACGzE,SAAoB,WAEfD,MAAQC,I,sOCN2CjB,EAAOC,WAAsB,MAAU,KAA0CM,UAAY,GAAyC,oB,OAAC,QAAY,GAAG,gBAAkS,OAAlS,U,YAAS,mCAAS,MAAC,CAAG,UAAC,IAAC,MAAQN,WAAc,GAAI,CAAWM,MAAW,EAAC,W,CAAc,SAAQ,C,YAAW,OAAS,OAAIN,MAAO,GAA+GM,MAAW,Y,CAA0B,KAAO,sBAAS,wE,YAAY,kBAAI,MAAC,CAAG,MAAC,SAAC,UAAY+G,KAAM,GAAErH,CAAyEM,MAAW,EAAC,O,CAAc,KAAO,IAAC,uDAAE,mBAAE,MAAMkF,CAClpB,WAGD,GAASzE,OAAQC,qBAAe,Q,KCAhC,IAAqBsG,EAArB,cAAmDpG,OAGjDqG,WACEjG,KAAKK,MAAM,YAEb0F,OACE/F,KAAKK,MAAM,UANasB,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,sCACcF,gBAAtCC,eAAK,CAAEC,QAAS,sBAAqB,+BAFnBmE,EAAqB,gBADzC9D,eAAU,KACU8D,WCJ+Z,I,YCOhbtD,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,EAAAA,E,oBCkCf,IAAqBwD,EAArB,cAA0DC,eAAOC,SAAjEvG,c,oBAgEE,KAAAwE,MAAQ,EACR,KAAAgC,eAAsB,GACtB,KAAAtB,MAAQ,GACR,KAAAuB,SAAU,EACV,KAAAtB,OAAS,GACT,KAAAuB,mBAAqB,GACrB,KAAAtH,MAAQ,KACR,KAAAuH,cAAqB,GACrB,KAAAhB,WAAY,EACZ,KAAAiB,YAAmB,GACnB,KAAA/F,aAAoB,CAClBZ,QAAS,GACTC,SAAS,GAEX,KAAA0E,qBAA4B,GAC5B,KAAAE,cAAqB,GACrB,KAAA+B,qBAAsB,EAEtB,KAAAC,sBAA6B,GAC7B,KAAAC,WAAaC,EACb,KAAAC,mBAAoB,EACpB,KAAApB,kBAAyB,CACvBC,YAAa,GACboB,aAAc,GACdC,WAAY,GACZC,cAAe,GACfC,gBAAiB,CAAEpB,OAAO,GAC1BqB,qBAAsB,CAAErB,OAAO,GAC/BsB,eAAgB,CAAEtB,OAAO,IAE3B,KAAAxB,eAAgB,GAEhB,KAAA+C,cAAqB,GAErBC,0BAA0BzC,EAAmBC,EAAqByC,GAChEvH,KAAK2E,cAAcE,GAAW/E,QAAQgF,GAAahE,OAAOK,WAAWK,OAAO+F,EAAgB,GAC5FvH,KAAK2G,sBAAsB9B,GAAW/E,QAAQgF,GAAahE,OAAOK,WAAWK,OAAO+F,EAAgB,GAGtG,qBACE,OAAOvH,KAAKwH,WAAWC,UAEzB,oBACE,MAAO,CACL,CAAEC,KAAM,QAASxI,MAAOyI,OAAaC,OACrC,CAAEF,KAAM,OAAQxI,MAAOyI,OAAapC,MACpC,CAAEmC,KAAM,WAAYxI,MAAOyI,OAAaE,WAI5C1H,aAAaC,GACXJ,KAAKU,aAAeN,EAGtB0H,kBACE9H,KAAKyE,qBAAqBsD,QAASC,IACjCA,EAAQC,cAAe,IAI3BvD,qBACE,MAAMwD,EAAWlI,KAAKwH,WAAWC,UAC3BU,EAAe,GACrBD,EAASH,QAASK,IAChB,MAAMC,EAAarI,KAAKyE,qBAAqB6D,KAC1CN,GAAiBA,EAAQO,KAAOH,EAAYG,KAEd,KAAnB,OAAVF,QAAU,IAAVA,OAAU,EAAVA,EAAYJ,eACdE,EAAQ9G,KAAK+G,KAGjBpI,KAAK2E,cAAgBwD,EAIrBnI,KAAK2E,cAAcoD,QAASS,IAC1BA,EAAK1I,QAAQiI,QAASlH,IACpB,GAAoB,UAAhBA,EAAOD,KAAkB,CAC3B,IAAKC,EAAOC,OAAOK,WACjB,OAEEN,EAAOC,OAAOK,WAAWyD,OAAS,IACpC5E,KAAK0G,qBAAsB,QAKnC1G,KAAK2G,sBAAwB8B,IAAEC,UAAUP,GACzCnI,KAAKwE,iBAGPA,iBACExE,KAAKqE,QAGPE,iBACEvE,KAAKqE,QAGPsE,aAAapH,GACXvB,KAAKuG,mBAAmB/E,OAAOD,EAAO,GAIxCqH,WAAWxI,GACT,GAAY,OAARA,EAAc,OAGlB,MAAMyI,EAAe7I,KAAK+E,MAAM,GAChC8D,EAAQvD,KAAOqC,OAAaE,SAE5B7H,KAAKuG,mBAAmBlF,KAAKrB,KAAK+E,MAAM,IAGxC/E,KAAKf,MAAQ,KACbe,KAAK+E,MAAQ,GACb/E,KAAKgF,OAAS,GAIhB8D,WAAW1I,GACLJ,KAAKsG,SAAkB,MAAPlG,IACfJ,KAAK+I,aAAa3I,IAKvBJ,KAAKsG,SAAU,EACf0C,OAAYC,iBAAiB7I,GAC1B8I,KAAMC,GAASnJ,KAAK+E,MAAQoE,GAC5BC,QAAQ,IAAOpJ,KAAKsG,SAAU,IAP/BtG,KAAK+E,MAAQ,IAcjBgE,aAAaM,GAEX,GAAIA,EAAEzE,OAAS,GAAKyE,EAAEzE,OAAS,IAAK,OAAO,EAE3C,MAAM0E,EACJ,uJACF,OAAOA,EAAGC,KAAKF,EAAEG,eAKnBvE,aACEjF,KAAK+E,MAAQ,GACb/E,KAAKgF,OAAS,GAGhB,sBACQhF,KAAKyJ,UAAUzJ,KAAK0J,OAAO5I,OAAOyH,UAClCvI,KAAK2J,aAAa3J,KAAK0J,OAAO5I,OAAOyH,UACrCvI,KAAK4J,8BACL5J,KAAK6J,eAAe7J,KAAK0J,OAAO5I,OAAOyH,UACvCvI,KAAK8J,kBAAkB9J,KAAK0J,OAAO5I,OAAOyH,IAChD,MAAMwB,EAAkBtB,IAAEC,UAAU1I,KAAKgK,aAAaC,SAASC,OACzDC,EAAe1B,IAAEC,UAAU1I,KAAKoK,SAASC,gBAAgBH,OAC/DlK,KAAKqH,cAAgB,IAAK0C,KAAeI,GAEzCnK,KAAK8G,mBAAoB,EACzB9G,KAAK0F,kBAAoB,CACvBC,YAAa,GACboB,aAAc,GACdC,WAAY,GACZC,cAAe,GACfC,gBAAiB,CAAEpB,OAAO,GAC1BqB,qBAAsB,CAAErB,OAAO,GAC/BsB,eAAgB,CAAEtB,OAAO,IAG3B,MAAMwE,EAAsB,GAC5BC,OAAOC,OAAOT,GAAYhC,QAAS0C,IAAe,QAChD,MAAMC,EAAqC,QAAd,EAAGD,EAAOE,YAAI,OAAU,QAAV,EAAX,EAAaC,gBAAQ,WAAV,EAAX,EAAuBC,4BACnDH,IACFJ,EAAajJ,KAAKoJ,EAAOE,KAAKG,KAAKC,WACnCT,EAAajJ,KAAKoJ,EAAOE,KAAKG,KAAKE,gBAIvCT,OAAOC,OAAOL,GAASpC,QAASkD,IAE5BA,EAAIN,KAAKG,KAAKI,mBAAmBC,cACiB,KAAlDF,EAAIN,KAAKG,KAAKI,mBAAmBC,eAEjCb,EAAajJ,KAAK4J,EAAIN,KAAKG,KAAKC,WAChCT,EAAajJ,KAAK4J,EAAIN,KAAKG,KAAKE,gBAIpChL,KAAKyE,qBAAuBzE,KAAKwH,WAAWC,UAAU2D,IAAKpD,IACzD,MAAMqD,EAAa,CACjBpD,cAAc,EACdP,KAAMM,EAAQN,KACda,GAAIP,EAAQO,IAEd,OAAO8C,IAGT,MAAMC,EAAmB,GACzBtL,KAAKyE,qBAAqBsD,QAASC,KACS,IAAtCsC,EAAaiB,SAASvD,EAAQO,KAChC+C,EAAYjK,KAAK2G,KAGrBhI,KAAKyE,qBAAuB6G,EAC5B,MAAMpL,EAAUuI,IAAEC,UAAU1I,KAAKC,cAAcC,SAC/CF,KAAKsE,eAAoBpE,EAAQwH,KAAX,UAGxB,0BACqBb,IAAf7G,KAAK4G,OACP4E,aAAaxL,KAAK4G,OAEpB6E,OAAOC,OACP1L,KAAK2L,UAAU,CAAEC,YAAY,IAC7B5L,KAAKwF,WAAY,EACjBxF,KAAKK,MAAM,iBACVL,KAAK6L,MAAMC,oBAA4BC,cAG1CA,cACE/L,KAAK2L,UAAU,CAAEC,YAAY,IAC7B5L,KAAKgM,YACLhM,KAAKK,MAAM,iBACVL,KAAK6L,MAAMC,oBAA4BC,cAG1CE,gBACEjM,KAAK2L,UAAU,CAAEC,YAAY,IAC7BJ,aAAaxL,KAAK4G,OAGpB,+BAA4B,gBAC1B5G,KAAK2L,UAAU,CAAEC,YAAY,IAC7B5L,KAAKwF,WAAY,EACjBxF,KAAKK,MAAM,0BAA0B,GACrC,MAAM6L,EAAiBzD,IAAEC,UAAU1I,KAAKmM,OAClCC,EAAmB3D,IAAEC,UAAU1I,KAAKqM,kBAAkBC,aAAapC,QACnEqC,EAAgB9D,IAAEC,UAAU1I,KAAKwM,eAAeC,WAChDC,EAAuBjE,IAAEC,UAAU1I,KAAKC,cAAcC,gBAErDwM,EAAWC,kBACXD,EAAW5B,KAAK8B,qBAChBF,EAAWnE,UACXmE,EAAWG,cACXH,EAAW5B,KAAKgC,sBAChBJ,EAAWK,WACsClG,KAArC,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBkC,kCAEnBN,EAAW5B,KAAKkC,gCAAiC,QAEKnG,KAArC,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBmC,kCAEnBP,EAAW5B,KAAKmC,gCAAiC,QAEDpG,KAA/B,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBoC,4BAEnBR,EAAW5B,KAAKoC,0BAA2B,QAEFrG,KAAxB,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBqC,2BAEZT,EAAW5B,KAAKqC,uBAEWtG,KAAjB,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBsC,oBACZV,EAAW5B,KAAKsC,gBAEkBvG,IAAvC6F,EAAW5B,KAAKuC,2BACXX,EAAW5B,KAAKuC,wBAEcxG,KAApB,QAAf,EAAA6F,EAAW5B,YAAI,aAAf,EAAiBwC,uBACZZ,EAAW5B,KAAKwC,mBAEgBzG,IAArC6F,EAAW5B,KAAKyC,yBACXb,EAAW5B,KAAKyC,sBAE4B1G,IAAjD6F,EAAW5B,KAAK0C,qCACXd,EAAW5B,KAAK0C,6BAEzBd,EAAWhF,KAAO1H,KAAKsE,eACvB,MAAMmJ,EAAY,IAAKzN,KAAK0N,eAEtBC,EAAa,IAAK3N,KAAKE,SAGvB0N,QAA8B5N,KAAK6N,YAAYnB,GACrD1M,KAAK8N,WAAWF,SACV5N,KAAK+N,yBACL/N,KAAKgO,QAAQ3M,KAAK,CAAE4M,KAAM,aAAaL,EAAiBrF,8BACxDvI,KAAKkO,YAAYlO,KAAK0J,OAAO5I,OAAOyH,IAC1CvI,KAAKK,MAAM,iBAAkBuN,SACvB5N,KAAKmO,mBACXnO,KAAKoO,YAAYpO,KAAKqO,gBAEtB,MAAM5M,EAAemM,EAMrB,GALAnM,EAAaf,aAAeV,KAAKU,mBAC3BV,KAAK0B,cAAcD,GAIrBzB,KAAKwD,uBAAwB,SAC/B,MAAM,SAAE8K,EAAQ,SAAEC,GAAavO,KAAKwO,SAC9BC,EAA4B,QAApB,EAAGzO,KAAK0O,oBAAY,aAAjB,EAAmBC,IAC9BC,EAA6B,QAApB,EAAG5O,KAAK0O,oBAAY,aAAjB,EAAmBG,IAE/BC,QAA4B9O,KAAK+O,uBAAuB,CAC5DN,UAAWA,EACXG,WAAYA,EACZL,WACAD,aAIGQ,IACH9O,KAAK0F,kBAAkByB,sBAAuB,GAIlDnH,KAAKyG,YAAczG,KAAKjB,GAAG,wDAC3B,IAAIiQ,EAAqB,GACzBA,QAAsBhP,KAAKiP,mBAAmBrB,GAE9C5N,KAAKyG,YAAczG,KAAKjB,GAAG,iEACrBiB,KAAKkP,oBAAoBF,EAAe9C,GAE9ClM,KAAKyG,YAAczG,KAAKjB,GAAG,6DACrBiB,KAAKmP,aAEXnP,KAAKyG,YAAczG,KAAKjB,GAAG,8DAE3B,MAAMqI,QAAuBgI,eAC3B3B,EACAE,EACAC,EACAoB,IAGqB,IAAnB5H,IACFpH,KAAK0F,kBAAkB0B,gBAAiB,GAG1CpH,KAAKyG,YAAczG,KAAKjB,GAAG,4DACrBiB,KAAKqP,mBAAmBzB,GAE9B5N,KAAKyG,YAAczG,KAAKjB,GAAG,6DACrBiB,KAAK6J,eAAe7J,KAAK0J,OAAO5I,OAAOyH,UACvCvI,KAAKsP,cAAc3B,EAAYvB,EAAkBG,GAEvDvM,KAAK8G,mBAAoB,EACzB9G,KAAK2L,UAAU,CAAEC,YAAY,IAC7B5L,KAAKwF,WAAY,EACjBxF,KAAKK,MAAM,0BAA0B,GAGvC,oBACEsN,EACAvB,EACAG,GAEAvM,KAAKyG,YAAczG,KAAKjB,GAAG,gEAG3B,MAAMwQ,EAAmB,GACzBhF,OAAOiF,QAAQpD,GAAkBhB,IAAIqE,UACnC,MAAMC,EAAuBnD,EAAcjE,KACxCqH,GAAoBA,EAAWC,WAAaC,EAAmB,IAElE,QAAwBhJ,IAApB6I,IAEkF,IAApFG,EAAmB,GAAGtE,UAAS,WAAWoC,EAAWpF,IAAKuH,WAAW,IAAK,MAC1E,CACA,IAAIC,GAAe,EACnB,MAAMC,EAAQ,wEACdD,GAAgBC,EAAMzG,KAAKsG,EAAmB,IAC1CE,IAC6B,QAAZ,OAAfL,QAAe,IAAfA,OAAe,EAAfA,EAAiBO,OACnBV,EAAYG,EAAgBE,UAAYF,EAAgBO,MAExDV,EAAYG,EAAgBE,UAAY,SAMhD,MAAMM,QAAqBlQ,KAAKmQ,wBAAwB,CACtDC,UAAWpQ,KAAK0J,OAAO5I,OAAOyH,GAC9B8H,gBAAiBd,IAQnB,OAJKW,IACHlQ,KAAK0F,kBAAkByB,sBAAuB,GAGzC,EAGT,yBAAyByG,GACvB,MAAM0C,QAAyBC,QAAQC,WACrCxQ,KAAK2E,cAAcyG,IAAIqE,UACrB,IAAKzP,KAAKqG,eAAekF,SAASnD,EAAYG,IAAK,CAEjD,MAAMkI,EAAU,CACdC,OAAQtI,EAAYsI,OACpB5Q,QAASsI,EAAYtI,QACrB6Q,WAAYvI,EAAYuI,WACxBjJ,KAAMU,EAAYV,KAClBkJ,QAASxI,EAAYwI,UAEjB,GAAErI,GAAOqF,EAEf,aADM5N,KAAK6Q,OAAOC,SAAS,gBAAiB,CAAEvI,KAAIwI,UAAWN,IACtDA,MAYb,OAPAH,EAAYvI,QAASiJ,IACnBhR,KAAK0F,kBAAkBC,YAAYtE,KAAK,CACtCqG,KAAMsJ,EAAQ9R,MAAMwI,KACpB5B,MAA0B,cAAnBkL,EAAQC,WAIZ,EAGT,mBAEE,MAAMX,QAA8DC,QAAQC,WAC1ExQ,KAAKuG,mBAAmB6E,IAAIqE,UAAoB,MAC9C,MAAMyB,EAA2BzI,IAAEC,UAAUnD,UACtC2L,EAAyBC,WAChC,MAAMC,QAAkBpR,KAAKqR,aAAa,CAAEC,OAAQJ,EAA0BK,aAAa,IAErFC,EAAuC,QAAvB,EAAAJ,EAAkBlS,aAAK,QAAIkS,EAEjD,GAA4B,UAAxBI,EAAaP,OAAoB,CACnC,MAAMQ,EAA0B,QACN5K,KAAlB,OAAJtB,QAAI,IAAJA,OAAI,EAAJA,EAAMmM,cACRnM,EAAKmM,YAAY3J,QAAS4J,IACxBpH,OAAOiF,QAAQxP,KAAKwG,eAAeuB,QAAS6J,IACtCD,IAAiBC,EAAW,IAC9BH,EAAmBpQ,KAAKuQ,EAAW,SAMnC,OAAJrM,QAAI,IAAJA,OAAI,EAAJA,EAAMD,QAASqC,OAAaC,aACxB5H,KAAK6R,wBAAwB,CACjCC,WAAY9R,KAAK0J,OAAO5I,OAAOyH,GAC/B+I,OAAQE,EACRO,gBAAiBN,IAKvB,OAAOD,KAYX,OARAlB,EACGvI,QAASiJ,IACRhR,KAAK0F,kBAAkBqB,aAAa1F,KAAK,CACvCqG,KAAMsJ,EAAQ9R,MAAMkD,MACpB0D,MAA0B,cAAnBkL,EAAQC,WAIdX,EAGT,0BAA0BtB,EAAmB9C,GAE3C,MAAM8F,EAAgB,GAKtB,OAJA9F,EAAUd,IAAIqE,UACZ,MAAMpE,EAAa5C,IAAEC,UAAUuJ,GAC/BD,EAAS3G,EAAW9C,UAAY2J,eAASD,EAAU5G,EAAY2D,KAE1DgD,EAGT,yBAAyBpE,GACvB,MAAM1B,EAAiBzD,IAAEC,UAAU1I,KAAKmM,OAElC6C,EAAqB,GAC3B,IAAImD,EACA7B,EAkCJ,OA9BAA,QAAoBC,QAAQC,WAC1BtE,EAAUd,IAAIqE,UACZ0C,QAAqBC,eAAoBH,EAAUrE,EAAkBoB,GACrEhP,KAAKwG,cAAcyL,EAAS1J,IAAM4J,EAAaE,WAAW9J,GACnD4J,KAIX7B,EAAYvI,QAASiJ,IAAgB,QACnC,MAAMsB,EAAuD,GAC7D/H,OAAOiF,QAAe,OAAPwB,QAAO,IAAPA,GAAc,QAAP,EAAPA,EAAS9R,aAAK,WAAP,EAAP,EAAgBqT,eAAexK,QAASyK,IACrD,MAAMC,EAAazS,KAAKqH,cAAcmL,EAAa,IAAI9K,KACvD4K,EAAiBjR,KAAK,CAAEqG,KAAM+K,EAAY3M,WAA2Be,IAApB2L,EAAa,OAEhExS,KAAK0F,kBAAkBuB,cAAc5F,KAAKiR,QAEJzL,KAAZ,QAAxB,EAAAmK,EAAQ9R,MAAMmT,kBAAU,aAAxB,EAA0BvM,QACzBwM,EAAiB1M,KAAMC,IAAwC,IAAbA,EAAGC,OAOtD9F,KAAK0F,kBAAkBsB,WAAW3F,KAAK,CACrCyE,OAAO,EACP4B,KAAMsJ,EAAQ9R,MAAMmT,WAAW3K,OAPjC1H,KAAK0F,kBAAkBsB,WAAW3F,KAAK,CACrCyE,OAAO,EACP4B,KAAMsJ,EAAQ9R,MAAMmT,WAAW3K,SAS9BsH,EAGThD,YACEhM,KAAKqE,MAAQ,EACbrE,KAAKuG,mBAAqB,GAC1BvG,KAAK2E,cAAgB,GAGvB+N,gBAAgBxT,GACdc,KAAKuG,mBAAmBwB,QAAS4K,IAC3BA,EAAYpK,KAAOrJ,EAAMqJ,KAC3BoK,EAAYjB,YAAcxS,EAAM0T,cAMtCC,yBAAyBC,GACvB,MAAMC,EAAmB,GAMzB,OALA/S,KAAKgK,aAAaC,QAAQlC,QAAS0C,IAC7BA,EAAOqI,gBAAkBA,GAC3BC,EAAY1R,KAAKoJ,KAGdsI,EAGTC,WAAWF,GACT,MAAM3I,EAAe,GAMrB,OALAnK,KAAKoK,SAASC,eAAetC,QAAS0C,IAChCA,EAAOqI,gBAAkBA,GAC3B3I,EAAQ9I,KAAKoJ,KAGVN,IA9mBiBxI,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,6CACjBF,gBAAPC,kBAAM,+BACCD,gBAAPC,kBAAM,mCAEqBD,gBAA3BsR,eAAO,qBAAmB,8BACMtR,gBAAhCsR,eAAO,0BAAwB,oCACKtR,gBAApCsR,eAAO,8BAA4B,qCACjBtR,gBAAlBG,eAAM,aAAW,oCACJH,gBAAbG,eAAM,QAAM,+BACKH,gBAAjBG,eAAM,YAAU,mCACCH,gBAAjBG,eAAM,YAAU,mCACDH,gBAAfG,eAAM,UAAQ,iCACQH,gBAAtBsR,eAAO,gBAAc,4BACNtR,gBAAfG,eAAM,UAAQ,iCACDH,gBAAbG,eAAM,QAAM,+BACOH,gBAAnBG,eAAM,cAAY,qCACIH,gBAAtBG,eAAM,iBAAe,wCACYH,gBAAjCuR,eAAS,yBAAuB,kCACAvR,gBAAhCuR,eAAS,wBAAsB,iCACLvR,gBAA1BuR,eAAS,kBAAgB,gCACSvR,gBAAlCuR,eAAS,0BAAwB,mCACFvR,gBAA/BI,eAAO,yBAAuB,kCACOJ,gBAArCI,eAAO,+BAA6B,6CAGLJ,gBAA/BI,eAAO,yBAAuB,mCACMJ,gBAApCI,eAAO,8BAA4B,4CACGJ,gBAAtCI,eAAO,gCAA8B,uCACRJ,gBAA7BI,eAAO,uBAAqB,mCACgBJ,gBAA5CI,eAAO,sCAAoC,8CACZJ,gBAA/BI,eAAO,yBAAuB,kCACLJ,gBAAzBI,eAAO,mBAAiB,+BAICJ,gBAAzBI,eAAO,mBAAiB,+BAOOJ,gBAA/BI,eAAO,yBAAuB,mCACSJ,gBAAvCI,eAAO,iCAA+B,2CACNJ,gBAAhCI,eAAO,0BAAwB,wCACCJ,gBAAhCI,eAAO,0BAAwB,wCACAJ,gBAA/BI,eAAO,yBAAuB,mCACYJ,gBAA1CI,eAAO,oCAAkC,8CACdJ,gBAA3BI,eAAO,qBAAmB,iCAOAJ,gBAA1BI,eAAO,oBAAkB,gCACQJ,gBAAjCI,eAAO,2BAAyB,oCACGJ,gBAAnCI,eAAO,6BAA2B,qCACOJ,gBAAzCI,eAAO,mCAAiC,wCAGFJ,gBAAtCI,eAAO,gCAA8B,uCA0GtCJ,gBADCK,eAAM,UAAQ,+BAiBfL,gBADCK,eAAM,WAAS,+BAvLGkE,EAA4B,gBAbhDhE,eAAU,CACTiR,SAAU,CACRxL,aAAc,IAAMA,QAEtBxF,WAAY,CACV6D,wBACAoN,mBACAC,8BACAC,qBACA3T,kBACA4T,sCAGiBrN,WCpDsa,KCQvb,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,4DCnB6BpH,GAAO0U,W,IAAS/U,EAAM,KAAuB,EAAOK,EAAG,MAAM,GAACE,EAAY,kBAAQ,OAAM,QAAM,CAACA,YAAY,UAAyB,CAACF,EAAG,MAAM,CAAC6D,YAAI,yBAAgB3D,SAAW,CAAiBM,IAAG,gB,YAAC,gB,GAA+B2D,CAAwB,wBAAC,sBAA2BjE,SAAW,CAAUK,IAAK,S,YAAO,SAAQ,OAAIP,GAAG,WAA+BO,GAAK,SAAC,C,YAASX,S,MAAqB,CAAO,MAAS,EAACA,YAAa,UAAI,QAAO,EAAM,cAAQ,GAAI,EAAC,OAAQ,OAAII,GAAG,WAAuBE,SAAW,CAAiBK,IAAK,Y,YAAQoU,gB,MAA2C,CAAO,cAAK,IAAM,cAA0CvP,EAAGxF,MAAOA,CAAwCM,YAAY,kBAAaK,GAAK,GAAC,yC,YAAS,aAAQ,MAAC,CAAG,MAAC,UAA2B,IAAIX,MAAO,EAAIA,iBAAiHY,CAAE,EAAC,mF,YAASZ,mBAAe,IAAIA,MAAO,EAAIA,cAA6K,CAACA,EAAIwF,GAAG,IAAIxF,EAAIa,GAAGb,EAAIK,GAAG,wCAA0C,QAAO,GAAG,EAAC,YAAQ,4BAACC,YAAY,6CAAOM,CAAE,EAAC,6E,YAASZ,OAAiB,IAAIA,MAAOA,EAAM,gBAErxCgB,WAAe,EAAK,qD,MCMxB,IAAqBgU,GAArB,cAAyC9T,OAAzCC,c,oBAKE,KAAA8T,UAAY,CACVC,qBAAsB,KAExB,KAAAC,kBAAmB,EAEnB,cACE,OAAO7T,KAAKC,cAAcC,QAE5B,kBACE,OAAOF,KAAK0J,OAAO5I,OAAOyH,GAG5B,0BAAuB,YACrB,OAAgD,QAAhD,EAAmB,QAAnB,EAAOvI,KAAKE,eAAO,OAAM,QAAN,EAAZ,EAAc4K,YAAI,OAAY,QAAZ,EAAlB,EAAoBgJ,kBAAU,WAAlB,EAAZ,EAAgC1D,iBAAS,QAAI,GAGtD,iBAAc,QACZ,OAA6B,QAA7B,EAAmB,QAAnB,EAAOpQ,KAAKE,eAAO,aAAZ,EAAc6T,gBAAQ,SAG/BC,gBACEhU,KAAKiU,UAAUjU,KAAK0J,OAAO5I,OAAOyH,IAClCvI,KAAK6T,kBAAmB,EAG1BK,cACElU,KAAKmU,QAAQnU,KAAK0J,OAAO5I,OAAOyH,IAChCvI,KAAK6T,kBAAmB,EAE1BO,iBACE,MAAMC,EAASC,SAASC,cAAc,UACtCF,EAAOG,MAAQ,IACfH,EAAOI,OAAS,IAEhB,MAAMC,EAAML,EAAOM,WAAW,MAGxBC,EAAa5U,KAAK6L,MAAMgJ,OAAeC,WAC7CJ,EAAIK,UAAUH,EAAW,EAAG,EAAG,IAAK,KAGpC,MAAMI,EAAOhV,KAAKiV,oBAEZC,EAAW,GACjBR,EAAIS,KAAUD,EAAH,WACXR,EAAIU,UAAY,QAChB,MAAMC,EAAYX,EAAIY,YAAYN,GAAMR,MAClCe,GAASlB,EAAOG,MAAQa,GAAa,EACrCG,EAAQN,EACdR,EAAIe,SAAST,EAAMO,EAAOC,GAG1B,MAAME,EAAY,IACZC,EAAa,IACbC,GAASvB,EAAOG,MAAQkB,GAAa,EACrCG,GAASxB,EAAOI,OAASkB,GAAc,EACvCG,EAASJ,EAAY,EACrBK,EAA0B,KAATD,EAGvBpB,EAAIsB,YACJtB,EAAIuB,IAAIL,EAAQE,EAAQD,EAAQC,EAAQC,EAAgB,EAAG,EAAIG,KAAKC,IACpEzB,EAAIU,UAAY,QAChBV,EAAI0B,OAGJ1B,EAAIsB,YACJtB,EAAIuB,IAAIL,EAAQE,EAAQD,EAAQC,EAAQA,EAAQ,EAAG,EAAII,KAAKC,IAC5DzB,EAAI2B,OAGJ,MAAMC,EAAUtW,KAAK6L,MAAM0K,UAC3B7B,EAAIK,UAAUuB,EAASV,EAAOC,EAAOH,EAAWC,GAGhD,MAAMa,EAAcxW,KAAKE,QAAQwH,KAAKoI,WAAW,IAAK,KAGhD2G,EAAOnC,SAASC,cAAc,KACpCkC,EAAKC,SAAW,UAAUF,QAC1BC,EAAKE,KAAOtC,EAAOuC,UAAU,aAC7BH,EAAKI,QAGPC,UACM9W,KAAKE,QAAQ6T,SAEf/T,KAAK6T,kBAAmB,EAGxB7T,KAAK6T,kBAAmB,IA9FAlS,gBAA3BI,eAAO,qBAAmB,+BACGJ,gBAA7BI,eAAO,uBAAqB,iCACVJ,gBAAlBG,eAAM,aAAW,qCAHC4R,GAAW,gBAH/BxR,eAAU,CACTC,WAAY,MAEOuR,cCRua,MCQxb,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,+CCyBfxR,OAAU6U,cAAc,CAAC,qBAkBzB,IAAqBC,GAArB,cAAqC7Q,eAAOC,SAA5CvG,c,oBA6BE,KAAAoX,qBAAuBC,QACvB,KAAAC,yBAA2BC,QAE3B,KAAA3V,aAAoB,KACpB,KAAA4V,gBAAuB,KACvB,KAAAzU,OAAQ,EACR,KAAA0U,qBAAsB,EAEtB,KAAArT,kBAAoBsG,OAAOC,OAAO+M,SAClC,KAAAtY,MAAiC,KACjC,KAAA8D,aAA8B,KAC9B,KAAAyU,UAAgC,GAChC,KAAAC,qBAAqD,KACrD,KAAAC,cAAgBC,QAChB,KAAAC,eAAgB,EAEhB,KAAAxU,WAAa,CAAEsE,KAAM,IAErB,0BACE,MAAO,CACL,CACEsN,KAAMhV,KAAKjB,GAAG,gEACdG,MAAO2Y,QAAwBC,KAEjC,CACE9C,KAAMhV,KAAKjB,GAAG,mEACdG,MAAO2Y,QAAwBE,QAEjC,CACE/C,KAAMhV,KAAKjB,GAAG,iEACdG,MAAO2Y,QAAwBG,OAKrC,cACE,OAAOhY,KAAKC,cAAcC,QAG5B,iBACE,OAAOF,KAAKiY,SAAS1S,KAAK2S,YAG5B,eACE,OAAOlY,KAAKC,cAAcuO,SAG5B,6BACE,OAAOxO,KAAKoK,SAAS5G,uBAGvB,sBAAmB,UACjB,MAAM2U,EAA+C,QAAvC,EAAuB,QAAvB,EAAGnY,KAAKqX,uBAAe,OAAM,QAAN,EAApB,EAAsBvM,YAAI,WAAN,EAApB,EAA4BqN,gBAAQ,QAAI,KACzD,OAAOC,qBAAQD,EAAUnY,KAAKf,OAGhC,gCACE,MAAMoZ,EAAqBD,qBAAQpY,KAAKqX,gBAAiBrX,KAAKyB,cAC9D,OAAOzB,KAAKsY,iBAAmBD,EAGjC,+BACE,OAAOrY,KAAKyB,aAAaqJ,KAAKgJ,WAAWyE,kBAI3C,qBAAqBnY,GAAkB,QACrC,MAAMoY,GAAkC,QAAjB,EAAAxY,KAAKE,QAAQ4K,YAAI,OAAU,QAAV,EAAjB,EAAmBqN,gBAAQ,WAAV,EAAjB,EAA6BM,gBAAiBrY,EACvB,MAA1CA,GAAOA,EAAIwE,OAAS,IAAM4T,IACH,QAAzB,EAAAxY,KAAKyX,4BAAoB,OAAzB,OAAAzX,KAA4BI,IAIhC4D,wBAAwB0U,GACtB,MAAO,CAACC,QAAYC,KAAKC,YAAYtN,SAASmN,GAGhDI,YAAYX,GACVnY,KAAKf,MAAQ,IAAKkZ,GAClBnY,KAAKwX,UAAUnW,KAAK,IAAK8W,IAG3BY,kBAAkB7Z,GAChBc,KAAKyB,aAAaqJ,KAAKkO,KAAO9Z,EAGhC+Z,sBAAsBC,GACpBlZ,KAAK4X,cAAgBsB,EAGvBC,wBACEnZ,KAAKqX,gBAAkB3O,uBAAU1I,KAAKyB,cAGxC2X,cAAcC,GACZrZ,KAAKyB,aAAaqJ,KAAK8B,cAAgB,IAAI0M,KAAKD,GAAOE,cACvDvZ,KAAKyB,aAAe,IAAKzB,KAAKyB,cAMhC,8BAA2B,YACzB,MAAM,SAAE6M,EAAQ,SAAEC,GAAavO,KAAKwO,SAC9BC,EAAW+K,OAAiB,QAAX,EAACxZ,KAAKf,aAAK,aAAV,EAAY0P,KAC9BC,EAAY4K,OAAiB,QAAX,EAACxZ,KAAKf,aAAK,aAAV,EAAY4P,KAC/B4K,GAA+C,QAA1B,EAAAzZ,KAAKE,QAAQ4K,KAAKqN,gBAAQ,aAA1B,EAA4BM,iBAA2B,QAAf,EAAKzY,KAAKf,aAAK,aAAV,EAAYwZ,cAGhFgB,SACIzZ,KAAK0Z,iCAGP1Z,KAAK0B,cAAc,IACpB1B,KAAKyB,aACRqJ,KAAM,IACD9K,KAAKyB,aAAaqJ,KACrBqN,SAAUnY,KAAKf,SAGnBe,KAAKmZ,wBAGDM,SACIzZ,KAAK+O,uBAAuB,CAChCN,WACAG,YACAL,WACAD,mBAIEtO,KAAK2Z,aAAa3Z,KAAKf,OAM/B,4BACQe,KAAK4J,wBACX,MAAMO,EAAezB,uBAAU1I,KAAKoK,SAASC,gBAAgBH,OACxD0P,qBAAQzP,UACLoG,QAAQsJ,IACZtP,OAAOC,OAAOL,GAASiB,IAAIqE,gBACnBzP,KAAK8Z,UAAUC,MAIvB/Z,KAAKwD,8BACDxD,KAAK0Z,iCAEP1Z,KAAKga,cAAcha,KAAK0J,OAAO5I,OAAOyH,UACtCvI,KAAKgO,QAAQ3M,KAAK,KAG1B8B,6BACEnD,KAAKsX,qBAAsB,EAM7B,yBAEE,GADAtX,KAAKsX,qBAAsB,EACvBtX,KAAKoD,WAAY,CACnB,GAAIpD,KAAKoD,WAAWsE,KAAKuS,YAAY,MAAQ,EAC3C,OAEF,MAAMC,QAAela,KAAKma,UAAUna,KAAKoD,YACzC,IAAK8W,EAAQ,aAEPla,KAAK0B,cAAc,IACpB1B,KAAKyB,gBACJyY,GAAU,CACZpP,KAAM,IAAK9K,KAAKyB,aAAaqJ,KAAMsP,QAASF,MAGhDla,KAAKmZ,yBAQT,2BAA2BkB,GAAa,QACtCA,EAAEC,iBACFD,EAAEE,kBAEF,MAAM,SAAEjM,EAAQ,SAAEC,GAAavO,KAAKwO,SAC9BC,EAAW+K,OAAiB,QAAX,EAACxZ,KAAKf,aAAK,aAAV,EAAY0P,KAC9BC,EAAY4K,OAAiB,QAAX,EAACxZ,KAAKf,aAAK,aAAV,EAAY4P,KAEhC7O,KAAKwD,6BAGFxD,KAAK0Z,iCAFL1Z,KAAK+O,uBAAuB,CAAEN,WAAUG,YAAWL,WAAUD,aAMvE,uBAAuBkM,EAAWC,EAAa1U,GACxC/F,KAAKE,UAAWF,KAAK4X,eAAe7R,KAEvB,YAAd0U,EAAK/S,MAAuB1H,KAAK0a,6BAEzB1a,KAAKsX,qBAAgD,KAAzBtX,KAAKoD,WAAWsE,MAGjD3B,UAJE/F,KAAK6L,MAAM8O,kBAA6CC,cAAcJ,EAAIzU,GAQrF8U,qBACE7a,KAAKyB,aAAeiH,uBAAU1I,KAAKE,SAGrC,gBAAa,QACXF,KAAKyB,aAAeiH,uBAAU1I,KAAKE,SAC9BF,KAAKE,QAAQ4K,KAAKlH,QACrB5D,KAAK2D,KAAK3D,KAAKyB,aAAaqJ,KAAM,SAAU,CAC1CpD,KAAM,GACNoT,OAAQ,GACRC,KAAM,GACNC,IAAK,GACLnX,QAAS,GACTzB,MAAO,GACP6Y,MAAO,GACPC,aAAc,KAGblb,KAAKE,QAAQ4K,KAAKgJ,YACrB9T,KAAK2D,KAAK3D,KAAKyB,aAAaqJ,KAAM,aAAc,CAC9ClK,KAAM,GACNua,aAAc,GACd/K,UAAW,GACXmI,kBAAmB,GACnB6C,oBAAqB,KAGpBpb,KAAKE,QAAQ4K,KAAKkO,OAAMhZ,KAAKyB,aAAaqJ,KAAKkO,KAAO,IAEvDhZ,KAAKE,QAAQ4K,KAAK8B,cACpB5M,KAAKyB,aAAaqJ,KAAK8B,cAAgB5M,KAAKE,QAAQ4K,KAAK8B,cAEzD5M,KAAKyB,aAAaqJ,KAAK8B,cAAgB5M,KAAKE,QAAQyM,WAGtD3M,KAAKyX,qBAAuB4D,sBAAS5L,UACnCzP,KAAKwX,gBAAkB8D,QAAgBC,eAAeC,IACrD,KAEkB,QAArB,EAAIxb,KAAKE,QAAQ4K,YAAI,OAAjB,EAAmBqN,UAAUnY,KAAK8Y,YAA6B,QAAlB,EAAC9Y,KAAKE,QAAQ4K,YAAI,aAAjB,EAAmBqN,UAErEnY,KAAKyb,UAAU,KACbzb,KAAKmZ,gCAGD5I,QAAQC,WAAW,CACvBxQ,KAAK0b,wBACL1b,KAAKyJ,UAAUzJ,KAAK0J,OAAO5I,OAAOyH,IAClCvI,KAAK6J,eAAe7J,KAAK0J,OAAO5I,OAAOyH,IACvCvI,KAAK8J,kBAAkB9J,KAAK0J,OAAO5I,OAAOyH,IAC1CvI,KAAK2b,WAAW3b,KAAK0J,OAAO5I,OAAOyH,QAlSpB5G,gBAAlBG,eAAM,aAAW,qCACJH,gBAAbG,eAAM,QAAM,gCACGH,gBAAfG,eAAM,UAAQ,kCACDH,gBAAbG,eAAM,QAAM,gCACOH,gBAAnBG,eAAM,cAAY,sCACIH,gBAAtBG,eAAM,iBAAe,yCACWH,gBAAhCsR,eAAO,0BAAwB,qCACLtR,gBAA1BuR,eAAS,kBAAgB,iCACSvR,gBAAlCuR,eAAS,0BAAwB,oCACDvR,gBAAhCuR,eAAS,wBAAsB,kCACJvR,gBAA3BI,eAAO,qBAAmB,kCACOJ,gBAAjCI,eAAO,2BAAyB,qCACCJ,gBAAjCI,eAAO,2BAAyB,qCACRJ,gBAAxBI,eAAO,kBAAgB,iCACIJ,gBAA3BI,eAAO,qBAAmB,oCACUJ,gBAApCI,eAAO,8BAA4B,6CACEJ,gBAArCI,eAAO,+BAA6B,8CACGJ,gBAAvCI,eAAO,iCAA+B,gDACZJ,gBAA1BI,eAAO,oBAAkB,iCACUJ,gBAAnCI,eAAO,6BAA2B,sCACOJ,gBAAzCI,eAAO,mCAAiC,yCACXJ,gBAA7BI,eAAO,uBAAqB,oCAIQJ,gBAApCI,eAAO,8BAA4B,6CACXJ,gBAAxBI,eAAO,kBAAgB,iCAoExBJ,gBADCK,eAAM,iBAAe,oCA9FHgV,GAAO,gBAb3B9U,eAAU,CACTiR,SAAU,CACRxL,aAAc,IAAMA,QAEtBxF,WAAY,CACViR,mBACAM,eACAkI,+BACAC,6BACA3V,gCACA4V,6BAGiB9E,cC9Dma,MCQpb,I,UAAY,eACd,GACA,EACAtX,GACA,EACA,KACA,KACA,OAIa,gB,2CCnBf,W,kCCAA,W,yECA4CZ,EAAO0U,W,IAAS/U,EAAM,KAAuB,EAAOK,EAAG,MAAM,GAAsD,oB,OAAC,EAAM,MAAKid,EAAQ,IAARA,WAAQ,mB,MAAC,CAAa,gBAAIrd,MAAO,Q,CAAiD,KAAM,gBAAa,sB,MAAC,CAAe,gBAAIA,MAAO,UAEvSgB,qBAAoB,M,6BCExB,IAAqB6T,EAArB,cAAwD3T,SAC5B+B,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,+BACFF,gBAAtBC,eAAK,CAAEC,QAAS,MAAK,+BAFH0R,EAA0B,gBAD9CrR,eAAU,KACUqR,WCJoa,I,YCOrb7Q,EAAY,eACd,EACA,EACAhD,GACA,EACA,KACA,KACA,MAIa,OAAAgD,E","file":"js/chunk-aa35d6fc.713539e7.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"width\":\"100%\"},style:(_vm.isInModal === false ? 'border:3px solid lightgray;border-radius: 15px' : '')},[_c('h3',{staticStyle:{\"padding-bottom\":\"5px\",\"padding-left\":\"10px\"}},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.title')))]),_c('v-checkbox',{staticClass:\"ml-9\",attrs:{\"label\":_vm.$t('uiComponents.settings.notification.connectivityChecker.active'),\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.conModel.enabled),callback:function ($$v) {_vm.$set(_vm.conModel, \"enabled\", $$v)},expression:\"conModel.enabled\"}}),_c('div',{staticStyle:{\"padding\":\"15px\"}},[_c('p',{staticStyle:{\"width\":\"100%\",\"border-bottom\":\"1px solid black\"}},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.action')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('email')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.addEmailAction'))+\" \")]),_c('v-btn',{staticClass:\"accent ml-2 lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('webhook')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.addWebhookAction'))+\" \")]),_c('v-btn',{staticClass:\"accent ml-2 lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('alert')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.addAlertAction'))+\" \")])],1),_vm._l((_vm.conModel.actions),function(item,index){return _c('div',{key:index,staticStyle:{\"padding-bottom\":\"10px\"}},[_c('h3',{staticStyle:{\"padding-top\":\"5px\"}},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.action'))+\" \"+_vm._s(item.type))]),_c(item.type,{tag:\"component\",staticClass:\"ml-2\",attrs:{\"params\":item.params,\"enableNoRecipients\":true}}),_c('v-btn',{staticClass:\"ml-2 mt-2 lynus-small-btn\",staticStyle:{\"background-color\":\"#f3454b\",\"color\":\"black\"},attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.deleteActionByIndex(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.deleteAction'))+\" \")])],1)}),(_vm.isInModal === false)?_c('div',{staticStyle:{\"margin-top\":\"15px\",\"border-top\":\"1px solid black\"}},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",staticStyle:{\"margin-top\":\"10px\"},attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.submitChanges()}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.notification.connectivityChecker.submitChanges'))+\" \")])],1):_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport EmailAction from '@/ui/components/modals/actions/EmailAction.vue';\nimport WebhookAction from '@/ui/components/modals/actions/WebhookAction.vue';\nimport AlertAction from '@/ui/components/modals/actions/AlertAction.vue';\nimport api from '@/services/api';\nimport { State, Action } from 'vuex-class';\nimport { IProjectsState } from '@/store/modules/projects/types';\n\n/**\n * Component that shows project connectivity status\n */\n@Component({\n components: {\n email: EmailAction,\n webhook: WebhookAction,\n alert: AlertAction,\n },\n})\nexport default class ConChecker extends Vue {\n @Prop({ default: false }) isInModal!: boolean;\n @State('projects') projectsState!: IProjectsState;\n @Action('projects/updateProject') updateProject!: (project: any) => Promise\n\n conModel: any = {\n actions: [],\n enabled: false,\n };\n\n get project() {\n return this.projectsState.project;\n }\n\n @Watch('conModel', { deep: true })\n handleChange(val: any) {\n this.$emit('changeObject', val);\n }\n\n created() {\n this.conModel = JSON.parse(JSON.stringify(this.project.connectivity));\n }\n\n /**\n * addAction pushes a new action for a specific type to the actions list\n * @param {string} type action type\n */\n addAction(type: string) {\n const action = { 'type': type, params: {} };\n\n switch (type) {\n case 'webhook':\n action.params = {\n headers: {\n 'content-type': 'application/json',\n },\n method: 'POST',\n body: '',\n url: '',\n };\n break;\n case 'email':\n action.params = {\n recipients: ['example@mail.com'],\n subject: '',\n body: '',\n };\n break;\n case 'alert':\n action.params = {\n type: 0,\n body: '',\n };\n break;\n }\n\n this.conModel.actions.push(action);\n }\n\n /**\n * delete the Action based on the Index passed from the Button\n * @param {number} index action index\n */\n deleteActionByIndex(index: number) {\n this.conModel.actions.splice(index, 1);\n }\n\n async submitChanges() {\n const localProject = JSON.parse(JSON.stringify(this.project));\n localProject.connectivity = this.conModel;\n await this.updateProject(localProject);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectivityChecker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectivityChecker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectivityChecker.vue?vue&type=template&id=99b3c446&\"\nimport script from \"./ConnectivityChecker.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectivityChecker.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=style&index=0&id=4990de1a&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary general-settings\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"general-settings-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.title'))+\" \")]),_c('v-form',{ref:\"form\",staticClass:\"general-settings-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{staticClass:\"px-0 content\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.projectName'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.required, _vm.rules.counter],\"maxLength\":\"30\"},model:{value:(_vm.localProject.name),callback:function ($$v) {_vm.$set(_vm.localProject, \"name\", $$v)},expression:\"localProject.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.projectDescription'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\"},model:{value:(_vm.localProject.meta.description),callback:function ($$v) {_vm.$set(_vm.localProject.meta, \"description\", $$v)},expression:\"localProject.meta.description\"}}),_c('div',{staticStyle:{\"height\":\"86px\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.placesArr,\"search-input\":_vm.searchPlaces,\"clearable\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"hide-no-data\":\"\",\"no-filter\":\"\",\"hide-selected\":\"\",\"hide-details\":\"\",\"item-text\":\"display_name\",\"item-value\":\"coordinates\",\"return-object\":\"\",\"label\":_vm.$t('uiComponents.settings.general.form.city'),\"placeholder\":\"Start typing to Search Places\"},on:{\"update:searchInput\":function($event){_vm.searchPlaces=$event},\"update:search-input\":function($event){_vm.searchPlaces=$event}},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),(_vm.superAdmin)?_c('div',[_c('ProjectTagsField',{attrs:{\"isInsideSettings\":true},on:{\"selectedChips\":_vm.handleChipsChange}})],1):_vm._e()],1),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"upload-file\"},[_c('div',{staticClass:\"pb-7\"},[_c('VueCtkDateTimePicker',{attrs:{\"value\":new Date(_vm.localProject.started_at).toISOString(),\"id\":\"start-date-picker\",\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"min-date\":_vm.project.created_at,\"label\":_vm.$t('uiComponents.settings.general.form.startDate'),\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent},on:{\"input\":function($event){_vm.localProject.started_at = new Date($event).toISOString()}}})],1),_c('div',{staticClass:\"pb-7\"},[_c('VueCtkDateTimePicker',{attrs:{\"value\":new Date(_vm.localProject.meta.plcLastUpdate ?? _vm.project.created_at).toISOString(),\"id\":\"start-date-picker\",\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"min-date\":_vm.project.created_at,\"label\":_vm.$t('uiComponents.settings.general.form.lastUpdatePLC'),\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent},on:{\"input\":function($event){return _vm.changePlcDate($event)}}})],1),_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.general.select'),\"hide-details\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\"},on:{\"change\":_vm.resetButtonClickedVariable},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.currentMember,\"elevation\":\"1\"},on:{\"click\":_vm.handleFileUpload}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.upload')))])])],1),(!_vm.uploadButtonClicked)?_c('div',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadReminder'))+\" \")]):_vm._e(),_c('div',{staticClass:\"upload-description\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadDescription'))+\" \")])]),(!_vm.isCustomLabel)?_c('div',[(_vm.isWeatherServiceShow)?_c('v-checkbox',{staticClass:\"pr-4\",attrs:{\"disabled\":_vm.model === null,\"color\":\"accent\",\"label\":_vm.$t('uiComponents.settings.general.activateWeatherService'),\"hide-details\":\"\"},nativeOn:{\"!click\":function($event){return _vm.handleWeatherService($event)}},model:{value:(_vm.isWeatherServiceActive),callback:function ($$v) {_vm.isWeatherServiceActive=$$v},expression:\"isWeatherServiceActive\"}}):_vm._e(),_c('v-checkbox',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.disableDevicesWhenOffline'),\"color\":\"accent\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.localProject.meta.disableDevicesWhenOffline),callback:function ($$v) {_vm.$set(_vm.localProject.meta, \"disableDevicesWhenOffline\", $$v)},expression:\"localProject.meta.disableDevicesWhenOffline\"}})],1):_vm._e(),(_vm.superAdmin)?_c('LynusQrCode'):_vm._e()],1)])],1),(_vm.enableControllerSettings)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"sub-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.form.expert.title'))+\" \")])]),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.companyName'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\"},model:{value:(_vm.localProject.meta.expert.name),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"name\", $$v)},expression:\"localProject.meta.expert.name\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.employeeName'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"30\"},model:{value:(_vm.localProject.meta.expert.employeeName),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"employeeName\", $$v)},expression:\"localProject.meta.expert.employeeName\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.phone'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\"},model:{value:(_vm.localProject.meta.expert.phone),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"phone\", $$v)},expression:\"localProject.meta.expert.phone\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.email'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\"},model:{value:(_vm.localProject.meta.expert.email),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"email\", $$v)},expression:\"localProject.meta.expert.email\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}}),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.street'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\"},model:{value:(_vm.localProject.meta.expert.street),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"street\", $$v)},expression:\"localProject.meta.expert.street\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.city'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\"},model:{value:(_vm.localProject.meta.expert.city),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"city\", $$v)},expression:\"localProject.meta.expert.city\"}})],1),_c('v-col',{staticClass:\"pb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.zipCode'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\"},model:{value:(_vm.localProject.meta.expert.zip),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"zip\", $$v)},expression:\"localProject.meta.expert.zip\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.country'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\"},model:{value:(_vm.localProject.meta.expert.country),callback:function ($$v) {_vm.$set(_vm.localProject.meta.expert, \"country\", $$v)},expression:\"localProject.meta.expert.country\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"sub-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.form.control.title'))+\" \")])]),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.control.type'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\",\"disabled\":!_vm.superAdmin},model:{value:(_vm.localProject.meta.controller.type),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"type\", $$v)},expression:\"localProject.meta.controller.type\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.control.serialNumber'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\",\"disabled\":!_vm.superAdmin},model:{value:(_vm.localProject.meta.controller.serialNumber),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"serialNumber\", $$v)},expression:\"localProject.meta.controller.serialNumber\"}}),_c('v-select',{attrs:{\"items\":_vm.plcPerformanceItems,\"label\":_vm.$t('uiComponents.settings.general.form.control.plcPerformanceLevel'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"30\",\"hide-selected\":\"\",\"disabled\":!_vm.superAdmin},model:{value:(_vm.localProject.meta.controller.plcPerformanceLevel),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"plcPerformanceLevel\", $$v)},expression:\"localProject.meta.controller.plcPerformanceLevel\"}}),(_vm.hasMultipleBatteryTypes(_vm.currentBatterySystemType))?_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.control.selectedBatteryStorageType'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"30\",\"disabled\":true},model:{value:(_vm.localProject.meta.controller.deyeType),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"deyeType\", $$v)},expression:\"localProject.meta.controller.deyeType\"}}):_vm._e()],1),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.control.projectId'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter],\"maxLength\":\"30\",\"disabled\":!_vm.superAdmin},model:{value:(_vm.localProject.meta.controller.projectId),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"projectId\", $$v)},expression:\"localProject.meta.controller.projectId\"}}),_c('v-select',{attrs:{\"items\":_vm.batteryTypesItems,\"label\":_vm.$t('uiComponents.settings.general.form.control.batterySystem'),\"color\":\"accent\",\"outlined\":\"\",\"hide-selected\":\"\",\"disabled\":!_vm.superAdmin},model:{value:(_vm.localProject.meta.controller.batterySystemType),callback:function ($$v) {_vm.$set(_vm.localProject.meta.controller, \"batterySystemType\", $$v)},expression:\"localProject.meta.controller.batterySystemType\"}})],1)],1):_vm._e(),_c('v-row',[(_vm.currentMember && _vm.currentMember.role === _vm.UserRoleCode.admin)?_c('v-col',[_c('div',{staticClass:\"pt-4 d-flex justify-end\"},[(_vm.superAdmin)?_c('ManageProjectDuplicateWindow',{attrs:{\"isWeatherServiceActive\":_vm.isWeatherServiceShow,\"mqttInfo\":_vm.mqttInfo,\"projectModel\":_vm.model},on:{\"disable-navigation-guard\":function($event){return _vm.handleNavigationGuard($event)},\"set-project-data\":function($event){_vm.localProject = $event},\"reloadProject\":_vm.reloadLocalProject}}):_vm._e()],1)]):_vm._e()],1),_c('v-row',[(_vm.currentMember && _vm.currentMember.role === _vm.UserRoleCode.admin)?_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"buttons pt-4 d-flex align-center\"},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"}},[_c('span',{staticClass:\"btn-text white--text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.cancel')))])]),_c('v-btn',{staticClass:\"lynus-small-btn ml-5\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.valid},on:{\"click\":_vm.handleGeneralSettings}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.save')))])])],1)]):_vm._e(),_c('v-col',[_c('div',{staticClass:\"delete-banner\"},[_c('div',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.general.deleteBanner')))]),(_vm.currentMember)?_c('DeleteModalForm',{attrs:{\"deletedItemName\":_vm.project.name},on:{\"deleteHandler\":_vm.removeProject}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"error\",\"elevation\":\"0\"}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.delete')))])])],1):_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"error\",\"disabled\":\"\",\"elevation\":\"0\"}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.delete')))])])],1)])],1)],1)],1),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t('uiComponents.settings.general.title'),\"additional-information\":_vm.$t('uiComponents.routeLeave.text')}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1200\",\"disableCloseButton\":_vm.isLoading},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.general.duplicateProject')))])])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"manage-duplicate\"},[(!_vm.isDuplicationDone)?_c('v-stepper',{staticStyle:{\"box-shadow\":\"none !important\"},model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.generalInformation'))+\" \")]),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.rules'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 3,\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.emailActions'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 4,\"step\":\"4\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.users'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 5,\"step\":\"5\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.connectivity'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"6\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.stepperTexts.accept'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"project-name-field\"},[_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('v-text-field',{staticClass:\"lynus-text-field\",attrs:{\"rules\":[_vm.rules.required],\"counter\":30,\"label\":_vm.$t('modals.duplicateProjectModal.generalInformation.newProjectName'),\"required\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.newProjectName),callback:function ($$v) {_vm.newProjectName=$$v},expression:\"newProjectName\"}})],1)]),_c('DuplicationNavigation',{attrs:{\"disable-previous\":true},on:{\"previous\":_vm.decrementStage,\"next\":_vm.incrementStage}})],1),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"device-type-field\"},[(_vm.userFilteredRuleList.length === 0)?_c('div',{staticClass:\"d-flex justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.rules.noRulesForDuplication'))+\" \")]):_vm._e(),(_vm.userFilteredRuleList.length !== 0)?_c('div',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.rules.duplicationDescription'))+\" \")]):_vm._e(),(_vm.userFilteredRuleList.length !== 0)?_c('div',{staticClass:\"d-flex justify-end my-2\",on:{\"click\":_vm.handleSelectAll}},[_c('v-btn',{staticClass:\"lynus-small-btn\"},[_vm._v(_vm._s(_vm.$t('modals.duplicateProjectModal.rules.selectAll')))])],1):_vm._e(),_vm._l((_vm.userFilteredRuleList),function(rule,index){return _c('div',{key:index,staticClass:\"px-2\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"border-bottom\":\"solid 2px grey\"}},[_c('div',{staticClass:\"my-2\"},[_vm._v(\" \"+_vm._s(rule.name)+\" \")]),_c('div',{staticClass:\"my-2\"},[_c('v-checkbox',{staticStyle:{\"margin-top\":\"0px\",\"padding-top\":\"0px\"},attrs:{\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.userFilteredRuleList[index].isDuplicated),callback:function ($$v) {_vm.$set(_vm.userFilteredRuleList[index], \"isDuplicated\", $$v)},expression:\"userFilteredRuleList[index].isDuplicated\"}})],1)])])})],2),_c('DuplicationNavigation',{on:{\"previous\":_vm.decrementStage,\"next\":_vm.handleStageChange2}})],1),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"device-type-field\"},[(_vm.finalRuleList.length === 0)?_c('div',{staticClass:\"d-flex justify-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.rules.noRulesText'))+\" \")]):_vm._e(),(_vm.finalRuleList.length !== 0 && _vm.rulesWithRecipients)?_c('div',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.rules.descriptionText'))+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.rules.noRulesWithRecipients'))+\" \")]),_vm._l((_vm.finalRuleList),function(rule,ruleIndex){return _c('div',{key:ruleIndex},_vm._l((rule.actions),function(action,actionIndex){return _c('div',{key:'action'+actionIndex},[(action.type === 'email' && action.params.recipients)?_c('div',[_c('div',{staticClass:\"pb-2\"},[(actionIndex === 0)?_c('h3',[_vm._v(_vm._s(_vm.$t('modals.duplicateProjectModal.rules.presentIn'))+\" \"+_vm._s(_vm.finalRuleList[ruleIndex].name))]):_vm._e(),_vm._v(\" Email-Action \"+_vm._s(actionIndex + 1)+\" \")]),_vm._l((action.params.recipients),function(recipient,recipientIndex){return _c('div',{key:'recipient'+recipientIndex,staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.finalRuleListOriginal[ruleIndex].actions[actionIndex].params.recipients[recipientIndex],\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.finalRuleList[ruleIndex].actions[actionIndex].params.recipients[recipientIndex]),callback:function ($$v) {_vm.$set(_vm.finalRuleList[ruleIndex].actions[actionIndex].params.recipients, recipientIndex, $$v)},expression:\"finalRuleList[ruleIndex].actions[actionIndex].params.recipients[recipientIndex]\"}}),_c('v-btn',{staticClass:\"error mt-3 lynus-small-btn ml-2\",attrs:{\"icon\":\"\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.handleDeleteMailSelection(ruleIndex, actionIndex, recipientIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)})],2):_vm._e()])}),0)})],2),_c('DuplicationNavigation',{on:{\"previous\":_vm.decrementStage,\"next\":_vm.incrementStage}})],1),_c('v-stepper-content',{attrs:{\"step\":\"4\"}},[_c('div',{staticClass:\"device-type-field\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.users.descriptionText'))+\" \"),_c('v-autocomplete',{staticClass:\"mb-8\",attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"search-input\":_vm.search,\"clearable\":\"\",\"hide-no-data\":\"\",\"item-text\":\"email\",\"item-value\":\"email\",\"color\":\"blue\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.permissions.searchFieldLabel'),\"hide-details\":\"\"},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"blur\":_vm.clearItems},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}},{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}}],null,false,2653870012),model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}}),_c('div',{staticClass:\"mb-4\"},[_c('div',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('modals.duplicateProjectModal.users.listTitle'))+\":\")]),_vm._l((_vm.usersForNewProject),function(user,index){return _c('div',{key:index,staticClass:\"mb-2\",staticStyle:{\"display\":\"flex !important\",\"justify-content\":\"space-between\"}},[_c('div',{staticClass:\"mt-2\",staticStyle:{\"width\":\"30%\"}},[_vm._v(\" \"+_vm._s(user.last_name)+\" \"+_vm._s(user.first_name)+\" \")]),_c('v-select',{staticStyle:{\"max-width\":\"250px\",\"padding-top\":\"0px\",\"margin-top\":\"0px\",\"margin-left\":\"5px\"},attrs:{\"items\":_vm.userRoleItems,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\",\"dense\":\"\",\"flat\":\"\",\"color\":\"accent\"},model:{value:(user.role),callback:function ($$v) {_vm.$set(user, \"role\", $$v)},expression:\"user.role\"}}),_c('div',{staticClass:\"d-flex\"},[(user.role !== _vm.UserRoleCode.admin)?_c('ManageCollectionsModal',{attrs:{\"memberObject\":user,\"updateMemberInModal\":false},on:{\"selectedCollections\":_vm.handleSelection}}):_vm._e(),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteMember(index)}}},[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)],1)],1)})],2)],1),_c('DuplicationNavigation',{on:{\"previous\":_vm.decrementStage,\"next\":_vm.incrementStage}})],1),_c('v-stepper-content',{attrs:{\"step\":\"5\"}},[_c('div',{staticClass:\"device-type-field\"},[_c('ConChecker',{staticStyle:{\"margin-top\":\"10px\"},attrs:{\"isInModal\":true},on:{\"changeObject\":_vm.handleChange}})],1),_c('DuplicationNavigation',{on:{\"previous\":_vm.decrementStage,\"next\":_vm.incrementStage}})],1),_c('v-stepper-content',{attrs:{\"step\":\"6\"}},[_c('div',{staticClass:\"device-type-field\"},[(_vm.isLoading)?_c('div',{staticClass:\"loading-animation\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":90}}),_c('div',{staticClass:\"mt-5\"},[_vm._v(_vm._s(_vm.loadingText))]),_c('v-btn',{staticClass:\"mt-5 error\",on:{\"click\":_vm.handleCancel}},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.cancel')))])],1):_vm._e()]),(!_vm.isLoading)?_c('DuplicationNavigation',{attrs:{\"next-icon\":\"fa-paper-plane\"},on:{\"previous\":_vm.decrementStage,\"next\":_vm.handleDuplicateProject}}):_vm._e()],1)],1)],1):_vm._e(),(_vm.isDuplicationDone)?_c('div',{staticStyle:{\"overflow\":\"hidden !important\"}},[_c('h2',{staticClass:\"pb-2\"},[_vm._v(_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.title')))]),_c('v-expansion-panels',{attrs:{\"focusable\":\"\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"pr-2\",attrs:{\"hasError\":_vm.duplicationStatus.roomStatus.some((el) => el.error === true)}}),_c('div',{staticClass:\"pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.roomDevicesTitle'))+\" \")])],1)]),_c('v-expansion-panel-content',[_c('div',_vm._l((_vm.duplicationStatus.roomStatus),function(roomItem,roomIndex){return _c('div',{key:`${roomIndex}room`,staticClass:\"pt-2\"},[_c('div',{staticClass:\"d-flex pb-2\"},[_c('DuplicationStatusIndicator',{staticClass:\"mr-2\",attrs:{\"hasError\":roomItem.error,\"iconSize\":25}}),_c('h3',[_vm._v(_vm._s(roomItem.name))])],1),_vm._l((_vm.duplicationStatus.devicesStatus[\n roomIndex\n ]),function(deviceItem,deviceIndex){return _c('div',{key:`${deviceIndex}room`,staticClass:\"ml-5 d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"mr-2\",attrs:{\"hasError\":deviceItem.error,\"iconSize\":20}}),_vm._v(\" \"+_vm._s(deviceItem.name)+\" \")],1)})],2)}),0)])],1),(_vm.duplicationStatus.rulesStatus.length !== 0)?_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"pr-2\",attrs:{\"hasError\":_vm.duplicationStatus.rulesStatus.some((el) => el.error === true)}}),_c('div',{staticClass:\"pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.rulesTitle'))+\" \")])],1)]),_c('v-expansion-panel-content',[_c('div',_vm._l((_vm.duplicationStatus.rulesStatus),function(item,index){return _c('div',{key:index,staticClass:\"py-1 d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"mr-2\",attrs:{\"hasError\":item.error,\"iconSize\":20}}),_vm._v(\" \"+_vm._s(item.name)+\" \")],1)}),0)])],1):_vm._e(),(_vm.duplicationStatus.memberStatus.length !== 0)?_c('v-expansion-panel',[_c('v-expansion-panel-header',[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"pr-2\",attrs:{\"hasError\":_vm.duplicationStatus.memberStatus.some((el) => el.error === true)}}),_c('div',{staticClass:\"pt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.memberTitle'))+\" \")])],1)]),_c('v-expansion-panel-content',[_c('div',_vm._l((_vm.duplicationStatus.memberStatus),function(item,index){return _c('div',{key:index,staticClass:\"py-1 d-flex\"},[_c('DuplicationStatusIndicator',{staticClass:\"mr-2\",attrs:{\"hasError\":item.error,\"iconSize\":20}}),_vm._v(\" \"+_vm._s(item.name)+\" \")],1)}),0)])],1):_vm._e(),_c('v-expansion-panel',{attrs:{\"readonly\":true}},[_c('v-expansion-panel-header',{attrs:{\"expand-icon\":\"none\"}},[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{attrs:{\"hasError\":_vm.duplicationStatus.positionStatus.error}}),_c('div',{staticClass:\"pt-1 ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.memberMetaTitle'))+\" \")])],1)])],1),_c('v-expansion-panel',{attrs:{\"readonly\":true}},[_c('v-expansion-panel-header',{attrs:{\"expand-icon\":\"none\"}},[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{attrs:{\"hasError\":_vm.duplicationStatus.weatherServiceStatus.error}}),_c('div',{staticClass:\"pt-1 ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.weatherServiceTitle'))+\" \")])],1)])],1),_c('v-expansion-panel',{attrs:{\"readonly\":true}},[_c('v-expansion-panel-header',{attrs:{\"expand-icon\":\"none\"}},[_c('div',{staticClass:\"d-flex\"},[_c('DuplicationStatusIndicator',{attrs:{\"hasError\":_vm.duplicationStatus.variablesStatus.error}}),_c('div',{staticClass:\"pt-1 ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateProjectModal.duplicationLogTexts.variablesTitle'))+\" \")])],1)])],1)],1),_c('v-btn',{staticClass:\"mr-5 mb-5\",staticStyle:{\"position\":\"absolute\",\"right\":\"0\",\"bottom\":\"0\"},attrs:{\"color\":\"accent\",\"dark\":\"\"},on:{\"click\":_vm.closeDialog}},[_vm._v(\" OK \")])],1):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(!_vm.disablePrevious)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":_vm.previous}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left\")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1):_vm._e(),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.next}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.nextIcon))])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\n\n@Component({})\nexport default class DuplicationNavigation extends Vue {\n @Prop({ default: false }) disablePrevious!: boolean;\n @Prop({ default: 'fa-chevron-right' }) nextIcon!: string;\n previous() {\n this.$emit('previous');\n }\n next() {\n this.$emit('next');\n }\n}\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicationNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicationNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DuplicationNavigation.vue?vue&type=template&id=1a373bed&\"\nimport script from \"./DuplicationNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./DuplicationNavigation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport _ from 'lodash';\nimport UserService from '@/services/UserService';\nimport api from '@/services/api';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport ManageCollectionsModal from '@/ui/components/components/ManageCollectionsAccessModal.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ConChecker from '@/ui/components/components/ConnectivityChecker.vue';\nimport DuplicationStatusIndicator from '@/ui/components/components/DuplicationStatusIndicator.vue';\nimport { copyRoomWithDevices, sortRoom, updateMemberOrders } from '@/utils/duplicationUtils';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport { IMemberState } from '@/store/modules/members/types';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IRoomsState } from '@/store/modules/rooms/types';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IVariableListState } from '@/store/modules/variables/types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport DuplicationNavigation from '@/ui/components/components/DuplicationNavigation.vue';\nimport { IRule } from '@/types/rules.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IMPCWeatherServiceRequestBody, IMLModel } from '@/types/mpc/mpc.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IReportBox } from '@/types/app.types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { IVariable } from '@/types/variables.types';\nimport { IMember } from '@/types/members.types';\nimport { IMQTTClientInfo } from '@/types/mqtt.types';\n\n/**\n * Component that allows to create a new project\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n DuplicationNavigation,\n ModalWindow,\n ManageCollectionsModal,\n CircleSpinner,\n ConChecker,\n DuplicationStatusIndicator,\n },\n})\nexport default class ManageProjectDuplicateWindow extends mixins(Validation) {\n @Prop({ default: false }) isWeatherServiceActive!: boolean;\n @Prop() mqttInfo!: any;\n @Prop() projectModel!: any;\n\n @Getter('projects/project') project!: IProject;\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('mqttClient/mqttClientInfo') mqttClientInfo!: IMQTTClientInfo;\n @State('projects') projectsState!: IProjectsState;\n @State('mpc') mpcState!: IMPCState;\n @State('members') membersState!: IMemberState;\n @State('devices') devicesState!: IDevicesState;\n @State('rooms') roomsState!: IRoomsState;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @State('rules') rulesState!: IRulesState;\n @State('app') appState!: IAppState;\n @State('variables') variablesState!: IVariableListState;\n @State('measurements') measurementsState!: IVariablesState;\n @Mutation('projects/setMqttInfo') setMqttInfo!: (info: any) => void;\n @Mutation('projects/setProject') setProject!: (payload: string) => void;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n @Mutation('projects/setProjectId') setProjectId!: (payload: string) => void;\n @Action('projects/copyProject') copyProject!: (payload: IProject) => Promise;\n @Action('mpc/activateWeatherService') activateWeatherService!: (\n payload: IMPCWeatherServiceRequestBody,\n ) => Promise;\n @Action('devices/fetchDevices') fetchDevices!: (payload: any) => Promise;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('mqttClient/createConnection') createConnection!: () => Promise;\n @Action('mqttClient/publish') publishStore!: any;\n @Action('variables/modifyVariableAliasList') modifyVariableAliasList!: (variable: any) => boolean;\n @Action('projects/loadProject') loadProject!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string;\n rulesList: IRule[];\n }) => Promise;\n @Action('rooms/copyRoom') copyRoom!: ({\n room,\n cover,\n }: {\n room: IRoom;\n cover: any;\n }) => Promise;\n @Action('devices/createDevice') createDevice!: (control: IDevice) => Promise;\n @Action('devices/addDeviceToFavorites') addDeviceToFavorites!: (control: string) => Promise;\n @Action('mpc/createMCCInstance') createMCCInstance!: (control: IMLModel) => Promise;\n @Action('mpc/addMPCToFavorites') addMPCToFavorites!: (id: string) => Promise;\n @Action('members/createMember') createMember!: (data: {member: IMember; showMessage: boolean}) => Promise | string;\n @Action('members/updateMemberCollections') updateMemberCollections!: any;\n @Action('rooms/updateRoom') updateRoom!: ({\n room,\n cover,\n }: {\n room: IRoom;\n cover: any;\n }) => Promise;\n @Action('rules/loadRules') loadRules!: (project_id: string) => Promise;\n @Action('projects/updateProject') updateProject!: (project: any) => Promise;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (\n projectId: string,\n ) => Promise;\n @Action('mqttClient/removeConnection') removeConnection!: () => Promise;\n\n stage = 1;\n autoRuleIdList: any = [];\n items = [];\n loading = false;\n search = '';\n usersForNewProject = [];\n model = null;\n roomIdMapping: any = {};\n isLoading = false;\n loadingText: any = '';\n connectivity: any = {\n actions: [],\n enabled: false,\n };\n userFilteredRuleList: any = [];\n finalRuleList: any = [];\n rulesWithRecipients = false;\n // original copy is needed in order to show the original names correctly for the user\n finalRuleListOriginal: any = [];\n timer: any = undefined;\n isDuplicationDone = false;\n duplicationStatus: any = {\n rulesStatus: [],\n memberStatus: [],\n roomStatus: [],\n devicesStatus: [],\n variablesStatus: { error: false },\n weatherServiceStatus: { error: false },\n positionStatus: { error: false },\n };\n newProjectName= '';\n\n oldDevicesMap: any = {}; // will contain a whole list of all Devices and MPC's with their old Id's\n\n handleDeleteMailSelection(ruleIndex: number, actionIndex: number, recipientIndex: any) {\n this.finalRuleList[ruleIndex].actions[actionIndex].params.recipients.splice(recipientIndex, 1);\n this.finalRuleListOriginal[ruleIndex].actions[actionIndex].params.recipients.splice(recipientIndex, 1);\n }\n\n get localRulesList() {\n return this.rulesState.rulesList;\n }\n get userRoleItems() {\n return [\n { name: 'Admin', value: UserRoleCode.admin },\n { name: 'User', value: UserRoleCode.user },\n { name: 'Readonly', value: UserRoleCode.readOnly },\n ];\n }\n\n handleChange(val: any) {\n this.connectivity = val;\n }\n\n handleSelectAll() {\n this.userFilteredRuleList.forEach((element: any) => {\n element.isDuplicated = true;\n });\n }\n\n handleStageChange2() {\n const ruleList = this.rulesState.rulesList;\n const newList: any = [];\n ruleList.forEach((currentRule: any) => {\n const helperRule = this.userFilteredRuleList.find(\n (element: any) => element.id === currentRule.id,\n );\n if (helperRule?.isDuplicated === true) {\n newList.push(currentRule);\n }\n });\n this.finalRuleList = newList;\n\n // checks if the rules have recipients\n // else we show a message to the user\n this.finalRuleList.forEach((rule: IRule) => {\n rule.actions.forEach((action: any) => {\n if (action.type === 'email') {\n if (!action.params.recipients) {\n return;\n }\n if (action.params.recipients.length > 0) {\n this.rulesWithRecipients = true;\n }\n }\n });\n });\n this.finalRuleListOriginal = _.cloneDeep(newList);\n this.incrementStage();\n }\n\n incrementStage() {\n this.stage++;\n }\n\n decrementStage() {\n this.stage--;\n }\n\n deleteMember(index: number) {\n this.usersForNewProject.splice(index, 1);\n }\n\n @Watch('model')\n onSelected(val: IMember | null) {\n if (val === null) return;\n\n // add readonly as defualt role to avoid errors when user doesnt select any role\n const newUser: any = this.items[0];\n newUser.role = UserRoleCode.readOnly;\n\n this.usersForNewProject.push(this.items[0]);\n\n // clear the autocomplete\n this.model = null;\n this.items = [];\n this.search = '';\n }\n\n @Watch('search')\n fetchUsers(val?: string) {\n if (this.loading || val == null) return;\n if (!this.isEmailValid(val)) {\n this.items = [];\n return;\n }\n\n this.loading = true;\n UserService.fetchUserByEmail(val)\n .then((res) => (this.items = res))\n .finally(() => (this.loading = false));\n }\n\n /**\n * Validates email\n * @param {string} s email\n */\n isEmailValid(s: string): boolean {\n // https://stackoverflow.com/a/574698\n if (s.length < 3 || s.length > 254) return false;\n\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(s.toLowerCase());\n }\n\n // clear items @blur, otherwise it will still show\n // the old result when focusing the autocomplete\n clearItems() {\n this.items = [];\n this.search = '';\n }\n\n async created() {\n await this.loadRules(this.$route.params.id);\n await this.fetchDevices(this.$route.params.id);\n await this.fetchMPCListByProject();\n await this.fetchVariables(this.$route.params.id);\n await this.fetchMeasurements(this.$route.params.id);\n const deviceList: any = _.cloneDeep(this.devicesState.devices).toJS();\n const mpcList: any = _.cloneDeep(this.mpcState.mpcControllers).toJS();\n this.oldDevicesMap = { ...deviceList, ...mpcList };\n\n this.isDuplicationDone = false;\n this.duplicationStatus = {\n rulesStatus: [],\n memberStatus: [],\n roomStatus: [],\n devicesStatus: [],\n variablesStatus: { error: false },\n weatherServiceStatus: { error: false },\n positionStatus: { error: false },\n };\n\n const autoRuleList: any[] = [];\n Object.values(deviceList).forEach((device: any) => {\n const isDeviceHasErrorWarning = device.data?.mappings?.ShowEvent_errorWarningState;\n if (isDeviceHasErrorWarning) {\n autoRuleList.push(device.data.meta.errorRule);\n autoRuleList.push(device.data.meta.warningRule);\n }\n });\n\n Object.values(mpcList).forEach((mpc: any) => {\n if (\n mpc.data.meta.controllerMappings.errorWarning &&\n mpc.data.meta.controllerMappings.errorWarning !== ''\n ) {\n autoRuleList.push(mpc.data.meta.errorRule);\n autoRuleList.push(mpc.data.meta.warningRule);\n }\n });\n\n this.userFilteredRuleList = this.rulesState.rulesList.map((element: any) => {\n const newElement = {\n isDuplicated: false,\n name: element.name,\n id: element.id,\n };\n return newElement;\n });\n\n const helperArray: any = [];\n this.userFilteredRuleList.forEach((element: any) => {\n if (autoRuleList.includes(element.id) === false) {\n helperArray.push(element);\n }\n });\n this.userFilteredRuleList = helperArray;\n const project = _.cloneDeep(this.projectsState.project);\n this.newProjectName = `${project.name} (copy)`;\n }\n\n async handleCancel() {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n }\n window.stop();\n this.setReport({ shouldShow: true });\n this.isLoading = false;\n this.$emit('reloadProject');\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n closeDialog() {\n this.setReport({ shouldShow: true });\n this.resetForm();\n this.$emit('reloadProject');\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n beforeDestroy() {\n this.setReport({ shouldShow: true });\n clearTimeout(this.timer);\n }\n\n async handleDuplicateProject() {\n this.setReport({ shouldShow: false });\n this.isLoading = true;\n this.$emit('disableNavigationGuard', true);\n const roomsList: any = _.cloneDeep(this.rooms);\n const measurementsList = _.cloneDeep(this.measurementsState.measurements.toJS());\n const variablesList = _.cloneDeep(this.variablesState.variables);\n const newProject: IProject = _.cloneDeep(this.projectsState.project);\n\n delete newProject.created_at;\n delete newProject.meta.plcLastUpdate;\n delete newProject.id;\n delete newProject.secret;\n delete newProject.meta.roomsPositions;\n delete newProject.stats;\n if (newProject.meta?.wasInstallationWizardCompleted !== undefined) {\n // will be set to false because the setup asisstend needs to be done again in duplicated project\n newProject.meta.wasInstallationWizardCompleted = false;\n }\n if (newProject.meta?.disableInstallationWizardPopup !== undefined) {\n // will be set to false because the setup asisstend needs to be done again in duplicated project\n newProject.meta.disableInstallationWizardPopup = false;\n }\n if (newProject.meta?.wasTenantWizardCompleted !== undefined) {\n // will be set to false because the tenant needs to be done again in duplicated project\n newProject.meta.wasTenantWizardCompleted = false;\n }\n if (newProject.meta?.loggerInformation !== undefined) {\n // will be set to false because the setup asisstend needs to be done again in duplicated project\n delete newProject.meta.loggerInformation;\n }\n if (newProject.meta?.loggerType !== undefined) {\n delete newProject.meta.loggerType;\n }\n if (newProject.meta.solarmanLoggerInfo !== undefined) {\n delete newProject.meta.solarmanLoggerInfo;\n }\n if (newProject.meta?.checkProtocol !== undefined) {\n delete newProject.meta.checkProtocol;\n }\n if (newProject.meta.hasLynusInverter !== undefined) {\n delete newProject.meta.hasLynusInverter;\n }\n if (newProject.meta.overallProductionMeasurement !== undefined) {\n delete newProject.meta.overallProductionMeasurement;\n }\n newProject.name = this.newProjectName;\n const oldMember = { ...this.currentMember };\n\n const oldProject = { ...this.project };\n // contains Object of duplicated Project\n\n const resultNewProject: any = await this.copyProject(newProject);\n this.setProject(resultNewProject);\n await this.removeConnection();\n await this.$router.push({ path: `/projects/${resultNewProject.id}/settings/general` });\n await this.loadProject(this.$route.params.id);\n this.$emit('setProjectData', resultNewProject);\n await this.createConnection();\n this.setMqttInfo(this.mqttClientInfo);\n\n const localProject = resultNewProject;\n localProject.connectivity = this.connectivity;\n await this.updateProject(localProject);\n\n // if in current project Weatherservice is active, activate Weatherservice in new Project\n // is needed for MPC Device creation\n if (this.isWeatherServiceActive) {\n const { password, username } = this.mqttInfo;\n const latitude = this.projectModel?.lat;\n const longitude = this.projectModel?.lon;\n\n const returnWeatherStatus = await this.activateWeatherService({\n latitude: +latitude,\n longitude: +longitude,\n username,\n password,\n });\n\n // return value will be false if error\n if (!returnWeatherStatus) {\n this.duplicationStatus.weatherServiceStatus = true;\n }\n }\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.copyDevice');\n let mappedDevices: any = {};\n mappedDevices = await this.copyDevicesAndRoom(resultNewProject);\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.roomPositions');\n await this.updateRoomPositions(mappedDevices, roomsList);\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.addMember');\n await this.addMembers();\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.updateMemberMeta');\n // Update members meta\n const positionStatus = await updateMemberOrders(\n oldMember,\n oldProject,\n resultNewProject,\n mappedDevices,\n );\n // return value will be false if error\n if (positionStatus === false) {\n this.duplicationStatus.positionStatus = true;\n }\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.addRules');\n await this.addRulesNewProject(resultNewProject);\n\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.copyAlias');\n await this.fetchVariables(this.$route.params.id);\n await this.copyVariables(oldProject, measurementsList, variablesList);\n\n this.isDuplicationDone = true;\n this.setReport({ shouldShow: true });\n this.isLoading = false;\n this.$emit('disableNavigationGuard', false);\n }\n\n async copyVariables(\n oldProject: IProject,\n measurementsList: IMeasurements,\n variablesList: IVariable[],\n ) {\n this.loadingText = this.$t('modals.duplicateProjectModal.loadingTexts.createMeasurements');\n\n // if measurement has alias it gets copied\n const aliasObject: any = {};\n Object.entries(measurementsList).map(async (currentMeasurement: any) => {\n const currentVariable: any = variablesList.find(\n (varElement: any) => varElement.variable === currentMeasurement[0],\n );\n if (currentVariable === undefined) return; // if variable is not found, skip it to avoid errors\n if (\n currentMeasurement[0].includes(`weather.${oldProject.id}`.replaceAll('-', '_')) === false\n ) {\n let canDuplicate = true;\n const regex = /\\.[A-Za-z0-9]+_[A-Za-z0-9]+_[A-Za-z0-9]+_[A-Za-z0-9]+_[A-Za-z0-9]+\\./i;\n canDuplicate = !regex.test(currentMeasurement[0]);\n if (canDuplicate) {\n if (currentVariable?.alias !== null) {\n aliasObject[currentVariable.variable] = currentVariable.alias;\n } else {\n aliasObject[currentVariable.variable] = null;\n }\n }\n }\n });\n\n const returnStatus = await this.modifyVariableAliasList({\n projectId: this.$route.params.id,\n variablesObject: aliasObject,\n });\n\n // return value will be false if error\n if (!returnStatus) {\n this.duplicationStatus.weatherServiceStatus = true;\n }\n\n return 0;\n }\n\n async addRulesNewProject(resultNewProject: IProject) {\n const allPromises: any = await Promise.allSettled(\n this.finalRuleList.map(async (currentRule: IRule) => {\n if (!this.autoRuleIdList.includes(currentRule.id)) {\n // create rule\n const newRule = {\n active: currentRule.active,\n actions: currentRule.actions,\n conditions: currentRule.conditions,\n name: currentRule.name,\n timeout: currentRule.timeout,\n };\n const { id } = resultNewProject;\n await this.$store.dispatch('rules/addRule', { id, ruleModel: newRule });\n return newRule;\n }\n }),\n );\n\n allPromises.forEach((promise: any) => {\n this.duplicationStatus.rulesStatus.push({\n name: promise.value.name,\n error: promise.status !== 'fulfilled',\n });\n });\n\n return 0;\n }\n\n async addMembers() {\n // adds new Members to project\n const allPromises: PromiseSettledResult[] = await Promise.allSettled(\n this.usersForNewProject.map(async (user: any) => {\n const newUserWithoutCollection = _.cloneDeep(user);\n delete newUserWithoutCollection.collection;\n const newMember = await this.createMember({ member: newUserWithoutCollection, showMessage: false });\n // in case of error newMember.value is again structured like promise with status: 'Error' and value: IMember\n const resultMember = (newMember as any).value ?? newMember;\n\n if (resultMember.status !== 'Error') {\n const newCollectionArray: any = [];\n if (user?.collections !== undefined) {\n user.collections.forEach((collectionId: string) => {\n Object.entries(this.roomIdMapping).forEach((roomEntrie: any) => {\n if (collectionId === roomEntrie[0]) {\n newCollectionArray.push(roomEntrie[1]);\n }\n });\n });\n }\n // 1000 = Admin User that doesn't need any collections to be set because he has access to every room inside project\n if (user?.role !== UserRoleCode.admin) {\n await this.updateMemberCollections({\n project_id: this.$route.params.id,\n member: resultMember,\n collectionsList: newCollectionArray,\n });\n }\n }\n\n return resultMember;\n }),\n );\n\n allPromises\n .forEach((promise: any) => {\n this.duplicationStatus.memberStatus.push({\n name: promise.value.email,\n error: promise.status !== 'fulfilled',\n });\n });\n\n return allPromises;\n }\n\n async updateRoomPositions(mappedDevices: {}, roomsList: any) {\n // eslint-disable-next-line no-underscore-dangle\n const roomMeta: any = {};\n roomsList.map(async (roomItem: any) => {\n const newElement = _.cloneDeep(roomItem);\n roomMeta[newElement.id] = await sortRoom(roomItem, newElement, mappedDevices);\n });\n return roomMeta;\n }\n\n async copyDevicesAndRoom(resultNewProject: string) {\n const roomsList: any = _.cloneDeep(this.rooms);\n // eslint-disable-next-line no-underscore-dangle\n const mappedDevices: any = {};\n let resultObject: { resultRoom: IRoom; resultDevices: {} };\n let allPromises: any;\n /* goes through all room objects and creates the devices for each specific room\n if/else is needed because in some projects the room object is different */\n // eslint-disable-next-line prefer-const\n allPromises = await Promise.allSettled(\n roomsList.map(async (roomItem: any) => {\n resultObject = await copyRoomWithDevices(roomItem, resultNewProject, mappedDevices);\n this.roomIdMapping[roomItem.id] = resultObject.resultRoom.id;\n return resultObject;\n }),\n );\n\n allPromises.forEach((promise: any) => {\n const deviceResultList: { error: boolean; name: string }[] = [];\n Object.entries(promise?.value?.resultDevices).forEach((deviceEntrie: any) => {\n const deviceName = this.oldDevicesMap[deviceEntrie[0]].name;\n deviceResultList.push({ name: deviceName, error: deviceEntrie[1] === undefined });\n });\n this.duplicationStatus.devicesStatus.push(deviceResultList);\n if (\n promise.value.resultRoom?.error === undefined &&\n !deviceResultList.some((el: { error: boolean }) => el.error === true)\n ) {\n this.duplicationStatus.roomStatus.push({\n error: false,\n name: promise.value.resultRoom.name,\n });\n } else {\n this.duplicationStatus.roomStatus.push({\n error: true,\n name: promise.value.resultRoom.name,\n });\n }\n });\n return mappedDevices;\n }\n\n resetForm() {\n this.stage = 1;\n this.usersForNewProject = [];\n this.finalRuleList = [];\n }\n\n handleSelection(value: any) {\n this.usersForNewProject.forEach((userElement: any) => {\n if (userElement.id === value.id) {\n userElement.collections = value.selections;\n }\n });\n }\n\n // Returns list of all basic devices by collection ID\n getDevicesByCollectionID(collection_id: string) {\n const devicesList: any = [];\n this.devicesState.devices.forEach((device: IDevice) => {\n if (device.collection_id === collection_id) {\n devicesList.push(device);\n }\n });\n return devicesList;\n }\n\n getMpcList(collection_id: string) {\n const mpcList: any = [];\n this.mpcState.mpcControllers.forEach((device: any) => {\n if (device.collection_id === collection_id) {\n mpcList.push(device);\n }\n });\n return mpcList;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageProjectDuplicateWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageProjectDuplicateWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageProjectDuplicateWindow.vue?vue&type=template&id=14e82d5e&scoped=true&\"\nimport script from \"./ManageProjectDuplicateWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageProjectDuplicateWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageProjectDuplicateWindow.vue?vue&type=style&index=0&id=14e82d5e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14e82d5e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"qrCodeDownloadWrapper\"},[_c('div',{ref:\"qrCodeWrapper\",staticClass:\"qrCodeWrapper\",on:{\"contextmenu\":function($event){$event.preventDefault();}}},[_c('div',{ref:\"qrCode\",staticClass:\"qrCode\",attrs:{\"id\":\"qrCode\"}},[_c('qrcode',{staticClass:\"qrCode\",attrs:{\"value\":_vm.qrcodeValue,\"tag\":\"img\",\"options\":_vm.qrOptions}})],1),_c('div',{attrs:{\"id\":\"qrLogo\"}},[_c('img',{ref:\"qrLogoImg\",staticClass:\"qrcode__image\",attrs:{\"src\":require(\"./../../../assets/logo.svg\"),\"alt\":\"Logo\"}})])]),_c('div',{staticClass:\"controllerText\"},[_vm._v(_vm._s(_vm.controllerProjectId))]),_c('v-btn',{staticClass:\"print-hide\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.downloadQRCode}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.downloadQrCode'))+\" \")]),_c('v-btn',{staticClass:\"reset print-hide\",on:{\"click\":_vm.resetQRCode}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.reset'))+\" \")])],1),(_vm.isJoinable && _vm.showDisableField)?_c('div',{staticClass:\"ml-2 mt-2 d-flex flex-column align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.qrCodeInfo'))+\" \"),_c('v-btn',{staticClass:\"mt-4\",on:{\"click\":_vm.handleDisable}},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.disable')))])],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport { IProjectsState } from '@/store/modules/projects/types';\n\n@Component({\n components: {},\n})\nexport default class LynusQrCode extends Vue {\n @Action('projects/resetQR') resetQR!: (projectId: string) => Promise;\n @Action('projects/disableQR') disableQR!: (projectId: string) => Promise;\n @State('projects') projectsState!: IProjectsState;\n\n qrOptions = {\n errorCorrectionLevel: 'Q',\n };\n showDisableField = false;\n\n get project() {\n return this.projectsState.project;\n }\n get qrcodeValue() {\n return this.$route.params.id;\n }\n\n get controllerProjectId() {\n return this.project?.meta?.controller?.projectId ?? '';\n }\n\n get isJoinable() {\n return this.project?.joinable ?? false;\n }\n\n handleDisable() {\n this.disableQR(this.$route.params.id);\n this.showDisableField = false;\n }\n\n resetQRCode() {\n this.resetQR(this.$route.params.id);\n this.showDisableField = true;\n }\n downloadQRCode() {\n const canvas = document.createElement('canvas');\n canvas.width = 500;\n canvas.height = 500;\n\n const ctx = canvas.getContext('2d')!;\n\n // Render QR code onto canvas\n const qrCodeImg = (this.$refs.qrCode as any).firstChild;\n ctx.drawImage(qrCodeImg, 0, 0, 500, 500);\n\n // Add Project ID from meta - Draw this first\n const text = this.controllerProjectId;\n\n const textSize = 36;\n ctx.font = `${textSize}px Arial`;\n ctx.fillStyle = 'black';\n const textWidth = ctx.measureText(text).width;\n const textX = (canvas.width - textWidth) / 2;\n const textY = textSize;\n ctx.fillText(text, textX, textY);\n\n // Define the circle for the logo\n const logoWidth = 150;\n const logoHeight = 150;\n const logoX = (canvas.width - logoWidth) / 2;\n const logoY = (canvas.height - logoHeight) / 2;\n const radius = logoWidth / 2;\n const enlargedRadius = radius * 1.05; // 10% bigger\n\n // Draw the white circle with the enlarged radius\n ctx.beginPath();\n ctx.arc(logoX + radius, logoY + radius, enlargedRadius, 0, 2 * Math.PI);\n ctx.fillStyle = 'white';\n ctx.fill();\n\n // Clip to the original circle size and then draw the logo\n ctx.beginPath();\n ctx.arc(logoX + radius, logoY + radius, radius, 0, 2 * Math.PI);\n ctx.clip();\n\n // Render logo onto canvas\n const logoImg = this.$refs.qrLogoImg as any;\n ctx.drawImage(logoImg, logoX, logoY, logoWidth, logoHeight);\n\n // poroject name for file name\n const projectName = this.project.name.replaceAll(' ', '_');\n\n // Convert canvas to image and download\n const link = document.createElement('a');\n link.download = `qrcode_${projectName}.png`;\n link.href = canvas.toDataURL('image/png');\n link.click();\n }\n\n mounted() {\n if (this.project.joinable) {\n // if project is joinable, show disable field\n this.showDisableField = true;\n } else {\n // if project is not joinable, hide disable field\n this.showDisableField = false;\n }\n }\n}\n\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusQrCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusQrCode.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LynusQrCode.vue?vue&type=template&id=1ecb170a&\"\nimport script from \"./LynusQrCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./LynusQrCode.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LynusQrCode.vue?vue&type=style&index=0&id=1ecb170a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { NavigationGuardNext, Route } from 'vue-router';\nimport { cloneDeep, debounce, isEmpty, isEqual } from 'lodash';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageProjectDuplicateWindow\n from '@/ui/components/components/ManageProjectDuplicateWindow.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport ProjectTagsField from '@/ui/components/components/ProjectTagsField.vue';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { Validation } from '@/ui/mixins/validation';\n\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport {\n envAppShowProjectTypeSelection,\n envEnableControllerSettings,\n envSettingsShowWeatherService,\n} from '@/utils/env';\nimport { IRoomsState } from '@/store/modules/rooms/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IVariableListState } from '@/store/modules/variables/types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { AllBatteryTypes } from '@/utils/batteryTypes';\nimport { PacketCallback } from 'mqtt';\nimport { IProject, IProjectMQTTInfo } from '@/types/project.types';\nimport LynusQrCode from '@/ui/views/Project/Settings/LynusQrCode.vue';\nimport { IRule } from '@/types/rules.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMPCWeatherServiceRequestBody, IMLModel } from '@/types/mpc/mpc.types';\nimport LocationService from '@/services/LocationService';\nimport { IReportBox, IWeatherLocation } from '@/types/app.types';\nimport { IMember } from '@/types/members.types';\nimport { IPublishRecord } from '@/types/mqtt.types';\nimport { plcVersionDate } from '@/utils/versionManagementUtils';\nimport {\n BatteryType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { PlcPerformanceCategorie } from '@/utils/plcPerformanceLimits';\n\ntype IGetLocationWithDelay = (place: string) => void;\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n/**\n * Component that shows general settings tab\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n ModalWindow,\n LynusQrCode,\n LeaveConfirmationModal,\n DeleteModalForm,\n ManageProjectDuplicateWindow,\n ProjectTagsField,\n },\n})\nexport default class General extends mixins(Validation) {\n @State('projects') projectsState!: IProjectsState;\n @State('mpc') mpcState!: IMPCState;\n @State('rooms') roomsState!: IRoomsState;\n @State('app') appState!: IAppState;\n @State('variables') variablesState!: IVariableListState;\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('members/currentMember') currentMember!: IMember;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n @Mutation('projects/setProjectId') setProjectId!: (payload: string) => void;\n @Mutation('projects/setProject') setProject!: (payload: string) => void;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n @Action('projects/deleteProject') deleteProject!: (id: string) => Promise;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n @Action('app/postAsset') postAsset!: (asset: any) => Promise;\n @Action('app/fetchWeather') fetchWeather!: (location: IWeatherLocation) => Promise;\n @Action('mpc/fetchMPCWeatherStatus') fetchMPCWeatherStatus!: () => Promise;\n @Action('mpc/activateWeatherService') activateWeatherService!: (payload: IMPCWeatherServiceRequestBody) => Promise;\n @Action('mpc/deactivateWeatherService') deactivateWeatherService!: () => Promise;\n @Action('rules/loadRules') loadRules!: (project_id: string) => Promise;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('mqttClient/publish') publishStore!: ({ records, callback }: {\n records: IPublishRecord[];\n callback: PacketCallback;\n }) => void;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('mpc/deleteMPC') deleteMPC!: (mpcId: IMLModel) => void;\n\n isWeatherServiceShow = envSettingsShowWeatherService;\n enableControllerSettings = envEnableControllerSettings;\n\n localProject: any = null;\n projectSnapshot: any = null;\n valid = false;\n uploadButtonClicked = true;\n\n batteryTypesItems = Object.values(AllBatteryTypes);\n model: IWeatherLocation | null = null;\n searchPlaces: string | null = null;\n placesArr: IWeatherLocation[] = [];\n getLocationWithDelay: IGetLocationWithDelay | null = null;\n isCustomLabel = envAppShowProjectTypeSelection;\n isDuplicating = false;\n\n fileObject = { name: '' };\n\n get plcPerformanceItems() {\n return [\n {\n text: this.$t('uiComponents.settings.general.form.performanceLevelItems.low'),\n value: PlcPerformanceCategorie.low,\n },\n {\n text: this.$t('uiComponents.settings.general.form.performanceLevelItems.medium'),\n value: PlcPerformanceCategorie.medium,\n },\n {\n text: this.$t('uiComponents.settings.general.form.performanceLevelItems.high'),\n value: PlcPerformanceCategorie.high,\n },\n ];\n }\n\n get project() {\n return this.projectsState.project as IProject;\n }\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get mqttInfo() {\n return this.projectsState.mqttInfo;\n }\n\n get isWeatherServiceActive() {\n return this.mpcState.isWeatherServiceActive;\n }\n\n get isLocationEqual() {\n const location = this.projectSnapshot?.meta?.location ?? null;\n return isEqual(location, this.model);\n }\n\n get isLocalOriginProjectEqual() {\n const isProjectDataEqual = isEqual(this.projectSnapshot, this.localProject);\n return this.isLocationEqual && isProjectDataEqual;\n }\n\n get currentBatterySystemType() {\n return this.localProject.meta.controller.batterySystemType;\n }\n\n @Watch('searchPlaces')\n async onSearchPlaces(val: string | null) {\n const isEqualToSaved = this.project.meta?.location?.display_name === val;\n if (val && val.length > 2 && !isEqualToSaved) {\n this.getLocationWithDelay?.(val);\n }\n }\n\n hasMultipleBatteryTypes(system: string) {\n return [BatteryType.DEYE.toString()].includes(system);\n }\n\n setLocation(location: IWeatherLocation) {\n this.model = { ...location };\n this.placesArr.push({ ...location });\n }\n\n handleChipsChange(value: string[]) {\n this.localProject.meta.tags = value;\n }\n\n handleNavigationGuard(isDisable: boolean) {\n this.isDuplicating = isDisable;\n }\n\n createProjectSnapshot() {\n this.projectSnapshot = cloneDeep(this.localProject);\n }\n\n changePlcDate(event: any) {\n this.localProject.meta.plcLastUpdate = new Date(event).toISOString();\n this.localProject = { ...this.localProject };\n }\n\n /**\n * Updates current project\n */\n async handleGeneralSettings() {\n const { password, username } = this.mqttInfo as IProjectMQTTInfo;\n const latitude = Number(this.model?.lat);\n const longitude = Number(this.model?.lon);\n const wasLocationChanged = this.project.meta.location?.display_name !== this.model?.display_name;\n\n // if location is changed deactivate weather service for backend to update location correctly\n if (wasLocationChanged) {\n await this.deactivateWeatherService();\n }\n\n await this.updateProject({\n ...this.localProject,\n meta: {\n ...this.localProject.meta,\n location: this.model,\n },\n });\n this.createProjectSnapshot();\n\n // if location is changed activate weather service for backend to update location correctly\n if (wasLocationChanged) {\n await this.activateWeatherService({\n latitude,\n longitude,\n username,\n password,\n });\n }\n\n await this.fetchWeather(this.model as IWeatherLocation);\n }\n\n /**\n * Removes current project and redirect to Home page\n */\n async removeProject() {\n await this.fetchMPCListByProject();\n const mpcList: any = cloneDeep(this.mpcState.mpcControllers).toJS();\n if (!isEmpty(mpcList)) {\n await Promise.all(\n Object.values(mpcList).map(async (mpcObject: any) => {\n await this.deleteMPC(mpcObject);\n }),\n );\n }\n if (this.isWeatherServiceActive) {\n await this.deactivateWeatherService();\n }\n await this.deleteProject(this.$route.params.id);\n await this.$router.push('/');\n }\n\n resetButtonClickedVariable() {\n this.uploadButtonClicked = false;\n }\n\n /**\n * Upload file and update current project\n */\n async handleFileUpload() {\n this.uploadButtonClicked = true;\n if (this.fileObject) {\n if (this.fileObject.name.lastIndexOf('.') <= 0) {\n return;\n }\n const result = await this.postAsset(this.fileObject);\n if (!result) return;\n\n await this.updateProject({\n ...this.localProject,\n ...(result && {\n meta: { ...this.localProject.meta, imageId: result },\n }),\n });\n this.createProjectSnapshot();\n }\n }\n\n /**\n * Activate, deactivate weather service\n * @param {object} e mouse event object\n */\n async handleWeatherService(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n\n const { password, username } = this.mqttInfo as IProjectMQTTInfo;\n const latitude = Number(this.model?.lat);\n const longitude = Number(this.model?.lon);\n\n if (!this.isWeatherServiceActive) {\n await this.activateWeatherService({ latitude, longitude, username, password });\n } else {\n await this.deactivateWeatherService();\n }\n }\n\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n if (!this.project || this.isDuplicating) next(); // if project was deleted not show confirmation dialog\n\n if (from.name === 'General' && !this.isLocalOriginProjectEqual) {\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction(to, next);\n } else if (!this.uploadButtonClicked && this.fileObject.name !== '') {\n // in case that the user has a new image but did not click the upload button we show the confirmation dialog\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction(to, next);\n } else next();\n }\n\n // reload project data\n reloadLocalProject() {\n this.localProject = cloneDeep(this.project);\n }\n\n async created() {\n this.localProject = cloneDeep(this.project);\n if (!this.project.meta.expert) {\n this.$set(this.localProject.meta, 'expert', {\n name: '',\n street: '',\n city: '',\n zip: '',\n country: '',\n email: '',\n phone: '',\n employeeName: '',\n });\n }\n if (!this.project.meta.controller) {\n this.$set(this.localProject.meta, 'controller', {\n type: '',\n serialNumber: '',\n projectId: '',\n batterySystemType: '',\n plcPerformanceLevel: '',\n });\n }\n if (!this.project.meta.tags) this.localProject.meta.tags = [];\n\n if (this.project.meta.plcLastUpdate) {\n this.localProject.meta.plcLastUpdate = this.project.meta.plcLastUpdate;\n } else {\n this.localProject.meta.plcLastUpdate = this.project.created_at;\n }\n // fetch location with 1sec delay\n this.getLocationWithDelay = debounce(async (place) => {\n this.placesArr = await LocationService.fetchLocations(place);\n }, 1000);\n\n if (this.project.meta?.location) this.setLocation(this.project.meta?.location);\n\n this.$nextTick(() => {\n this.createProjectSnapshot();\n });\n\n await Promise.allSettled([\n this.fetchMPCWeatherStatus(),\n this.loadRules(this.$route.params.id),\n this.fetchVariables(this.$route.params.id),\n this.fetchMeasurements(this.$route.params.id),\n this.fetchRooms(this.$route.params.id),\n ]);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./General.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./General.vue?vue&type=template&id=4990de1a&\"\nimport script from \"./General.vue?vue&type=script&lang=ts&\"\nexport * from \"./General.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./General.vue?vue&type=style&index=0&id=4990de1a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageProjectDuplicateWindow.vue?vue&type=style&index=0&id=14e82d5e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusQrCode.vue?vue&type=style&index=0&id=1ecb170a&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.hasError === true)?_c('div',[_c('v-icon',{attrs:{\"size\":_vm.iconSize,\"color\":'red'}},[_vm._v(\"mdi-close\")])],1):_c('div',[_c('v-icon',{attrs:{\"size\":_vm.iconSize,\"color\":'green'}},[_vm._v(\"fa-check\")])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch, Prop } from 'vue-property-decorator';\n\n@Component({})\nexport default class DuplicationStatusIndicator extends Vue {\n @Prop({ default: false }) hasError!: boolean;\n @Prop({ default: 25 }) iconSize!: any;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicationStatusIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicationStatusIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DuplicationStatusIndicator.vue?vue&type=template&id=7a0ac1dc&\"\nimport script from \"./DuplicationStatusIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./DuplicationStatusIndicator.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}