{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/images/plants/house-2@3x.jpg","webpack:///./src/assets/images/plants/house-3@3x.jpg","webpack:///./src/assets/images/plants/house-2.jpg","webpack:///./src/assets/images/plants/entrance_plant_5@3x.jpg","webpack:///./src/assets/images/plants/entrance_plant_1@3x.jpg","webpack:///./src/core/config/emitter.ts","webpack:///./src/assets/images/plants/entrance_plant_4@3x.jpg","webpack:///./client-generator/generated-clients/plants.ts","webpack:///./src/assets/images/plants/apt-2@2x.jpg","webpack:///./src/assets/images/plants/entrance_plant_4@2x.jpg","webpack:///./src/assets/images/plants/plantType/smart-home.jpg","webpack:///./src/core/store/action-types.ts","webpack:///./src/assets/images/plants/entrance_plant_3@2x.jpg","webpack:///./src/views/containers/TheHeader/TheHeader.scss?eba0","webpack:///./src/assets/images/plants/entrance_plant_1.jpg","webpack:///./src/assets/images/plants/apt-1@3x.jpg","webpack:///./src/assets/images/plants/plantType/smart-home@2x.jpg","webpack:///./src/assets/images/icons/icon-profile.svg","webpack:///./src/assets/images/plants/apt-1@2x.jpg","webpack:///./src/assets/images/plants/entrance_plant_3.jpg","webpack:///./src/App.vue?7408","webpack:///./src/core/services/slots-assign-rules-service/slots-assign-rules-interfaces.ts","webpack:///./src/core/utils/emitter-events.ts","webpack:///./src/assets/images/plants/add-your-image-here.jpg","webpack:///./src/assets/images/plants/house-3@2x.jpg","webpack:///./client-generator/generated-clients/device-settings.ts","webpack:///./src/assets/images/plants/apt-2@3x.jpg","webpack:///./src/assets/images/plants/apt-1.jpg","webpack:///./src/views/containers/TheSidebar/TheSidebar.scss?236a","webpack:///./src/views/containers/MainContainer/MainContainer.vue?4022","webpack:///./src/views/containers/TheHeader/TheHeader.vue?a9cc","webpack:///./src/views/containers/TheHeader/DialogReportProblem/DialogReportProblem.vue?1540","webpack:///./client-generator/generated-clients/graylog.ts","webpack:///./src/core/services/graylog-service.ts","webpack:///./src/views/containers/TheHeader/DialogReportProblem/DialogReportProblem.ts","webpack:///./src/views/containers/TheHeader/DialogReportProblem/DialogReportProblem.vue","webpack:///./src/views/containers/TheHeader/TheHeader.ts","webpack:///./src/views/containers/TheHeader/TheHeader.vue","webpack:///./src/views/containers/TheSidebar/TheSidebar.vue?182c","webpack:///./src/views/containers/TheSidebar/TheSidebar.ts","webpack:///./src/views/containers/TheSidebar/TheSidebar.vue","webpack:///./src/views/containers/MainContainer/MainContainer.ts","webpack:///./src/views/containers/MainContainer/MainContainer.vue","webpack:///./src/core/router/routes.ts","webpack:///./src/core/router/index.ts","webpack:///./src/assets/images/logo-text-min.svg","webpack:///./src/assets/images/plants/entrance_plant_3@3x.jpg","webpack:///./src/assets/images/plants/house-2@2x.jpg","webpack:///./src/core/services/auth.service.ts","webpack:///./src/core/utils/nanobuffer.ts","webpack:///./src/core/utils/global-errors.ts","webpack:///./src/views/components/WizardStepper/WizardStepper.scss?3d86","webpack:///./src/assets/images/plants/entrance_plant_5@2x.jpg","webpack:///./src/assets/images/plants/entrance_plant_5.jpg","webpack:///./src/assets/images/plants/entrance_plant_2.jpg","webpack:///./src/core/services/ui-service/ui.service.ts","webpack:///./src/core/store/ui-state.store.module.ts","webpack:///./src/core/store/root-state.store.module.ts","webpack:///./src/core/store/store.ts","webpack:///./src/assets/images/plants/house-1@2x.jpg","webpack:///./src/assets/images/icons/icon-mail.svg","webpack:///./src/assets/images/plants/entrance_plant_1@2x.jpg","webpack:///./src/assets/images/plants/plantType/smart-home@3x.jpg","webpack:///./src/assets/images/plants/house-1.jpg","webpack:///./src/assets/images/plants/house-3.jpg","webpack:///./src/assets/images/plants/entrance_plant_2@2x.jpg","webpack:///./src/assets/images/plants sync ^\\.\\/.*\\.jpg$","webpack:///./src/assets/images/plants/apt-2.jpg","webpack:///./src/assets/images/plants sync ^\\.\\/.*@2x\\.jpg$","webpack:///./src/App.vue?f5ce","webpack:///./src/App.ts","webpack:///./src/App.vue","webpack:///./src/core/config/config-primevue.ts","webpack:///./src/core/config/config-elementplus.ts","webpack:///./src/views/components/WizardStepper/WizardStepper.vue?fab0","webpack:///./src/views/components/WizardStepper/WizardStepper.ts","webpack:///./src/views/components/WizardStepper/WizardStepper.vue","webpack:///./src/views/components/InlineSvgScoped/InlineSvgScoped.vue?aaed","webpack:///./src/views/components/InlineSvgScoped/InlineSvgScoped.ts","webpack:///./src/views/components/InlineSvgScoped/InlineSvgScoped.vue","webpack:///./src/main.ts","webpack:///./src/core/translations/strings/strings-it.ts","webpack:///./src/core/translations/strings/strings-en.ts","webpack:///./src/core/translations/strings/strings-de.ts","webpack:///./src/core/translations/strings/strings-es.ts","webpack:///./src/core/translations/strings/strings-fr.ts","webpack:///./src/core/translations/strings/strings-nl.ts","webpack:///./src/core/translations/strings/strings-sk.ts","webpack:///./src/core/translations/strings/index.ts","webpack:///./src/core/translations/i18n.ts","webpack:///./src/assets/images/plants/entrance_plant_4.jpg","webpack:///./src/assets/images/logo.svg","webpack:///./src/assets/images/plants/house-1@3x.jpg","webpack:///./src/assets/images/icons/icon-setting.svg","webpack:///./src/assets/images/plants/entrance_plant_2@3x.jpg","webpack:///./src/assets/images/plants sync ^\\.\\/.*@3x\\.jpg$","webpack:///./src/core/utils/utils.ts","webpack:///./src/assets/images/icons/icon-plants.svg"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","ActivationType","ActuatorModalityType","Client","baseUrl","instance","jsonParseReviver","this","a","body","cancelToken","url_","replace","content_","JSON","stringify","options_","method","url","headers","catch","_error","isAxiosError","response","_response","processEntranceplantPOST","status","_headers","k","_responseText","result201","resultData201","throwException","plantdesktopid","lastupdate","encodeURIComponent","toJSON","processEntranceplantGET","result200","resultData200","EntrancePlantDetailDTO","fromJS","result204","resultData204","processEntranceplantPUT","processApartmentPOST","processApartmentPUT","apartmentid","processLabelPOST","Array","isArray","item","ApartmentLabelDTO","processLabelPUT","labelid","processLabelDELETE","processBadgeDELETE","processBadgeAll","BadgeDTO","processBadgePOST","processCallingcoderecap","CallingCodeDTO","gateid","processGate","processGuestDELETE","processGuestPOST","GateGuestDTO","processGuestPUT","processRandomkeypadcode","processResidents","processStructure","processSwitchboardDELETE","processSwitchboardPOST","SwitchboardDTO","processSwitchboardPUT","processPlantPOST","processPlantDELETE","PlantDetailDTO","processPlantGET","processPlantPUT","processAddFakeDevices","processAggregateCommandsAll","AggregateCommandDTO","processAggregateCommandsPOST","commandid","processAggregateCommandsDELETE","processAggregateCommandsGET","processAggregateCommandsPUT","processAlarmsystem","PlantAlarmSystemDTO","processAllDevices","DeviceDTO","processC300eosSettingsGET","PlantC300EOSSettingsDTO","processC300eosSettingsPUT","processClonePlant","linkableobjecttype","processCommandDevices","names","forEach","processDuplicatePlant","processRoomsPOST","roomid","processRoomsDELETE","processRoomsPUT","processRoomObjectsPOST","roomobjectid","processRoomObjectsGET","RoomObjectDTO","processRoomObjectsPUT","filterDevices","lightType","heatingSystemControlType","coolingSystemControlType","sharedSystemControlType","processDevices","processThermoGET","ThermoRoomObjectDTO","processThermoPUT","processSceneActionsList","SceneActionsListsDTO","processSceneConditionsList","SceneConditionsListsDTO","processSceneTriggersList","SceneTriggersListsDTO","processScenesAll","SceneDTO","processScenesPOST","sceneid","processScenesDELETE","processScenesGET","processScenesPUT","processCloneScene","processToggleDisable","processSession","PlantSessionDTO","userEmail","processSharingDELETE","processSharingPOST","processTransferOwnership","deviceuuid","processUpdateDeviceSettings","objectid","processDeleteRoomObject","pageNumber","pageSize","plantsOrderBy","plantsOrderByAsc","filterPlantTagKeys","searchText","processPlantsList","PlantListDTOPaginatedResult","processTagsList","PlantTagDTO","processTogglePlantFromFavorites","Action","_data","id","init","ActionDTO","objectName","sceneObjectType","actionParams","VdeFunction","description","address","ActivationFunction","AddressBookSorting","ActuatorSettings","AddRoomObjectDTO","devices","Device","isHidden","isManagePosition","thermoTypeOfObject","thermoAssociatedPump","AddressingType","AddressPumps","number","idSlot","deviceid","linksId","AggregateCommandType","LinkableObject","extDevices","ExtDevice","AggregateCommandActionListItemDTO","aggregateCommandType","subItemList","SceneActionListItemDTO","isPlaceholder","rooms","RoomDTO","roomObjectType","AlarmPartitionState","AlarmPartitionStatus","componentType","deviceConfiguration","Condition","isSuspended","AlarmSensorStatus","AlarmSensorStatusScene","AlarmType","AlarmSystemSensorDTO","sensorName","sensorAddress","roomName","Trigger","ApartmentInvitationStatusEnum","ApartmentDTO","apartmentId","buildingId","floorId","index","internal","scsAddr","badgeList","keypadCode","buildingCode","riserCode","floorCode","apartmentCode","hiddenToTheUser","labels","ApartmentInvitationDTO","email","BitmaskDaliLoadTypes","labelId","surname","companyName","information","houseHolder","manuallyEdited","isPrivate","callingCode","badgeCode","apartment","gateGuest","BaseShuttersCommandSettingsObjectDTO","shutterMode","BaseShuttersCommandSettingsResult","CameraType","BuildingCreateDTO","apartmentsCount","BuildingDTO","risers","RiserDTO","floors","FloorDTO","apartments","ButtonTrigger","riserDoubleChars","floorDoubleChars","apartmentDoubleChars","CameraFunction","ColoredLightType","CommandDirection","CommandIcon","CommandOpeningTime","Color","g","b","isKnownColor","isEmpty","isNamedColor","isSystemColor","ColoredLightExtDevice","coloredLightType","philipsHueBridge","philipsHueLamp","philipsHueLampName","lifxLamp","dmxMacAddress","dmxNode","ComponentType","ConctactType","CommandSettings","ConfigurationType","ContactType","DaliType","ConditionDTO","conditionParams","DenominationMode","DateAndTimeTrigger","time","weekDays","DefaultDevicesSettingsDTO","deviceUid","thermoProbeSettings","ThermoProbeSettingsObjectParam","shuttersActuatorSettings","ShuttersActuatorSettingsObjectParam","lightsActuatorSettings","LightsActuatorSettingsObjectDTO","lockCommandSettings","LockCommandSettingsObjectDTO","lockActuatorSettings","LockActuatorSettingsObjectParam","lightsCommandSettings","LightsCommandSettingsObjectDTO","shuttersCommandSettings","ShuttersCommandSettingsObjectDTO","selectedCommandIcon","hasChangeIconButtonVisible","activeLinksLabel","selectedComponentType","thermoActuatorType","isAggregateRoomObject","roomType","identifier","ObjectAction","linkableObjectId","sceneLightState","dimmerStatus","dimmerPercentage","dimmerFadeIn","dimmerFadeOut","selectedColor","workingMode","oldTemperature","sceneShutterState","sceneShutterPosition","isShutterPositionManagement","sceneSocketState","sceneBlindState","sceneLockState","thermostatStatus","thermostatTypeOfObject","thermostatTriggerTemperature","sceneFancoilState","fancoilSpeed","sceneTowelWarmerState","sceneColoredLightsState","coloredLightsIntensity","coloredLightsTemperature","coloredLightsColor","scenePlayerState","playerVolume","playerSourceType","playerSourceId","playerSourceDescription","alarmPin","alarmPartitions","alarmPartitionStatus","alarmSensorStatusScene","alarmPartitionorSceneId","alarmType","duration","delay","DefaultObjectAction","isEnabled","DelayValue","DeviceBrightness","uid","model","modelObject","hasSubModule","isManaged","isShutterWithPosition","canHandlePreset","isAnomaly","isBlocking","isF422Acompatible","problemType","isIgnored","slots","Slot","functionType","systemType","componentTypes","isDoubleDimmer","canHandleDoubleDimmer","thermoSystemControlType","deviceBrightness","showLedsInStandby","isProximityEnabled","deviceProximity","deviceIconsVisibility","ledIntensity","interface","ledModality","hasRefresherFeedback","hasChanges","fwVersion","firmwareVersion","Version","DeviceIconsVisibility","DeviceLedModality","DeviceProximity","isActuatorDevice","isCommandDevice","isThermostatDevice","isThermoProbeDevice","isAssigned","isAssignedCommand","isAssignedActuator","isAssignedActuatorAndCommand","settingsVisibility","DeviceSettingsVisibilityDTO","defaultSettings","DeviceGlobalSettingsDTO","DevicesFilterByType","DeviceSettingsDTO","deviceId","LightsActuatorSettingsResultList","LightsCommandSettingsResultList","LockActuatorSettingsResult","lockCommandSettingsResult","LockCommandSettingsResultList","shutterActuatorSettings","ShutterActuatorSettingsResult","shutterCommandSettings","ShutterCommandSettingsResultList","ThermoProbeSettingsResult","commandIcon","hasSettings","hasBrightness","hasProximity","hasStandby","hasLedIntensity","hasLedModality","hasRefreshFeedback","DimmerStatus","DimmerWorkingMode","EnergyMeterAndLoadControlType","EPDeviceConfigDTO","deviceName","pScsAddress","lockTimingValue","hasMultipleCall","callRepetitions","isSelectedStairCaseLight","isSelectedGeneral","hasLockReleaseTone","hasCallTone","typeOfCallSignalValue","isSelectedScreenInterfaceAutomatic","isSelectedScreenInterfaceDark","isSelectedScreenInterfaceLight","isSelectedLedCameraLightingAlwaysOn","isSelectedLedCameraLightingDuringTheCall","isSelectedHomePage","homePageMessage","EPDeviceDTO","isConfigured","isProvisioned","cloudId","dspMacAddress","cloudPublicKey","masterSecretKey","config","switchboardId","EditAggregateCommandDTO","aggregateCommand","deviceSettings","EditRoomObjectDTO","roomObject","EditThermoRoomObjectDTO","thermoRoomObject","ExtComponentType","ExternalSensorType","desktopId","country","tags","icon","customIconImageUrl","customIconDataUrl","lastModify","Date","toString","lastModifyByDesktop","lastModifyBy","UserDTO","sharedWith","PlantSharingDTO","isFavourite","owner","usersIdFavorites","plantType","addressBookSorting","language","addressingType","keypadCodePasspartoutEnabled","keypadCodePasspartoutCode","keypadCodeRequiredLength","maxNumberOfLabelsForApartment","denominationBuildings","denominationRisers","denominationFloors","denominationApartments","wizardState","gates","GateDTO","buildings","switchboards","gateGuests","apartmentInvitations","toISOString","EntrancePlantHeadCreateDTO","EntrancePlantInfoCreateDTO","EntrancePlantStructureCreateDTO","wizardStep","headCreate","infoCreate","buildingsCreate","gateCreate","plantConfigStructure","RFAConfigDTO","gateConfigStructure","GateConfigDTO","FunctionType","FloorConfigDTO","numberOfApartments","riserId","order","IntercomType","Language","LightType","scsAddress","gateName","newPeSelected","keypadSelected","smartReaderSelected","connectedBuildingIds","connectedRiserIds","gateId","isDateAlways","durationSince","durationUntil","isTimeAlways","timesSlots","TimeSlot","repetitionDays","gateIds","isRecurrent","isOneTimeGuest","GeneralCommandsAndGroupsAction","IntercomFunction","LightsLoadTypes","LightsOnOffMode","LightsSensorOperatingMode","LightsSensorSensitivity","LightsVoltageOptions","LightsActuatorItemSettingsDTO","isZeroCrossingEnabled","relayStatusAfterReset","isRestoreStateAfterResetEnabled","isMinimumregulationLevelEnabled","minimumRegulationLevelValue","minimumRegulationLevelSelectedPickerValue","SimpleIntPickerValue","loadType","voltageType","hasPUL","hasMoreThanOneSlotSettings","indexes","isGroupZeroCrossingVisible","isZeroCrossing1EnabledFollow2","isZeroCrossing1DisabledFollow2","isZeroCrossing2EnabledFollow1","isZeroCrossing2DisabledFollow1","isGroupRelayStatusAfterResetVisible","isGroupRestoreStatusAfterResetVisible","isGroupMinimumRegulationLevelVisible","isGroupLoadTypeVisible","hasLoadTypesForGroup7","hasLoadTypesForGroup9","isGroupVoltageVisible","isGroupPULVisible","saveTo","minimumRegulationLevelPickerValues","isGroupMinimumRegulationLevelToggleVisible","isZeroCrossingWarningVisible","LightsActuatorSettingsResult","results","LightsCommandItemSettingsDTO","timedDelayPickerValues","lightsOnOffMode","minimumRegulationLevel","timedDelayPickerSelectedValue","isTimedDelayVisible","LigthsCommandSettings","currentSettings","isOptionOnOffVisible","isOptionOffVisible","isOptionOnVisible","isOptionOnRegulationVisible","isOptionToggleVisible","isOptionToggleOnOffVisible","isOptionButtonVisible","isOptionTimedVisible","availableDelayValues","isContactTypeVisibile","conctactType","isConctactTypeVisibile","hasLedIntentisy","disabledModules","LightsCommandSettingsResult","lightsOnOffTimedDelay","Line","LineMisuration","typeofContact","powerON","fadeIn","fadeOut","dimmingSpeed","ObjectDuplication","LocksCommandItemSettingsDTO","LockCommandSettingsResult","commandOpeningTime","isAppliedToAllSameTypeCommands","ObjectCondition","stateComparer","lightState","dimmerState","dimmerPowerState","dimmerPercent","isShutterPositionManaged","shutterModality","shutterState","shutterPosition","blindState","socketState","lockState","thermostatState","thermostatModalityState","thermostatConditionState","thermostatTemperature","thermostatHumidity","towelWarmerState","fancoilState","fancoilSpeedState","coloredLightsState","coloredLightStateComparer","sceneColoredLightsColor","playerTriggerMode","playerTriggerPowerState","energyMeterKw","alarmPartitionState","alarmSensorState","alarmSensorObjectStatus","PlantIconEnum","ObjectTrigger","ParamCreateLinkModule","ParamsScenesId","button","partitions","PlantAlarmSystemPartitionDTO","scenes","PlantAlarmSystemSceneDTO","sensors","partitionId","partitionName","sceneId","sceneName","gwId","gwIpAddress","gwSubnetMask","gwPrimaryDNS","gwSecondaryDNS","gwDefaultGateway","gwMacAddress","isAutoSetupEnabled","isTemperatureDisplayed","ntpServer","dateTime","timeZone","temperatureType","isPhysicalConfig","nValue","pValue","mValue","isAnsweringMachineEnabled","isProfessionalStudioEnabled","isWaterCycleEnabled","openAutomaticallyDaysDelay","minutesToKeepOpen","arePumpsOpenedAutomatically","isInterlockSystemEnabled","interlockExcludedDevices","vdeIntercomFunctions","vdeCameraFunctions","vdeActivationFunctions","isThermoExternalCentralUnit","selectedThermostat","seasonChange3477Mode","isSeasonModeAuto","isKeypadLockOutSeason","seasonChangeAutoType","selected3477Device","seasonChangeAutoStartWinterDate","seasonChangeAutoStartSummerDate","hasOneSeason","PlantDTO","mxServer","PlantMxServerDTO","roomsCounts","PlantRoomCount","isGatewayNotConfigured","lastScanDate","aggregateCommandsCount","scenesCount","PlantStatus","PlantListDTO","justSynchronized","lastSessionDateTime","sessionLocked","sessionLockedBy","plantTypeIcon","total","isAlarmConfigured","alarmConfiguration","count","label","renewSessionSeconds","userId","invitedEmail","confirmed","PlantType","PlantsOrderBy","isImportant","usages","PlayerSystem","PlayerExtDevice","playerSystem","macAddress","ProblemType","ProbeSettings","isLedmanaged","externalSensorType","RelayStatusAfterResetOptions","ResetType","floorsWithoutRiser","RiserConfigDTO","RoomObjectType","RoomType","roomObjects","RoomObjectActionListItemDTO","thermo99SelectedZone","thermo99HasFancoil","hasConfigurationToEnd","SceneBlindState","SceneColoredLightsColor","SceneColoredLightsState","isAddAction","isUnselectEnabled","isStateChanged","waitTime","isSelected","heatingSetpointLow","heatingSetpointHigh","coolingSetpointLow","coolingSetpointHigh","minRange","maxRange","aggregateCommandsActions","roomObjectsActions","SceneDimmerPowerState","SceneDimmerState","SceneFancoilSpeedState","SceneFancoilState","SceneLightState","SceneLockState","SceneObjectType","ScenePlayerState","ScenePlayerTriggerMode","SceneShutterModality","SceneShutterState","SceneSocketState","SceneStateComparer","SceneThermostatConditionState","SceneThermostatModalityState","SceneThermostatState","SceneTowelWarmerState","conditionsRoomsList","TriggersAndConditionsRoomItemDTO","isDisabled","isEditable","actions","triggers","TriggerDTO","conditions","SceneType","SceneWeatherCrepuscular","SceneWeatherForecastState","SceneWeatherModality","SeasonChange3477Mode","SeasonChangeAutoType","triggersRoomsList","compatibleDevices","ServerModel","ShutterMode","ShutterMotorType","shutterMotorType","stopPulseDuration","upDownPulseDuration","hasPreset","presetValue","stopTime","delayBetweenDoorsTime","ShutterCommandItemSettingsDTO","commandDirection","isManagedPosition","showBistableAndBladesControl","showMonostableAndBistable","showBladesControlAndBistable","showPreset","showCommandDirection","ShutterCommandSettingsResult","SlotStatus","isGroupMotorTypeVisible","canHaveStandardAutomaticMotorType","isGroupModeVisible","isGroupPresetVisible","isGroupStopTimeTypeVisible","isGroupDelayBetweenDoorsVisible","stopPulseDurationPickerValues","upDownPulseDurationPickerValues","stopTimePickerValues","delayBetweenDoorsTimePickerValues","configured","keyObject","links_id","groups_id","linkedObjects","configurationType","modalityTypeConfiguration","thermoActuatorTypes","assignedComponentType","isSetting","paramsKo","scenes_id","commandSettings","probeSettings","actuatorSettings","isShutterSelfCommandActuatorSlot","mX_Id_ThermoCU","SystemControlType","SystemType","TemperatureType","SwitchboardConfigDTO","switchboard","ThermoActuatorType","ThermoAssociatedPump","ThermoActuactor","function","valve","ThermoTypeOfObject","ThermostatStatus","ThermoOldInformation","isLedmanagedVisible","isExternalSensorTypeVisible","actuatorModalityType","configurationSteps","nextStep","objectDuplication","resetType","isApplyAllTemperatureRange","heatingAntifreeze","coolingThermalProtection","isAutoCommutation","isApplyAllCirculationPumpDelay","delayHeatingPumps","delayCoolingPumps","isApplyAllCelsiusFahrenheit","isApplyAllButtonsManagement","areButtonsEnabled","isApplyAllBacklight","isBacklightEnabled","backlightLevel","isManualHeatingOverrideEnabled","heatingRegulationBand","fanSpeed2ForHeating","fanSpeed3ForHeating","valvesTimeForHeatingFanCoil","isManualCoolingOverrideEnabled","coolingRegulationBand","fanSpeed2ForCooling","fanSpeed3ForCooling","valvesTimeForCoolingFanCoil","isApplyAllWindowsContact","isIconAlwaysOff","isLocalContactNumberEnabled","numberOfWindowsContact","openingContactTypeHeating","openingContactTempHeating","openingContactDelayHeating","timeoutOpeningHeating","closingContactTypeHeating","closingContactTempHeating","closingContactDelayHeating","timeoutClosingHeating","openingContactTypeCooling","openingContactTempCooling","openingContactDelayCooling","timeoutOpeningCooling","closingContactTypeCooling","closingContactTempCooling","closingContactDelayCooling","timeoutClosingCooling","isInterlockingExcluded","pumpsDelay","thermoUKFanSpeed","thermoUKFanSpeed2","thermoUKFanSpeed3","plantId","roomId","isNotFullyConfigured","isEdit","isApplyAllTemperatureVisualization","isCoolingVentilationEnabled","isHeatingVentilationEnabled","timeoutCoolingVentilation","timeoutHeatingVentilation","thermoOldInformation","thermo","tempAddressPumps","ToroidDirection","TimeCondition","startTime","endTime","timeSince","timeUntil","WeekDay","TransferOwnershipDTO","password","shouldCurrentUserRightsBeRemoved","triggerParams","TriggersAndConditionsRoomObjectItemDTO","major","minor","build","revision","majorRevision","minorRevision","WaitTimeAction","XmeterExtDevice","ApiException","isApiException","obj","SET_ACCOUNT","SET_APP_LOADING","SET_SELECTED_PLANT","SET_SIDEBAR_EXPANDED","SET_SELECTED_PLANT_ID","SET_CONTEXTUAL_MENU_ITEMS","SET_SELECTED_ENTRANCE_PLANT","SET_SELECTED_ENTRANCE_PLANT_ID","SlotRuleServiceType","FETCH_PLANT","HANDLE_REFRESH_PLANT","MANAGE_ELIOT_PARSE_EXCEPTION","AUTOMATION_WIZARD_NEXT_CALLED","linkableobjectid","processAggregateCommandsDefault","processRoomObjectDefault","processThermoDefault","_hoisted_1","class","_hoisted_2","render","_ctx","_cache","$props","$setup","$data","$options","_component_TheHeader","_component_router_view","_component_ElScrollbar","_component_TheSidebar","_component_Toast","routeName","showSidebar","default","_","position","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","to","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_component_InlineSvgScoped","_component_router_link","_component_ElDropdownItem","_component_ElDropdownMenu","_component_ElDropdown","_component_DialogReportProblem","_component_Dialog","$attrs","version","$t","trigger","placement","dropdown","style","onClick","toggleReportProblemDialog","toggleDialogProfile","profilePageEnabled","logout","isVisibleDialogReportProblem","onHideDialog","visible","isVisibleDialogProfile","$event","header","modal","height","width","iframeProfileSrc","for","_component_Textarea","_component_Button","isDialogVisible","onHide","doHideDialog","showHeader","closable","rows","modelValue","theMessage","handleHideDialog","sendMessage","processLog","userMessage","logs","frontendVersion","GraylogMessageDTO","graylogClient","isVisible","$emit","getBuffer","$store","dispatch","log","$config","FRONTEND_VERSION","props","Boolean","required","watch","newValue","emits","__exports__","PROFILE_URL","alert","authService","components","DialogReportProblem","computed","_component_MegaMenu","isSidebarExpanded","menuItemsContextual","orientation","doShow","Menu","MegaMenu","$route","currentRoute","includes","TheHeader","TheSidebar","Toast","APP_TITLE","PlantsHub","PlantsListPage","PlantDetailHub","PlantDashboardPage","PlantDevicesPage","PlantSettingsPage","PlantRoomPage","AutomationWizardPage","ThermoWizardPage","LoggedOutPage","UserNotAllowedPage","CommandsGroupsPage","CommandWizard","PlantScenesPage","SceneWizard","PlantAlarmSystem","EntrancePlantDetailHub","EntrancePlantDashboardPage","EntrancePlantGatePage","EntrancePlantStructurePage","EntrancePlantResidentsPage","EntrancePlantGuestsPage","EntrancePlantBadgesPage","EntrancePlantSwitchboardsPage","EntrancePlantStructureBuildingPage","routes","path","redirect","component","beforeEnter","children","meta","title","params","requiresPlant","router","history","afterEach","store","beforeEach","from","next","matched","some","record","LOGOUT_IN_PROGRESS","$msalInstance","$scopes","service","appConfig","auth","clientId","AZUREABB2C_CLIENTID","authority","AZUREADB2C_AUTHORITY","knownAuthorities","AZUREADB2C_KNOWN_AUTHORITY","cache","cacheLocation","storeAuthStateInCookie","AZUREABB2C_FULL_ACCESS_SCOPE","handleRedirectPromise","outcome","loggingOut","localStorage","getItem","removeItem","getAccount","getToken","errorCode","acquireTokenRedirect","scopes","redirectUri","getHostname","accounts","getAllAccounts","location","protocol","host","hostname","account","acquireTokenSilent","forceRefresh","tokenResponse","accessToken","setItem","now","logoutRedirect","state","maxSize","TypeError","isNaN","RangeError","_buffer","_head","_maxSize","_size","newMaxSize","tmp","NanoBuffer","Math","min","iterator","done","errorBuffer","defaultConsoleError","arguments","addError","msg","lineNo","columnNo","join","checkSectionEnabled","sectionKey","APP_CONFIG","UI_ENABLED","keys","rule","sectionKeyValue","UISvc","UIStateModule","namespaced","getters","gateEditEnabled","gateDeleteEnabled","roomEditEnabled","plantEditEnabled","roomConfigEnabled","plantDeleteEnabled","plantAddRoomEnabled","scenesActionsEnabled","plantEditListEnabled","scenesAddSceneEnabled","plantDeleteListEnabled","roomObjectDeleteEnabled","plantInlineRenameEnabled","plantDeviceSettingsEditEnabled","plantServerUseMHS1Only","plantC300EosSettingsEditEnabled","commandsAndGroupsAddGroupEnabled","commandsAndGroupsGroupActionsEnabled","plantRoomObjectSettingsEditDialog","devicesPageAddDeviceEnabled","devicesPageFilterZigbeeEnabled","plantEditImageCustomEnabled","RootStateModule","UI","isLoading","currentPlant","selectedPlantId","currentEntrancePlant","selectedEntrancePlantId","mutations","isExpanded","plant","menuItems","commit","map","webpackContext","req","webpackContextResolve","_component_ProgressSpinner","isAuthenticated","$emitter","on","manageEliotParseException","$router","off","$toast","add","severity","summary","life","app","directive","use","disabledClasses","$slots","disabledSteps","x","_component_InlineSVG","ariaLabel","transformSource","transform","nameMap","svg","makeIdsUnique","elements","newName","uuid","xhref","getAttributeNS","newHrefId","setAttributeNS","attrs","attributes","setAttributeId","attributeName","attributeValue","attributesToReplace","regex","match","matchAll","originalMaskName","newMaskName","String","Number","fill","fetchDefaultClientSettings","uiSettings","azureAdb2CClientId","azureAdb2CAuthority","PLANT_REFRESH_INTERVAL","plantRefreshInterval","azureAdb2CKnownAuthority","azureAdb2CFullAccessScope","INSTRUMENTATION_KEY","instrumentationKey","profileUrl","ENTRANCE_PLANT_ENABLED","entrancePlantEnabled","applyDefaultClientSettings","settings","loco","appRootUrl","configUrl","defaults","baseURL","API_ENDPOINT","i18n","globalProperties","emitter","appInsights","enableAutoRouteTracking","disableFetchTracking","enableCorsCorrelation","enableRequestHeaderTracking","enableResponseHeaderTracking","distributedTracingMode","W3C","loadAppInsights","$appInsight","mount","stringsIT","isEditingPlant","eliotParseException","stringsEN","entrancePlant","noUserInvitedYet","apartmentsBannerCreated","noInformationsAdded","assignObject","selectFromLastScan","selectFromCatalogue","assignThermo","selectOnlyOneDescription","thermostatAdded","heatingActuatorAdded","coolingActuatorAdded","sharedActuatorAdded","heatingPumpAdded","coolingPumpAdded","sharedPumpAdded","probeAdded","saveAndContinue","SetupRisersTitle","SelectDevicesInGate","TheyManage","BuildingNameOnly","SaveChanges","stringsDE","stringsES","stringsFR","stringsNL","stringsSK","strings","it","en","de","es","fr","nl","sk","msgs","parse","replaceAll","browserLang","navigator","split","locale","fallbackLocale","messages","fallbackWarn","missingWarn","silentTranslationWarn","global","cloneObject","roomObjectTypeIconMapping","None","Lock","Light","Blind","Alarm","Xmeter","Socket","Player","Shutter","Fancoil","WirelessCommand","Thermostat","Thermostat99zones","TowelWarmer","ColoredLight","AlarmSensor","DimmerDmx","ScheduledScenarioPlus","Contact","DimmerDali","Actuactor","roomObjectTypeLabelMapping","extDeviceTypeIconMapping","AlarmCentralUnit","sceneObjectTypeIconMapping","Email","Dimmer","Command","Weather","DateTime","GroupOfShutters","GroupOfLights","ColoredLights","GeneralCommandsLights","GeneralCommandsShutters","PushNotificationAction","Dali","objectTypes","defaultNewPlant","ICON_1","AUTOMATION_PLANT","defaultNewEntrancePlant","ENTRANCE_PLANT","getRoomIconFromType","iconName","Livingroom","Bathroom","Kitchen","Bedroom","Lobby","Corridor","Garage","Outdoor","Stairs","Dining_room","Toilets","Home_office","Custom","Electrical_cabinet","getObjectIconFromType","objectType","getObjectLabelFromType","getExtDeviceIconFromType","extDeviceType","getObjectDescLabel","Heating","Cooling","HeatingAndCooling","Yes","getDeviceIconName","getThermo99Description","getPlantIconImages","imageName","ICON_2","ICON_3","ICON_4","ICON_5","getEpPlantIconImages","getPlantIconImageUrls","getEpPlantIconImageUrls","getPlantIconImageUrlsByType","plantCustomIconUrl","ICON_CUSTOM","find","image","getDeviceIcon","device","getExtDeviceIdentifier","extDevice","player","Nuvo","coloredLight","Dmx","Lifx","PhilipsHue","xmDevice","getExtDeviceActiveLink","getDeviceIconFromSettings","getConfiguredChannelsOrModulesSettings","getPlantLastModifyByIcon","getPlantLastModifyByLabel","getUserInitialsForBubble","user","initials","emailParts","firstEmailPart","usernameParts","toUpperCase","getSlotClass","slot","className","Configured","NotConfigured","NotUsed","secondsToFormattedTime","seconds","theDate","setSeconds","getUTCHours","padStart","getUTCMinutes","getUTCSeconds","formattedTimeToSeconds","formattedTime","hours","minutes","secondsFinal","parseInt","getCurrentThermoActuatorType","roomObjectId","convertThermoRuleServiceTypeToThermoActuatorType","ruleServiceType","logMappingError","THERMO_HEATING_ACTUATORS","HeatingValve","THERMO_COOLING_ACTUATORS","CoolingValve","THERMO_HEATING_PUMPS","HeatingPump","THERMO_COOLING_PUMPS","CoolingPump","THERMO_SHARED_ACTUATORS","SharedValve","THERMO_SHARED_PUMPS","SharedPump","defaultSceneTypes","Wake_Up","BedTime","Home","Away","isDefaultScene","getGeneralGroupIconFromType","groupType","General","getSceneObjectIconFromType","isValidEnum","sleep","timeMs","getRandomInt","max","ceil","floor","random","NAME_VALIDATION_DEBOUNCE_TIME","resolveObjectPath","reduce","prev","curr","self","hasDeviceSettingsButtonVisible","setting","hasDeviceCommandIconButtonVisible","parseShutterActuatorSettings","getStopTime","initialStopTime","quotient","remainder","getMxServerSettingsLabel","Classe300EOS","validLanguages"],"mappings":"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","file":"js/app.4b8c9289.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"page-plant-c300eos-settings\":\"page-plant-c300eos-settings\",\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\":\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\",\"page-assign-room-object~page-plant-room\":\"page-assign-room-object~page-plant-room\",\"page-plant-room\":\"page-plant-room\",\"page-assign-room-object\":\"page-assign-room-object\",\"page-assign-thermo-room-object\":\"page-assign-thermo-room-object\",\"page-entranceplant-dashboard\":\"page-entranceplant-dashboard\",\"page-entranceplant-detail~page-plant-detail~page-plants-list\":\"page-entranceplant-detail~page-plant-detail~page-plants-list\",\"page-entranceplant-detail~page-plant-detail\":\"page-entranceplant-detail~page-plant-detail\",\"page-entranceplant-detail\":\"page-entranceplant-detail\",\"page-plant-detail\":\"page-plant-detail\",\"page-plants-list\":\"page-plants-list\",\"page-plant-dashboard\":\"page-plant-dashboard\",\"page-wizard-command\":\"page-wizard-command\",\"page-wizard-scene\":\"page-wizard-scene\",\"page-commands-groups\":\"page-commands-groups\",\"page-entranceplant-badges~page-entranceplant-guests\":\"page-entranceplant-badges~page-entranceplant-guests\",\"page-entranceplant-badges\":\"page-entranceplant-badges\",\"page-entranceplant-guests\":\"page-entranceplant-guests\",\"page-entranceplant-gate\":\"page-entranceplant-gate\",\"page-entranceplant-reisdents\":\"page-entranceplant-reisdents\",\"page-entranceplant-structure\":\"page-entranceplant-structure\",\"page-entranceplant-structure-building\":\"page-entranceplant-structure-building\",\"page-entranceplant-switchboards\":\"page-entranceplant-switchboards\",\"page-logged-out\":\"page-logged-out\",\"page-plant-alarmsystem\":\"page-plant-alarmsystem\",\"page-plant-devices\":\"page-plant-devices\",\"page-plant-scenes\":\"page-plant-scenes\",\"page-plants-hub\":\"page-plants-hub\",\"page-user-not-allowed\":\"page-user-not-allowed\"}[chunkId]||chunkId) + \".\" + {\"chunk-5bc16b7d\":\"d4f97b58\",\"page-plant-c300eos-settings\":\"bc45b125\",\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\":\"54f81f43\",\"chunk-452154ca\":\"660d13d1\",\"page-assign-room-object~page-plant-room\":\"01d8eb93\",\"page-plant-room\":\"c5fcbfaa\",\"chunk-fcfb38d8\":\"a794455c\",\"page-assign-room-object\":\"199bffa9\",\"page-assign-thermo-room-object\":\"84955dee\",\"page-entranceplant-dashboard\":\"3aa765c3\",\"page-entranceplant-detail~page-plant-detail~page-plants-list\":\"731af48d\",\"page-entranceplant-detail~page-plant-detail\":\"2d5a1b6e\",\"page-entranceplant-detail\":\"a429e458\",\"page-plant-detail\":\"3228124f\",\"page-plants-list\":\"ffa1a244\",\"page-plant-dashboard\":\"185d1d45\",\"page-wizard-command\":\"fbea45ee\",\"page-wizard-scene\":\"cf2f7858\",\"page-commands-groups\":\"c1c4f440\",\"page-entranceplant-badges~page-entranceplant-guests\":\"ae0ec966\",\"page-entranceplant-badges\":\"1200e9e6\",\"page-entranceplant-guests\":\"2f7bf973\",\"page-entranceplant-gate\":\"42977479\",\"page-entranceplant-reisdents\":\"49f64c6b\",\"page-entranceplant-structure\":\"8411d239\",\"page-entranceplant-structure-building\":\"9175558a\",\"page-entranceplant-switchboards\":\"27c7b4c0\",\"page-logged-out\":\"125230bb\",\"page-plant-alarmsystem\":\"7956d890\",\"page-plant-devices\":\"50b01e54\",\"page-plant-scenes\":\"ef5b1fb4\",\"page-plants-hub\":\"f40a0152\",\"page-user-not-allowed\":\"f5b28eb7\",\"chunk-0266b1e7\":\"40f16c2f\",\"chunk-08a8c660\":\"e6a9b1e7\",\"chunk-2a007f92\":\"ceca5335\",\"chunk-3aa1ad77\":\"a7384faf\",\"chunk-4261c4e3\":\"2314f39f\",\"chunk-438c5044\":\"24244386\",\"chunk-5cdd4d1a\":\"8a1dc6cf\",\"chunk-6ed3c7e1\":\"60b2a175\",\"chunk-d0f99ae0\":\"f33ffdc3\",\"chunk-283019ea\":\"6ca7ba46\",\"chunk-80ff68c2\":\"7773ab70\",\"chunk-73a2bccc\":\"7ed2efab\",\"chunk-4b44d39a\":\"a8862128\",\"chunk-07d6f150\":\"e0b14d3c\",\"chunk-8c8896be\":\"3ed7f89a\",\"chunk-5d28b7a4\":\"607ee723\",\"chunk-73e34c32\":\"3bb93008\",\"chunk-76dd081b\":\"b7974572\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-5bc16b7d\":1,\"page-plant-c300eos-settings\":1,\"chunk-452154ca\":1,\"page-plant-room\":1,\"chunk-fcfb38d8\":1,\"page-assign-room-object\":1,\"page-assign-thermo-room-object\":1,\"page-entranceplant-dashboard\":1,\"page-entranceplant-detail~page-plant-detail~page-plants-list\":1,\"page-entranceplant-detail~page-plant-detail\":1,\"page-entranceplant-detail\":1,\"page-plant-detail\":1,\"page-plants-list\":1,\"page-plant-dashboard\":1,\"page-entranceplant-badges~page-entranceplant-guests\":1,\"page-entranceplant-guests\":1,\"page-entranceplant-gate\":1,\"page-entranceplant-reisdents\":1,\"page-entranceplant-structure\":1,\"page-entranceplant-structure-building\":1,\"page-logged-out\":1,\"page-plant-alarmsystem\":1,\"page-plant-devices\":1,\"page-plant-scenes\":1,\"page-plants-hub\":1,\"chunk-4b44d39a\":1,\"chunk-8c8896be\":1,\"chunk-76dd081b\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"page-plant-c300eos-settings\":\"page-plant-c300eos-settings\",\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\":\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\",\"page-assign-room-object~page-plant-room\":\"page-assign-room-object~page-plant-room\",\"page-plant-room\":\"page-plant-room\",\"page-assign-room-object\":\"page-assign-room-object\",\"page-assign-thermo-room-object\":\"page-assign-thermo-room-object\",\"page-entranceplant-dashboard\":\"page-entranceplant-dashboard\",\"page-entranceplant-detail~page-plant-detail~page-plants-list\":\"page-entranceplant-detail~page-plant-detail~page-plants-list\",\"page-entranceplant-detail~page-plant-detail\":\"page-entranceplant-detail~page-plant-detail\",\"page-entranceplant-detail\":\"page-entranceplant-detail\",\"page-plant-detail\":\"page-plant-detail\",\"page-plants-list\":\"page-plants-list\",\"page-plant-dashboard\":\"page-plant-dashboard\",\"page-wizard-command\":\"page-wizard-command\",\"page-wizard-scene\":\"page-wizard-scene\",\"page-commands-groups\":\"page-commands-groups\",\"page-entranceplant-badges~page-entranceplant-guests\":\"page-entranceplant-badges~page-entranceplant-guests\",\"page-entranceplant-badges\":\"page-entranceplant-badges\",\"page-entranceplant-guests\":\"page-entranceplant-guests\",\"page-entranceplant-gate\":\"page-entranceplant-gate\",\"page-entranceplant-reisdents\":\"page-entranceplant-reisdents\",\"page-entranceplant-structure\":\"page-entranceplant-structure\",\"page-entranceplant-structure-building\":\"page-entranceplant-structure-building\",\"page-entranceplant-switchboards\":\"page-entranceplant-switchboards\",\"page-logged-out\":\"page-logged-out\",\"page-plant-alarmsystem\":\"page-plant-alarmsystem\",\"page-plant-devices\":\"page-plant-devices\",\"page-plant-scenes\":\"page-plant-scenes\",\"page-plants-hub\":\"page-plants-hub\",\"page-user-not-allowed\":\"page-user-not-allowed\"}[chunkId]||chunkId) + \".\" + {\"chunk-5bc16b7d\":\"0deae110\",\"page-plant-c300eos-settings\":\"7f55cb48\",\"page-assign-room-object~page-assign-thermo-room-object~page-entranceplant-dashboard~page-entrancepla~51e11d0f\":\"31d6cfe0\",\"chunk-452154ca\":\"15f6877c\",\"page-assign-room-object~page-plant-room\":\"31d6cfe0\",\"page-plant-room\":\"dd0cc9ac\",\"chunk-fcfb38d8\":\"c25de897\",\"page-assign-room-object\":\"5bffaf39\",\"page-assign-thermo-room-object\":\"dc85fba8\",\"page-entranceplant-dashboard\":\"9d26d648\",\"page-entranceplant-detail~page-plant-detail~page-plants-list\":\"bba58ae1\",\"page-entranceplant-detail~page-plant-detail\":\"d6a1bfea\",\"page-entranceplant-detail\":\"345b58f7\",\"page-plant-detail\":\"48594a6c\",\"page-plants-list\":\"212a237f\",\"page-plant-dashboard\":\"d2ba8558\",\"page-wizard-command\":\"31d6cfe0\",\"page-wizard-scene\":\"31d6cfe0\",\"page-commands-groups\":\"31d6cfe0\",\"page-entranceplant-badges~page-entranceplant-guests\":\"21a3c04c\",\"page-entranceplant-badges\":\"31d6cfe0\",\"page-entranceplant-guests\":\"89d137ad\",\"page-entranceplant-gate\":\"a2cdb230\",\"page-entranceplant-reisdents\":\"e68f659c\",\"page-entranceplant-structure\":\"59f99a5e\",\"page-entranceplant-structure-building\":\"4b204dec\",\"page-entranceplant-switchboards\":\"31d6cfe0\",\"page-logged-out\":\"4f6becb5\",\"page-plant-alarmsystem\":\"69248f9e\",\"page-plant-devices\":\"7c7758f4\",\"page-plant-scenes\":\"deea4e26\",\"page-plants-hub\":\"44b2783a\",\"page-user-not-allowed\":\"31d6cfe0\",\"chunk-0266b1e7\":\"31d6cfe0\",\"chunk-08a8c660\":\"31d6cfe0\",\"chunk-2a007f92\":\"31d6cfe0\",\"chunk-3aa1ad77\":\"31d6cfe0\",\"chunk-4261c4e3\":\"31d6cfe0\",\"chunk-438c5044\":\"31d6cfe0\",\"chunk-5cdd4d1a\":\"31d6cfe0\",\"chunk-6ed3c7e1\":\"31d6cfe0\",\"chunk-d0f99ae0\":\"31d6cfe0\",\"chunk-283019ea\":\"31d6cfe0\",\"chunk-80ff68c2\":\"31d6cfe0\",\"chunk-73a2bccc\":\"31d6cfe0\",\"chunk-4b44d39a\":\"5bffaf39\",\"chunk-07d6f150\":\"31d6cfe0\",\"chunk-8c8896be\":\"7bd962a9\",\"chunk-5d28b7a4\":\"31d6cfe0\",\"chunk-73e34c32\":\"31d6cfe0\",\"chunk-76dd081b\":\"f72e46c0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/house-2@3x.1f235271.jpg\";","module.exports = __webpack_public_path__ + \"img/house-3@3x.7b89f7e4.jpg\";","module.exports = __webpack_public_path__ + \"img/house-2.7fb0024f.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_5@3x.49501172.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_1@3x.84d92fd0.jpg\";","import mitt from 'mitt';\nexport default mitt();\n","module.exports = __webpack_public_path__ + \"img/entrance_plant_4@3x.844ee995.jpg\";","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.13.2.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelToken } from 'axios';\n\nexport class Client {\n private instance: AxiosInstance;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, instance?: AxiosInstance) {\n this.instance = instance ? instance : axios.create();\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\n }\n\n /**\n * Insert new pe plant for current user, returns plant id (Auth)\n * @param body (optional) \n * @return Entrance Plant successfully added\n */\n entranceplantPOST(body: EntrancePlantStructureCreateDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processEntranceplantPOST(_response);\n });\n }\n\n protected processEntranceplantPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n let result201: any = null;\n let resultData201 = _responseText;\n result201 = resultData201 !== undefined ? resultData201 : null;\n return result201;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get a plant for current user. If lastupdate is provided returns 204 if no updates are found (Auth)\n * @param lastupdate (optional) \n * @return Plant\n */\n entranceplantGET(plantdesktopid: number, lastupdate: Date | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (lastupdate === null)\n throw new Error(\"The parameter 'lastupdate' cannot be null.\");\n else if (lastupdate !== undefined)\n url_ += \"lastupdate=\" + encodeURIComponent(lastupdate ? \"\" + lastupdate.toJSON() : \"\") + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processEntranceplantGET(_response);\n });\n }\n\n protected processEntranceplantGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = EntrancePlantDetailDTO.fromJS(resultData200);\n return result200;\n } else if (status === 204) {\n const _responseText = response.data;\n let result204: any = null;\n let resultData204 = _responseText;\n result204 = EntrancePlantDetailDTO.fromJS(resultData204);\n return result204;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit entrance plant for current user (Auth)\n * @param body (optional) \n * @return Entrance Plant successfully updated\n */\n entranceplantPUT(plantdesktopid: number, body: EntrancePlantHeadCreateDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processEntranceplantPUT(_response);\n });\n }\n\n protected processEntranceplantPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Add apartments for current user (Auth)\n * @param body (optional) \n * @return Apartments successfully added\n */\n apartmentPOST(plantdesktopid: number, body: BuildingCreateDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/apartment\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processApartmentPOST(_response);\n });\n }\n\n protected processApartmentPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit apartment for current user (Auth)\n * @param body (optional) \n * @return Apartment successfully updated\n */\n apartmentPUT(plantdesktopid: number, body: ApartmentDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/apartment\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processApartmentPUT(_response);\n });\n }\n\n protected processApartmentPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Add apartment label (Auth)\n * @param body (optional) \n * @return Apartment successfully updated\n */\n labelPOST(plantdesktopid: number, apartmentid: string, body: ApartmentLabelDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/apartment/{apartmentid}/label\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (apartmentid === undefined || apartmentid === null)\n throw new Error(\"The parameter 'apartmentid' must be defined.\");\n url_ = url_.replace(\"{apartmentid}\", encodeURIComponent(\"\" + apartmentid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processLabelPOST(_response);\n });\n }\n\n protected processLabelPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(ApartmentLabelDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit apartment label (Auth)\n * @param body (optional) \n * @return Apartment successfully updated\n */\n labelPUT(plantdesktopid: number, apartmentid: string, body: ApartmentLabelDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/apartment/{apartmentid}/label\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (apartmentid === undefined || apartmentid === null)\n throw new Error(\"The parameter 'apartmentid' must be defined.\");\n url_ = url_.replace(\"{apartmentid}\", encodeURIComponent(\"\" + apartmentid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processLabelPUT(_response);\n });\n }\n\n protected processLabelPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(ApartmentLabelDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete apartment label (Auth)\n * @return Apartment successfully updated\n */\n labelDELETE(plantdesktopid: number, apartmentid: string, labelid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/apartment/{apartmentid}/label/{labelid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (apartmentid === undefined || apartmentid === null)\n throw new Error(\"The parameter 'apartmentid' must be defined.\");\n url_ = url_.replace(\"{apartmentid}\", encodeURIComponent(\"\" + apartmentid));\n if (labelid === undefined || labelid === null)\n throw new Error(\"The parameter 'labelid' must be defined.\");\n url_ = url_.replace(\"{labelid}\", encodeURIComponent(\"\" + labelid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processLabelDELETE(_response);\n });\n }\n\n protected processLabelDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(ApartmentLabelDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete badge for current user (Auth)\n * @param body (optional) \n * @return Badge successfully deleted\n */\n badgeDELETE(plantdesktopid: number, body: string | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/badge\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processBadgeDELETE(_response);\n });\n }\n\n protected processBadgeDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get badges for current user (Auth)\n * @return Badges\n */\n badgeAll(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/badge\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processBadgeAll(_response);\n });\n }\n\n protected processBadgeAll(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(BadgeDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new badge for current user (Auth)\n * @param body (optional) \n * @return Badge successfully added\n */\n badgePOST(plantdesktopid: number, body: BadgeDTO[] | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/badge\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processBadgePOST(_response);\n });\n }\n\n protected processBadgePOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get informations for calling code example (Auth)\n * @return Informations for calling code example\n */\n callingcoderecap(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/callingcoderecap\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processCallingcoderecap(_response);\n });\n }\n\n protected processCallingcoderecap(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = CallingCodeDTO.fromJS(resultData200);\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete the gate (Auth)\n * @return Delete selected gate\n */\n gate(plantdesktopid: number, gateid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/gate/{gateid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (gateid === undefined || gateid === null)\n throw new Error(\"The parameter 'gateid' must be defined.\");\n url_ = url_.replace(\"{gateid}\", encodeURIComponent(\"\" + gateid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processGate(_response);\n });\n }\n\n protected processGate(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = CallingCodeDTO.fromJS(resultData200);\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete guest for current user (Auth)\n * @param body (optional) \n * @return guest successfully deleted\n */\n guestDELETE(plantdesktopid: number, body: string | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/guest\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processGuestDELETE(_response);\n });\n }\n\n protected processGuestDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new guest for current user, returns guest id (Auth)\n * @param body (optional) \n * @return guest successfully added\n */\n guestPOST(plantdesktopid: number, body: GateGuestDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/guest\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processGuestPOST(_response);\n });\n }\n\n protected processGuestPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n let result201: any = null;\n let resultData201 = _responseText;\n result201 = GateGuestDTO.fromJS(resultData201);\n return result201;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit guest for current user (Auth)\n * @param body (optional) \n * @return guest successfully updated\n */\n guestPUT(plantdesktopid: number, body: GateGuestDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/guest\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processGuestPUT(_response);\n });\n }\n\n protected processGuestPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get a random generated code (Auth)\n * @return Random generated keypad code\n */\n randomkeypadcode(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/randomkeypadcode\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRandomkeypadcode(_response);\n });\n }\n\n protected processRandomkeypadcode(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit entrance plant residents (Auth)\n * @param body (optional) \n * @return Entrance Plant successfully updated\n */\n residents(plantdesktopid: number, body: EntrancePlantDetailDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/residents\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processResidents(_response);\n });\n }\n\n protected processResidents(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit entrance plant for current user (Auth)\n * @param body (optional) \n * @return Entrance Plant successfully updated\n */\n structure(plantdesktopid: number, body: EntrancePlantStructureCreateDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/structure\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processStructure(_response);\n });\n }\n\n protected processStructure(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete switchboard for current user (Auth)\n * @param body (optional) \n * @return Switchboard successfully deleted\n */\n switchboardDELETE(plantdesktopid: number, body: SwitchboardDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/switchboard\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSwitchboardDELETE(_response);\n });\n }\n\n protected processSwitchboardDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new switchboard for current user, returns switchboard id (Auth)\n * @param body (optional) \n * @return Switchboard successfully added\n */\n switchboardPOST(plantdesktopid: number, body: SwitchboardConfigDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/switchboard\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSwitchboardPOST(_response);\n });\n }\n\n protected processSwitchboardPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n let result201: any = null;\n let resultData201 = _responseText;\n result201 = SwitchboardDTO.fromJS(resultData201);\n return result201;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit switchboard for current user (Auth)\n * @param body (optional) \n * @return Switchboard successfully updated\n */\n switchboardPUT(plantdesktopid: number, body: SwitchboardConfigDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/entranceplant/{plantdesktopid}/switchboard\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSwitchboardPUT(_response);\n });\n }\n\n protected processSwitchboardPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new plant for current user, returns plant id (Auth)\n * @param body (optional) \n * @return Plant successfully added\n */\n plantPOST(body: PlantDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processPlantPOST(_response);\n });\n }\n\n protected processPlantPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n let result201: any = null;\n let resultData201 = _responseText;\n result201 = resultData201 !== undefined ? resultData201 : null;\n return result201;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete a plant (Auth)\n * @return Plant deleted\n */\n plantDELETE(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processPlantDELETE(_response);\n });\n }\n\n protected processPlantDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantDetailDTO.fromJS(resultData200);\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get a plant for current user. If lastupdate is provided returns 204 if no updates are found (Auth)\n * @param lastupdate (optional) \n * @return Plant\n */\n plantGET(plantdesktopid: number, lastupdate: Date | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (lastupdate === null)\n throw new Error(\"The parameter 'lastupdate' cannot be null.\");\n else if (lastupdate !== undefined)\n url_ += \"lastupdate=\" + encodeURIComponent(lastupdate ? \"\" + lastupdate.toJSON() : \"\") + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processPlantGET(_response);\n });\n }\n\n protected processPlantGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantDetailDTO.fromJS(resultData200);\n return result200;\n } else if (status === 204) {\n const _responseText = response.data;\n let result204: any = null;\n let resultData204 = _responseText;\n result204 = PlantDetailDTO.fromJS(resultData204);\n return result204;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit a plant for current user (Auth)\n * @param body (optional) \n * @return Plant successfully updated\n */\n plantPUT(plantdesktopid: number, body: PlantDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processPlantPUT(_response);\n });\n }\n\n protected processPlantPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Add fake plant devices (only for testing purpose) (Auth)\n * @return Fake devices added successfully\n */\n addFakeDevices(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/add-fake-devices\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"PATCH\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAddFakeDevices(_response);\n });\n }\n\n protected processAddFakeDevices(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 409) {\n const _responseText = response.data;\n return throwException(\"Plant has already some devices\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant general commands and groups (Auth)\n * @return List of aggregate commands\n */\n aggregateCommandsAll(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/aggregate-commands\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsAll(_response);\n });\n }\n\n protected processAggregateCommandsAll(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(AggregateCommandDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Add a general command or group (Auth)\n * @param body (optional) \n * @return AggregateCommandDTO\n */\n aggregateCommandsPOST(plantdesktopid: number, body: EditAggregateCommandDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/aggregate-commands\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsPOST(_response);\n });\n }\n\n protected processAggregateCommandsPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete a general command or group (Auth)\n * @return Aggregate command deleted\n */\n aggregateCommandsDELETE(plantdesktopid: number, commandid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/aggregate-commands/{commandid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (commandid === undefined || commandid === null)\n throw new Error(\"The parameter 'commandid' must be defined.\");\n url_ = url_.replace(\"{commandid}\", encodeURIComponent(\"\" + commandid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsDELETE(_response);\n });\n }\n\n protected processAggregateCommandsDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or command doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get general command or group (Auth)\n * @return AggregateCommandDTO\n */\n aggregateCommandsGET(plantdesktopid: number, commandid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/aggregate-commands/{commandid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (commandid === undefined || commandid === null)\n throw new Error(\"The parameter 'commandid' must be defined.\");\n url_ = url_.replace(\"{commandid}\", encodeURIComponent(\"\" + commandid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsGET(_response);\n });\n }\n\n protected processAggregateCommandsGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = AggregateCommandDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or aggregate command doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit a general command or group (Auth)\n * @param body (optional) \n * @return AggregateCommandDTO\n */\n aggregateCommandsPUT(plantdesktopid: number, commandid: string, body: EditAggregateCommandDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/aggregate-commands/{commandid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (commandid === undefined || commandid === null)\n throw new Error(\"The parameter 'commandid' must be defined.\");\n url_ = url_.replace(\"{commandid}\", encodeURIComponent(\"\" + commandid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsPUT(_response);\n });\n }\n\n protected processAggregateCommandsPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or aggregate command doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant alarm system (Auth)\n * @return Plant alarm system\n */\n alarmsystem(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/alarmsystem\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAlarmsystem(_response);\n });\n }\n\n protected processAlarmsystem(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantAlarmSystemDTO.fromJS(resultData200);\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant devices (Auth)\n * @return List of plant devices\n */\n allDevices(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/all-devices\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAllDevices(_response);\n });\n }\n\n protected processAllDevices(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DeviceDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant c300eos-settings (Auth)\n * @param lastupdate (optional) \n * @return Plant mxserver\n */\n c300eosSettingsGET(plantdesktopid: number, lastupdate: Date | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/c300eos-settings?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (lastupdate === null)\n throw new Error(\"The parameter 'lastupdate' cannot be null.\");\n else if (lastupdate !== undefined)\n url_ += \"lastupdate=\" + encodeURIComponent(lastupdate ? \"\" + lastupdate.toJSON() : \"\") + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processC300eosSettingsGET(_response);\n });\n }\n\n protected processC300eosSettingsGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantC300EOSSettingsDTO.fromJS(resultData200);\n return result200;\n } else if (status === 204) {\n const _responseText = response.data;\n let result204: any = null;\n let resultData204 = _responseText;\n result204 = PlantC300EOSSettingsDTO.fromJS(resultData204);\n return result204;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit plant c300eos-settings (Auth)\n * @param body (optional) \n * @return C300EOSSettings\n */\n c300eosSettingsPUT(plantdesktopid: number, body: PlantC300EOSSettingsDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/c300eos-settings\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processC300eosSettingsPUT(_response);\n });\n }\n\n protected processC300eosSettingsPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantC300EOSSettingsDTO.fromJS(resultData200);\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"some fields are invalid\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Clone a plant for current user (Auth)\n * @return Plant successfully cloned\n */\n clonePlant(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/clone-plant\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processClonePlant(_response);\n });\n }\n\n protected processClonePlant(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get commands devices from a plant (Auth)\n * @param linkableobjecttype (optional) 0 = Light\n \n 1 = Shutter\n \n 2 = Socket\n \n 3 = Lock\n \n 4 = Thermostat\n \n 5 = Fancoil\n \n 6 = TowelWarmer\n \n 7 = WirelessCommand\n \n 8 = Blind\n \n 9 = Player\n \n 10 = Xmeter\n \n 11 = Alarm\n \n 12 = ColoredLight\n \n 13 = ScheduledScenarioPlus\n \n 14 = None\n \n 15 = Contact\n \n 16 = AlarmSensor\n \n 17 = Thermostat99zones\n \n 18 = DimmerDmx\n \n 19 = DimmerDali\n \n 20 = Actuactor\n * @return List of command devices from plant\n */\n commandDevices(plantdesktopid: number, linkableobjecttype: RoomObjectType | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/command-devices?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (linkableobjecttype === null)\n throw new Error(\"The parameter 'linkableobjecttype' cannot be null.\");\n else if (linkableobjecttype !== undefined)\n url_ += \"linkableobjecttype=\" + encodeURIComponent(\"\" + linkableobjecttype) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processCommandDevices(_response);\n });\n }\n\n protected processCommandDevices(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DeviceDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or room doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Duplicate a plant for current user (Auth)\n * @param names (optional) \n * @return Plant successfully duplicated\n */\n duplicatePlant(plantdesktopid: number, names: string[] | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/duplicate-plant?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (names === null)\n throw new Error(\"The parameter 'names' cannot be null.\");\n else if (names !== undefined)\n names && names.forEach(item => { url_ += \"names=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processDuplicatePlant(_response);\n });\n }\n\n protected processDuplicatePlant(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new rooms for current plant (Auth)\n * @param body (optional) \n * @return Rooms successfully added to plant\n */\n roomsPOST(plantdesktopid: number, body: PlantRoomCount[] | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomsPOST(_response);\n });\n }\n\n protected processRoomsPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete room (Auth)\n * @return Room deleted\n */\n roomsDELETE(plantdesktopid: number, roomid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomsDELETE(_response);\n });\n }\n\n protected processRoomsDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or Room don\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Update a room for a plant (Auth)\n * @param body (optional) \n * @return Room successfully updated\n */\n roomsPUT(plantdesktopid: number, roomid: string, body: RoomUpdateDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomsPUT(_response);\n });\n }\n\n protected processRoomsPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or Room don\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Insert new objects for current room's plant (Auth)\n * @param body (optional) \n * @return Objects successfully added to plant room\n */\n roomObjectsPOST(plantdesktopid: number, roomid: string, body: AddRoomObjectDTO[] | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomObjectsPOST(_response);\n });\n }\n\n protected processRoomObjectsPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned or room not found\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get a room object for a plant (Auth)\n * @return RoomObject\n */\n roomObjectsGET(plantdesktopid: number, roomid: string, roomobjectid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects/{roomobjectid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (roomobjectid === undefined || roomobjectid === null)\n throw new Error(\"The parameter 'roomobjectid' must be defined.\");\n url_ = url_.replace(\"{roomobjectid}\", encodeURIComponent(\"\" + roomobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomObjectsGET(_response);\n });\n }\n\n protected processRoomObjectsGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = RoomObjectDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant, room or object doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit a room object for a plant (Auth)\n * @param body (optional) \n * @return RoomObject\n */\n roomObjectsPUT(plantdesktopid: number, roomid: string, roomobjectid: string, body: EditRoomObjectDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects/{roomobjectid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (roomobjectid === undefined || roomobjectid === null)\n throw new Error(\"The parameter 'roomobjectid' must be defined.\");\n url_ = url_.replace(\"{roomobjectid}\", encodeURIComponent(\"\" + roomobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomObjectsPUT(_response);\n });\n }\n\n protected processRoomObjectsPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = RoomObjectDTO.fromJS(resultData200);\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant, room or object doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get compatible scanned devices into a plant (Auth)\n * @param filterDevices (optional) 0 = ALL\n \n 1 = ACTUATORS\n \n 2 = COMMANDS\n \n 3 = THERMO\n \n 4 = THERMO_PROBE\n \n 5 = THERMO_HEATING_ACTUATORS\n \n 6 = THERMO_COOLING_ACTUATORS\n \n 7 = THERMO_HEATING_PUMPS\n \n 8 = THERMO_COOLING_PUMPS\n \n 9 = THERMO_SHARED_ACTUATORS\n \n 10 = THERMO_SHARED_PUMPS\n * @param lightType (optional) 0 = None\n \n 1 = OnOff\n \n 2 = Dimmer\n * @param heatingSystemControlType (optional) 0 = None\n \n 1 = OneOnOffValve\n \n 2 = OneOpenCloseValve\n \n 3 = OneProportionalValve\n \n 4 = TwoTubesOnOffValve\n \n 5 = TwoTubesProportionalValve\n \n 6 = TwoTubesProportionalSpeedControlValve\n \n 7 = FourTubesOnOffValve\n \n 8 = FourTubesProportionalValve\n \n 9 = FourTubesProportionalSpeedControlValve\n \n 10 = GatewayMode\n \n 11 = Pump\n * @param coolingSystemControlType (optional) 0 = None\n \n 1 = OneOnOffValve\n \n 2 = OneOpenCloseValve\n \n 3 = OneProportionalValve\n \n 4 = TwoTubesOnOffValve\n \n 5 = TwoTubesProportionalValve\n \n 6 = TwoTubesProportionalSpeedControlValve\n \n 7 = FourTubesOnOffValve\n \n 8 = FourTubesProportionalValve\n \n 9 = FourTubesProportionalSpeedControlValve\n \n 10 = GatewayMode\n \n 11 = Pump\n * @param sharedSystemControlType (optional) 0 = None\n \n 1 = OneOnOffValve\n \n 2 = OneOpenCloseValve\n \n 3 = OneProportionalValve\n \n 4 = TwoTubesOnOffValve\n \n 5 = TwoTubesProportionalValve\n \n 6 = TwoTubesProportionalSpeedControlValve\n \n 7 = FourTubesOnOffValve\n \n 8 = FourTubesProportionalValve\n \n 9 = FourTubesProportionalSpeedControlValve\n \n 10 = GatewayMode\n \n 11 = Pump\n * @return List of compatible devices from last scan\n */\n devices(plantdesktopid: number, roomid: string, roomobjectid: string, filterDevices: DevicesFilterByType | undefined, lightType: LightType | undefined, heatingSystemControlType: SystemControlType | undefined, coolingSystemControlType: SystemControlType | undefined, sharedSystemControlType: SystemControlType | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects/{roomobjectid}/devices?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (roomobjectid === undefined || roomobjectid === null)\n throw new Error(\"The parameter 'roomobjectid' must be defined.\");\n url_ = url_.replace(\"{roomobjectid}\", encodeURIComponent(\"\" + roomobjectid));\n if (filterDevices === null)\n throw new Error(\"The parameter 'filterDevices' cannot be null.\");\n else if (filterDevices !== undefined)\n url_ += \"filterDevices=\" + encodeURIComponent(\"\" + filterDevices) + \"&\";\n if (lightType === null)\n throw new Error(\"The parameter 'lightType' cannot be null.\");\n else if (lightType !== undefined)\n url_ += \"LightType=\" + encodeURIComponent(\"\" + lightType) + \"&\";\n if (heatingSystemControlType === null)\n throw new Error(\"The parameter 'heatingSystemControlType' cannot be null.\");\n else if (heatingSystemControlType !== undefined)\n url_ += \"HeatingSystemControlType=\" + encodeURIComponent(\"\" + heatingSystemControlType) + \"&\";\n if (coolingSystemControlType === null)\n throw new Error(\"The parameter 'coolingSystemControlType' cannot be null.\");\n else if (coolingSystemControlType !== undefined)\n url_ += \"CoolingSystemControlType=\" + encodeURIComponent(\"\" + coolingSystemControlType) + \"&\";\n if (sharedSystemControlType === null)\n throw new Error(\"The parameter 'sharedSystemControlType' cannot be null.\");\n else if (sharedSystemControlType !== undefined)\n url_ += \"SharedSystemControlType=\" + encodeURIComponent(\"\" + sharedSystemControlType) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processDevices(_response);\n });\n }\n\n protected processDevices(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DeviceDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or room doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get a thermo room object for a plant (Auth)\n * @return RoomObject\n */\n thermoGET(plantdesktopid: number, roomid: string, roomobjectid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects/thermo/{roomobjectid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (roomobjectid === undefined || roomobjectid === null)\n throw new Error(\"The parameter 'roomobjectid' must be defined.\");\n url_ = url_.replace(\"{roomobjectid}\", encodeURIComponent(\"\" + roomobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processThermoGET(_response);\n });\n }\n\n protected processThermoGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = ThermoRoomObjectDTO.fromJS(resultData200);\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Room object is not a thermo\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant, room or object doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit a thermo room object for a plant (Auth)\n * @param body (optional) \n * @return RoomObject\n */\n thermoPUT(plantdesktopid: number, roomid: string, roomobjectid: string, body: EditThermoRoomObjectDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/rooms/{roomid}/room-objects/thermo/{roomobjectid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (roomobjectid === undefined || roomobjectid === null)\n throw new Error(\"The parameter 'roomobjectid' must be defined.\");\n url_ = url_.replace(\"{roomobjectid}\", encodeURIComponent(\"\" + roomobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processThermoPUT(_response);\n });\n }\n\n protected processThermoPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = ThermoRoomObjectDTO.fromJS(resultData200);\n return result200;\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Room object is not a thermo\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant, room or object doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant scene wizard actions list (Auth)\n * @return List of plant scene actions\n */\n sceneActionsList(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scene-actions-list\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSceneActionsList(_response);\n });\n }\n\n protected processSceneActionsList(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = SceneActionsListsDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant scene wizard conditions list (Auth)\n * @return List of plant scene conditions\n */\n sceneConditionsList(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scene-conditions-list\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSceneConditionsList(_response);\n });\n }\n\n protected processSceneConditionsList(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = SceneConditionsListsDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant scene wizard triggers list (Auth)\n * @return List of plant scene triggers\n */\n sceneTriggersList(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scene-triggers-list\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSceneTriggersList(_response);\n });\n }\n\n protected processSceneTriggersList(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = SceneTriggersListsDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant scenes (Auth)\n * @return List of plant scenes\n */\n scenesAll(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processScenesAll(_response);\n });\n }\n\n protected processScenesAll(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(SceneDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Add a scene (Auth)\n * @param body (optional) \n * @return SceneDTO\n */\n scenesPOST(plantdesktopid: number, body: SceneDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processScenesPOST(_response);\n });\n }\n\n protected processScenesPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete a scene (Auth)\n * @return Scene deleted\n */\n scenesDELETE(plantdesktopid: number, sceneid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes/{sceneid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (sceneid === undefined || sceneid === null)\n throw new Error(\"The parameter 'sceneid' must be defined.\");\n url_ = url_.replace(\"{sceneid}\", encodeURIComponent(\"\" + sceneid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processScenesDELETE(_response);\n });\n }\n\n protected processScenesDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or scene doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get plant scene (Auth)\n * @return SceneDTO\n */\n scenesGET(plantdesktopid: number, sceneid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes/{sceneid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (sceneid === undefined || sceneid === null)\n throw new Error(\"The parameter 'sceneid' must be defined.\");\n url_ = url_.replace(\"{sceneid}\", encodeURIComponent(\"\" + sceneid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processScenesGET(_response);\n });\n }\n\n protected processScenesGET(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = SceneDTO.fromJS(resultData200);\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or scene doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Edit a scene (Auth)\n * @param body (optional) \n * @return SceneDTO\n */\n scenesPUT(plantdesktopid: number, sceneid: string, body: SceneDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes/{sceneid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (sceneid === undefined || sceneid === null)\n throw new Error(\"The parameter 'sceneid' must be defined.\");\n url_ = url_.replace(\"{sceneid}\", encodeURIComponent(\"\" + sceneid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PUT\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processScenesPUT(_response);\n });\n }\n\n protected processScenesPUT(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some field are null, empty or invalid\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or scene doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Clone a scene (Auth)\n * @return Scene successfully cloned\n */\n cloneScene(plantdesktopid: number, sceneid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes/{sceneid}/clone-scene\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (sceneid === undefined || sceneid === null)\n throw new Error(\"The parameter 'sceneid' must be defined.\");\n url_ = url_.replace(\"{sceneid}\", encodeURIComponent(\"\" + sceneid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processCloneScene(_response);\n });\n }\n\n protected processCloneScene(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 201) {\n const _responseText = response.data;\n let result201: any = null;\n let resultData201 = _responseText;\n result201 = SceneDTO.fromJS(resultData201);\n return result201;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or scene doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Toggle enable or disable scene (Auth)\n * @return Scene status successfully toggled, return status [enabled, disabled]\n */\n toggleDisable(plantdesktopid: number, sceneid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/scenes/{sceneid}/toggle-disable\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (sceneid === undefined || sceneid === null)\n throw new Error(\"The parameter 'sceneid' must be defined.\");\n url_ = url_.replace(\"{sceneid}\", encodeURIComponent(\"\" + sceneid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"PATCH\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processToggleDisable(_response);\n });\n }\n\n protected processToggleDisable(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or scene doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Renew user session for a plant (Auth)\n * @return Session renewed\n */\n session(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/session\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSession(_response);\n });\n }\n\n protected processSession(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantSessionDTO.fromJS(resultData200);\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Un-share a plant to a user (Auth)\n * @param userEmail (optional) \n * @return Un-shared\n */\n sharingDELETE(plantdesktopid: number, userEmail: string | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/sharing?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (userEmail === null)\n throw new Error(\"The parameter 'userEmail' cannot be null.\");\n else if (userEmail !== undefined)\n url_ += \"userEmail=\" + encodeURIComponent(\"\" + userEmail) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSharingDELETE(_response);\n });\n }\n\n protected processSharingDELETE(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Share a plant with a user (Auth)\n * @param userEmail (optional) \n * @return Shared\n */\n sharingPOST(plantdesktopid: number, userEmail: string | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/sharing?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (userEmail === null)\n throw new Error(\"The parameter 'userEmail' cannot be null.\");\n else if (userEmail !== undefined)\n url_ += \"userEmail=\" + encodeURIComponent(\"\" + userEmail) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"POST\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processSharingPOST(_response);\n });\n }\n\n protected processSharingPOST(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Transfer ownership of a plant to another user (Auth)\n * @param userEmail (optional) \n * @param body (optional) \n * @return Ownership transfered successfully\n */\n transferOwnership(plantdesktopid: number, userEmail: string | undefined, body: TransferOwnershipDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/transfer-ownership?\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (userEmail === null)\n throw new Error(\"The parameter 'userEmail' cannot be null.\");\n else if (userEmail !== undefined)\n url_ += \"userEmail=\" + encodeURIComponent(\"\" + userEmail) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processTransferOwnership(_response);\n });\n }\n\n protected processTransferOwnership(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Invalid field values: password field is null or empty or password is not valid\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"You are not the owner of this plant\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 409) {\n const _responseText = response.data;\n return throwException(\"The plant is not shared with the user inserted email\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Update device settings (Auth)\n * @param body (optional) \n * @return Device settings updated successfully\n */\n updateDeviceSettings(plantdesktopid: number, deviceuuid: string, body: DeviceGlobalSettingsDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/{plantdesktopid}/update-device-settings/{deviceuuid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (deviceuuid === undefined || deviceuuid === null)\n throw new Error(\"The parameter 'deviceuuid' must be defined.\");\n url_ = url_.replace(\"{deviceuuid}\", encodeURIComponent(\"\" + deviceuuid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"PATCH\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processUpdateDeviceSettings(_response);\n });\n }\n\n protected processUpdateDeviceSettings(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 400) {\n const _responseText = response.data;\n return throwException(\"Some fields are null or empty\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant or device doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Delete room logical object (Auth)\n * @return Object deleted\n */\n deleteRoomObject(plantdesktopid: number, roomid: string, objectid: string , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plant/delete-room-object/{plantdesktopid}/{roomid}/{objectid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n if (roomid === undefined || roomid === null)\n throw new Error(\"The parameter 'roomid' must be defined.\");\n url_ = url_.replace(\"{roomid}\", encodeURIComponent(\"\" + roomid));\n if (objectid === undefined || objectid === null)\n throw new Error(\"The parameter 'objectid' must be defined.\");\n url_ = url_.replace(\"{objectid}\", encodeURIComponent(\"\" + objectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"DELETE\",\n url: url_,\n headers: {\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processDeleteRoomObject(_response);\n });\n }\n\n protected processDeleteRoomObject(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get All plants of current user (Auth)\n * @param pageNumber (optional) \n * @param pageSize (optional) \n * @param plantsOrderBy (optional) 0 = PLANT_NAME\n \n 1 = MODIFIED_DATE\n * @param plantsOrderByAsc (optional) \n * @param filterPlantTagKeys (optional) \n * @param searchText (optional) \n * @return List of user's plants\n */\n plantsList(pageNumber: number | undefined, pageSize: number | undefined, plantsOrderBy: PlantsOrderBy | undefined, plantsOrderByAsc: boolean | undefined, filterPlantTagKeys: string[] | undefined, searchText: string | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/plants-list?\";\n if (pageNumber === null)\n throw new Error(\"The parameter 'pageNumber' cannot be null.\");\n else if (pageNumber !== undefined)\n url_ += \"PageNumber=\" + encodeURIComponent(\"\" + pageNumber) + \"&\";\n if (pageSize === null)\n throw new Error(\"The parameter 'pageSize' cannot be null.\");\n else if (pageSize !== undefined)\n url_ += \"PageSize=\" + encodeURIComponent(\"\" + pageSize) + \"&\";\n if (plantsOrderBy === null)\n throw new Error(\"The parameter 'plantsOrderBy' cannot be null.\");\n else if (plantsOrderBy !== undefined)\n url_ += \"plantsOrderBy=\" + encodeURIComponent(\"\" + plantsOrderBy) + \"&\";\n if (plantsOrderByAsc === null)\n throw new Error(\"The parameter 'plantsOrderByAsc' cannot be null.\");\n else if (plantsOrderByAsc !== undefined)\n url_ += \"plantsOrderByAsc=\" + encodeURIComponent(\"\" + plantsOrderByAsc) + \"&\";\n if (filterPlantTagKeys === null)\n throw new Error(\"The parameter 'filterPlantTagKeys' cannot be null.\");\n else if (filterPlantTagKeys !== undefined)\n filterPlantTagKeys && filterPlantTagKeys.forEach(item => { url_ += \"filterPlantTagKeys=\" + encodeURIComponent(\"\" + item) + \"&\"; });\n if (searchText === null)\n throw new Error(\"The parameter 'searchText' cannot be null.\");\n else if (searchText !== undefined)\n url_ += \"searchText=\" + encodeURIComponent(\"\" + searchText) + \"&\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processPlantsList(_response);\n });\n }\n\n protected processPlantsList(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = PlantListDTOPaginatedResult.fromJS(resultData200);\n return result200;\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"Generic error\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get All tags associated to my plants (Auth)\n * @return List of all tags associated to my plants\n */\n tagsList( cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/tags-list\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"GET\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processTagsList(_response);\n });\n }\n\n protected processTagsList(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(PlantTagDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"Generic error\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Toggle plant from favorites for a user (Auth)\n * @return Plant successfully toggled, return favorite status\n */\n togglePlantFromFavorites(plantdesktopid: number , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/toggle-plant-from-favorites/{plantdesktopid}\";\n if (plantdesktopid === undefined || plantdesktopid === null)\n throw new Error(\"The parameter 'plantdesktopid' must be defined.\");\n url_ = url_.replace(\"{plantdesktopid}\", encodeURIComponent(\"\" + plantdesktopid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n let options_ = {\n method: \"PATCH\",\n url: url_,\n headers: {\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processTogglePlantFromFavorites(_response);\n });\n }\n\n protected processTogglePlantFromFavorites(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n result200 = resultData200 !== undefined ? resultData200 : null;\n return result200;\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status === 404) {\n const _responseText = response.data;\n return throwException(\"Plant doesn\\'t exist or not owned\", status, _responseText, _headers);\n } else if (status === 412) {\n const _responseText = response.data;\n return throwException(\"Eliot parse exception\", status, _responseText, _headers);\n } else if (status === 503) {\n const _responseText = response.data;\n return throwException(\"Eliot API not working\", status, _responseText, _headers);\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n}\n\nexport class Action implements IAction {\n id?: number;\n\n constructor(data?: IAction) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n }\n }\n\n static fromJS(data: any): Action {\n data = typeof data === 'object' ? data : {};\n let result = new Action();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n return data; \n }\n}\n\nexport interface IAction {\n id?: number;\n}\n\nexport class ActionDTO implements IActionDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n actionParams?: Action | undefined;\n\n constructor(data?: IActionDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.objectName = _data[\"objectName\"];\n this.sceneObjectType = _data[\"sceneObjectType\"];\n this.actionParams = _data[\"actionParams\"] ? Action.fromJS(_data[\"actionParams\"]) : undefined;\n }\n }\n\n static fromJS(data: any): ActionDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ActionDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"objectName\"] = this.objectName;\n data[\"sceneObjectType\"] = this.sceneObjectType;\n data[\"actionParams\"] = this.actionParams ? this.actionParams.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IActionDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n actionParams?: Action | undefined;\n}\n\nexport class VdeFunction implements IVdeFunction {\n id?: number;\n description?: string | undefined;\n address?: number;\n\n constructor(data?: IVdeFunction) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.description = _data[\"description\"];\n this.address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): VdeFunction {\n data = typeof data === 'object' ? data : {};\n let result = new VdeFunction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"description\"] = this.description;\n data[\"address\"] = this.address;\n return data; \n }\n}\n\nexport interface IVdeFunction {\n id?: number;\n description?: string | undefined;\n address?: number;\n}\n\nexport class ActivationFunction extends VdeFunction implements IActivationFunction {\n type?: ActivationType;\n\n constructor(data?: IActivationFunction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): ActivationFunction {\n data = typeof data === 'object' ? data : {};\n let result = new ActivationFunction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IActivationFunction extends IVdeFunction {\n type?: ActivationType;\n}\n\n/** 0 = Generic 1 = Lock */\nexport enum ActivationType {\n Generic = 0,\n Lock = 1,\n}\n\n/** 0 = None 1 = Separate 2 = Shared 3 = Mixed */\nexport enum ActuatorModalityType {\n None = 0,\n Separate = 1,\n Shared = 2,\n Mixed = 3,\n}\n\nexport class ActuatorSettings implements IActuatorSettings {\n\n constructor(data?: IActuatorSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n }\n\n static fromJS(data: any): ActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n return data; \n }\n}\n\nexport interface IActuatorSettings {\n}\n\nexport class AddRoomObjectDTO implements IAddRoomObjectDTO {\n name?: string | undefined;\n type?: RoomObjectType;\n devices?: Device[] | undefined;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n\n constructor(data?: IAddRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n }\n }\n\n static fromJS(data: any): AddRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AddRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n return data; \n }\n}\n\nexport interface IAddRoomObjectDTO {\n name?: string | undefined;\n type?: RoomObjectType;\n devices?: Device[] | undefined;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n}\n\n/** 0 = Surname 1 = Name 2 = Apartment 3 = Custom */\nexport enum AddressBookSorting {\n Surname = 0,\n Name = 1,\n Apartment = 2,\n Custom = 3,\n}\n\nexport class AddressPumps implements IAddressPumps {\n number?: string | undefined;\n idSlot?: string | undefined;\n deviceid?: string | undefined;\n linksId?: string[] | undefined;\n\n constructor(data?: IAddressPumps) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.number = _data[\"number\"];\n this.idSlot = _data[\"idSlot\"];\n this.deviceid = _data[\"deviceid\"];\n if (Array.isArray(_data[\"linksId\"])) {\n this.linksId = [] as any;\n for (let item of _data[\"linksId\"])\n this.linksId!.push(item);\n }\n }\n }\n\n static fromJS(data: any): AddressPumps {\n data = typeof data === 'object' ? data : {};\n let result = new AddressPumps();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"number\"] = this.number;\n data[\"idSlot\"] = this.idSlot;\n data[\"deviceid\"] = this.deviceid;\n if (Array.isArray(this.linksId)) {\n data[\"linksId\"] = [];\n for (let item of this.linksId)\n data[\"linksId\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IAddressPumps {\n number?: string | undefined;\n idSlot?: string | undefined;\n deviceid?: string | undefined;\n linksId?: string[] | undefined;\n}\n\n/** 0 = AddressBook 1 = BuildingRiserFloorApartment 2 = DirectCall_Alphanumeric 3 = DirectCall_NumbersOnly */\nexport enum AddressingType {\n AddressBook = 0,\n BuildingRiserFloorApartment = 1,\n DirectCall_Alphanumeric = 2,\n DirectCall_NumbersOnly = 3,\n}\n\nexport class LinkableObject implements ILinkableObject {\n id?: string | undefined;\n name?: string | undefined;\n devices?: Device[] | undefined;\n extDevices?: ExtDevice[] | undefined;\n\n constructor(data?: ILinkableObject) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LinkableObject {\n data = typeof data === 'object' ? data : {};\n let result = new LinkableObject();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILinkableObject {\n id?: string | undefined;\n name?: string | undefined;\n devices?: Device[] | undefined;\n extDevices?: ExtDevice[] | undefined;\n}\n\nexport class AggregateCommand extends LinkableObject implements IAggregateCommand {\n rooms?: Room[] | undefined;\n objectsName?: string[] | undefined;\n type?: AggregateCommandType;\n roomObjectType?: RoomObjectType;\n address?: string | undefined;\n\n constructor(data?: IAggregateCommand) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"rooms\"])) {\n this.rooms = [] as any;\n for (let item of _data[\"rooms\"])\n this.rooms!.push(Room.fromJS(item));\n }\n if (Array.isArray(_data[\"objectsName\"])) {\n this.objectsName = [] as any;\n for (let item of _data[\"objectsName\"])\n this.objectsName!.push(item);\n }\n this.type = _data[\"type\"];\n this.roomObjectType = _data[\"roomObjectType\"];\n this.address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): AggregateCommand {\n data = typeof data === 'object' ? data : {};\n let result = new AggregateCommand();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.rooms)) {\n data[\"rooms\"] = [];\n for (let item of this.rooms)\n data[\"rooms\"].push(item.toJSON());\n }\n if (Array.isArray(this.objectsName)) {\n data[\"objectsName\"] = [];\n for (let item of this.objectsName)\n data[\"objectsName\"].push(item);\n }\n data[\"type\"] = this.type;\n data[\"roomObjectType\"] = this.roomObjectType;\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAggregateCommand extends ILinkableObject {\n rooms?: Room[] | undefined;\n objectsName?: string[] | undefined;\n type?: AggregateCommandType;\n roomObjectType?: RoomObjectType;\n address?: string | undefined;\n}\n\nexport class AggregateCommandActionListItemDTO implements IAggregateCommandActionListItemDTO {\n aggregateCommandType?: AggregateCommandType;\n subItemList?: SceneActionListItemDTO[] | undefined;\n name?: string | undefined;\n\n constructor(data?: IAggregateCommandActionListItemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.aggregateCommandType = _data[\"aggregateCommandType\"];\n if (Array.isArray(_data[\"subItemList\"])) {\n this.subItemList = [] as any;\n for (let item of _data[\"subItemList\"])\n this.subItemList!.push(SceneActionListItemDTO.fromJS(item));\n }\n this.name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): AggregateCommandActionListItemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AggregateCommandActionListItemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"aggregateCommandType\"] = this.aggregateCommandType;\n if (Array.isArray(this.subItemList)) {\n data[\"subItemList\"] = [];\n for (let item of this.subItemList)\n data[\"subItemList\"].push(item.toJSON());\n }\n data[\"name\"] = this.name;\n return data; \n }\n}\n\nexport interface IAggregateCommandActionListItemDTO {\n aggregateCommandType?: AggregateCommandType;\n subItemList?: SceneActionListItemDTO[] | undefined;\n name?: string | undefined;\n}\n\nexport class AggregateCommandDTO implements IAggregateCommandDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: AggregateCommandType;\n isPlaceholder?: boolean;\n rooms?: RoomDTO[] | undefined;\n roomObjectType?: RoomObjectType;\n\n constructor(data?: IAggregateCommandDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.isPlaceholder = _data[\"isPlaceholder\"];\n if (Array.isArray(_data[\"rooms\"])) {\n this.rooms = [] as any;\n for (let item of _data[\"rooms\"])\n this.rooms!.push(RoomDTO.fromJS(item));\n }\n this.roomObjectType = _data[\"roomObjectType\"];\n }\n }\n\n static fromJS(data: any): AggregateCommandDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AggregateCommandDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"isPlaceholder\"] = this.isPlaceholder;\n if (Array.isArray(this.rooms)) {\n data[\"rooms\"] = [];\n for (let item of this.rooms)\n data[\"rooms\"].push(item.toJSON());\n }\n data[\"roomObjectType\"] = this.roomObjectType;\n return data; \n }\n}\n\nexport interface IAggregateCommandDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: AggregateCommandType;\n isPlaceholder?: boolean;\n rooms?: RoomDTO[] | undefined;\n roomObjectType?: RoomObjectType;\n}\n\n/** 0 = General 1 = Group */\nexport enum AggregateCommandType {\n General = 0,\n Group = 1,\n}\n\nexport class AlarmAction extends Action implements IAlarmAction {\n isSuspended?: boolean;\n alarmType?: AlarmType;\n alarmState?: AlarmPartitionState;\n alarmPartitionOrSceneId?: string | undefined;\n alarmPin?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isSuspended = _data[\"isSuspended\"];\n this.alarmType = _data[\"alarmType\"];\n this.alarmState = _data[\"alarmState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmPin = _data[\"alarmPin\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmAction {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isSuspended\"] = this.isSuspended;\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmState\"] = this.alarmState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmPin\"] = this.alarmPin;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmAction extends IAction {\n isSuspended?: boolean;\n alarmType?: AlarmType;\n alarmState?: AlarmPartitionState;\n alarmPartitionOrSceneId?: string | undefined;\n alarmPin?: string | undefined;\n alarmName?: string | undefined;\n}\n\nexport class ExtDevice implements IExtDevice {\n componentType?: ExtComponentType;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n\n constructor(data?: IExtDevice) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.componentType = _data[\"componentType\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): ExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new ExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"componentType\"] = this.componentType;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n return data; \n }\n}\n\nexport interface IExtDevice {\n componentType?: ExtComponentType;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n}\n\nexport class AlarmCentralUnitExtDevice extends ExtDevice implements IAlarmCentralUnitExtDevice {\n readonly address?: string | undefined;\n\n constructor(data?: IAlarmCentralUnitExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): AlarmCentralUnitExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmCentralUnitExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmCentralUnitExtDevice extends IExtDevice {\n address?: string | undefined;\n}\n\nexport class Condition implements ICondition {\n id?: number;\n isSuspended?: boolean;\n\n constructor(data?: ICondition) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.isSuspended = _data[\"isSuspended\"];\n }\n }\n\n static fromJS(data: any): Condition {\n data = typeof data === 'object' ? data : {};\n let result = new Condition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"isSuspended\"] = this.isSuspended;\n return data; \n }\n}\n\nexport interface ICondition {\n id?: number;\n isSuspended?: boolean;\n}\n\nexport class AlarmCondition extends Condition implements IAlarmCondition {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.alarmType = _data[\"alarmType\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmCondition {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmCondition extends ICondition {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n}\n\n/** 0 = Disarmed 1 = Exit 2 = Armed 3 = PreAlarm 4 = Ready_To_Arm 5 = Alarm 6 = Armed_Immediate 7 = Tamper 8 = None */\nexport enum AlarmPartitionState {\n Disarmed = 0,\n Exit = 1,\n Armed = 2,\n PreAlarm = 3,\n Ready_To_Arm = 4,\n Alarm = 5,\n Armed_Immediate = 6,\n Tamper = 7,\n None = 8,\n}\n\n/** 0 = Disarm 1 = Arm_With_Delay 2 = Arm_Without_Delay */\nexport enum AlarmPartitionStatus {\n Disarm = 0,\n Arm_With_Delay = 1,\n Arm_Without_Delay = 2,\n}\n\nexport class AlarmSensorExtDevice extends ExtDevice implements IAlarmSensorExtDevice {\n readonly address?: string | undefined;\n readonly senrosName?: string | undefined;\n\n constructor(data?: IAlarmSensorExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n (this).senrosName = _data[\"senrosName\"];\n }\n }\n\n static fromJS(data: any): AlarmSensorExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmSensorExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n data[\"senrosName\"] = this.senrosName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmSensorExtDevice extends IExtDevice {\n address?: string | undefined;\n senrosName?: string | undefined;\n}\n\n/** 0 = Idle 1 = Tamper 2 = Trigger 3 = Mask */\nexport enum AlarmSensorStatus {\n Idle = 0,\n Tamper = 1,\n Trigger = 2,\n Mask = 3,\n}\n\n/** 0 = None 1 = Normal 2 = Alarm */\nexport enum AlarmSensorStatusScene {\n None = 0,\n Normal = 1,\n Alarm = 2,\n}\n\nexport class AlarmSystemSensorDTO implements IAlarmSystemSensorDTO {\n sensorName?: string | undefined;\n sensorAddress?: string | undefined;\n roomName?: string | undefined;\n\n constructor(data?: IAlarmSystemSensorDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.sensorName = _data[\"sensorName\"];\n this.sensorAddress = _data[\"sensorAddress\"];\n this.roomName = _data[\"roomName\"];\n }\n }\n\n static fromJS(data: any): AlarmSystemSensorDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmSystemSensorDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"sensorName\"] = this.sensorName;\n data[\"sensorAddress\"] = this.sensorAddress;\n data[\"roomName\"] = this.roomName;\n return data; \n }\n}\n\nexport interface IAlarmSystemSensorDTO {\n sensorName?: string | undefined;\n sensorAddress?: string | undefined;\n roomName?: string | undefined;\n}\n\nexport class Trigger implements ITrigger {\n id?: number;\n isSuspended?: boolean;\n address?: string | undefined;\n\n constructor(data?: ITrigger) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.isSuspended = _data[\"isSuspended\"];\n this.address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): Trigger {\n data = typeof data === 'object' ? data : {};\n let result = new Trigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"isSuspended\"] = this.isSuspended;\n data[\"address\"] = this.address;\n return data; \n }\n}\n\nexport interface ITrigger {\n id?: number;\n isSuspended?: boolean;\n address?: string | undefined;\n}\n\nexport class AlarmTrigger extends Trigger implements IAlarmTrigger {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.alarmType = _data[\"alarmType\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmTrigger extends ITrigger {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n}\n\n/** 0 = Partition 1 = AlarmSystemType */\nexport enum AlarmType {\n Partition = 0,\n AlarmSystemType = 1,\n}\n\nexport class ApartmentDTO implements IApartmentDTO {\n apartmentId?: string;\n buildingId?: string;\n floorId?: string | undefined;\n index?: string | undefined;\n name?: string | undefined;\n number?: number;\n internal?: string | undefined;\n scsAddr?: number;\n badgeList?: string[] | undefined;\n keypadCode?: string | undefined;\n buildingCode?: number;\n riserCode?: number;\n floorCode?: number;\n apartmentCode?: number;\n hiddenToTheUser?: boolean;\n labels?: ApartmentLabelDTO[] | undefined;\n\n constructor(data?: IApartmentDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.apartmentId = _data[\"apartmentId\"];\n this.buildingId = _data[\"buildingId\"];\n this.floorId = _data[\"floorId\"];\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.number = _data[\"number\"];\n this.internal = _data[\"internal\"];\n this.scsAddr = _data[\"scsAddr\"];\n if (Array.isArray(_data[\"badgeList\"])) {\n this.badgeList = [] as any;\n for (let item of _data[\"badgeList\"])\n this.badgeList!.push(item);\n }\n this.keypadCode = _data[\"keypadCode\"];\n this.buildingCode = _data[\"buildingCode\"];\n this.riserCode = _data[\"riserCode\"];\n this.floorCode = _data[\"floorCode\"];\n this.apartmentCode = _data[\"apartmentCode\"];\n this.hiddenToTheUser = _data[\"hiddenToTheUser\"];\n if (Array.isArray(_data[\"labels\"])) {\n this.labels = [] as any;\n for (let item of _data[\"labels\"])\n this.labels!.push(ApartmentLabelDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ApartmentDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ApartmentDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"apartmentId\"] = this.apartmentId;\n data[\"buildingId\"] = this.buildingId;\n data[\"floorId\"] = this.floorId;\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"number\"] = this.number;\n data[\"internal\"] = this.internal;\n data[\"scsAddr\"] = this.scsAddr;\n if (Array.isArray(this.badgeList)) {\n data[\"badgeList\"] = [];\n for (let item of this.badgeList)\n data[\"badgeList\"].push(item);\n }\n data[\"keypadCode\"] = this.keypadCode;\n data[\"buildingCode\"] = this.buildingCode;\n data[\"riserCode\"] = this.riserCode;\n data[\"floorCode\"] = this.floorCode;\n data[\"apartmentCode\"] = this.apartmentCode;\n data[\"hiddenToTheUser\"] = this.hiddenToTheUser;\n if (Array.isArray(this.labels)) {\n data[\"labels\"] = [];\n for (let item of this.labels)\n data[\"labels\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IApartmentDTO {\n apartmentId?: string;\n buildingId?: string;\n floorId?: string | undefined;\n index?: string | undefined;\n name?: string | undefined;\n number?: number;\n internal?: string | undefined;\n scsAddr?: number;\n badgeList?: string[] | undefined;\n keypadCode?: string | undefined;\n buildingCode?: number;\n riserCode?: number;\n floorCode?: number;\n apartmentCode?: number;\n hiddenToTheUser?: boolean;\n labels?: ApartmentLabelDTO[] | undefined;\n}\n\nexport class ApartmentInvitationDTO implements IApartmentInvitationDTO {\n apartmentId?: string;\n buildingId?: string;\n floorId?: string | undefined;\n email?: string | undefined;\n status?: ApartmentInvitationStatusEnum;\n\n constructor(data?: IApartmentInvitationDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.apartmentId = _data[\"apartmentId\"];\n this.buildingId = _data[\"buildingId\"];\n this.floorId = _data[\"floorId\"];\n this.email = _data[\"email\"];\n this.status = _data[\"status\"];\n }\n }\n\n static fromJS(data: any): ApartmentInvitationDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ApartmentInvitationDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"apartmentId\"] = this.apartmentId;\n data[\"buildingId\"] = this.buildingId;\n data[\"floorId\"] = this.floorId;\n data[\"email\"] = this.email;\n data[\"status\"] = this.status;\n return data; \n }\n}\n\nexport interface IApartmentInvitationDTO {\n apartmentId?: string;\n buildingId?: string;\n floorId?: string | undefined;\n email?: string | undefined;\n status?: ApartmentInvitationStatusEnum;\n}\n\n/** 0 = Pending 1 = Confirmed */\nexport enum ApartmentInvitationStatusEnum {\n Pending = 0,\n Confirmed = 1,\n}\n\nexport class ApartmentLabelDTO implements IApartmentLabelDTO {\n labelId?: string;\n surname?: string | undefined;\n name?: string | undefined;\n companyName?: string | undefined;\n information?: string | undefined;\n houseHolder?: boolean;\n manuallyEdited?: boolean;\n isPrivate?: boolean;\n callingCode?: string | undefined;\n\n constructor(data?: IApartmentLabelDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.labelId = _data[\"labelId\"];\n this.surname = _data[\"surname\"];\n this.name = _data[\"name\"];\n this.companyName = _data[\"companyName\"];\n this.information = _data[\"information\"];\n this.houseHolder = _data[\"houseHolder\"];\n this.manuallyEdited = _data[\"manuallyEdited\"];\n this.isPrivate = _data[\"isPrivate\"];\n this.callingCode = _data[\"callingCode\"];\n }\n }\n\n static fromJS(data: any): ApartmentLabelDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ApartmentLabelDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"labelId\"] = this.labelId;\n data[\"surname\"] = this.surname;\n data[\"name\"] = this.name;\n data[\"companyName\"] = this.companyName;\n data[\"information\"] = this.information;\n data[\"houseHolder\"] = this.houseHolder;\n data[\"manuallyEdited\"] = this.manuallyEdited;\n data[\"isPrivate\"] = this.isPrivate;\n data[\"callingCode\"] = this.callingCode;\n return data; \n }\n}\n\nexport interface IApartmentLabelDTO {\n labelId?: string;\n surname?: string | undefined;\n name?: string | undefined;\n companyName?: string | undefined;\n information?: string | undefined;\n houseHolder?: boolean;\n manuallyEdited?: boolean;\n isPrivate?: boolean;\n callingCode?: string | undefined;\n}\n\nexport class BadgeDTO implements IBadgeDTO {\n badgeCode?: string | undefined;\n apartment?: ApartmentDTO;\n gateGuest?: GateGuestDTO;\n\n constructor(data?: IBadgeDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.badgeCode = _data[\"badgeCode\"];\n this.apartment = _data[\"apartment\"] ? ApartmentDTO.fromJS(_data[\"apartment\"]) : undefined;\n this.gateGuest = _data[\"gateGuest\"] ? GateGuestDTO.fromJS(_data[\"gateGuest\"]) : undefined;\n }\n }\n\n static fromJS(data: any): BadgeDTO {\n data = typeof data === 'object' ? data : {};\n let result = new BadgeDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"badgeCode\"] = this.badgeCode;\n data[\"apartment\"] = this.apartment ? this.apartment.toJSON() : undefined;\n data[\"gateGuest\"] = this.gateGuest ? this.gateGuest.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IBadgeDTO {\n badgeCode?: string | undefined;\n apartment?: ApartmentDTO;\n gateGuest?: GateGuestDTO;\n}\n\nexport class BaseShuttersCommandSettingsObjectDTO implements IBaseShuttersCommandSettingsObjectDTO {\n shutterMode?: ShutterMode;\n\n constructor(data?: IBaseShuttersCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.shutterMode = _data[\"shutterMode\"];\n }\n }\n\n static fromJS(data: any): BaseShuttersCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new BaseShuttersCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"shutterMode\"] = this.shutterMode;\n return data; \n }\n}\n\nexport interface IBaseShuttersCommandSettingsObjectDTO {\n shutterMode?: ShutterMode;\n}\n\nexport class BaseShuttersCommandSettingsResult implements IBaseShuttersCommandSettingsResult {\n shutterMode?: ShutterMode;\n\n constructor(data?: IBaseShuttersCommandSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.shutterMode = _data[\"shutterMode\"];\n }\n }\n\n static fromJS(data: any): BaseShuttersCommandSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new BaseShuttersCommandSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"shutterMode\"] = this.shutterMode;\n return data; \n }\n}\n\nexport interface IBaseShuttersCommandSettingsResult {\n shutterMode?: ShutterMode;\n}\n\n/** 0 = None 1 = Dimmer 2 = ColorTemperature 4 = Color 8 = Color1 16 = Color2 */\nexport enum BitmaskDaliLoadTypes {\n None = 0,\n Dimmer = 1,\n ColorTemperature = 2,\n Color = 4,\n Color1 = 8,\n Color2 = 16,\n}\n\nexport class BuildingCreateDTO implements IBuildingCreateDTO {\n buildingId?: string | undefined;\n name?: string | undefined;\n apartmentsCount?: number;\n\n constructor(data?: IBuildingCreateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.buildingId = _data[\"buildingId\"];\n this.name = _data[\"name\"];\n this.apartmentsCount = _data[\"apartmentsCount\"];\n }\n }\n\n static fromJS(data: any): BuildingCreateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new BuildingCreateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"buildingId\"] = this.buildingId;\n data[\"name\"] = this.name;\n data[\"apartmentsCount\"] = this.apartmentsCount;\n return data; \n }\n}\n\nexport interface IBuildingCreateDTO {\n buildingId?: string | undefined;\n name?: string | undefined;\n apartmentsCount?: number;\n}\n\nexport class BuildingDTO implements IBuildingDTO {\n buildingId?: string;\n index?: string | undefined;\n name?: string | undefined;\n risers?: RiserDTO[] | undefined;\n floors?: FloorDTO[] | undefined;\n apartments?: ApartmentDTO[] | undefined;\n\n constructor(data?: IBuildingDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.buildingId = _data[\"buildingId\"];\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"risers\"])) {\n this.risers = [] as any;\n for (let item of _data[\"risers\"])\n this.risers!.push(RiserDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"floors\"])) {\n this.floors = [] as any;\n for (let item of _data[\"floors\"])\n this.floors!.push(FloorDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"apartments\"])) {\n this.apartments = [] as any;\n for (let item of _data[\"apartments\"])\n this.apartments!.push(ApartmentDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): BuildingDTO {\n data = typeof data === 'object' ? data : {};\n let result = new BuildingDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"buildingId\"] = this.buildingId;\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n if (Array.isArray(this.risers)) {\n data[\"risers\"] = [];\n for (let item of this.risers)\n data[\"risers\"].push(item.toJSON());\n }\n if (Array.isArray(this.floors)) {\n data[\"floors\"] = [];\n for (let item of this.floors)\n data[\"floors\"].push(item.toJSON());\n }\n if (Array.isArray(this.apartments)) {\n data[\"apartments\"] = [];\n for (let item of this.apartments)\n data[\"apartments\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IBuildingDTO {\n buildingId?: string;\n index?: string | undefined;\n name?: string | undefined;\n risers?: RiserDTO[] | undefined;\n floors?: FloorDTO[] | undefined;\n apartments?: ApartmentDTO[] | undefined;\n}\n\nexport class ButtonTrigger extends Trigger implements IButtonTrigger {\n devices?: Device[] | undefined;\n\n constructor(data?: IButtonTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ButtonTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new ButtonTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IButtonTrigger extends ITrigger {\n devices?: Device[] | undefined;\n}\n\nexport class CallingCodeDTO implements ICallingCodeDTO {\n buildingCode?: string | undefined;\n riserCode?: string | undefined;\n floorCode?: string | undefined;\n apartmentCode?: string | undefined;\n riserDoubleChars?: boolean;\n floorDoubleChars?: boolean;\n apartmentDoubleChars?: boolean;\n\n constructor(data?: ICallingCodeDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.buildingCode = _data[\"buildingCode\"];\n this.riserCode = _data[\"riserCode\"];\n this.floorCode = _data[\"floorCode\"];\n this.apartmentCode = _data[\"apartmentCode\"];\n this.riserDoubleChars = _data[\"riserDoubleChars\"];\n this.floorDoubleChars = _data[\"floorDoubleChars\"];\n this.apartmentDoubleChars = _data[\"apartmentDoubleChars\"];\n }\n }\n\n static fromJS(data: any): CallingCodeDTO {\n data = typeof data === 'object' ? data : {};\n let result = new CallingCodeDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"buildingCode\"] = this.buildingCode;\n data[\"riserCode\"] = this.riserCode;\n data[\"floorCode\"] = this.floorCode;\n data[\"apartmentCode\"] = this.apartmentCode;\n data[\"riserDoubleChars\"] = this.riserDoubleChars;\n data[\"floorDoubleChars\"] = this.floorDoubleChars;\n data[\"apartmentDoubleChars\"] = this.apartmentDoubleChars;\n return data; \n }\n}\n\nexport interface ICallingCodeDTO {\n buildingCode?: string | undefined;\n riserCode?: string | undefined;\n floorCode?: string | undefined;\n apartmentCode?: string | undefined;\n riserDoubleChars?: boolean;\n floorDoubleChars?: boolean;\n apartmentDoubleChars?: boolean;\n}\n\nexport class CameraFunction extends VdeFunction implements ICameraFunction {\n type?: CameraType;\n\n constructor(data?: ICameraFunction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): CameraFunction {\n data = typeof data === 'object' ? data : {};\n let result = new CameraFunction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ICameraFunction extends IVdeFunction {\n type?: CameraType;\n}\n\n/** 0 = Private 1 = Public 2 = TVCC */\nexport enum CameraType {\n Private = 0,\n Public = 1,\n TVCC = 2,\n}\n\nexport class Color implements IColor {\n readonly r?: number;\n readonly g?: number;\n readonly b?: number;\n readonly a?: number;\n readonly isKnownColor?: boolean;\n readonly isEmpty?: boolean;\n readonly isNamedColor?: boolean;\n readonly isSystemColor?: boolean;\n readonly name?: string | undefined;\n\n constructor(data?: IColor) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).r = _data[\"r\"];\n (this).g = _data[\"g\"];\n (this).b = _data[\"b\"];\n (this).a = _data[\"a\"];\n (this).isKnownColor = _data[\"isKnownColor\"];\n (this).isEmpty = _data[\"isEmpty\"];\n (this).isNamedColor = _data[\"isNamedColor\"];\n (this).isSystemColor = _data[\"isSystemColor\"];\n (this).name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): Color {\n data = typeof data === 'object' ? data : {};\n let result = new Color();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"r\"] = this.r;\n data[\"g\"] = this.g;\n data[\"b\"] = this.b;\n data[\"a\"] = this.a;\n data[\"isKnownColor\"] = this.isKnownColor;\n data[\"isEmpty\"] = this.isEmpty;\n data[\"isNamedColor\"] = this.isNamedColor;\n data[\"isSystemColor\"] = this.isSystemColor;\n data[\"name\"] = this.name;\n return data; \n }\n}\n\nexport interface IColor {\n r?: number;\n g?: number;\n b?: number;\n a?: number;\n isKnownColor?: boolean;\n isEmpty?: boolean;\n isNamedColor?: boolean;\n isSystemColor?: boolean;\n name?: string | undefined;\n}\n\nexport class ColoredLightExtDevice extends ExtDevice implements IColoredLightExtDevice {\n coloredLightType?: ColoredLightType;\n readonly philipsHueBridge?: string | undefined;\n readonly philipsHueLamp?: string | undefined;\n readonly philipsHueLampName?: string | undefined;\n readonly lifxLamp?: string | undefined;\n readonly dmxMacAddress?: string | undefined;\n readonly dmxNode?: string | undefined;\n\n constructor(data?: IColoredLightExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.coloredLightType = _data[\"coloredLightType\"];\n (this).philipsHueBridge = _data[\"philipsHueBridge\"];\n (this).philipsHueLamp = _data[\"philipsHueLamp\"];\n (this).philipsHueLampName = _data[\"philipsHueLampName\"];\n (this).lifxLamp = _data[\"lifxLamp\"];\n (this).dmxMacAddress = _data[\"dmxMacAddress\"];\n (this).dmxNode = _data[\"dmxNode\"];\n }\n }\n\n static fromJS(data: any): ColoredLightExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new ColoredLightExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"coloredLightType\"] = this.coloredLightType;\n data[\"philipsHueBridge\"] = this.philipsHueBridge;\n data[\"philipsHueLamp\"] = this.philipsHueLamp;\n data[\"philipsHueLampName\"] = this.philipsHueLampName;\n data[\"lifxLamp\"] = this.lifxLamp;\n data[\"dmxMacAddress\"] = this.dmxMacAddress;\n data[\"dmxNode\"] = this.dmxNode;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IColoredLightExtDevice extends IExtDevice {\n coloredLightType?: ColoredLightType;\n philipsHueBridge?: string | undefined;\n philipsHueLamp?: string | undefined;\n philipsHueLampName?: string | undefined;\n lifxLamp?: string | undefined;\n dmxMacAddress?: string | undefined;\n dmxNode?: string | undefined;\n}\n\n/** 0 = None 1 = PhilipsHue 2 = Lifx 3 = Dmx */\nexport enum ColoredLightType {\n None = 0,\n PhilipsHue = 1,\n Lifx = 2,\n Dmx = 3,\n}\n\n/** 0 = None 1 = Up 2 = Down */\nexport enum CommandDirection {\n None = 0,\n Up = 1,\n Down = 2,\n}\n\n/** 0 = None 1 = Generic1 2 = Generic2 3 = Generic3 4 = Generic4 5 = Generic5 6 = Generic6 7 = Generic7 8 = Generic8 9 = Generic9 10 = Day 11 = Night 12 = Entrance 13 = Exit 14 = Key 15 = Fan 16 = Ring 17 = A 18 = B 19 = C 20 = D 21 = E 22 = F 23 = G 24 = H 25 = I 26 = J 27 = K 28 = L 29 = M 30 = N 31 = O 32 = P 33 = Q 34 = R 35 = S 36 = T 37 = U 38 = V 39 = W 40 = X 41 = Y 42 = Z 43 = Zero 44 = One 45 = Two 46 = Three 47 = Four 48 = Five 49 = Six 50 = Seven 51 = Eight 52 = Nine 53 = DefaultLoad 54 = Disabled1M 55 = Disabled2M 56 = Disabled3M 57 = LightGroup 58 = Shutter 59 = DimmerP2P 60 = DimmerGroup 61 = Player 62 = Disabled1Mb 63 = Disabled3Mb 64 = C_wrong */\nexport enum CommandIcon {\n None = 0,\n Generic1 = 1,\n Generic2 = 2,\n Generic3 = 3,\n Generic4 = 4,\n Generic5 = 5,\n Generic6 = 6,\n Generic7 = 7,\n Generic8 = 8,\n Generic9 = 9,\n Day = 10,\n Night = 11,\n Entrance = 12,\n Exit = 13,\n Key = 14,\n Fan = 15,\n Ring = 16,\n A = 17,\n B = 18,\n C = 19,\n D = 20,\n E = 21,\n F = 22,\n G = 23,\n H = 24,\n I = 25,\n J = 26,\n K = 27,\n L = 28,\n M = 29,\n N = 30,\n O = 31,\n P = 32,\n Q = 33,\n R = 34,\n S = 35,\n T = 36,\n U = 37,\n V = 38,\n W = 39,\n X = 40,\n Y = 41,\n Z = 42,\n Zero = 43,\n One = 44,\n Two = 45,\n Three = 46,\n Four = 47,\n Five = 48,\n Six = 49,\n Seven = 50,\n Eight = 51,\n Nine = 52,\n DefaultLoad = 53,\n Disabled1M = 54,\n Disabled2M = 55,\n Disabled3M = 56,\n LightGroup = 57,\n Shutter = 58,\n DimmerP2P = 59,\n DimmerGroup = 60,\n Player = 61,\n Disabled1Mb = 62,\n Disabled3Mb = 63,\n C_wrong = 64,\n}\n\n/** 0 = HalfSecond 1 = TwoSecond */\nexport enum CommandOpeningTime {\n HalfSecond = 0,\n TwoSecond = 1,\n}\n\nexport class CommandSettings implements ICommandSettings {\n\n constructor(data?: ICommandSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n }\n\n static fromJS(data: any): CommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new CommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n return data; \n }\n}\n\nexport interface ICommandSettings {\n}\n\n/** 0 = None 1 = Thermo 2 = Probe 3 = Actuator 4 = ShutterActuator 5 = DimmerActuator 6 = Command 7 = ShutterCommand 8 = ShutterActuatorCommand 9 = DimmerCommand 10 = SceneCommand 11 = Contact 12 = PlayerCommand 13 = BlindActuator 14 = MusicPlayer 15 = SensorCommand 16 = ColoredLight 17 = Xmeter 18 = DimmerDaliActuator 19 = GatewayDaliActuator 20 = EnergyMeter */\nexport enum ComponentType {\n None = 0,\n Thermo = 1,\n Probe = 2,\n Actuator = 3,\n ShutterActuator = 4,\n DimmerActuator = 5,\n Command = 6,\n ShutterCommand = 7,\n ShutterActuatorCommand = 8,\n DimmerCommand = 9,\n SceneCommand = 10,\n Contact = 11,\n PlayerCommand = 12,\n BlindActuator = 13,\n MusicPlayer = 14,\n SensorCommand = 15,\n ColoredLight = 16,\n Xmeter = 17,\n DimmerDaliActuator = 18,\n GatewayDaliActuator = 19,\n EnergyMeter = 20,\n}\n\n/** 0 = None 1 = NormallyOpen 2 = NormallyClose */\nexport enum ConctactType {\n None = 0,\n NormallyOpen = 1,\n NormallyClose = 2,\n}\n\nexport class ConditionDTO implements IConditionDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n conditionParams?: Condition | undefined;\n\n constructor(data?: IConditionDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.objectName = _data[\"objectName\"];\n this.sceneObjectType = _data[\"sceneObjectType\"];\n this.conditionParams = _data[\"conditionParams\"] ? Condition.fromJS(_data[\"conditionParams\"]) : undefined;\n }\n }\n\n static fromJS(data: any): ConditionDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ConditionDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"objectName\"] = this.objectName;\n data[\"sceneObjectType\"] = this.sceneObjectType;\n data[\"conditionParams\"] = this.conditionParams ? this.conditionParams.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IConditionDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n conditionParams?: Condition | undefined;\n}\n\n/** 0 = None 1 = Mostrine 2 = Preset */\nexport enum ConfigurationType {\n None = 0,\n Mostrine = 1,\n Preset = 2,\n}\n\n/** 0 = NoAction 1 = Protection 2 = Manual 3 = PreviousState */\nexport enum ContactType {\n NoAction = 0,\n Protection = 1,\n Manual = 2,\n PreviousState = 3,\n}\n\n/** 0 = None 1 = DaliDimmer 2 = DaliGateway */\nexport enum DaliType {\n None = 0,\n DaliDimmer = 1,\n DaliGateway = 2,\n}\n\nexport class DateAndTimeTrigger extends Trigger implements IDateAndTimeTrigger {\n time?: string;\n weekDays?: WeekDay[] | undefined;\n\n constructor(data?: IDateAndTimeTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.time = _data[\"time\"];\n if (Array.isArray(_data[\"weekDays\"])) {\n this.weekDays = [] as any;\n for (let item of _data[\"weekDays\"])\n this.weekDays!.push(item);\n }\n }\n }\n\n static fromJS(data: any): DateAndTimeTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new DateAndTimeTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"time\"] = this.time;\n if (Array.isArray(this.weekDays)) {\n data[\"weekDays\"] = [];\n for (let item of this.weekDays)\n data[\"weekDays\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDateAndTimeTrigger extends ITrigger {\n time?: string;\n weekDays?: WeekDay[] | undefined;\n}\n\nexport class DefaultDevicesSettingsDTO implements IDefaultDevicesSettingsDTO {\n deviceUid?: string | undefined;\n thermoProbeSettings?: ThermoProbeSettingsObjectParam;\n shuttersActuatorSettings?: ShuttersActuatorSettingsObjectParam;\n lightsActuatorSettings?: LightsActuatorSettingsObjectDTO;\n lockCommandSettings?: LockCommandSettingsObjectDTO;\n lockActuatorSettings?: LockActuatorSettingsObjectParam;\n lightsCommandSettings?: LightsCommandSettingsObjectDTO;\n shuttersCommandSettings?: ShuttersCommandSettingsObjectDTO;\n selectedCommandIcon?: CommandIcon;\n hasChangeIconButtonVisible?: boolean;\n activeLinksLabel?: string | undefined;\n selectedComponentType?: ComponentType;\n thermoActuatorType?: ThermoActuatorType;\n isAggregateRoomObject?: boolean;\n roomType?: RoomType;\n identifier?: string | undefined;\n\n constructor(data?: IDefaultDevicesSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceUid = _data[\"deviceUid\"];\n this.thermoProbeSettings = _data[\"thermoProbeSettings\"] ? ThermoProbeSettingsObjectParam.fromJS(_data[\"thermoProbeSettings\"]) : undefined;\n this.shuttersActuatorSettings = _data[\"shuttersActuatorSettings\"] ? ShuttersActuatorSettingsObjectParam.fromJS(_data[\"shuttersActuatorSettings\"]) : undefined;\n this.lightsActuatorSettings = _data[\"lightsActuatorSettings\"] ? LightsActuatorSettingsObjectDTO.fromJS(_data[\"lightsActuatorSettings\"]) : undefined;\n this.lockCommandSettings = _data[\"lockCommandSettings\"] ? LockCommandSettingsObjectDTO.fromJS(_data[\"lockCommandSettings\"]) : undefined;\n this.lockActuatorSettings = _data[\"lockActuatorSettings\"] ? LockActuatorSettingsObjectParam.fromJS(_data[\"lockActuatorSettings\"]) : undefined;\n this.lightsCommandSettings = _data[\"lightsCommandSettings\"] ? LightsCommandSettingsObjectDTO.fromJS(_data[\"lightsCommandSettings\"]) : undefined;\n this.shuttersCommandSettings = _data[\"shuttersCommandSettings\"] ? ShuttersCommandSettingsObjectDTO.fromJS(_data[\"shuttersCommandSettings\"]) : undefined;\n this.selectedCommandIcon = _data[\"selectedCommandIcon\"];\n this.hasChangeIconButtonVisible = _data[\"hasChangeIconButtonVisible\"];\n this.activeLinksLabel = _data[\"activeLinksLabel\"];\n this.selectedComponentType = _data[\"selectedComponentType\"];\n this.thermoActuatorType = _data[\"thermoActuatorType\"];\n this.isAggregateRoomObject = _data[\"isAggregateRoomObject\"];\n this.roomType = _data[\"roomType\"];\n this.identifier = _data[\"identifier\"];\n }\n }\n\n static fromJS(data: any): DefaultDevicesSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DefaultDevicesSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceUid\"] = this.deviceUid;\n data[\"thermoProbeSettings\"] = this.thermoProbeSettings ? this.thermoProbeSettings.toJSON() : undefined;\n data[\"shuttersActuatorSettings\"] = this.shuttersActuatorSettings ? this.shuttersActuatorSettings.toJSON() : undefined;\n data[\"lightsActuatorSettings\"] = this.lightsActuatorSettings ? this.lightsActuatorSettings.toJSON() : undefined;\n data[\"lockCommandSettings\"] = this.lockCommandSettings ? this.lockCommandSettings.toJSON() : undefined;\n data[\"lockActuatorSettings\"] = this.lockActuatorSettings ? this.lockActuatorSettings.toJSON() : undefined;\n data[\"lightsCommandSettings\"] = this.lightsCommandSettings ? this.lightsCommandSettings.toJSON() : undefined;\n data[\"shuttersCommandSettings\"] = this.shuttersCommandSettings ? this.shuttersCommandSettings.toJSON() : undefined;\n data[\"selectedCommandIcon\"] = this.selectedCommandIcon;\n data[\"hasChangeIconButtonVisible\"] = this.hasChangeIconButtonVisible;\n data[\"activeLinksLabel\"] = this.activeLinksLabel;\n data[\"selectedComponentType\"] = this.selectedComponentType;\n data[\"thermoActuatorType\"] = this.thermoActuatorType;\n data[\"isAggregateRoomObject\"] = this.isAggregateRoomObject;\n data[\"roomType\"] = this.roomType;\n data[\"identifier\"] = this.identifier;\n return data; \n }\n}\n\nexport interface IDefaultDevicesSettingsDTO {\n deviceUid?: string | undefined;\n thermoProbeSettings?: ThermoProbeSettingsObjectParam;\n shuttersActuatorSettings?: ShuttersActuatorSettingsObjectParam;\n lightsActuatorSettings?: LightsActuatorSettingsObjectDTO;\n lockCommandSettings?: LockCommandSettingsObjectDTO;\n lockActuatorSettings?: LockActuatorSettingsObjectParam;\n lightsCommandSettings?: LightsCommandSettingsObjectDTO;\n shuttersCommandSettings?: ShuttersCommandSettingsObjectDTO;\n selectedCommandIcon?: CommandIcon;\n hasChangeIconButtonVisible?: boolean;\n activeLinksLabel?: string | undefined;\n selectedComponentType?: ComponentType;\n thermoActuatorType?: ThermoActuatorType;\n isAggregateRoomObject?: boolean;\n roomType?: RoomType;\n identifier?: string | undefined;\n}\n\nexport class ObjectAction extends Action implements IObjectAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n sceneShutterState?: SceneShutterState;\n sceneShutterPosition?: number;\n isShutterPositionManagement?: boolean;\n sceneSocketState?: SceneSocketState;\n sceneBlindState?: SceneBlindState;\n sceneLockState?: SceneLockState;\n thermostatStatus?: ThermostatStatus;\n thermostatTypeOfObject?: ThermoTypeOfObject;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermostatTriggerTemperature?: number;\n sceneFancoilState?: SceneFancoilState;\n fancoilSpeed?: number;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceType?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n alarmPin?: string | undefined;\n alarmPartitions?: Action[] | undefined;\n alarmPartitionStatus?: AlarmPartitionStatus;\n alarmSensorStatusScene?: AlarmSensorStatusScene;\n alarmPartitionorSceneId?: string | undefined;\n alarmType?: AlarmType;\n duration?: number | undefined;\n delay?: number | undefined;\n\n constructor(data?: IObjectAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.sceneLightState = _data[\"sceneLightState\"];\n this.dimmerStatus = _data[\"dimmerStatus\"];\n this.dimmerPercentage = _data[\"dimmerPercentage\"];\n this.dimmerFadeIn = _data[\"dimmerFadeIn\"];\n this.dimmerFadeOut = _data[\"dimmerFadeOut\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.workingMode = _data[\"workingMode\"];\n this.oldTemperature = _data[\"oldTemperature\"];\n this.sceneShutterState = _data[\"sceneShutterState\"];\n this.sceneShutterPosition = _data[\"sceneShutterPosition\"];\n this.isShutterPositionManagement = _data[\"isShutterPositionManagement\"];\n this.sceneSocketState = _data[\"sceneSocketState\"];\n this.sceneBlindState = _data[\"sceneBlindState\"];\n this.sceneLockState = _data[\"sceneLockState\"];\n this.thermostatStatus = _data[\"thermostatStatus\"];\n this.thermostatTypeOfObject = _data[\"thermostatTypeOfObject\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n this.thermostatTriggerTemperature = _data[\"thermostatTriggerTemperature\"];\n this.sceneFancoilState = _data[\"sceneFancoilState\"];\n this.fancoilSpeed = _data[\"fancoilSpeed\"];\n this.sceneTowelWarmerState = _data[\"sceneTowelWarmerState\"];\n this.sceneColoredLightsState = _data[\"sceneColoredLightsState\"];\n this.coloredLightsIntensity = _data[\"coloredLightsIntensity\"];\n this.coloredLightsTemperature = _data[\"coloredLightsTemperature\"];\n this.coloredLightsColor = _data[\"coloredLightsColor\"];\n this.scenePlayerState = _data[\"scenePlayerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.playerSourceType = _data[\"playerSourceType\"];\n this.playerSourceId = _data[\"playerSourceId\"];\n this.playerSourceDescription = _data[\"playerSourceDescription\"];\n this.alarmPin = _data[\"alarmPin\"];\n if (Array.isArray(_data[\"alarmPartitions\"])) {\n this.alarmPartitions = [] as any;\n for (let item of _data[\"alarmPartitions\"])\n this.alarmPartitions!.push(Action.fromJS(item));\n }\n this.alarmPartitionStatus = _data[\"alarmPartitionStatus\"];\n this.alarmSensorStatusScene = _data[\"alarmSensorStatusScene\"];\n this.alarmPartitionorSceneId = _data[\"alarmPartitionorSceneId\"];\n this.alarmType = _data[\"alarmType\"];\n this.duration = _data[\"duration\"];\n this.delay = _data[\"delay\"];\n }\n }\n\n static fromJS(data: any): ObjectAction {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"sceneLightState\"] = this.sceneLightState;\n data[\"dimmerStatus\"] = this.dimmerStatus;\n data[\"dimmerPercentage\"] = this.dimmerPercentage;\n data[\"dimmerFadeIn\"] = this.dimmerFadeIn;\n data[\"dimmerFadeOut\"] = this.dimmerFadeOut;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"workingMode\"] = this.workingMode;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"sceneShutterState\"] = this.sceneShutterState;\n data[\"sceneShutterPosition\"] = this.sceneShutterPosition;\n data[\"isShutterPositionManagement\"] = this.isShutterPositionManagement;\n data[\"sceneSocketState\"] = this.sceneSocketState;\n data[\"sceneBlindState\"] = this.sceneBlindState;\n data[\"sceneLockState\"] = this.sceneLockState;\n data[\"thermostatStatus\"] = this.thermostatStatus;\n data[\"thermostatTypeOfObject\"] = this.thermostatTypeOfObject;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n data[\"thermostatTriggerTemperature\"] = this.thermostatTriggerTemperature;\n data[\"sceneFancoilState\"] = this.sceneFancoilState;\n data[\"fancoilSpeed\"] = this.fancoilSpeed;\n data[\"sceneTowelWarmerState\"] = this.sceneTowelWarmerState;\n data[\"sceneColoredLightsState\"] = this.sceneColoredLightsState;\n data[\"coloredLightsIntensity\"] = this.coloredLightsIntensity;\n data[\"coloredLightsTemperature\"] = this.coloredLightsTemperature;\n data[\"coloredLightsColor\"] = this.coloredLightsColor;\n data[\"scenePlayerState\"] = this.scenePlayerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"playerSourceType\"] = this.playerSourceType;\n data[\"playerSourceId\"] = this.playerSourceId;\n data[\"playerSourceDescription\"] = this.playerSourceDescription;\n data[\"alarmPin\"] = this.alarmPin;\n if (Array.isArray(this.alarmPartitions)) {\n data[\"alarmPartitions\"] = [];\n for (let item of this.alarmPartitions)\n data[\"alarmPartitions\"].push(item.toJSON());\n }\n data[\"alarmPartitionStatus\"] = this.alarmPartitionStatus;\n data[\"alarmSensorStatusScene\"] = this.alarmSensorStatusScene;\n data[\"alarmPartitionorSceneId\"] = this.alarmPartitionorSceneId;\n data[\"alarmType\"] = this.alarmType;\n data[\"duration\"] = this.duration;\n data[\"delay\"] = this.delay;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectAction extends IAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n sceneShutterState?: SceneShutterState;\n sceneShutterPosition?: number;\n isShutterPositionManagement?: boolean;\n sceneSocketState?: SceneSocketState;\n sceneBlindState?: SceneBlindState;\n sceneLockState?: SceneLockState;\n thermostatStatus?: ThermostatStatus;\n thermostatTypeOfObject?: ThermoTypeOfObject;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermostatTriggerTemperature?: number;\n sceneFancoilState?: SceneFancoilState;\n fancoilSpeed?: number;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceType?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n alarmPin?: string | undefined;\n alarmPartitions?: Action[] | undefined;\n alarmPartitionStatus?: AlarmPartitionStatus;\n alarmSensorStatusScene?: AlarmSensorStatusScene;\n alarmPartitionorSceneId?: string | undefined;\n alarmType?: AlarmType;\n duration?: number | undefined;\n delay?: number | undefined;\n}\n\nexport class DefaultObjectAction extends ObjectAction implements IDefaultObjectAction {\n isEnabled?: boolean;\n\n constructor(data?: IDefaultObjectAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isEnabled = _data[\"isEnabled\"];\n }\n }\n\n static fromJS(data: any): DefaultObjectAction {\n data = typeof data === 'object' ? data : {};\n let result = new DefaultObjectAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isEnabled\"] = this.isEnabled;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDefaultObjectAction extends IObjectAction {\n isEnabled?: boolean;\n}\n\nexport class DelayValue implements IDelayValue {\n value?: number;\n description?: string | undefined;\n\n constructor(data?: IDelayValue) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.value = _data[\"value\"];\n this.description = _data[\"description\"];\n }\n }\n\n static fromJS(data: any): DelayValue {\n data = typeof data === 'object' ? data : {};\n let result = new DelayValue();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"value\"] = this.value;\n data[\"description\"] = this.description;\n return data; \n }\n}\n\nexport interface IDelayValue {\n value?: number;\n description?: string | undefined;\n}\n\n/** 0 = Numbers 1 = Letters */\nexport enum DenominationMode {\n Numbers = 0,\n Letters = 1,\n}\n\nexport class Device implements IDevice {\n uid?: string | undefined;\n id?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n hasSubModule?: boolean;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isF422Acompatible?: boolean;\n problemType?: ProblemType;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n thermoSystemControlType?: SystemControlType[] | undefined;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n interface?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n hasChanges?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n firmwareVersion?: Version;\n\n constructor(data?: IDevice) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.uid = _data[\"uid\"];\n this.id = _data[\"id\"];\n this.model = _data[\"model\"];\n this.modelObject = _data[\"modelObject\"];\n this.hasSubModule = _data[\"hasSubModule\"];\n this.isManaged = _data[\"isManaged\"];\n this.isShutterWithPosition = _data[\"isShutterWithPosition\"];\n this.canHandlePreset = _data[\"canHandlePreset\"];\n this.isAnomaly = _data[\"isAnomaly\"];\n this.isBlocking = _data[\"isBlocking\"];\n this.isF422Acompatible = _data[\"isF422Acompatible\"];\n this.problemType = _data[\"problemType\"];\n this.isIgnored = _data[\"isIgnored\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(Slot.fromJS(item));\n }\n this.functionType = _data[\"functionType\"];\n this.systemType = _data[\"systemType\"];\n if (Array.isArray(_data[\"componentTypes\"])) {\n this.componentTypes = [] as any;\n for (let item of _data[\"componentTypes\"])\n this.componentTypes!.push(item);\n }\n this.isDoubleDimmer = _data[\"isDoubleDimmer\"];\n this.canHandleDoubleDimmer = _data[\"canHandleDoubleDimmer\"];\n if (Array.isArray(_data[\"thermoSystemControlType\"])) {\n this.thermoSystemControlType = [] as any;\n for (let item of _data[\"thermoSystemControlType\"])\n this.thermoSystemControlType!.push(item);\n }\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.interface = _data[\"interface\"];\n this.ledModality = _data[\"ledModality\"];\n this.hasRefresherFeedback = _data[\"hasRefresherFeedback\"];\n this.hasChanges = _data[\"hasChanges\"];\n this.fwVersion = _data[\"fwVersion\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n this.firmwareVersion = _data[\"firmwareVersion\"] ? Version.fromJS(_data[\"firmwareVersion\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Device {\n data = typeof data === 'object' ? data : {};\n let result = new Device();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"uid\"] = this.uid;\n data[\"id\"] = this.id;\n data[\"model\"] = this.model;\n data[\"modelObject\"] = this.modelObject;\n data[\"hasSubModule\"] = this.hasSubModule;\n data[\"isManaged\"] = this.isManaged;\n data[\"isShutterWithPosition\"] = this.isShutterWithPosition;\n data[\"canHandlePreset\"] = this.canHandlePreset;\n data[\"isAnomaly\"] = this.isAnomaly;\n data[\"isBlocking\"] = this.isBlocking;\n data[\"isF422Acompatible\"] = this.isF422Acompatible;\n data[\"problemType\"] = this.problemType;\n data[\"isIgnored\"] = this.isIgnored;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"functionType\"] = this.functionType;\n data[\"systemType\"] = this.systemType;\n if (Array.isArray(this.componentTypes)) {\n data[\"componentTypes\"] = [];\n for (let item of this.componentTypes)\n data[\"componentTypes\"].push(item);\n }\n data[\"isDoubleDimmer\"] = this.isDoubleDimmer;\n data[\"canHandleDoubleDimmer\"] = this.canHandleDoubleDimmer;\n if (Array.isArray(this.thermoSystemControlType)) {\n data[\"thermoSystemControlType\"] = [];\n for (let item of this.thermoSystemControlType)\n data[\"thermoSystemControlType\"].push(item);\n }\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"interface\"] = this.interface;\n data[\"ledModality\"] = this.ledModality;\n data[\"hasRefresherFeedback\"] = this.hasRefresherFeedback;\n data[\"hasChanges\"] = this.hasChanges;\n data[\"fwVersion\"] = this.fwVersion;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n data[\"firmwareVersion\"] = this.firmwareVersion ? this.firmwareVersion.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IDevice {\n uid?: string | undefined;\n id?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n hasSubModule?: boolean;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isF422Acompatible?: boolean;\n problemType?: ProblemType;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n thermoSystemControlType?: SystemControlType[] | undefined;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n interface?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n hasChanges?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n firmwareVersion?: Version;\n}\n\n/** 0 = None 1 = Min 2 = Max */\nexport enum DeviceBrightness {\n None = 0,\n Min = 1,\n Max = 2,\n}\n\nexport class DeviceDTO implements IDeviceDTO {\n uid?: string | undefined;\n id?: string | undefined;\n name?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n problemType?: ProblemType;\n readonly isActuatorDevice?: boolean;\n readonly isCommandDevice?: boolean;\n readonly isThermostatDevice?: boolean;\n readonly isThermoProbeDevice?: boolean;\n readonly isAssigned?: boolean;\n readonly isAssignedCommand?: boolean;\n readonly isAssignedActuator?: boolean;\n readonly isAssignedActuatorAndCommand?: boolean;\n selectedComponentType?: ComponentType;\n settingsVisibility?: DeviceSettingsVisibilityDTO;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n defaultSettings?: DefaultDevicesSettingsDTO[] | undefined;\n\n constructor(data?: IDeviceDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.uid = _data[\"uid\"];\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.model = _data[\"model\"];\n this.modelObject = _data[\"modelObject\"];\n this.isManaged = _data[\"isManaged\"];\n this.isShutterWithPosition = _data[\"isShutterWithPosition\"];\n this.canHandlePreset = _data[\"canHandlePreset\"];\n this.isAnomaly = _data[\"isAnomaly\"];\n this.isBlocking = _data[\"isBlocking\"];\n this.isIgnored = _data[\"isIgnored\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(Slot.fromJS(item));\n }\n this.functionType = _data[\"functionType\"];\n this.systemType = _data[\"systemType\"];\n if (Array.isArray(_data[\"componentTypes\"])) {\n this.componentTypes = [] as any;\n for (let item of _data[\"componentTypes\"])\n this.componentTypes!.push(item);\n }\n this.isDoubleDimmer = _data[\"isDoubleDimmer\"];\n this.canHandleDoubleDimmer = _data[\"canHandleDoubleDimmer\"];\n this.problemType = _data[\"problemType\"];\n (this).isActuatorDevice = _data[\"isActuatorDevice\"];\n (this).isCommandDevice = _data[\"isCommandDevice\"];\n (this).isThermostatDevice = _data[\"isThermostatDevice\"];\n (this).isThermoProbeDevice = _data[\"isThermoProbeDevice\"];\n (this).isAssigned = _data[\"isAssigned\"];\n (this).isAssignedCommand = _data[\"isAssignedCommand\"];\n (this).isAssignedActuator = _data[\"isAssignedActuator\"];\n (this).isAssignedActuatorAndCommand = _data[\"isAssignedActuatorAndCommand\"];\n this.selectedComponentType = _data[\"selectedComponentType\"];\n this.settingsVisibility = _data[\"settingsVisibility\"] ? DeviceSettingsVisibilityDTO.fromJS(_data[\"settingsVisibility\"]) : undefined;\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.hasRefresherFeedback = _data[\"hasRefresherFeedback\"];\n this.fwVersion = _data[\"fwVersion\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n if (Array.isArray(_data[\"defaultSettings\"])) {\n this.defaultSettings = [] as any;\n for (let item of _data[\"defaultSettings\"])\n this.defaultSettings!.push(DefaultDevicesSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): DeviceDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"uid\"] = this.uid;\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"model\"] = this.model;\n data[\"modelObject\"] = this.modelObject;\n data[\"isManaged\"] = this.isManaged;\n data[\"isShutterWithPosition\"] = this.isShutterWithPosition;\n data[\"canHandlePreset\"] = this.canHandlePreset;\n data[\"isAnomaly\"] = this.isAnomaly;\n data[\"isBlocking\"] = this.isBlocking;\n data[\"isIgnored\"] = this.isIgnored;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"functionType\"] = this.functionType;\n data[\"systemType\"] = this.systemType;\n if (Array.isArray(this.componentTypes)) {\n data[\"componentTypes\"] = [];\n for (let item of this.componentTypes)\n data[\"componentTypes\"].push(item);\n }\n data[\"isDoubleDimmer\"] = this.isDoubleDimmer;\n data[\"canHandleDoubleDimmer\"] = this.canHandleDoubleDimmer;\n data[\"problemType\"] = this.problemType;\n data[\"isActuatorDevice\"] = this.isActuatorDevice;\n data[\"isCommandDevice\"] = this.isCommandDevice;\n data[\"isThermostatDevice\"] = this.isThermostatDevice;\n data[\"isThermoProbeDevice\"] = this.isThermoProbeDevice;\n data[\"isAssigned\"] = this.isAssigned;\n data[\"isAssignedCommand\"] = this.isAssignedCommand;\n data[\"isAssignedActuator\"] = this.isAssignedActuator;\n data[\"isAssignedActuatorAndCommand\"] = this.isAssignedActuatorAndCommand;\n data[\"selectedComponentType\"] = this.selectedComponentType;\n data[\"settingsVisibility\"] = this.settingsVisibility ? this.settingsVisibility.toJSON() : undefined;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"hasRefresherFeedback\"] = this.hasRefresherFeedback;\n data[\"fwVersion\"] = this.fwVersion;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n if (Array.isArray(this.defaultSettings)) {\n data[\"defaultSettings\"] = [];\n for (let item of this.defaultSettings)\n data[\"defaultSettings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IDeviceDTO {\n uid?: string | undefined;\n id?: string | undefined;\n name?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n problemType?: ProblemType;\n isActuatorDevice?: boolean;\n isCommandDevice?: boolean;\n isThermostatDevice?: boolean;\n isThermoProbeDevice?: boolean;\n isAssigned?: boolean;\n isAssignedCommand?: boolean;\n isAssignedActuator?: boolean;\n isAssignedActuatorAndCommand?: boolean;\n selectedComponentType?: ComponentType;\n settingsVisibility?: DeviceSettingsVisibilityDTO;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n defaultSettings?: DefaultDevicesSettingsDTO[] | undefined;\n}\n\nexport class DeviceGlobalSettingsDTO implements IDeviceGlobalSettingsDTO {\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n\n constructor(data?: IDeviceGlobalSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.hasRefresherFeedback = _data[\"hasRefresherFeedback\"];\n }\n }\n\n static fromJS(data: any): DeviceGlobalSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceGlobalSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"hasRefresherFeedback\"] = this.hasRefresherFeedback;\n return data; \n }\n}\n\nexport interface IDeviceGlobalSettingsDTO {\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n}\n\n/** 0 = None 1 = AtTouch 2 = Always */\nexport enum DeviceIconsVisibility {\n None = 0,\n AtTouch = 1,\n Always = 2,\n}\n\n/** 0 = On 1 = OnDuringUpdate 2 = Off */\nexport enum DeviceLedModality {\n On = 0,\n OnDuringUpdate = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Min 2 = Med 3 = Max */\nexport enum DeviceProximity {\n None = 0,\n Min = 1,\n Med = 2,\n Max = 3,\n}\n\nexport class DeviceSettingsDTO implements IDeviceSettingsDTO {\n deviceId?: string | undefined;\n lightsActuatorSettings?: LightsActuatorSettingsResultList;\n lightsCommandSettings?: LightsCommandSettingsResultList;\n lockActuatorSettings?: LockActuatorSettingsResult;\n lockCommandSettingsResult?: LockCommandSettingsResultList;\n shutterActuatorSettings?: ShutterActuatorSettingsResult;\n shutterCommandSettings?: ShutterCommandSettingsResultList;\n thermoProbeSettings?: ThermoProbeSettingsResult;\n commandIcon?: CommandIcon;\n\n constructor(data?: IDeviceSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceId = _data[\"deviceId\"];\n this.lightsActuatorSettings = _data[\"lightsActuatorSettings\"] ? LightsActuatorSettingsResultList.fromJS(_data[\"lightsActuatorSettings\"]) : undefined;\n this.lightsCommandSettings = _data[\"lightsCommandSettings\"] ? LightsCommandSettingsResultList.fromJS(_data[\"lightsCommandSettings\"]) : undefined;\n this.lockActuatorSettings = _data[\"lockActuatorSettings\"] ? LockActuatorSettingsResult.fromJS(_data[\"lockActuatorSettings\"]) : undefined;\n this.lockCommandSettingsResult = _data[\"lockCommandSettingsResult\"] ? LockCommandSettingsResultList.fromJS(_data[\"lockCommandSettingsResult\"]) : undefined;\n this.shutterActuatorSettings = _data[\"shutterActuatorSettings\"] ? ShutterActuatorSettingsResult.fromJS(_data[\"shutterActuatorSettings\"]) : undefined;\n this.shutterCommandSettings = _data[\"shutterCommandSettings\"] ? ShutterCommandSettingsResultList.fromJS(_data[\"shutterCommandSettings\"]) : undefined;\n this.thermoProbeSettings = _data[\"thermoProbeSettings\"] ? ThermoProbeSettingsResult.fromJS(_data[\"thermoProbeSettings\"]) : undefined;\n this.commandIcon = _data[\"commandIcon\"];\n }\n }\n\n static fromJS(data: any): DeviceSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceId\"] = this.deviceId;\n data[\"lightsActuatorSettings\"] = this.lightsActuatorSettings ? this.lightsActuatorSettings.toJSON() : undefined;\n data[\"lightsCommandSettings\"] = this.lightsCommandSettings ? this.lightsCommandSettings.toJSON() : undefined;\n data[\"lockActuatorSettings\"] = this.lockActuatorSettings ? this.lockActuatorSettings.toJSON() : undefined;\n data[\"lockCommandSettingsResult\"] = this.lockCommandSettingsResult ? this.lockCommandSettingsResult.toJSON() : undefined;\n data[\"shutterActuatorSettings\"] = this.shutterActuatorSettings ? this.shutterActuatorSettings.toJSON() : undefined;\n data[\"shutterCommandSettings\"] = this.shutterCommandSettings ? this.shutterCommandSettings.toJSON() : undefined;\n data[\"thermoProbeSettings\"] = this.thermoProbeSettings ? this.thermoProbeSettings.toJSON() : undefined;\n data[\"commandIcon\"] = this.commandIcon;\n return data; \n }\n}\n\nexport interface IDeviceSettingsDTO {\n deviceId?: string | undefined;\n lightsActuatorSettings?: LightsActuatorSettingsResultList;\n lightsCommandSettings?: LightsCommandSettingsResultList;\n lockActuatorSettings?: LockActuatorSettingsResult;\n lockCommandSettingsResult?: LockCommandSettingsResultList;\n shutterActuatorSettings?: ShutterActuatorSettingsResult;\n shutterCommandSettings?: ShutterCommandSettingsResultList;\n thermoProbeSettings?: ThermoProbeSettingsResult;\n commandIcon?: CommandIcon;\n}\n\nexport class DeviceSettingsVisibilityDTO implements IDeviceSettingsVisibilityDTO {\n hasSettings?: boolean;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntensity?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n\n constructor(data?: IDeviceSettingsVisibilityDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasSettings = _data[\"hasSettings\"];\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntensity = _data[\"hasLedIntensity\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n }\n }\n\n static fromJS(data: any): DeviceSettingsVisibilityDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceSettingsVisibilityDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasSettings\"] = this.hasSettings;\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntensity\"] = this.hasLedIntensity;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n return data; \n }\n}\n\nexport interface IDeviceSettingsVisibilityDTO {\n hasSettings?: boolean;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntensity?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n}\n\n/** 0 = ALL 1 = ACTUATORS 2 = COMMANDS 3 = THERMO 4 = THERMO_PROBE 5 = THERMO_HEATING_ACTUATORS 6 = THERMO_COOLING_ACTUATORS 7 = THERMO_HEATING_PUMPS 8 = THERMO_COOLING_PUMPS 9 = THERMO_SHARED_ACTUATORS 10 = THERMO_SHARED_PUMPS */\nexport enum DevicesFilterByType {\n ALL = 0,\n ACTUATORS = 1,\n COMMANDS = 2,\n THERMO = 3,\n THERMO_PROBE = 4,\n THERMO_HEATING_ACTUATORS = 5,\n THERMO_COOLING_ACTUATORS = 6,\n THERMO_HEATING_PUMPS = 7,\n THERMO_COOLING_PUMPS = 8,\n THERMO_SHARED_ACTUATORS = 9,\n THERMO_SHARED_PUMPS = 10,\n}\n\nexport class DimmerDaliActuatorSettings extends ActuatorSettings implements IDimmerDaliActuatorSettings {\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n hasPUL?: boolean;\n loadDaliTypes?: BitmaskDaliLoadTypes[] | undefined;\n\n constructor(data?: IDimmerDaliActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.loadType = _data[\"loadType\"];\n this.hasPUL = _data[\"hasPUL\"];\n if (Array.isArray(_data[\"loadDaliTypes\"])) {\n this.loadDaliTypes = [] as any;\n for (let item of _data[\"loadDaliTypes\"])\n this.loadDaliTypes!.push(item);\n }\n }\n }\n\n static fromJS(data: any): DimmerDaliActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new DimmerDaliActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"loadType\"] = this.loadType;\n data[\"hasPUL\"] = this.hasPUL;\n if (Array.isArray(this.loadDaliTypes)) {\n data[\"loadDaliTypes\"] = [];\n for (let item of this.loadDaliTypes)\n data[\"loadDaliTypes\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDimmerDaliActuatorSettings extends IActuatorSettings {\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n hasPUL?: boolean;\n loadDaliTypes?: BitmaskDaliLoadTypes[] | undefined;\n}\n\n/** 0 = None 1 = On 2 = Off 3 = Dimmer */\nexport enum DimmerStatus {\n None = 0,\n On = 1,\n Off = 2,\n Dimmer = 3,\n}\n\n/** 0 = None 1 = Any 2 = WhiteTemperature 3 = ColorTemperature */\nexport enum DimmerWorkingMode {\n None = 0,\n Any = 1,\n WhiteTemperature = 2,\n ColorTemperature = 3,\n}\n\nexport class EMailAction extends Action implements IEMailAction {\n\n constructor(data?: IEMailAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n }\n\n static fromJS(data: any): EMailAction {\n data = typeof data === 'object' ? data : {};\n let result = new EMailAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IEMailAction extends IAction {\n}\n\nexport class EPDeviceConfigDTO implements IEPDeviceConfigDTO {\n deviceName?: string | undefined;\n pScsAddress?: number;\n lockTimingValue?: number;\n hasMultipleCall?: boolean;\n callRepetitions?: number;\n isSelectedStairCaseLight?: boolean;\n isSelectedGeneral?: boolean;\n hasLockReleaseTone?: boolean;\n hasCallTone?: boolean;\n typeOfCallSignalValue?: number;\n isSelectedScreenInterfaceAutomatic?: boolean;\n isSelectedScreenInterfaceDark?: boolean;\n isSelectedScreenInterfaceLight?: boolean;\n isSelectedLedCameraLightingAlwaysOn?: boolean;\n isSelectedLedCameraLightingDuringTheCall?: boolean;\n isSelectedHomePage?: boolean;\n homePageMessage?: string | undefined;\n\n constructor(data?: IEPDeviceConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceName = _data[\"deviceName\"];\n this.pScsAddress = _data[\"pScsAddress\"];\n this.lockTimingValue = _data[\"lockTimingValue\"];\n this.hasMultipleCall = _data[\"hasMultipleCall\"];\n this.callRepetitions = _data[\"callRepetitions\"];\n this.isSelectedStairCaseLight = _data[\"isSelectedStairCaseLight\"];\n this.isSelectedGeneral = _data[\"isSelectedGeneral\"];\n this.hasLockReleaseTone = _data[\"hasLockReleaseTone\"];\n this.hasCallTone = _data[\"hasCallTone\"];\n this.typeOfCallSignalValue = _data[\"typeOfCallSignalValue\"];\n this.isSelectedScreenInterfaceAutomatic = _data[\"isSelectedScreenInterfaceAutomatic\"];\n this.isSelectedScreenInterfaceDark = _data[\"isSelectedScreenInterfaceDark\"];\n this.isSelectedScreenInterfaceLight = _data[\"isSelectedScreenInterfaceLight\"];\n this.isSelectedLedCameraLightingAlwaysOn = _data[\"isSelectedLedCameraLightingAlwaysOn\"];\n this.isSelectedLedCameraLightingDuringTheCall = _data[\"isSelectedLedCameraLightingDuringTheCall\"];\n this.isSelectedHomePage = _data[\"isSelectedHomePage\"];\n this.homePageMessage = _data[\"homePageMessage\"];\n }\n }\n\n static fromJS(data: any): EPDeviceConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EPDeviceConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceName\"] = this.deviceName;\n data[\"pScsAddress\"] = this.pScsAddress;\n data[\"lockTimingValue\"] = this.lockTimingValue;\n data[\"hasMultipleCall\"] = this.hasMultipleCall;\n data[\"callRepetitions\"] = this.callRepetitions;\n data[\"isSelectedStairCaseLight\"] = this.isSelectedStairCaseLight;\n data[\"isSelectedGeneral\"] = this.isSelectedGeneral;\n data[\"hasLockReleaseTone\"] = this.hasLockReleaseTone;\n data[\"hasCallTone\"] = this.hasCallTone;\n data[\"typeOfCallSignalValue\"] = this.typeOfCallSignalValue;\n data[\"isSelectedScreenInterfaceAutomatic\"] = this.isSelectedScreenInterfaceAutomatic;\n data[\"isSelectedScreenInterfaceDark\"] = this.isSelectedScreenInterfaceDark;\n data[\"isSelectedScreenInterfaceLight\"] = this.isSelectedScreenInterfaceLight;\n data[\"isSelectedLedCameraLightingAlwaysOn\"] = this.isSelectedLedCameraLightingAlwaysOn;\n data[\"isSelectedLedCameraLightingDuringTheCall\"] = this.isSelectedLedCameraLightingDuringTheCall;\n data[\"isSelectedHomePage\"] = this.isSelectedHomePage;\n data[\"homePageMessage\"] = this.homePageMessage;\n return data; \n }\n}\n\nexport interface IEPDeviceConfigDTO {\n deviceName?: string | undefined;\n pScsAddress?: number;\n lockTimingValue?: number;\n hasMultipleCall?: boolean;\n callRepetitions?: number;\n isSelectedStairCaseLight?: boolean;\n isSelectedGeneral?: boolean;\n hasLockReleaseTone?: boolean;\n hasCallTone?: boolean;\n typeOfCallSignalValue?: number;\n isSelectedScreenInterfaceAutomatic?: boolean;\n isSelectedScreenInterfaceDark?: boolean;\n isSelectedScreenInterfaceLight?: boolean;\n isSelectedLedCameraLightingAlwaysOn?: boolean;\n isSelectedLedCameraLightingDuringTheCall?: boolean;\n isSelectedHomePage?: boolean;\n homePageMessage?: string | undefined;\n}\n\nexport class EPDeviceDTO implements IEPDeviceDTO {\n deviceId?: string;\n scsAddr?: number;\n type?: number;\n readonly isConfigured?: boolean;\n readonly isProvisioned?: boolean;\n cloudId?: string | undefined;\n dspMacAddress?: string | undefined;\n cloudPublicKey?: string | undefined;\n masterSecretKey?: string | undefined;\n config?: EPDeviceConfigDTO;\n switchboardId?: string;\n\n constructor(data?: IEPDeviceDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceId = _data[\"deviceId\"];\n this.scsAddr = _data[\"scsAddr\"];\n this.type = _data[\"type\"];\n (this).isConfigured = _data[\"isConfigured\"];\n (this).isProvisioned = _data[\"isProvisioned\"];\n this.cloudId = _data[\"cloudId\"];\n this.dspMacAddress = _data[\"dspMacAddress\"];\n this.cloudPublicKey = _data[\"cloudPublicKey\"];\n this.masterSecretKey = _data[\"masterSecretKey\"];\n this.config = _data[\"config\"] ? EPDeviceConfigDTO.fromJS(_data[\"config\"]) : undefined;\n this.switchboardId = _data[\"switchboardId\"];\n }\n }\n\n static fromJS(data: any): EPDeviceDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EPDeviceDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceId\"] = this.deviceId;\n data[\"scsAddr\"] = this.scsAddr;\n data[\"type\"] = this.type;\n data[\"isConfigured\"] = this.isConfigured;\n data[\"isProvisioned\"] = this.isProvisioned;\n data[\"cloudId\"] = this.cloudId;\n data[\"dspMacAddress\"] = this.dspMacAddress;\n data[\"cloudPublicKey\"] = this.cloudPublicKey;\n data[\"masterSecretKey\"] = this.masterSecretKey;\n data[\"config\"] = this.config ? this.config.toJSON() : undefined;\n data[\"switchboardId\"] = this.switchboardId;\n return data; \n }\n}\n\nexport interface IEPDeviceDTO {\n deviceId?: string;\n scsAddr?: number;\n type?: number;\n isConfigured?: boolean;\n isProvisioned?: boolean;\n cloudId?: string | undefined;\n dspMacAddress?: string | undefined;\n cloudPublicKey?: string | undefined;\n masterSecretKey?: string | undefined;\n config?: EPDeviceConfigDTO;\n switchboardId?: string;\n}\n\nexport class EditAggregateCommandDTO implements IEditAggregateCommandDTO {\n aggregateCommand?: AggregateCommandDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n\n constructor(data?: IEditAggregateCommandDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.aggregateCommand = _data[\"aggregateCommand\"] ? AggregateCommandDTO.fromJS(_data[\"aggregateCommand\"]) : undefined;\n if (Array.isArray(_data[\"deviceSettings\"])) {\n this.deviceSettings = [] as any;\n for (let item of _data[\"deviceSettings\"])\n this.deviceSettings!.push(DeviceSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): EditAggregateCommandDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EditAggregateCommandDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"aggregateCommand\"] = this.aggregateCommand ? this.aggregateCommand.toJSON() : undefined;\n if (Array.isArray(this.deviceSettings)) {\n data[\"deviceSettings\"] = [];\n for (let item of this.deviceSettings)\n data[\"deviceSettings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IEditAggregateCommandDTO {\n aggregateCommand?: AggregateCommandDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n}\n\nexport class EditRoomObjectDTO implements IEditRoomObjectDTO {\n roomObject?: AddRoomObjectDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n\n constructor(data?: IEditRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.roomObject = _data[\"roomObject\"] ? AddRoomObjectDTO.fromJS(_data[\"roomObject\"]) : undefined;\n if (Array.isArray(_data[\"deviceSettings\"])) {\n this.deviceSettings = [] as any;\n for (let item of _data[\"deviceSettings\"])\n this.deviceSettings!.push(DeviceSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): EditRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EditRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"roomObject\"] = this.roomObject ? this.roomObject.toJSON() : undefined;\n if (Array.isArray(this.deviceSettings)) {\n data[\"deviceSettings\"] = [];\n for (let item of this.deviceSettings)\n data[\"deviceSettings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IEditRoomObjectDTO {\n roomObject?: AddRoomObjectDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n}\n\nexport class EditThermoRoomObjectDTO implements IEditThermoRoomObjectDTO {\n thermoRoomObject?: ThermoRoomObjectDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n\n constructor(data?: IEditThermoRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.thermoRoomObject = _data[\"thermoRoomObject\"] ? ThermoRoomObjectDTO.fromJS(_data[\"thermoRoomObject\"]) : undefined;\n if (Array.isArray(_data[\"deviceSettings\"])) {\n this.deviceSettings = [] as any;\n for (let item of _data[\"deviceSettings\"])\n this.deviceSettings!.push(DeviceSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): EditThermoRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EditThermoRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"thermoRoomObject\"] = this.thermoRoomObject ? this.thermoRoomObject.toJSON() : undefined;\n if (Array.isArray(this.deviceSettings)) {\n data[\"deviceSettings\"] = [];\n for (let item of this.deviceSettings)\n data[\"deviceSettings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IEditThermoRoomObjectDTO {\n thermoRoomObject?: ThermoRoomObjectDTO;\n deviceSettings?: DeviceSettingsDTO[] | undefined;\n}\n\n/** 0 = None 1 = Socket 2 = Light 3 = Kitchenappliances 4 = Shutter 5 = Heating 6 = Boiler 7 = Airconditioner 8 = Other 9 = Fridge 10 = Oven 11 = Washingmachine 12 = Dryer 13 = Dishwasher 14 = Multimedia 15 = Internetbox */\nexport enum EnergyMeterAndLoadControlType {\n None = 0,\n Socket = 1,\n Light = 2,\n Kitchenappliances = 3,\n Shutter = 4,\n Heating = 5,\n Boiler = 6,\n Airconditioner = 7,\n Other = 8,\n Fridge = 9,\n Oven = 10,\n Washingmachine = 11,\n Dryer = 12,\n Dishwasher = 13,\n Multimedia = 14,\n Internetbox = 15,\n}\n\nexport class EntrancePlantDetailDTO implements IEntrancePlantDetailDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n lastModify?: Date;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n sharedWith?: PlantSharingDTO[] | undefined;\n isFavourite?: boolean;\n owner?: UserDTO;\n usersIdFavorites?: string[] | undefined;\n plantType?: PlantType;\n addressBookSorting?: AddressBookSorting;\n language?: Language;\n addressingType?: AddressingType;\n keypadCodePasspartoutEnabled?: boolean;\n keypadCodePasspartoutCode?: string | undefined;\n keypadCodeRequiredLength?: number;\n maxNumberOfLabelsForApartment?: number;\n denominationBuildings?: DenominationMode;\n denominationRisers?: DenominationMode;\n denominationFloors?: DenominationMode;\n denominationApartments?: DenominationMode;\n wizardState?: number;\n gates?: GateDTO[] | undefined;\n buildings?: BuildingDTO[] | undefined;\n switchboards?: SwitchboardDTO[] | undefined;\n gateGuests?: GateGuestDTO[] | undefined;\n apartmentInvitations?: ApartmentInvitationDTO[] | undefined;\n\n constructor(data?: IEntrancePlantDetailDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.desktopId = _data[\"desktopId\"];\n this.name = _data[\"name\"];\n this.address = _data[\"address\"];\n this.country = _data[\"country\"];\n if (Array.isArray(_data[\"tags\"])) {\n this.tags = [] as any;\n for (let item of _data[\"tags\"])\n this.tags!.push(PlantTagDTO.fromJS(item));\n }\n this.icon = _data[\"icon\"];\n this.customIconImageUrl = _data[\"customIconImageUrl\"];\n this.customIconDataUrl = _data[\"customIconDataUrl\"];\n this.lastModify = _data[\"lastModify\"] ? new Date(_data[\"lastModify\"].toString()) : undefined;\n this.lastModifyByDesktop = _data[\"lastModifyByDesktop\"];\n this.lastModifyBy = _data[\"lastModifyBy\"] ? UserDTO.fromJS(_data[\"lastModifyBy\"]) : undefined;\n if (Array.isArray(_data[\"sharedWith\"])) {\n this.sharedWith = [] as any;\n for (let item of _data[\"sharedWith\"])\n this.sharedWith!.push(PlantSharingDTO.fromJS(item));\n }\n this.isFavourite = _data[\"isFavourite\"];\n this.owner = _data[\"owner\"] ? UserDTO.fromJS(_data[\"owner\"]) : undefined;\n if (Array.isArray(_data[\"usersIdFavorites\"])) {\n this.usersIdFavorites = [] as any;\n for (let item of _data[\"usersIdFavorites\"])\n this.usersIdFavorites!.push(item);\n }\n this.plantType = _data[\"plantType\"];\n this.addressBookSorting = _data[\"addressBookSorting\"];\n this.language = _data[\"language\"];\n this.addressingType = _data[\"addressingType\"];\n this.keypadCodePasspartoutEnabled = _data[\"keypadCodePasspartoutEnabled\"];\n this.keypadCodePasspartoutCode = _data[\"keypadCodePasspartoutCode\"];\n this.keypadCodeRequiredLength = _data[\"keypadCodeRequiredLength\"];\n this.maxNumberOfLabelsForApartment = _data[\"maxNumberOfLabelsForApartment\"];\n this.denominationBuildings = _data[\"denominationBuildings\"];\n this.denominationRisers = _data[\"denominationRisers\"];\n this.denominationFloors = _data[\"denominationFloors\"];\n this.denominationApartments = _data[\"denominationApartments\"];\n this.wizardState = _data[\"wizardState\"];\n if (Array.isArray(_data[\"gates\"])) {\n this.gates = [] as any;\n for (let item of _data[\"gates\"])\n this.gates!.push(GateDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"buildings\"])) {\n this.buildings = [] as any;\n for (let item of _data[\"buildings\"])\n this.buildings!.push(BuildingDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"switchboards\"])) {\n this.switchboards = [] as any;\n for (let item of _data[\"switchboards\"])\n this.switchboards!.push(SwitchboardDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"gateGuests\"])) {\n this.gateGuests = [] as any;\n for (let item of _data[\"gateGuests\"])\n this.gateGuests!.push(GateGuestDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"apartmentInvitations\"])) {\n this.apartmentInvitations = [] as any;\n for (let item of _data[\"apartmentInvitations\"])\n this.apartmentInvitations!.push(ApartmentInvitationDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): EntrancePlantDetailDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EntrancePlantDetailDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"desktopId\"] = this.desktopId;\n data[\"name\"] = this.name;\n data[\"address\"] = this.address;\n data[\"country\"] = this.country;\n if (Array.isArray(this.tags)) {\n data[\"tags\"] = [];\n for (let item of this.tags)\n data[\"tags\"].push(item.toJSON());\n }\n data[\"icon\"] = this.icon;\n data[\"customIconImageUrl\"] = this.customIconImageUrl;\n data[\"customIconDataUrl\"] = this.customIconDataUrl;\n data[\"lastModify\"] = this.lastModify ? this.lastModify.toISOString() : undefined;\n data[\"lastModifyByDesktop\"] = this.lastModifyByDesktop;\n data[\"lastModifyBy\"] = this.lastModifyBy ? this.lastModifyBy.toJSON() : undefined;\n if (Array.isArray(this.sharedWith)) {\n data[\"sharedWith\"] = [];\n for (let item of this.sharedWith)\n data[\"sharedWith\"].push(item.toJSON());\n }\n data[\"isFavourite\"] = this.isFavourite;\n data[\"owner\"] = this.owner ? this.owner.toJSON() : undefined;\n if (Array.isArray(this.usersIdFavorites)) {\n data[\"usersIdFavorites\"] = [];\n for (let item of this.usersIdFavorites)\n data[\"usersIdFavorites\"].push(item);\n }\n data[\"plantType\"] = this.plantType;\n data[\"addressBookSorting\"] = this.addressBookSorting;\n data[\"language\"] = this.language;\n data[\"addressingType\"] = this.addressingType;\n data[\"keypadCodePasspartoutEnabled\"] = this.keypadCodePasspartoutEnabled;\n data[\"keypadCodePasspartoutCode\"] = this.keypadCodePasspartoutCode;\n data[\"keypadCodeRequiredLength\"] = this.keypadCodeRequiredLength;\n data[\"maxNumberOfLabelsForApartment\"] = this.maxNumberOfLabelsForApartment;\n data[\"denominationBuildings\"] = this.denominationBuildings;\n data[\"denominationRisers\"] = this.denominationRisers;\n data[\"denominationFloors\"] = this.denominationFloors;\n data[\"denominationApartments\"] = this.denominationApartments;\n data[\"wizardState\"] = this.wizardState;\n if (Array.isArray(this.gates)) {\n data[\"gates\"] = [];\n for (let item of this.gates)\n data[\"gates\"].push(item.toJSON());\n }\n if (Array.isArray(this.buildings)) {\n data[\"buildings\"] = [];\n for (let item of this.buildings)\n data[\"buildings\"].push(item.toJSON());\n }\n if (Array.isArray(this.switchboards)) {\n data[\"switchboards\"] = [];\n for (let item of this.switchboards)\n data[\"switchboards\"].push(item.toJSON());\n }\n if (Array.isArray(this.gateGuests)) {\n data[\"gateGuests\"] = [];\n for (let item of this.gateGuests)\n data[\"gateGuests\"].push(item.toJSON());\n }\n if (Array.isArray(this.apartmentInvitations)) {\n data[\"apartmentInvitations\"] = [];\n for (let item of this.apartmentInvitations)\n data[\"apartmentInvitations\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IEntrancePlantDetailDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n lastModify?: Date;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n sharedWith?: PlantSharingDTO[] | undefined;\n isFavourite?: boolean;\n owner?: UserDTO;\n usersIdFavorites?: string[] | undefined;\n plantType?: PlantType;\n addressBookSorting?: AddressBookSorting;\n language?: Language;\n addressingType?: AddressingType;\n keypadCodePasspartoutEnabled?: boolean;\n keypadCodePasspartoutCode?: string | undefined;\n keypadCodeRequiredLength?: number;\n maxNumberOfLabelsForApartment?: number;\n denominationBuildings?: DenominationMode;\n denominationRisers?: DenominationMode;\n denominationFloors?: DenominationMode;\n denominationApartments?: DenominationMode;\n wizardState?: number;\n gates?: GateDTO[] | undefined;\n buildings?: BuildingDTO[] | undefined;\n switchboards?: SwitchboardDTO[] | undefined;\n gateGuests?: GateGuestDTO[] | undefined;\n apartmentInvitations?: ApartmentInvitationDTO[] | undefined;\n}\n\nexport class EntrancePlantHeadCreateDTO implements IEntrancePlantHeadCreateDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n plantType?: PlantType;\n\n constructor(data?: IEntrancePlantHeadCreateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.desktopId = _data[\"desktopId\"];\n this.name = _data[\"name\"];\n this.address = _data[\"address\"];\n this.country = _data[\"country\"];\n if (Array.isArray(_data[\"tags\"])) {\n this.tags = [] as any;\n for (let item of _data[\"tags\"])\n this.tags!.push(PlantTagDTO.fromJS(item));\n }\n this.icon = _data[\"icon\"];\n this.customIconImageUrl = _data[\"customIconImageUrl\"];\n this.customIconDataUrl = _data[\"customIconDataUrl\"];\n this.plantType = _data[\"plantType\"];\n }\n }\n\n static fromJS(data: any): EntrancePlantHeadCreateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EntrancePlantHeadCreateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"desktopId\"] = this.desktopId;\n data[\"name\"] = this.name;\n data[\"address\"] = this.address;\n data[\"country\"] = this.country;\n if (Array.isArray(this.tags)) {\n data[\"tags\"] = [];\n for (let item of this.tags)\n data[\"tags\"].push(item.toJSON());\n }\n data[\"icon\"] = this.icon;\n data[\"customIconImageUrl\"] = this.customIconImageUrl;\n data[\"customIconDataUrl\"] = this.customIconDataUrl;\n data[\"plantType\"] = this.plantType;\n return data; \n }\n}\n\nexport interface IEntrancePlantHeadCreateDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n plantType?: PlantType;\n}\n\nexport class EntrancePlantInfoCreateDTO implements IEntrancePlantInfoCreateDTO {\n addressBookSorting?: AddressBookSorting;\n language?: Language;\n addressingType?: AddressingType;\n denominationBuildings?: DenominationMode;\n denominationRisers?: DenominationMode;\n denominationFloors?: DenominationMode;\n denominationApartments?: DenominationMode;\n\n constructor(data?: IEntrancePlantInfoCreateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.addressBookSorting = _data[\"addressBookSorting\"];\n this.language = _data[\"language\"];\n this.addressingType = _data[\"addressingType\"];\n this.denominationBuildings = _data[\"denominationBuildings\"];\n this.denominationRisers = _data[\"denominationRisers\"];\n this.denominationFloors = _data[\"denominationFloors\"];\n this.denominationApartments = _data[\"denominationApartments\"];\n }\n }\n\n static fromJS(data: any): EntrancePlantInfoCreateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EntrancePlantInfoCreateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"addressBookSorting\"] = this.addressBookSorting;\n data[\"language\"] = this.language;\n data[\"addressingType\"] = this.addressingType;\n data[\"denominationBuildings\"] = this.denominationBuildings;\n data[\"denominationRisers\"] = this.denominationRisers;\n data[\"denominationFloors\"] = this.denominationFloors;\n data[\"denominationApartments\"] = this.denominationApartments;\n return data; \n }\n}\n\nexport interface IEntrancePlantInfoCreateDTO {\n addressBookSorting?: AddressBookSorting;\n language?: Language;\n addressingType?: AddressingType;\n denominationBuildings?: DenominationMode;\n denominationRisers?: DenominationMode;\n denominationFloors?: DenominationMode;\n denominationApartments?: DenominationMode;\n}\n\nexport class EntrancePlantStructureCreateDTO implements IEntrancePlantStructureCreateDTO {\n wizardStep?: number;\n headCreate?: EntrancePlantHeadCreateDTO;\n infoCreate?: EntrancePlantInfoCreateDTO;\n buildingsCreate?: BuildingCreateDTO[] | undefined;\n gateCreate?: GateDTO[] | undefined;\n plantConfigStructure?: { [key: string]: RFAConfigDTO; } | undefined;\n gateConfigStructure?: { [key: string]: GateConfigDTO; } | undefined;\n\n constructor(data?: IEntrancePlantStructureCreateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.wizardStep = _data[\"wizardStep\"];\n this.headCreate = _data[\"headCreate\"] ? EntrancePlantHeadCreateDTO.fromJS(_data[\"headCreate\"]) : undefined;\n this.infoCreate = _data[\"infoCreate\"] ? EntrancePlantInfoCreateDTO.fromJS(_data[\"infoCreate\"]) : undefined;\n if (Array.isArray(_data[\"buildingsCreate\"])) {\n this.buildingsCreate = [] as any;\n for (let item of _data[\"buildingsCreate\"])\n this.buildingsCreate!.push(BuildingCreateDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"gateCreate\"])) {\n this.gateCreate = [] as any;\n for (let item of _data[\"gateCreate\"])\n this.gateCreate!.push(GateDTO.fromJS(item));\n }\n if (_data[\"plantConfigStructure\"]) {\n this.plantConfigStructure = {} as any;\n for (let key in _data[\"plantConfigStructure\"]) {\n if (_data[\"plantConfigStructure\"].hasOwnProperty(key))\n (this.plantConfigStructure)![key] = _data[\"plantConfigStructure\"][key] ? RFAConfigDTO.fromJS(_data[\"plantConfigStructure\"][key]) : new RFAConfigDTO();\n }\n }\n if (_data[\"gateConfigStructure\"]) {\n this.gateConfigStructure = {} as any;\n for (let key in _data[\"gateConfigStructure\"]) {\n if (_data[\"gateConfigStructure\"].hasOwnProperty(key))\n (this.gateConfigStructure)![key] = _data[\"gateConfigStructure\"][key] ? GateConfigDTO.fromJS(_data[\"gateConfigStructure\"][key]) : new GateConfigDTO();\n }\n }\n }\n }\n\n static fromJS(data: any): EntrancePlantStructureCreateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new EntrancePlantStructureCreateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"wizardStep\"] = this.wizardStep;\n data[\"headCreate\"] = this.headCreate ? this.headCreate.toJSON() : undefined;\n data[\"infoCreate\"] = this.infoCreate ? this.infoCreate.toJSON() : undefined;\n if (Array.isArray(this.buildingsCreate)) {\n data[\"buildingsCreate\"] = [];\n for (let item of this.buildingsCreate)\n data[\"buildingsCreate\"].push(item.toJSON());\n }\n if (Array.isArray(this.gateCreate)) {\n data[\"gateCreate\"] = [];\n for (let item of this.gateCreate)\n data[\"gateCreate\"].push(item.toJSON());\n }\n if (this.plantConfigStructure) {\n data[\"plantConfigStructure\"] = {};\n for (let key in this.plantConfigStructure) {\n if (this.plantConfigStructure.hasOwnProperty(key))\n (data[\"plantConfigStructure\"])[key] = this.plantConfigStructure[key] ? this.plantConfigStructure[key].toJSON() : undefined;\n }\n }\n if (this.gateConfigStructure) {\n data[\"gateConfigStructure\"] = {};\n for (let key in this.gateConfigStructure) {\n if (this.gateConfigStructure.hasOwnProperty(key))\n (data[\"gateConfigStructure\"])[key] = this.gateConfigStructure[key] ? this.gateConfigStructure[key].toJSON() : undefined;\n }\n }\n return data; \n }\n}\n\nexport interface IEntrancePlantStructureCreateDTO {\n wizardStep?: number;\n headCreate?: EntrancePlantHeadCreateDTO;\n infoCreate?: EntrancePlantInfoCreateDTO;\n buildingsCreate?: BuildingCreateDTO[] | undefined;\n gateCreate?: GateDTO[] | undefined;\n plantConfigStructure?: { [key: string]: RFAConfigDTO; } | undefined;\n gateConfigStructure?: { [key: string]: GateConfigDTO; } | undefined;\n}\n\n/** 0 = ColoredLight 1 = Xmeter 2 = Player 3 = AlarmCentralUnit 4 = AlarmSensor 5 = DimmerDmx */\nexport enum ExtComponentType {\n ColoredLight = 0,\n Xmeter = 1,\n Player = 2,\n AlarmCentralUnit = 3,\n AlarmSensor = 4,\n DimmerDmx = 5,\n}\n\n/** 0 = Bticino 1 = Vantage */\nexport enum ExternalSensorType {\n Bticino = 0,\n Vantage = 1,\n}\n\nexport class FloorConfigDTO implements IFloorConfigDTO {\n index?: number;\n name?: string | undefined;\n numberOfApartments?: number;\n\n constructor(data?: IFloorConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.numberOfApartments = _data[\"numberOfApartments\"];\n }\n }\n\n static fromJS(data: any): FloorConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new FloorConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"numberOfApartments\"] = this.numberOfApartments;\n return data; \n }\n}\n\nexport interface IFloorConfigDTO {\n index?: number;\n name?: string | undefined;\n numberOfApartments?: number;\n}\n\nexport class FloorDTO implements IFloorDTO {\n floorId?: string;\n buildingId?: string;\n riserId?: string | undefined;\n index?: string | undefined;\n name?: string | undefined;\n order?: number;\n\n constructor(data?: IFloorDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.floorId = _data[\"floorId\"];\n this.buildingId = _data[\"buildingId\"];\n this.riserId = _data[\"riserId\"];\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.order = _data[\"order\"];\n }\n }\n\n static fromJS(data: any): FloorDTO {\n data = typeof data === 'object' ? data : {};\n let result = new FloorDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"floorId\"] = this.floorId;\n data[\"buildingId\"] = this.buildingId;\n data[\"riserId\"] = this.riserId;\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"order\"] = this.order;\n return data; \n }\n}\n\nexport interface IFloorDTO {\n floorId?: string;\n buildingId?: string;\n riserId?: string | undefined;\n index?: string | undefined;\n name?: string | undefined;\n order?: number;\n}\n\n/** 0 = All 1 = Thermo 2 = Automation 3 = Energy 4 = Security 5 = Integration 6 = AllAndGateway 7 = OnlyGateway 8 = Nd */\nexport enum FunctionType {\n All = 0,\n Thermo = 1,\n Automation = 2,\n Energy = 3,\n Security = 4,\n Integration = 5,\n AllAndGateway = 6,\n OnlyGateway = 7,\n Nd = 8,\n}\n\nexport class GateConfigDTO implements IGateConfigDTO {\n scsAddress?: number;\n gateName?: string | undefined;\n newPeSelected?: boolean;\n keypadSelected?: boolean;\n smartReaderSelected?: boolean;\n connectedBuildingIds?: string[] | undefined;\n connectedRiserIds?: string[] | undefined;\n\n constructor(data?: IGateConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.scsAddress = _data[\"scsAddress\"];\n this.gateName = _data[\"gateName\"];\n this.newPeSelected = _data[\"newPeSelected\"];\n this.keypadSelected = _data[\"keypadSelected\"];\n this.smartReaderSelected = _data[\"smartReaderSelected\"];\n if (Array.isArray(_data[\"connectedBuildingIds\"])) {\n this.connectedBuildingIds = [] as any;\n for (let item of _data[\"connectedBuildingIds\"])\n this.connectedBuildingIds!.push(item);\n }\n if (Array.isArray(_data[\"connectedRiserIds\"])) {\n this.connectedRiserIds = [] as any;\n for (let item of _data[\"connectedRiserIds\"])\n this.connectedRiserIds!.push(item);\n }\n }\n }\n\n static fromJS(data: any): GateConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new GateConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"scsAddress\"] = this.scsAddress;\n data[\"gateName\"] = this.gateName;\n data[\"newPeSelected\"] = this.newPeSelected;\n data[\"keypadSelected\"] = this.keypadSelected;\n data[\"smartReaderSelected\"] = this.smartReaderSelected;\n if (Array.isArray(this.connectedBuildingIds)) {\n data[\"connectedBuildingIds\"] = [];\n for (let item of this.connectedBuildingIds)\n data[\"connectedBuildingIds\"].push(item);\n }\n if (Array.isArray(this.connectedRiserIds)) {\n data[\"connectedRiserIds\"] = [];\n for (let item of this.connectedRiserIds)\n data[\"connectedRiserIds\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IGateConfigDTO {\n scsAddress?: number;\n gateName?: string | undefined;\n newPeSelected?: boolean;\n keypadSelected?: boolean;\n smartReaderSelected?: boolean;\n connectedBuildingIds?: string[] | undefined;\n connectedRiserIds?: string[] | undefined;\n}\n\nexport class GateDTO implements IGateDTO {\n gateId?: string;\n name?: string | undefined;\n scsAddress?: number;\n apartments?: string[] | undefined;\n devices?: EPDeviceDTO[] | undefined;\n\n constructor(data?: IGateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.gateId = _data[\"gateId\"];\n this.name = _data[\"name\"];\n this.scsAddress = _data[\"scsAddress\"];\n if (Array.isArray(_data[\"apartments\"])) {\n this.apartments = [] as any;\n for (let item of _data[\"apartments\"])\n this.apartments!.push(item);\n }\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(EPDeviceDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): GateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new GateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"gateId\"] = this.gateId;\n data[\"name\"] = this.name;\n data[\"scsAddress\"] = this.scsAddress;\n if (Array.isArray(this.apartments)) {\n data[\"apartments\"] = [];\n for (let item of this.apartments)\n data[\"apartments\"].push(item);\n }\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IGateDTO {\n gateId?: string;\n name?: string | undefined;\n scsAddress?: number;\n apartments?: string[] | undefined;\n devices?: EPDeviceDTO[] | undefined;\n}\n\nexport class GateGuestDTO implements IGateGuestDTO {\n id?: string;\n surname?: string | undefined;\n name?: string | undefined;\n isDateAlways?: boolean;\n durationSince?: Date | undefined;\n durationUntil?: Date | undefined;\n isTimeAlways?: boolean;\n timesSlots?: TimeSlot[] | undefined;\n repetitionDays?: WeekDay[] | undefined;\n gateIds?: string[] | undefined;\n isRecurrent?: boolean;\n isOneTimeGuest?: boolean;\n keypadCode?: string | undefined;\n badgeCode?: string | undefined;\n\n constructor(data?: IGateGuestDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.surname = _data[\"surname\"];\n this.name = _data[\"name\"];\n this.isDateAlways = _data[\"isDateAlways\"];\n this.durationSince = _data[\"durationSince\"] ? new Date(_data[\"durationSince\"].toString()) : undefined;\n this.durationUntil = _data[\"durationUntil\"] ? new Date(_data[\"durationUntil\"].toString()) : undefined;\n this.isTimeAlways = _data[\"isTimeAlways\"];\n if (Array.isArray(_data[\"timesSlots\"])) {\n this.timesSlots = [] as any;\n for (let item of _data[\"timesSlots\"])\n this.timesSlots!.push(TimeSlot.fromJS(item));\n }\n if (Array.isArray(_data[\"repetitionDays\"])) {\n this.repetitionDays = [] as any;\n for (let item of _data[\"repetitionDays\"])\n this.repetitionDays!.push(item);\n }\n if (Array.isArray(_data[\"gateIds\"])) {\n this.gateIds = [] as any;\n for (let item of _data[\"gateIds\"])\n this.gateIds!.push(item);\n }\n this.isRecurrent = _data[\"isRecurrent\"];\n this.isOneTimeGuest = _data[\"isOneTimeGuest\"];\n this.keypadCode = _data[\"keypadCode\"];\n this.badgeCode = _data[\"badgeCode\"];\n }\n }\n\n static fromJS(data: any): GateGuestDTO {\n data = typeof data === 'object' ? data : {};\n let result = new GateGuestDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"surname\"] = this.surname;\n data[\"name\"] = this.name;\n data[\"isDateAlways\"] = this.isDateAlways;\n data[\"durationSince\"] = this.durationSince ? this.durationSince.toISOString() : undefined;\n data[\"durationUntil\"] = this.durationUntil ? this.durationUntil.toISOString() : undefined;\n data[\"isTimeAlways\"] = this.isTimeAlways;\n if (Array.isArray(this.timesSlots)) {\n data[\"timesSlots\"] = [];\n for (let item of this.timesSlots)\n data[\"timesSlots\"].push(item.toJSON());\n }\n if (Array.isArray(this.repetitionDays)) {\n data[\"repetitionDays\"] = [];\n for (let item of this.repetitionDays)\n data[\"repetitionDays\"].push(item);\n }\n if (Array.isArray(this.gateIds)) {\n data[\"gateIds\"] = [];\n for (let item of this.gateIds)\n data[\"gateIds\"].push(item);\n }\n data[\"isRecurrent\"] = this.isRecurrent;\n data[\"isOneTimeGuest\"] = this.isOneTimeGuest;\n data[\"keypadCode\"] = this.keypadCode;\n data[\"badgeCode\"] = this.badgeCode;\n return data; \n }\n}\n\nexport interface IGateGuestDTO {\n id?: string;\n surname?: string | undefined;\n name?: string | undefined;\n isDateAlways?: boolean;\n durationSince?: Date | undefined;\n durationUntil?: Date | undefined;\n isTimeAlways?: boolean;\n timesSlots?: TimeSlot[] | undefined;\n repetitionDays?: WeekDay[] | undefined;\n gateIds?: string[] | undefined;\n isRecurrent?: boolean;\n isOneTimeGuest?: boolean;\n keypadCode?: string | undefined;\n badgeCode?: string | undefined;\n}\n\nexport class GeneralCommandsAndGroupsAction extends Action implements IGeneralCommandsAndGroupsAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n\n constructor(data?: IGeneralCommandsAndGroupsAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.sceneLightState = _data[\"sceneLightState\"];\n this.sceneShutterState = _data[\"sceneShutterState\"];\n this.sceneBlindState = _data[\"sceneBlindState\"];\n this.sceneSocketState = _data[\"sceneSocketState\"];\n }\n }\n\n static fromJS(data: any): GeneralCommandsAndGroupsAction {\n data = typeof data === 'object' ? data : {};\n let result = new GeneralCommandsAndGroupsAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"sceneLightState\"] = this.sceneLightState;\n data[\"sceneShutterState\"] = this.sceneShutterState;\n data[\"sceneBlindState\"] = this.sceneBlindState;\n data[\"sceneSocketState\"] = this.sceneSocketState;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IGeneralCommandsAndGroupsAction extends IAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n}\n\nexport class IntercomFunction extends VdeFunction implements IIntercomFunction {\n type?: IntercomType;\n\n constructor(data?: IIntercomFunction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): IntercomFunction {\n data = typeof data === 'object' ? data : {};\n let result = new IntercomFunction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IIntercomFunction extends IVdeFunction {\n type?: IntercomType;\n}\n\n/** 0 = Inner 1 = Outer 2 = Pager 3 = General */\nexport enum IntercomType {\n Inner = 0,\n Outer = 1,\n Pager = 2,\n General = 3,\n}\n\n/** 0 = English 1 = Italian 2 = German 3 = Dutch 4 = French 5 = Portuguese 6 = Spanish */\nexport enum Language {\n English = 0,\n Italian = 1,\n German = 2,\n Dutch = 3,\n French = 4,\n Portuguese = 5,\n Spanish = 6,\n}\n\n/** 0 = None 1 = OnOff 2 = Dimmer */\nexport enum LightType {\n None = 0,\n OnOff = 1,\n Dimmer = 2,\n}\n\nexport class LightsActuatorItemSettingsDTO implements ILightsActuatorItemSettingsDTO {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelSelectedPickerValue?: SimpleIntPickerValue;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n isGroupZeroCrossingVisible?: boolean;\n isZeroCrossing1EnabledFollow2?: boolean;\n isZeroCrossing1DisabledFollow2?: boolean;\n isZeroCrossing2EnabledFollow1?: boolean;\n isZeroCrossing2DisabledFollow1?: boolean;\n isGroupRelayStatusAfterResetVisible?: boolean;\n isGroupRestoreStatusAfterResetVisible?: boolean;\n isGroupMinimumRegulationLevelVisible?: boolean;\n isGroupLoadTypeVisible?: boolean;\n hasLoadTypesForGroup7?: boolean;\n hasLoadTypesForGroup9?: boolean;\n isGroupVoltageVisible?: boolean;\n isGroupPULVisible?: boolean;\n saveTo?: number[] | undefined;\n minimumRegulationLevelPickerValues?: SimpleIntPickerValue[] | undefined;\n isGroupMinimumRegulationLevelToggleVisible?: boolean;\n isZeroCrossingWarningVisible?: boolean;\n\n constructor(data?: ILightsActuatorItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n this.relayStatusAfterReset = _data[\"relayStatusAfterReset\"];\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.minimumRegulationLevelSelectedPickerValue = _data[\"minimumRegulationLevelSelectedPickerValue\"] ? SimpleIntPickerValue.fromJS(_data[\"minimumRegulationLevelSelectedPickerValue\"]) : undefined;\n this.loadType = _data[\"loadType\"];\n this.voltageType = _data[\"voltageType\"];\n this.hasPUL = _data[\"hasPUL\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.isGroupZeroCrossingVisible = _data[\"isGroupZeroCrossingVisible\"];\n this.isZeroCrossing1EnabledFollow2 = _data[\"isZeroCrossing1EnabledFollow2\"];\n this.isZeroCrossing1DisabledFollow2 = _data[\"isZeroCrossing1DisabledFollow2\"];\n this.isZeroCrossing2EnabledFollow1 = _data[\"isZeroCrossing2EnabledFollow1\"];\n this.isZeroCrossing2DisabledFollow1 = _data[\"isZeroCrossing2DisabledFollow1\"];\n this.isGroupRelayStatusAfterResetVisible = _data[\"isGroupRelayStatusAfterResetVisible\"];\n this.isGroupRestoreStatusAfterResetVisible = _data[\"isGroupRestoreStatusAfterResetVisible\"];\n this.isGroupMinimumRegulationLevelVisible = _data[\"isGroupMinimumRegulationLevelVisible\"];\n this.isGroupLoadTypeVisible = _data[\"isGroupLoadTypeVisible\"];\n this.hasLoadTypesForGroup7 = _data[\"hasLoadTypesForGroup7\"];\n this.hasLoadTypesForGroup9 = _data[\"hasLoadTypesForGroup9\"];\n this.isGroupVoltageVisible = _data[\"isGroupVoltageVisible\"];\n this.isGroupPULVisible = _data[\"isGroupPULVisible\"];\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n if (Array.isArray(_data[\"minimumRegulationLevelPickerValues\"])) {\n this.minimumRegulationLevelPickerValues = [] as any;\n for (let item of _data[\"minimumRegulationLevelPickerValues\"])\n this.minimumRegulationLevelPickerValues!.push(SimpleIntPickerValue.fromJS(item));\n }\n this.isGroupMinimumRegulationLevelToggleVisible = _data[\"isGroupMinimumRegulationLevelToggleVisible\"];\n this.isZeroCrossingWarningVisible = _data[\"isZeroCrossingWarningVisible\"];\n }\n }\n\n static fromJS(data: any): LightsActuatorItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n data[\"relayStatusAfterReset\"] = this.relayStatusAfterReset;\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"minimumRegulationLevelSelectedPickerValue\"] = this.minimumRegulationLevelSelectedPickerValue ? this.minimumRegulationLevelSelectedPickerValue.toJSON() : undefined;\n data[\"loadType\"] = this.loadType;\n data[\"voltageType\"] = this.voltageType;\n data[\"hasPUL\"] = this.hasPUL;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"isGroupZeroCrossingVisible\"] = this.isGroupZeroCrossingVisible;\n data[\"isZeroCrossing1EnabledFollow2\"] = this.isZeroCrossing1EnabledFollow2;\n data[\"isZeroCrossing1DisabledFollow2\"] = this.isZeroCrossing1DisabledFollow2;\n data[\"isZeroCrossing2EnabledFollow1\"] = this.isZeroCrossing2EnabledFollow1;\n data[\"isZeroCrossing2DisabledFollow1\"] = this.isZeroCrossing2DisabledFollow1;\n data[\"isGroupRelayStatusAfterResetVisible\"] = this.isGroupRelayStatusAfterResetVisible;\n data[\"isGroupRestoreStatusAfterResetVisible\"] = this.isGroupRestoreStatusAfterResetVisible;\n data[\"isGroupMinimumRegulationLevelVisible\"] = this.isGroupMinimumRegulationLevelVisible;\n data[\"isGroupLoadTypeVisible\"] = this.isGroupLoadTypeVisible;\n data[\"hasLoadTypesForGroup7\"] = this.hasLoadTypesForGroup7;\n data[\"hasLoadTypesForGroup9\"] = this.hasLoadTypesForGroup9;\n data[\"isGroupVoltageVisible\"] = this.isGroupVoltageVisible;\n data[\"isGroupPULVisible\"] = this.isGroupPULVisible;\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n if (Array.isArray(this.minimumRegulationLevelPickerValues)) {\n data[\"minimumRegulationLevelPickerValues\"] = [];\n for (let item of this.minimumRegulationLevelPickerValues)\n data[\"minimumRegulationLevelPickerValues\"].push(item.toJSON());\n }\n data[\"isGroupMinimumRegulationLevelToggleVisible\"] = this.isGroupMinimumRegulationLevelToggleVisible;\n data[\"isZeroCrossingWarningVisible\"] = this.isZeroCrossingWarningVisible;\n return data; \n }\n}\n\nexport interface ILightsActuatorItemSettingsDTO {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelSelectedPickerValue?: SimpleIntPickerValue;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n isGroupZeroCrossingVisible?: boolean;\n isZeroCrossing1EnabledFollow2?: boolean;\n isZeroCrossing1DisabledFollow2?: boolean;\n isZeroCrossing2EnabledFollow1?: boolean;\n isZeroCrossing2DisabledFollow1?: boolean;\n isGroupRelayStatusAfterResetVisible?: boolean;\n isGroupRestoreStatusAfterResetVisible?: boolean;\n isGroupMinimumRegulationLevelVisible?: boolean;\n isGroupLoadTypeVisible?: boolean;\n hasLoadTypesForGroup7?: boolean;\n hasLoadTypesForGroup9?: boolean;\n isGroupVoltageVisible?: boolean;\n isGroupPULVisible?: boolean;\n saveTo?: number[] | undefined;\n minimumRegulationLevelPickerValues?: SimpleIntPickerValue[] | undefined;\n isGroupMinimumRegulationLevelToggleVisible?: boolean;\n isZeroCrossingWarningVisible?: boolean;\n}\n\nexport class LightsActuatorSettings extends ActuatorSettings implements ILightsActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelValueAdvanced?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n\n constructor(data?: ILightsActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n this.relayStatusAfterReset = _data[\"relayStatusAfterReset\"];\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.minimumRegulationLevelValueAdvanced = _data[\"minimumRegulationLevelValueAdvanced\"];\n this.loadType = _data[\"loadType\"];\n this.voltageType = _data[\"voltageType\"];\n this.hasPUL = _data[\"hasPUL\"];\n }\n }\n\n static fromJS(data: any): LightsActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n data[\"relayStatusAfterReset\"] = this.relayStatusAfterReset;\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"minimumRegulationLevelValueAdvanced\"] = this.minimumRegulationLevelValueAdvanced;\n data[\"loadType\"] = this.loadType;\n data[\"voltageType\"] = this.voltageType;\n data[\"hasPUL\"] = this.hasPUL;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILightsActuatorSettings extends IActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelValueAdvanced?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n}\n\nexport class LightsActuatorSettingsObjectDTO implements ILightsActuatorSettingsObjectDTO {\n slots?: LightsActuatorItemSettingsDTO[] | undefined;\n\n constructor(data?: ILightsActuatorSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LightsActuatorItemSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LightsActuatorSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILightsActuatorSettingsObjectDTO {\n slots?: LightsActuatorItemSettingsDTO[] | undefined;\n}\n\nexport class LightsActuatorSettingsResult implements ILightsActuatorSettingsResult {\n index?: number;\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n\n constructor(data?: ILightsActuatorSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.index = _data[\"index\"];\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n this.relayStatusAfterReset = _data[\"relayStatusAfterReset\"];\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.loadType = _data[\"loadType\"];\n this.voltageType = _data[\"voltageType\"];\n this.hasPUL = _data[\"hasPUL\"];\n }\n }\n\n static fromJS(data: any): LightsActuatorSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"index\"] = this.index;\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n data[\"relayStatusAfterReset\"] = this.relayStatusAfterReset;\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"loadType\"] = this.loadType;\n data[\"voltageType\"] = this.voltageType;\n data[\"hasPUL\"] = this.hasPUL;\n return data; \n }\n}\n\nexport interface ILightsActuatorSettingsResult {\n index?: number;\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n}\n\nexport class LightsActuatorSettingsResultList implements ILightsActuatorSettingsResultList {\n results?: LightsActuatorSettingsResult[] | undefined;\n\n constructor(data?: ILightsActuatorSettingsResultList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"results\"])) {\n this.results = [] as any;\n for (let item of _data[\"results\"])\n this.results!.push(LightsActuatorSettingsResult.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LightsActuatorSettingsResultList {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettingsResultList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.results)) {\n data[\"results\"] = [];\n for (let item of this.results)\n data[\"results\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILightsActuatorSettingsResultList {\n results?: LightsActuatorSettingsResult[] | undefined;\n}\n\nexport class LightsCommandItemSettingsDTO implements ILightsCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n timedDelayPickerValues?: DelayValue[] | undefined;\n lightsOnOffMode?: LightsOnOffMode;\n minimumRegulationLevel?: number;\n timedDelayPickerSelectedValue?: DelayValue;\n isTimedDelayVisible?: boolean;\n defaultSettings?: LigthsCommandSettings;\n currentSettings?: LigthsCommandSettings;\n isOptionOnOffVisible?: boolean;\n isOptionOffVisible?: boolean;\n isOptionOnVisible?: boolean;\n isOptionOnRegulationVisible?: boolean;\n isOptionToggleVisible?: boolean;\n isOptionToggleOnOffVisible?: boolean;\n isOptionButtonVisible?: boolean;\n isOptionTimedVisible?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n availableDelayValues?: DelayValue[] | undefined;\n isContactTypeVisibile?: boolean;\n indexes?: number[] | undefined;\n conctactType?: ConctactType;\n isConctactTypeVisibile?: boolean;\n\n constructor(data?: ILightsCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n if (Array.isArray(_data[\"timedDelayPickerValues\"])) {\n this.timedDelayPickerValues = [] as any;\n for (let item of _data[\"timedDelayPickerValues\"])\n this.timedDelayPickerValues!.push(DelayValue.fromJS(item));\n }\n this.lightsOnOffMode = _data[\"lightsOnOffMode\"];\n this.minimumRegulationLevel = _data[\"minimumRegulationLevel\"];\n this.timedDelayPickerSelectedValue = _data[\"timedDelayPickerSelectedValue\"] ? DelayValue.fromJS(_data[\"timedDelayPickerSelectedValue\"]) : undefined;\n this.isTimedDelayVisible = _data[\"isTimedDelayVisible\"];\n this.defaultSettings = _data[\"defaultSettings\"] ? LigthsCommandSettings.fromJS(_data[\"defaultSettings\"]) : undefined;\n this.currentSettings = _data[\"currentSettings\"] ? LigthsCommandSettings.fromJS(_data[\"currentSettings\"]) : undefined;\n this.isOptionOnOffVisible = _data[\"isOptionOnOffVisible\"];\n this.isOptionOffVisible = _data[\"isOptionOffVisible\"];\n this.isOptionOnVisible = _data[\"isOptionOnVisible\"];\n this.isOptionOnRegulationVisible = _data[\"isOptionOnRegulationVisible\"];\n this.isOptionToggleVisible = _data[\"isOptionToggleVisible\"];\n this.isOptionToggleOnOffVisible = _data[\"isOptionToggleOnOffVisible\"];\n this.isOptionButtonVisible = _data[\"isOptionButtonVisible\"];\n this.isOptionTimedVisible = _data[\"isOptionTimedVisible\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"availableDelayValues\"])) {\n this.availableDelayValues = [] as any;\n for (let item of _data[\"availableDelayValues\"])\n this.availableDelayValues!.push(DelayValue.fromJS(item));\n }\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.conctactType = _data[\"conctactType\"];\n this.isConctactTypeVisibile = _data[\"isConctactTypeVisibile\"];\n }\n }\n\n static fromJS(data: any): LightsCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n if (Array.isArray(this.timedDelayPickerValues)) {\n data[\"timedDelayPickerValues\"] = [];\n for (let item of this.timedDelayPickerValues)\n data[\"timedDelayPickerValues\"].push(item.toJSON());\n }\n data[\"lightsOnOffMode\"] = this.lightsOnOffMode;\n data[\"minimumRegulationLevel\"] = this.minimumRegulationLevel;\n data[\"timedDelayPickerSelectedValue\"] = this.timedDelayPickerSelectedValue ? this.timedDelayPickerSelectedValue.toJSON() : undefined;\n data[\"isTimedDelayVisible\"] = this.isTimedDelayVisible;\n data[\"defaultSettings\"] = this.defaultSettings ? this.defaultSettings.toJSON() : undefined;\n data[\"currentSettings\"] = this.currentSettings ? this.currentSettings.toJSON() : undefined;\n data[\"isOptionOnOffVisible\"] = this.isOptionOnOffVisible;\n data[\"isOptionOffVisible\"] = this.isOptionOffVisible;\n data[\"isOptionOnVisible\"] = this.isOptionOnVisible;\n data[\"isOptionOnRegulationVisible\"] = this.isOptionOnRegulationVisible;\n data[\"isOptionToggleVisible\"] = this.isOptionToggleVisible;\n data[\"isOptionToggleOnOffVisible\"] = this.isOptionToggleOnOffVisible;\n data[\"isOptionButtonVisible\"] = this.isOptionButtonVisible;\n data[\"isOptionTimedVisible\"] = this.isOptionTimedVisible;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.availableDelayValues)) {\n data[\"availableDelayValues\"] = [];\n for (let item of this.availableDelayValues)\n data[\"availableDelayValues\"].push(item.toJSON());\n }\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"conctactType\"] = this.conctactType;\n data[\"isConctactTypeVisibile\"] = this.isConctactTypeVisibile;\n return data; \n }\n}\n\nexport interface ILightsCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n timedDelayPickerValues?: DelayValue[] | undefined;\n lightsOnOffMode?: LightsOnOffMode;\n minimumRegulationLevel?: number;\n timedDelayPickerSelectedValue?: DelayValue;\n isTimedDelayVisible?: boolean;\n defaultSettings?: LigthsCommandSettings;\n currentSettings?: LigthsCommandSettings;\n isOptionOnOffVisible?: boolean;\n isOptionOffVisible?: boolean;\n isOptionOnVisible?: boolean;\n isOptionOnRegulationVisible?: boolean;\n isOptionToggleVisible?: boolean;\n isOptionToggleOnOffVisible?: boolean;\n isOptionButtonVisible?: boolean;\n isOptionTimedVisible?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n availableDelayValues?: DelayValue[] | undefined;\n isContactTypeVisibile?: boolean;\n indexes?: number[] | undefined;\n conctactType?: ConctactType;\n isConctactTypeVisibile?: boolean;\n}\n\nexport class LightsCommandSettingsObjectDTO implements ILightsCommandSettingsObjectDTO {\n slots?: LightsCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n readonly disabledModules?: boolean;\n\n constructor(data?: ILightsCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LightsCommandItemSettingsDTO.fromJS(item));\n }\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n (this).disabledModules = _data[\"disabledModules\"];\n }\n }\n\n static fromJS(data: any): LightsCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"disabledModules\"] = this.disabledModules;\n return data; \n }\n}\n\nexport interface ILightsCommandSettingsObjectDTO {\n slots?: LightsCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n disabledModules?: boolean;\n}\n\nexport class LightsCommandSettingsResult implements ILightsCommandSettingsResult {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n index?: number;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n\n constructor(data?: ILightsCommandSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.lightsOnOffMode = _data[\"lightsOnOffMode\"];\n this.lightsOnOffTimedDelay = _data[\"lightsOnOffTimedDelay\"];\n this.minimumRegulationLevel = _data[\"minimumRegulationLevel\"];\n this.index = _data[\"index\"];\n this.conctactType = _data[\"conctactType\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.hasChanges = _data[\"hasChanges\"];\n }\n }\n\n static fromJS(data: any): LightsCommandSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"lightsOnOffMode\"] = this.lightsOnOffMode;\n data[\"lightsOnOffTimedDelay\"] = this.lightsOnOffTimedDelay;\n data[\"minimumRegulationLevel\"] = this.minimumRegulationLevel;\n data[\"index\"] = this.index;\n data[\"conctactType\"] = this.conctactType;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"hasChanges\"] = this.hasChanges;\n return data; \n }\n}\n\nexport interface ILightsCommandSettingsResult {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n index?: number;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n}\n\nexport class LightsCommandSettingsResultList implements ILightsCommandSettingsResultList {\n results?: LightsCommandSettingsResult[] | undefined;\n\n constructor(data?: ILightsCommandSettingsResultList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"results\"])) {\n this.results = [] as any;\n for (let item of _data[\"results\"])\n this.results!.push(LightsCommandSettingsResult.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LightsCommandSettingsResultList {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandSettingsResultList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.results)) {\n data[\"results\"] = [];\n for (let item of this.results)\n data[\"results\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILightsCommandSettingsResultList {\n results?: LightsCommandSettingsResult[] | undefined;\n}\n\n/** 0 = Fluorescent 1 = Led 2 = Halogen 3 = LedTrailingEdgeOrElectronicTransformer 4 = LedLeadingEdge 5 = CFLTrailingEdge 6 = CFLLeadingEdge 7 = DaliStandard */\nexport enum LightsLoadTypes {\n Fluorescent = 0,\n Led = 1,\n Halogen = 2,\n LedTrailingEdgeOrElectronicTransformer = 3,\n LedLeadingEdge = 4,\n CFLTrailingEdge = 5,\n CFLLeadingEdge = 6,\n DaliStandard = 7,\n}\n\n/** 0 = Off 1 = OnOffRegulation 2 = Toggle 3 = Button 4 = Timed 5 = On 6 = OnRegulation 7 = ToggleOnOff 8 = CustomizedOn 9 = CustomizedOff 10 = CustomizedOnOff 11 = CustomizedOnOffRegulation 12 = CustomizedToggle 13 = CustomizedToggleRegulation 14 = CustomizedOnRegulation 15 = CustomizedOffRegulation */\nexport enum LightsOnOffMode {\n Off = 0,\n OnOffRegulation = 1,\n Toggle = 2,\n Button = 3,\n Timed = 4,\n On = 5,\n OnRegulation = 6,\n ToggleOnOff = 7,\n CustomizedOn = 8,\n CustomizedOff = 9,\n CustomizedOnOff = 10,\n CustomizedOnOffRegulation = 11,\n CustomizedToggle = 12,\n CustomizedToggleRegulation = 13,\n CustomizedOnRegulation = 14,\n CustomizedOffRegulation = 15,\n}\n\n/** 0 = AutoOnOff 1 = ManualOnAutoOff */\nexport enum LightsSensorOperatingMode {\n AutoOnOff = 0,\n ManualOnAutoOff = 1,\n}\n\n/** 0 = Low 1 = Medium 2 = High 3 = Maximum */\nexport enum LightsSensorSensitivity {\n Low = 0,\n Medium = 1,\n High = 2,\n Maximum = 3,\n}\n\n/** 0 = V_0_10 1 = V_1_10 */\nexport enum LightsVoltageOptions {\n V_0_10 = 0,\n V_1_10 = 1,\n}\n\nexport class LigthsCommandSettings extends CommandSettings implements ILigthsCommandSettings {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n typeofContact?: ConctactType;\n powerON?: number;\n fadeIn?: number;\n fadeOut?: number;\n dimmingSpeed?: number;\n\n constructor(data?: ILigthsCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.lightsOnOffMode = _data[\"lightsOnOffMode\"];\n this.lightsOnOffTimedDelay = _data[\"lightsOnOffTimedDelay\"];\n this.minimumRegulationLevel = _data[\"minimumRegulationLevel\"];\n this.typeofContact = _data[\"typeofContact\"];\n this.powerON = _data[\"powerON\"];\n this.fadeIn = _data[\"fadeIn\"];\n this.fadeOut = _data[\"fadeOut\"];\n this.dimmingSpeed = _data[\"dimmingSpeed\"];\n }\n }\n\n static fromJS(data: any): LigthsCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LigthsCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"lightsOnOffMode\"] = this.lightsOnOffMode;\n data[\"lightsOnOffTimedDelay\"] = this.lightsOnOffTimedDelay;\n data[\"minimumRegulationLevel\"] = this.minimumRegulationLevel;\n data[\"typeofContact\"] = this.typeofContact;\n data[\"powerON\"] = this.powerON;\n data[\"fadeIn\"] = this.fadeIn;\n data[\"fadeOut\"] = this.fadeOut;\n data[\"dimmingSpeed\"] = this.dimmingSpeed;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILigthsCommandSettings extends ICommandSettings {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n typeofContact?: ConctactType;\n powerON?: number;\n fadeIn?: number;\n fadeOut?: number;\n dimmingSpeed?: number;\n}\n\nexport class LigthsSensorCommandSettings extends CommandSettings implements ILigthsSensorCommandSettings {\n operationgfMode?: LightsSensorOperatingMode;\n daylightSetPoint?: number;\n timingOff?: number;\n pirSensitivity?: LightsSensorSensitivity;\n usSensitivity?: LightsSensorSensitivity;\n\n constructor(data?: ILigthsSensorCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.operationgfMode = _data[\"operationgfMode\"];\n this.daylightSetPoint = _data[\"daylightSetPoint\"];\n this.timingOff = _data[\"timingOff\"];\n this.pirSensitivity = _data[\"pirSensitivity\"];\n this.usSensitivity = _data[\"usSensitivity\"];\n }\n }\n\n static fromJS(data: any): LigthsSensorCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LigthsSensorCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"operationgfMode\"] = this.operationgfMode;\n data[\"daylightSetPoint\"] = this.daylightSetPoint;\n data[\"timingOff\"] = this.timingOff;\n data[\"pirSensitivity\"] = this.pirSensitivity;\n data[\"usSensitivity\"] = this.usSensitivity;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILigthsSensorCommandSettings extends ICommandSettings {\n operationgfMode?: LightsSensorOperatingMode;\n daylightSetPoint?: number;\n timingOff?: number;\n pirSensitivity?: LightsSensorSensitivity;\n usSensitivity?: LightsSensorSensitivity;\n}\n\n/** 0 = None 1 = Partial 2 = Total */\nexport enum Line {\n None = 0,\n Partial = 1,\n Total = 2,\n}\n\n/** 0 = None 1 = Production 2 = Consumption */\nexport enum LineMisuration {\n None = 0,\n Production = 1,\n Consumption = 2,\n}\n\nexport class LockActuatorSettings extends ActuatorSettings implements ILockActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n\n constructor(data?: ILockActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n }\n }\n\n static fromJS(data: any): LockActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LockActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILockActuatorSettings extends IActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n}\n\nexport class LockActuatorSettingsObjectParam implements ILockActuatorSettingsObjectParam {\n isZeroCrossingEnabled?: boolean;\n\n constructor(data?: ILockActuatorSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n }\n }\n\n static fromJS(data: any): LockActuatorSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new LockActuatorSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n return data; \n }\n}\n\nexport interface ILockActuatorSettingsObjectParam {\n isZeroCrossingEnabled?: boolean;\n}\n\nexport class LockActuatorSettingsResult implements ILockActuatorSettingsResult {\n isZeroCrossingEnabled?: boolean;\n\n constructor(data?: ILockActuatorSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n }\n }\n\n static fromJS(data: any): LockActuatorSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new LockActuatorSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n return data; \n }\n}\n\nexport interface ILockActuatorSettingsResult {\n isZeroCrossingEnabled?: boolean;\n}\n\nexport class LockCommandSettings extends CommandSettings implements ILockCommandSettings {\n commandOpeningTime?: CommandOpeningTime;\n typeofContact?: ConctactType;\n\n constructor(data?: ILockCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.typeofContact = _data[\"typeofContact\"];\n }\n }\n\n static fromJS(data: any): LockCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"typeofContact\"] = this.typeofContact;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILockCommandSettings extends ICommandSettings {\n commandOpeningTime?: CommandOpeningTime;\n typeofContact?: ConctactType;\n}\n\nexport class LockCommandSettingsObjectDTO implements ILockCommandSettingsObjectDTO {\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n slots?: LocksCommandItemSettingsDTO[] | undefined;\n\n constructor(data?: ILockCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LocksCommandItemSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LockCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILockCommandSettingsObjectDTO {\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n slots?: LocksCommandItemSettingsDTO[] | undefined;\n}\n\nexport class LockCommandSettingsResult implements ILockCommandSettingsResult {\n commandOpeningTime?: CommandOpeningTime;\n index?: number;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n\n constructor(data?: ILockCommandSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.index = _data[\"index\"];\n this.conctactType = _data[\"conctactType\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.hasChanges = _data[\"hasChanges\"];\n }\n }\n\n static fromJS(data: any): LockCommandSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"index\"] = this.index;\n data[\"conctactType\"] = this.conctactType;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"hasChanges\"] = this.hasChanges;\n return data; \n }\n}\n\nexport interface ILockCommandSettingsResult {\n commandOpeningTime?: CommandOpeningTime;\n index?: number;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n}\n\nexport class LockCommandSettingsResultList implements ILockCommandSettingsResultList {\n results?: LockCommandSettingsResult[] | undefined;\n\n constructor(data?: ILockCommandSettingsResultList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"results\"])) {\n this.results = [] as any;\n for (let item of _data[\"results\"])\n this.results!.push(LockCommandSettingsResult.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LockCommandSettingsResultList {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettingsResultList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.results)) {\n data[\"results\"] = [];\n for (let item of this.results)\n data[\"results\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILockCommandSettingsResultList {\n results?: LockCommandSettingsResult[] | undefined;\n}\n\nexport class LocksCommandItemSettingsDTO implements ILocksCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n lightType?: LightType;\n isManagePosition?: boolean;\n isAppliedToAllSameTypeCommands?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n commandOpeningTime?: CommandOpeningTime;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n\n constructor(data?: ILocksCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.isAppliedToAllSameTypeCommands = _data[\"isAppliedToAllSameTypeCommands\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n this.conctactType = _data[\"conctactType\"];\n }\n }\n\n static fromJS(data: any): LocksCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LocksCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"isAppliedToAllSameTypeCommands\"] = this.isAppliedToAllSameTypeCommands;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n data[\"conctactType\"] = this.conctactType;\n return data; \n }\n}\n\nexport interface ILocksCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n lightType?: LightType;\n isManagePosition?: boolean;\n isAppliedToAllSameTypeCommands?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n commandOpeningTime?: CommandOpeningTime;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n}\n\nexport class ObjectCondition extends Condition implements IObjectCondition {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n\n constructor(data?: IObjectCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.stateComparer = _data[\"stateComparer\"];\n this.lightState = _data[\"lightState\"];\n this.dimmerState = _data[\"dimmerState\"];\n this.dimmerPowerState = _data[\"dimmerPowerState\"];\n this.dimmerPercent = _data[\"dimmerPercent\"];\n this.workingMode = _data[\"workingMode\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.oldTemperature = _data[\"oldTemperature\"];\n this.isShutterPositionManaged = _data[\"isShutterPositionManaged\"];\n this.shutterModality = _data[\"shutterModality\"];\n this.shutterState = _data[\"shutterState\"];\n this.shutterPosition = _data[\"shutterPosition\"];\n this.blindState = _data[\"blindState\"];\n this.socketState = _data[\"socketState\"];\n this.lockState = _data[\"lockState\"];\n this.thermostatState = _data[\"thermostatState\"];\n this.thermostatModalityState = _data[\"thermostatModalityState\"];\n this.thermostatConditionState = _data[\"thermostatConditionState\"];\n this.thermostatTemperature = _data[\"thermostatTemperature\"];\n this.thermostatHumidity = _data[\"thermostatHumidity\"];\n this.towelWarmerState = _data[\"towelWarmerState\"];\n this.fancoilState = _data[\"fancoilState\"];\n this.fancoilSpeedState = _data[\"fancoilSpeedState\"];\n this.coloredLightsState = _data[\"coloredLightsState\"];\n this.coloredLightStateComparer = _data[\"coloredLightStateComparer\"];\n this.sceneColoredLightsColor = _data[\"sceneColoredLightsColor\"];\n this.playerTriggerMode = _data[\"playerTriggerMode\"];\n this.playerTriggerPowerState = _data[\"playerTriggerPowerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.energyMeterKw = _data[\"energyMeterKw\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmSensorObjectStatus = _data[\"alarmSensorObjectStatus\"];\n }\n }\n\n static fromJS(data: any): ObjectCondition {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"stateComparer\"] = this.stateComparer;\n data[\"lightState\"] = this.lightState;\n data[\"dimmerState\"] = this.dimmerState;\n data[\"dimmerPowerState\"] = this.dimmerPowerState;\n data[\"dimmerPercent\"] = this.dimmerPercent;\n data[\"workingMode\"] = this.workingMode;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"isShutterPositionManaged\"] = this.isShutterPositionManaged;\n data[\"shutterModality\"] = this.shutterModality;\n data[\"shutterState\"] = this.shutterState;\n data[\"shutterPosition\"] = this.shutterPosition;\n data[\"blindState\"] = this.blindState;\n data[\"socketState\"] = this.socketState;\n data[\"lockState\"] = this.lockState;\n data[\"thermostatState\"] = this.thermostatState;\n data[\"thermostatModalityState\"] = this.thermostatModalityState;\n data[\"thermostatConditionState\"] = this.thermostatConditionState;\n data[\"thermostatTemperature\"] = this.thermostatTemperature;\n data[\"thermostatHumidity\"] = this.thermostatHumidity;\n data[\"towelWarmerState\"] = this.towelWarmerState;\n data[\"fancoilState\"] = this.fancoilState;\n data[\"fancoilSpeedState\"] = this.fancoilSpeedState;\n data[\"coloredLightsState\"] = this.coloredLightsState;\n data[\"coloredLightStateComparer\"] = this.coloredLightStateComparer;\n data[\"sceneColoredLightsColor\"] = this.sceneColoredLightsColor;\n data[\"playerTriggerMode\"] = this.playerTriggerMode;\n data[\"playerTriggerPowerState\"] = this.playerTriggerPowerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"energyMeterKw\"] = this.energyMeterKw;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmSensorObjectStatus\"] = this.alarmSensorObjectStatus;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectCondition extends ICondition {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n}\n\n/** 0 = None 1 = NewDuplication 2 = OldDuplication */\nexport enum ObjectDuplication {\n None = 0,\n NewDuplication = 1,\n OldDuplication = 2,\n}\n\nexport class ObjectTrigger extends Trigger implements IObjectTrigger {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n\n constructor(data?: IObjectTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.stateComparer = _data[\"stateComparer\"];\n this.lightState = _data[\"lightState\"];\n this.dimmerState = _data[\"dimmerState\"];\n this.dimmerPowerState = _data[\"dimmerPowerState\"];\n this.dimmerPercent = _data[\"dimmerPercent\"];\n this.workingMode = _data[\"workingMode\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.oldTemperature = _data[\"oldTemperature\"];\n this.isShutterPositionManaged = _data[\"isShutterPositionManaged\"];\n this.shutterModality = _data[\"shutterModality\"];\n this.shutterState = _data[\"shutterState\"];\n this.shutterPosition = _data[\"shutterPosition\"];\n this.blindState = _data[\"blindState\"];\n this.socketState = _data[\"socketState\"];\n this.lockState = _data[\"lockState\"];\n this.thermostatState = _data[\"thermostatState\"];\n this.thermostatModalityState = _data[\"thermostatModalityState\"];\n this.thermostatConditionState = _data[\"thermostatConditionState\"];\n this.thermostatTemperature = _data[\"thermostatTemperature\"];\n this.thermostatHumidity = _data[\"thermostatHumidity\"];\n this.towelWarmerState = _data[\"towelWarmerState\"];\n this.fancoilState = _data[\"fancoilState\"];\n this.fancoilSpeedState = _data[\"fancoilSpeedState\"];\n this.coloredLightsState = _data[\"coloredLightsState\"];\n this.coloredLightStateComparer = _data[\"coloredLightStateComparer\"];\n this.sceneColoredLightsColor = _data[\"sceneColoredLightsColor\"];\n this.playerTriggerMode = _data[\"playerTriggerMode\"];\n this.playerTriggerPowerState = _data[\"playerTriggerPowerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.energyMeterKw = _data[\"energyMeterKw\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmSensorObjectStatus = _data[\"alarmSensorObjectStatus\"];\n }\n }\n\n static fromJS(data: any): ObjectTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"stateComparer\"] = this.stateComparer;\n data[\"lightState\"] = this.lightState;\n data[\"dimmerState\"] = this.dimmerState;\n data[\"dimmerPowerState\"] = this.dimmerPowerState;\n data[\"dimmerPercent\"] = this.dimmerPercent;\n data[\"workingMode\"] = this.workingMode;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"isShutterPositionManaged\"] = this.isShutterPositionManaged;\n data[\"shutterModality\"] = this.shutterModality;\n data[\"shutterState\"] = this.shutterState;\n data[\"shutterPosition\"] = this.shutterPosition;\n data[\"blindState\"] = this.blindState;\n data[\"socketState\"] = this.socketState;\n data[\"lockState\"] = this.lockState;\n data[\"thermostatState\"] = this.thermostatState;\n data[\"thermostatModalityState\"] = this.thermostatModalityState;\n data[\"thermostatConditionState\"] = this.thermostatConditionState;\n data[\"thermostatTemperature\"] = this.thermostatTemperature;\n data[\"thermostatHumidity\"] = this.thermostatHumidity;\n data[\"towelWarmerState\"] = this.towelWarmerState;\n data[\"fancoilState\"] = this.fancoilState;\n data[\"fancoilSpeedState\"] = this.fancoilSpeedState;\n data[\"coloredLightsState\"] = this.coloredLightsState;\n data[\"coloredLightStateComparer\"] = this.coloredLightStateComparer;\n data[\"sceneColoredLightsColor\"] = this.sceneColoredLightsColor;\n data[\"playerTriggerMode\"] = this.playerTriggerMode;\n data[\"playerTriggerPowerState\"] = this.playerTriggerPowerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"energyMeterKw\"] = this.energyMeterKw;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmSensorObjectStatus\"] = this.alarmSensorObjectStatus;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectTrigger extends ITrigger {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n}\n\nexport class ParamCreateLinkModule implements IParamCreateLinkModule {\n index?: number;\n name?: string | undefined;\n value?: string | undefined;\n\n constructor(data?: IParamCreateLinkModule) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.value = _data[\"value\"];\n }\n }\n\n static fromJS(data: any): ParamCreateLinkModule {\n data = typeof data === 'object' ? data : {};\n let result = new ParamCreateLinkModule();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"value\"] = this.value;\n return data; \n }\n}\n\nexport interface IParamCreateLinkModule {\n index?: number;\n name?: string | undefined;\n value?: string | undefined;\n}\n\nexport class ParamsScenesId implements IParamsScenesId {\n id?: string | undefined;\n button?: number;\n\n constructor(data?: IParamsScenesId) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.button = _data[\"button\"];\n }\n }\n\n static fromJS(data: any): ParamsScenesId {\n data = typeof data === 'object' ? data : {};\n let result = new ParamsScenesId();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"button\"] = this.button;\n return data; \n }\n}\n\nexport interface IParamsScenesId {\n id?: string | undefined;\n button?: number;\n}\n\nexport class PlantAlarmSystemDTO implements IPlantAlarmSystemDTO {\n partitions?: PlantAlarmSystemPartitionDTO[] | undefined;\n scenes?: PlantAlarmSystemSceneDTO[] | undefined;\n roomName?: string | undefined;\n sensors?: AlarmSystemSensorDTO[] | undefined;\n\n constructor(data?: IPlantAlarmSystemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"partitions\"])) {\n this.partitions = [] as any;\n for (let item of _data[\"partitions\"])\n this.partitions!.push(PlantAlarmSystemPartitionDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"scenes\"])) {\n this.scenes = [] as any;\n for (let item of _data[\"scenes\"])\n this.scenes!.push(PlantAlarmSystemSceneDTO.fromJS(item));\n }\n this.roomName = _data[\"roomName\"];\n if (Array.isArray(_data[\"sensors\"])) {\n this.sensors = [] as any;\n for (let item of _data[\"sensors\"])\n this.sensors!.push(AlarmSystemSensorDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): PlantAlarmSystemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantAlarmSystemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.partitions)) {\n data[\"partitions\"] = [];\n for (let item of this.partitions)\n data[\"partitions\"].push(item.toJSON());\n }\n if (Array.isArray(this.scenes)) {\n data[\"scenes\"] = [];\n for (let item of this.scenes)\n data[\"scenes\"].push(item.toJSON());\n }\n data[\"roomName\"] = this.roomName;\n if (Array.isArray(this.sensors)) {\n data[\"sensors\"] = [];\n for (let item of this.sensors)\n data[\"sensors\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IPlantAlarmSystemDTO {\n partitions?: PlantAlarmSystemPartitionDTO[] | undefined;\n scenes?: PlantAlarmSystemSceneDTO[] | undefined;\n roomName?: string | undefined;\n sensors?: AlarmSystemSensorDTO[] | undefined;\n}\n\nexport class PlantAlarmSystemPartitionDTO implements IPlantAlarmSystemPartitionDTO {\n partitionId?: string | undefined;\n partitionName?: string | undefined;\n\n constructor(data?: IPlantAlarmSystemPartitionDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.partitionId = _data[\"partitionId\"];\n this.partitionName = _data[\"partitionName\"];\n }\n }\n\n static fromJS(data: any): PlantAlarmSystemPartitionDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantAlarmSystemPartitionDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"partitionId\"] = this.partitionId;\n data[\"partitionName\"] = this.partitionName;\n return data; \n }\n}\n\nexport interface IPlantAlarmSystemPartitionDTO {\n partitionId?: string | undefined;\n partitionName?: string | undefined;\n}\n\nexport class PlantAlarmSystemSceneDTO implements IPlantAlarmSystemSceneDTO {\n sceneId?: string | undefined;\n sceneName?: string | undefined;\n\n constructor(data?: IPlantAlarmSystemSceneDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.sceneId = _data[\"sceneId\"];\n this.sceneName = _data[\"sceneName\"];\n }\n }\n\n static fromJS(data: any): PlantAlarmSystemSceneDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantAlarmSystemSceneDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"sceneId\"] = this.sceneId;\n data[\"sceneName\"] = this.sceneName;\n return data; \n }\n}\n\nexport interface IPlantAlarmSystemSceneDTO {\n sceneId?: string | undefined;\n sceneName?: string | undefined;\n}\n\nexport class PlantC300EOSSettingsDTO implements IPlantC300EOSSettingsDTO {\n gwId?: string | undefined;\n gwIpAddress?: string | undefined;\n gwSubnetMask?: string | undefined;\n gwPrimaryDNS?: string | undefined;\n gwSecondaryDNS?: string | undefined;\n gwDefaultGateway?: string | undefined;\n gwMacAddress?: string | undefined;\n language?: Language;\n isAutoSetupEnabled?: boolean;\n isTemperatureDisplayed?: boolean;\n ntpServer?: string | undefined;\n dateTime?: Date;\n timeZone?: string | undefined;\n temperatureType?: TemperatureType;\n model?: ServerModel;\n firmwareVersion?: string | undefined;\n isPhysicalConfig?: boolean;\n nValue?: number;\n pValue?: number;\n mValue?: number;\n isAnsweringMachineEnabled?: boolean;\n isProfessionalStudioEnabled?: boolean;\n isWaterCycleEnabled?: boolean;\n openAutomaticallyDaysDelay?: number;\n minutesToKeepOpen?: number;\n arePumpsOpenedAutomatically?: boolean;\n isInterlockSystemEnabled?: boolean;\n interlockExcludedDevices?: string[] | undefined;\n vdeIntercomFunctions?: IntercomFunction[] | undefined;\n vdeCameraFunctions?: CameraFunction[] | undefined;\n vdeActivationFunctions?: ActivationFunction[] | undefined;\n isThermoExternalCentralUnit?: boolean;\n selectedThermostat?: string | undefined;\n seasonChange3477Mode?: SeasonChange3477Mode;\n isSeasonModeAuto?: boolean;\n isKeypadLockOutSeason?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: DeviceDTO;\n seasonChangeAutoStartWinterDate?: Date | undefined;\n seasonChangeAutoStartSummerDate?: Date | undefined;\n hasOneSeason?: boolean;\n\n constructor(data?: IPlantC300EOSSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.gwId = _data[\"gwId\"];\n this.gwIpAddress = _data[\"gwIpAddress\"];\n this.gwSubnetMask = _data[\"gwSubnetMask\"];\n this.gwPrimaryDNS = _data[\"gwPrimaryDNS\"];\n this.gwSecondaryDNS = _data[\"gwSecondaryDNS\"];\n this.gwDefaultGateway = _data[\"gwDefaultGateway\"];\n this.gwMacAddress = _data[\"gwMacAddress\"];\n this.language = _data[\"language\"];\n this.isAutoSetupEnabled = _data[\"isAutoSetupEnabled\"];\n this.isTemperatureDisplayed = _data[\"isTemperatureDisplayed\"];\n this.ntpServer = _data[\"ntpServer\"];\n this.dateTime = _data[\"dateTime\"] ? new Date(_data[\"dateTime\"].toString()) : undefined;\n this.timeZone = _data[\"timeZone\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.model = _data[\"model\"];\n this.firmwareVersion = _data[\"firmwareVersion\"];\n this.isPhysicalConfig = _data[\"isPhysicalConfig\"];\n this.nValue = _data[\"nValue\"];\n this.pValue = _data[\"pValue\"];\n this.mValue = _data[\"mValue\"];\n this.isAnsweringMachineEnabled = _data[\"isAnsweringMachineEnabled\"];\n this.isProfessionalStudioEnabled = _data[\"isProfessionalStudioEnabled\"];\n this.isWaterCycleEnabled = _data[\"isWaterCycleEnabled\"];\n this.openAutomaticallyDaysDelay = _data[\"openAutomaticallyDaysDelay\"];\n this.minutesToKeepOpen = _data[\"minutesToKeepOpen\"];\n this.arePumpsOpenedAutomatically = _data[\"arePumpsOpenedAutomatically\"];\n this.isInterlockSystemEnabled = _data[\"isInterlockSystemEnabled\"];\n if (Array.isArray(_data[\"interlockExcludedDevices\"])) {\n this.interlockExcludedDevices = [] as any;\n for (let item of _data[\"interlockExcludedDevices\"])\n this.interlockExcludedDevices!.push(item);\n }\n if (Array.isArray(_data[\"vdeIntercomFunctions\"])) {\n this.vdeIntercomFunctions = [] as any;\n for (let item of _data[\"vdeIntercomFunctions\"])\n this.vdeIntercomFunctions!.push(IntercomFunction.fromJS(item));\n }\n if (Array.isArray(_data[\"vdeCameraFunctions\"])) {\n this.vdeCameraFunctions = [] as any;\n for (let item of _data[\"vdeCameraFunctions\"])\n this.vdeCameraFunctions!.push(CameraFunction.fromJS(item));\n }\n if (Array.isArray(_data[\"vdeActivationFunctions\"])) {\n this.vdeActivationFunctions = [] as any;\n for (let item of _data[\"vdeActivationFunctions\"])\n this.vdeActivationFunctions!.push(ActivationFunction.fromJS(item));\n }\n this.isThermoExternalCentralUnit = _data[\"isThermoExternalCentralUnit\"];\n this.selectedThermostat = _data[\"selectedThermostat\"];\n this.seasonChange3477Mode = _data[\"seasonChange3477Mode\"];\n this.isSeasonModeAuto = _data[\"isSeasonModeAuto\"];\n this.isKeypadLockOutSeason = _data[\"isKeypadLockOutSeason\"];\n this.seasonChangeAutoType = _data[\"seasonChangeAutoType\"];\n this.selected3477Device = _data[\"selected3477Device\"] ? DeviceDTO.fromJS(_data[\"selected3477Device\"]) : undefined;\n this.seasonChangeAutoStartWinterDate = _data[\"seasonChangeAutoStartWinterDate\"] ? new Date(_data[\"seasonChangeAutoStartWinterDate\"].toString()) : undefined;\n this.seasonChangeAutoStartSummerDate = _data[\"seasonChangeAutoStartSummerDate\"] ? new Date(_data[\"seasonChangeAutoStartSummerDate\"].toString()) : undefined;\n this.hasOneSeason = _data[\"hasOneSeason\"];\n }\n }\n\n static fromJS(data: any): PlantC300EOSSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantC300EOSSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"gwId\"] = this.gwId;\n data[\"gwIpAddress\"] = this.gwIpAddress;\n data[\"gwSubnetMask\"] = this.gwSubnetMask;\n data[\"gwPrimaryDNS\"] = this.gwPrimaryDNS;\n data[\"gwSecondaryDNS\"] = this.gwSecondaryDNS;\n data[\"gwDefaultGateway\"] = this.gwDefaultGateway;\n data[\"gwMacAddress\"] = this.gwMacAddress;\n data[\"language\"] = this.language;\n data[\"isAutoSetupEnabled\"] = this.isAutoSetupEnabled;\n data[\"isTemperatureDisplayed\"] = this.isTemperatureDisplayed;\n data[\"ntpServer\"] = this.ntpServer;\n data[\"dateTime\"] = this.dateTime ? this.dateTime.toISOString() : undefined;\n data[\"timeZone\"] = this.timeZone;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"model\"] = this.model;\n data[\"firmwareVersion\"] = this.firmwareVersion;\n data[\"isPhysicalConfig\"] = this.isPhysicalConfig;\n data[\"nValue\"] = this.nValue;\n data[\"pValue\"] = this.pValue;\n data[\"mValue\"] = this.mValue;\n data[\"isAnsweringMachineEnabled\"] = this.isAnsweringMachineEnabled;\n data[\"isProfessionalStudioEnabled\"] = this.isProfessionalStudioEnabled;\n data[\"isWaterCycleEnabled\"] = this.isWaterCycleEnabled;\n data[\"openAutomaticallyDaysDelay\"] = this.openAutomaticallyDaysDelay;\n data[\"minutesToKeepOpen\"] = this.minutesToKeepOpen;\n data[\"arePumpsOpenedAutomatically\"] = this.arePumpsOpenedAutomatically;\n data[\"isInterlockSystemEnabled\"] = this.isInterlockSystemEnabled;\n if (Array.isArray(this.interlockExcludedDevices)) {\n data[\"interlockExcludedDevices\"] = [];\n for (let item of this.interlockExcludedDevices)\n data[\"interlockExcludedDevices\"].push(item);\n }\n if (Array.isArray(this.vdeIntercomFunctions)) {\n data[\"vdeIntercomFunctions\"] = [];\n for (let item of this.vdeIntercomFunctions)\n data[\"vdeIntercomFunctions\"].push(item.toJSON());\n }\n if (Array.isArray(this.vdeCameraFunctions)) {\n data[\"vdeCameraFunctions\"] = [];\n for (let item of this.vdeCameraFunctions)\n data[\"vdeCameraFunctions\"].push(item.toJSON());\n }\n if (Array.isArray(this.vdeActivationFunctions)) {\n data[\"vdeActivationFunctions\"] = [];\n for (let item of this.vdeActivationFunctions)\n data[\"vdeActivationFunctions\"].push(item.toJSON());\n }\n data[\"isThermoExternalCentralUnit\"] = this.isThermoExternalCentralUnit;\n data[\"selectedThermostat\"] = this.selectedThermostat;\n data[\"seasonChange3477Mode\"] = this.seasonChange3477Mode;\n data[\"isSeasonModeAuto\"] = this.isSeasonModeAuto;\n data[\"isKeypadLockOutSeason\"] = this.isKeypadLockOutSeason;\n data[\"seasonChangeAutoType\"] = this.seasonChangeAutoType;\n data[\"selected3477Device\"] = this.selected3477Device ? this.selected3477Device.toJSON() : undefined;\n data[\"seasonChangeAutoStartWinterDate\"] = this.seasonChangeAutoStartWinterDate ? this.seasonChangeAutoStartWinterDate.toISOString() : undefined;\n data[\"seasonChangeAutoStartSummerDate\"] = this.seasonChangeAutoStartSummerDate ? this.seasonChangeAutoStartSummerDate.toISOString() : undefined;\n data[\"hasOneSeason\"] = this.hasOneSeason;\n return data; \n }\n}\n\nexport interface IPlantC300EOSSettingsDTO {\n gwId?: string | undefined;\n gwIpAddress?: string | undefined;\n gwSubnetMask?: string | undefined;\n gwPrimaryDNS?: string | undefined;\n gwSecondaryDNS?: string | undefined;\n gwDefaultGateway?: string | undefined;\n gwMacAddress?: string | undefined;\n language?: Language;\n isAutoSetupEnabled?: boolean;\n isTemperatureDisplayed?: boolean;\n ntpServer?: string | undefined;\n dateTime?: Date;\n timeZone?: string | undefined;\n temperatureType?: TemperatureType;\n model?: ServerModel;\n firmwareVersion?: string | undefined;\n isPhysicalConfig?: boolean;\n nValue?: number;\n pValue?: number;\n mValue?: number;\n isAnsweringMachineEnabled?: boolean;\n isProfessionalStudioEnabled?: boolean;\n isWaterCycleEnabled?: boolean;\n openAutomaticallyDaysDelay?: number;\n minutesToKeepOpen?: number;\n arePumpsOpenedAutomatically?: boolean;\n isInterlockSystemEnabled?: boolean;\n interlockExcludedDevices?: string[] | undefined;\n vdeIntercomFunctions?: IntercomFunction[] | undefined;\n vdeCameraFunctions?: CameraFunction[] | undefined;\n vdeActivationFunctions?: ActivationFunction[] | undefined;\n isThermoExternalCentralUnit?: boolean;\n selectedThermostat?: string | undefined;\n seasonChange3477Mode?: SeasonChange3477Mode;\n isSeasonModeAuto?: boolean;\n isKeypadLockOutSeason?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: DeviceDTO;\n seasonChangeAutoStartWinterDate?: Date | undefined;\n seasonChangeAutoStartSummerDate?: Date | undefined;\n hasOneSeason?: boolean;\n}\n\nexport class PlantDTO implements IPlantDTO {\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n mxServer?: PlantMxServerDTO;\n customIconDataUrl?: string | undefined;\n roomsCounts?: PlantRoomCount[] | undefined;\n isGatewayNotConfigured?: boolean;\n plantType?: PlantType;\n\n constructor(data?: IPlantDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.name = _data[\"name\"];\n this.address = _data[\"address\"];\n this.country = _data[\"country\"];\n if (Array.isArray(_data[\"tags\"])) {\n this.tags = [] as any;\n for (let item of _data[\"tags\"])\n this.tags!.push(PlantTagDTO.fromJS(item));\n }\n this.icon = _data[\"icon\"];\n this.mxServer = _data[\"mxServer\"] ? PlantMxServerDTO.fromJS(_data[\"mxServer\"]) : undefined;\n this.customIconDataUrl = _data[\"customIconDataUrl\"];\n if (Array.isArray(_data[\"roomsCounts\"])) {\n this.roomsCounts = [] as any;\n for (let item of _data[\"roomsCounts\"])\n this.roomsCounts!.push(PlantRoomCount.fromJS(item));\n }\n this.isGatewayNotConfigured = _data[\"isGatewayNotConfigured\"];\n this.plantType = _data[\"plantType\"];\n }\n }\n\n static fromJS(data: any): PlantDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"name\"] = this.name;\n data[\"address\"] = this.address;\n data[\"country\"] = this.country;\n if (Array.isArray(this.tags)) {\n data[\"tags\"] = [];\n for (let item of this.tags)\n data[\"tags\"].push(item.toJSON());\n }\n data[\"icon\"] = this.icon;\n data[\"mxServer\"] = this.mxServer ? this.mxServer.toJSON() : undefined;\n data[\"customIconDataUrl\"] = this.customIconDataUrl;\n if (Array.isArray(this.roomsCounts)) {\n data[\"roomsCounts\"] = [];\n for (let item of this.roomsCounts)\n data[\"roomsCounts\"].push(item.toJSON());\n }\n data[\"isGatewayNotConfigured\"] = this.isGatewayNotConfigured;\n data[\"plantType\"] = this.plantType;\n return data; \n }\n}\n\nexport interface IPlantDTO {\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n mxServer?: PlantMxServerDTO;\n customIconDataUrl?: string | undefined;\n roomsCounts?: PlantRoomCount[] | undefined;\n isGatewayNotConfigured?: boolean;\n plantType?: PlantType;\n}\n\nexport class PlantDetailDTO implements IPlantDetailDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n lastModify?: Date;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n sharedWith?: PlantSharingDTO[] | undefined;\n isFavourite?: boolean;\n owner?: UserDTO;\n usersIdFavorites?: string[] | undefined;\n plantType?: PlantType;\n mxServer?: PlantMxServerDTO;\n rooms?: RoomDTO[] | undefined;\n lastScanDate?: Date | undefined;\n aggregateCommandsCount?: number;\n scenesCount?: number;\n gwId?: string | undefined;\n isGatewayNotConfigured?: boolean;\n\n constructor(data?: IPlantDetailDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.desktopId = _data[\"desktopId\"];\n this.name = _data[\"name\"];\n this.address = _data[\"address\"];\n this.country = _data[\"country\"];\n if (Array.isArray(_data[\"tags\"])) {\n this.tags = [] as any;\n for (let item of _data[\"tags\"])\n this.tags!.push(PlantTagDTO.fromJS(item));\n }\n this.icon = _data[\"icon\"];\n this.customIconImageUrl = _data[\"customIconImageUrl\"];\n this.customIconDataUrl = _data[\"customIconDataUrl\"];\n this.lastModify = _data[\"lastModify\"] ? new Date(_data[\"lastModify\"].toString()) : undefined;\n this.lastModifyByDesktop = _data[\"lastModifyByDesktop\"];\n this.lastModifyBy = _data[\"lastModifyBy\"] ? UserDTO.fromJS(_data[\"lastModifyBy\"]) : undefined;\n if (Array.isArray(_data[\"sharedWith\"])) {\n this.sharedWith = [] as any;\n for (let item of _data[\"sharedWith\"])\n this.sharedWith!.push(PlantSharingDTO.fromJS(item));\n }\n this.isFavourite = _data[\"isFavourite\"];\n this.owner = _data[\"owner\"] ? UserDTO.fromJS(_data[\"owner\"]) : undefined;\n if (Array.isArray(_data[\"usersIdFavorites\"])) {\n this.usersIdFavorites = [] as any;\n for (let item of _data[\"usersIdFavorites\"])\n this.usersIdFavorites!.push(item);\n }\n this.plantType = _data[\"plantType\"];\n this.mxServer = _data[\"mxServer\"] ? PlantMxServerDTO.fromJS(_data[\"mxServer\"]) : undefined;\n if (Array.isArray(_data[\"rooms\"])) {\n this.rooms = [] as any;\n for (let item of _data[\"rooms\"])\n this.rooms!.push(RoomDTO.fromJS(item));\n }\n this.lastScanDate = _data[\"lastScanDate\"] ? new Date(_data[\"lastScanDate\"].toString()) : undefined;\n this.aggregateCommandsCount = _data[\"aggregateCommandsCount\"];\n this.scenesCount = _data[\"scenesCount\"];\n this.gwId = _data[\"gwId\"];\n this.isGatewayNotConfigured = _data[\"isGatewayNotConfigured\"];\n }\n }\n\n static fromJS(data: any): PlantDetailDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantDetailDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"desktopId\"] = this.desktopId;\n data[\"name\"] = this.name;\n data[\"address\"] = this.address;\n data[\"country\"] = this.country;\n if (Array.isArray(this.tags)) {\n data[\"tags\"] = [];\n for (let item of this.tags)\n data[\"tags\"].push(item.toJSON());\n }\n data[\"icon\"] = this.icon;\n data[\"customIconImageUrl\"] = this.customIconImageUrl;\n data[\"customIconDataUrl\"] = this.customIconDataUrl;\n data[\"lastModify\"] = this.lastModify ? this.lastModify.toISOString() : undefined;\n data[\"lastModifyByDesktop\"] = this.lastModifyByDesktop;\n data[\"lastModifyBy\"] = this.lastModifyBy ? this.lastModifyBy.toJSON() : undefined;\n if (Array.isArray(this.sharedWith)) {\n data[\"sharedWith\"] = [];\n for (let item of this.sharedWith)\n data[\"sharedWith\"].push(item.toJSON());\n }\n data[\"isFavourite\"] = this.isFavourite;\n data[\"owner\"] = this.owner ? this.owner.toJSON() : undefined;\n if (Array.isArray(this.usersIdFavorites)) {\n data[\"usersIdFavorites\"] = [];\n for (let item of this.usersIdFavorites)\n data[\"usersIdFavorites\"].push(item);\n }\n data[\"plantType\"] = this.plantType;\n data[\"mxServer\"] = this.mxServer ? this.mxServer.toJSON() : undefined;\n if (Array.isArray(this.rooms)) {\n data[\"rooms\"] = [];\n for (let item of this.rooms)\n data[\"rooms\"].push(item.toJSON());\n }\n data[\"lastScanDate\"] = this.lastScanDate ? this.lastScanDate.toISOString() : undefined;\n data[\"aggregateCommandsCount\"] = this.aggregateCommandsCount;\n data[\"scenesCount\"] = this.scenesCount;\n data[\"gwId\"] = this.gwId;\n data[\"isGatewayNotConfigured\"] = this.isGatewayNotConfigured;\n return data; \n }\n}\n\nexport interface IPlantDetailDTO {\n desktopId?: number;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n icon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n customIconDataUrl?: string | undefined;\n lastModify?: Date;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n sharedWith?: PlantSharingDTO[] | undefined;\n isFavourite?: boolean;\n owner?: UserDTO;\n usersIdFavorites?: string[] | undefined;\n plantType?: PlantType;\n mxServer?: PlantMxServerDTO;\n rooms?: RoomDTO[] | undefined;\n lastScanDate?: Date | undefined;\n aggregateCommandsCount?: number;\n scenesCount?: number;\n gwId?: string | undefined;\n isGatewayNotConfigured?: boolean;\n}\n\n/** 0 = ICON_1 1 = ICON_2 2 = ICON_3 3 = ICON_4 4 = ICON_5 5 = ICON_CUSTOM */\nexport enum PlantIconEnum {\n ICON_1 = 0,\n ICON_2 = 1,\n ICON_3 = 2,\n ICON_4 = 3,\n ICON_5 = 4,\n ICON_CUSTOM = 5,\n}\n\nexport class PlantListDTO implements IPlantListDTO {\n desktopId?: number;\n id?: string | undefined;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n status?: PlantStatus;\n lastModify?: Date | undefined;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n isFavourite?: boolean;\n justSynchronized?: boolean;\n lastSessionDateTime?: Date | undefined;\n sessionLocked?: boolean;\n sessionLockedBy?: UserDTO;\n plantTypeIcon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n usersIdFavorites?: string[] | undefined;\n isGatewayNotConfigured?: boolean;\n plantType?: PlantType;\n\n constructor(data?: IPlantListDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.desktopId = _data[\"desktopId\"];\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.address = _data[\"address\"];\n this.country = _data[\"country\"];\n if (Array.isArray(_data[\"tags\"])) {\n this.tags = [] as any;\n for (let item of _data[\"tags\"])\n this.tags!.push(PlantTagDTO.fromJS(item));\n }\n this.status = _data[\"status\"];\n this.lastModify = _data[\"lastModify\"] ? new Date(_data[\"lastModify\"].toString()) : undefined;\n this.lastModifyByDesktop = _data[\"lastModifyByDesktop\"];\n this.lastModifyBy = _data[\"lastModifyBy\"] ? UserDTO.fromJS(_data[\"lastModifyBy\"]) : undefined;\n this.isFavourite = _data[\"isFavourite\"];\n this.justSynchronized = _data[\"justSynchronized\"];\n this.lastSessionDateTime = _data[\"lastSessionDateTime\"] ? new Date(_data[\"lastSessionDateTime\"].toString()) : undefined;\n this.sessionLocked = _data[\"sessionLocked\"];\n this.sessionLockedBy = _data[\"sessionLockedBy\"] ? UserDTO.fromJS(_data[\"sessionLockedBy\"]) : undefined;\n this.plantTypeIcon = _data[\"plantTypeIcon\"];\n this.customIconImageUrl = _data[\"customIconImageUrl\"];\n if (Array.isArray(_data[\"usersIdFavorites\"])) {\n this.usersIdFavorites = [] as any;\n for (let item of _data[\"usersIdFavorites\"])\n this.usersIdFavorites!.push(item);\n }\n this.isGatewayNotConfigured = _data[\"isGatewayNotConfigured\"];\n this.plantType = _data[\"plantType\"];\n }\n }\n\n static fromJS(data: any): PlantListDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantListDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"desktopId\"] = this.desktopId;\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"address\"] = this.address;\n data[\"country\"] = this.country;\n if (Array.isArray(this.tags)) {\n data[\"tags\"] = [];\n for (let item of this.tags)\n data[\"tags\"].push(item.toJSON());\n }\n data[\"status\"] = this.status;\n data[\"lastModify\"] = this.lastModify ? this.lastModify.toISOString() : undefined;\n data[\"lastModifyByDesktop\"] = this.lastModifyByDesktop;\n data[\"lastModifyBy\"] = this.lastModifyBy ? this.lastModifyBy.toJSON() : undefined;\n data[\"isFavourite\"] = this.isFavourite;\n data[\"justSynchronized\"] = this.justSynchronized;\n data[\"lastSessionDateTime\"] = this.lastSessionDateTime ? this.lastSessionDateTime.toISOString() : undefined;\n data[\"sessionLocked\"] = this.sessionLocked;\n data[\"sessionLockedBy\"] = this.sessionLockedBy ? this.sessionLockedBy.toJSON() : undefined;\n data[\"plantTypeIcon\"] = this.plantTypeIcon;\n data[\"customIconImageUrl\"] = this.customIconImageUrl;\n if (Array.isArray(this.usersIdFavorites)) {\n data[\"usersIdFavorites\"] = [];\n for (let item of this.usersIdFavorites)\n data[\"usersIdFavorites\"].push(item);\n }\n data[\"isGatewayNotConfigured\"] = this.isGatewayNotConfigured;\n data[\"plantType\"] = this.plantType;\n return data; \n }\n}\n\nexport interface IPlantListDTO {\n desktopId?: number;\n id?: string | undefined;\n name?: string | undefined;\n address?: string | undefined;\n country?: string | undefined;\n tags?: PlantTagDTO[] | undefined;\n status?: PlantStatus;\n lastModify?: Date | undefined;\n lastModifyByDesktop?: boolean;\n lastModifyBy?: UserDTO;\n isFavourite?: boolean;\n justSynchronized?: boolean;\n lastSessionDateTime?: Date | undefined;\n sessionLocked?: boolean;\n sessionLockedBy?: UserDTO;\n plantTypeIcon?: PlantIconEnum;\n customIconImageUrl?: string | undefined;\n usersIdFavorites?: string[] | undefined;\n isGatewayNotConfigured?: boolean;\n plantType?: PlantType;\n}\n\nexport class PlantListDTOPaginatedResult implements IPlantListDTOPaginatedResult {\n data?: PlantListDTO[] | undefined;\n total?: number;\n pageNumber?: number;\n pageSize?: number;\n\n constructor(data?: IPlantListDTOPaginatedResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"data\"])) {\n this.data = [] as any;\n for (let item of _data[\"data\"])\n this.data!.push(PlantListDTO.fromJS(item));\n }\n this.total = _data[\"total\"];\n this.pageNumber = _data[\"pageNumber\"];\n this.pageSize = _data[\"pageSize\"];\n }\n }\n\n static fromJS(data: any): PlantListDTOPaginatedResult {\n data = typeof data === 'object' ? data : {};\n let result = new PlantListDTOPaginatedResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.data)) {\n data[\"data\"] = [];\n for (let item of this.data)\n data[\"data\"].push(item.toJSON());\n }\n data[\"total\"] = this.total;\n data[\"pageNumber\"] = this.pageNumber;\n data[\"pageSize\"] = this.pageSize;\n return data; \n }\n}\n\nexport interface IPlantListDTOPaginatedResult {\n data?: PlantListDTO[] | undefined;\n total?: number;\n pageNumber?: number;\n pageSize?: number;\n}\n\nexport class PlantMxServerDTO implements IPlantMxServerDTO {\n model?: ServerModel;\n temperatureType?: TemperatureType;\n isAlarmConfigured?: boolean;\n alarmConfiguration?: PlantAlarmSystemDTO;\n\n constructor(data?: IPlantMxServerDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.model = _data[\"model\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.isAlarmConfigured = _data[\"isAlarmConfigured\"];\n this.alarmConfiguration = _data[\"alarmConfiguration\"] ? PlantAlarmSystemDTO.fromJS(_data[\"alarmConfiguration\"]) : undefined;\n }\n }\n\n static fromJS(data: any): PlantMxServerDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantMxServerDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"model\"] = this.model;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"isAlarmConfigured\"] = this.isAlarmConfigured;\n data[\"alarmConfiguration\"] = this.alarmConfiguration ? this.alarmConfiguration.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IPlantMxServerDTO {\n model?: ServerModel;\n temperatureType?: TemperatureType;\n isAlarmConfigured?: boolean;\n alarmConfiguration?: PlantAlarmSystemDTO;\n}\n\nexport class PlantRoomCount implements IPlantRoomCount {\n type?: RoomType;\n count?: number;\n label?: string | undefined;\n\n constructor(data?: IPlantRoomCount) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.type = _data[\"type\"];\n this.count = _data[\"count\"];\n this.label = _data[\"label\"];\n }\n }\n\n static fromJS(data: any): PlantRoomCount {\n data = typeof data === 'object' ? data : {};\n let result = new PlantRoomCount();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"count\"] = this.count;\n data[\"label\"] = this.label;\n return data; \n }\n}\n\nexport interface IPlantRoomCount {\n type?: RoomType;\n count?: number;\n label?: string | undefined;\n}\n\nexport class PlantSessionDTO implements IPlantSessionDTO {\n renewSessionSeconds?: number;\n\n constructor(data?: IPlantSessionDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.renewSessionSeconds = _data[\"renewSessionSeconds\"];\n }\n }\n\n static fromJS(data: any): PlantSessionDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantSessionDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"renewSessionSeconds\"] = this.renewSessionSeconds;\n return data; \n }\n}\n\nexport interface IPlantSessionDTO {\n renewSessionSeconds?: number;\n}\n\nexport class PlantSharingDTO implements IPlantSharingDTO {\n userId?: string | undefined;\n invitedEmail?: string | undefined;\n confirmed?: boolean;\n name?: string | undefined;\n surname?: string | undefined;\n email?: string | undefined;\n\n constructor(data?: IPlantSharingDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.userId = _data[\"userId\"];\n this.invitedEmail = _data[\"invitedEmail\"];\n this.confirmed = _data[\"confirmed\"];\n this.name = _data[\"name\"];\n this.surname = _data[\"surname\"];\n this.email = _data[\"email\"];\n }\n }\n\n static fromJS(data: any): PlantSharingDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantSharingDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"userId\"] = this.userId;\n data[\"invitedEmail\"] = this.invitedEmail;\n data[\"confirmed\"] = this.confirmed;\n data[\"name\"] = this.name;\n data[\"surname\"] = this.surname;\n data[\"email\"] = this.email;\n return data; \n }\n}\n\nexport interface IPlantSharingDTO {\n userId?: string | undefined;\n invitedEmail?: string | undefined;\n confirmed?: boolean;\n name?: string | undefined;\n surname?: string | undefined;\n email?: string | undefined;\n}\n\n/** 0 = PROJECT 1 = INSTALLED 2 = COMMISSIONED */\nexport enum PlantStatus {\n PROJECT = 0,\n INSTALLED = 1,\n COMMISSIONED = 2,\n}\n\nexport class PlantTagDTO implements IPlantTagDTO {\n key?: string | undefined;\n value?: string | undefined;\n isImportant?: boolean;\n usages?: number;\n\n constructor(data?: IPlantTagDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.key = _data[\"key\"];\n this.value = _data[\"value\"];\n this.isImportant = _data[\"isImportant\"];\n this.usages = _data[\"usages\"];\n }\n }\n\n static fromJS(data: any): PlantTagDTO {\n data = typeof data === 'object' ? data : {};\n let result = new PlantTagDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"key\"] = this.key;\n data[\"value\"] = this.value;\n data[\"isImportant\"] = this.isImportant;\n data[\"usages\"] = this.usages;\n return data; \n }\n}\n\nexport interface IPlantTagDTO {\n key?: string | undefined;\n value?: string | undefined;\n isImportant?: boolean;\n usages?: number;\n}\n\n/** 0 = AUTOMATION_PLANT 1 = ENTRANCE_PLANT */\nexport enum PlantType {\n AUTOMATION_PLANT = 0,\n ENTRANCE_PLANT = 1,\n}\n\n/** 0 = PLANT_NAME 1 = MODIFIED_DATE */\nexport enum PlantsOrderBy {\n PLANT_NAME = 0,\n MODIFIED_DATE = 1,\n}\n\nexport class PlayerExtDevice extends ExtDevice implements IPlayerExtDevice {\n playerSystem?: PlayerSystem;\n readonly macAddress?: string | undefined;\n readonly name?: string | undefined;\n\n constructor(data?: IPlayerExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.playerSystem = _data[\"playerSystem\"];\n (this).macAddress = _data[\"macAddress\"];\n (this).name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): PlayerExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new PlayerExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"playerSystem\"] = this.playerSystem;\n data[\"macAddress\"] = this.macAddress;\n data[\"name\"] = this.name;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPlayerExtDevice extends IExtDevice {\n playerSystem?: PlayerSystem;\n macAddress?: string | undefined;\n name?: string | undefined;\n}\n\n/** 0 = Nuvo 1 = Sonos */\nexport enum PlayerSystem {\n Nuvo = 0,\n Sonos = 1,\n}\n\nexport class ProbeSettings implements IProbeSettings {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n\n constructor(data?: IProbeSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isLedmanaged = _data[\"isLedmanaged\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n }\n }\n\n static fromJS(data: any): ProbeSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ProbeSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isLedmanaged\"] = this.isLedmanaged;\n data[\"externalSensorType\"] = this.externalSensorType;\n return data; \n }\n}\n\nexport interface IProbeSettings {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n}\n\n/** 0 = None 1 = PhisicallyConfigured 2 = DeviceRemoved 3 = DeviceUnmanage 4 = DeviceChanged */\nexport enum ProblemType {\n None = 0,\n PhisicallyConfigured = 1,\n DeviceRemoved = 2,\n DeviceUnmanage = 3,\n DeviceChanged = 4,\n}\n\nexport class PushNotificationAction extends Action implements IPushNotificationAction {\n\n constructor(data?: IPushNotificationAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n }\n\n static fromJS(data: any): PushNotificationAction {\n data = typeof data === 'object' ? data : {};\n let result = new PushNotificationAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPushNotificationAction extends IAction {\n}\n\nexport class RFAConfigDTO implements IRFAConfigDTO {\n numberOfApartments?: number;\n floorsWithoutRiser?: FloorConfigDTO[] | undefined;\n risers?: RiserConfigDTO[] | undefined;\n\n constructor(data?: IRFAConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.numberOfApartments = _data[\"numberOfApartments\"];\n if (Array.isArray(_data[\"floorsWithoutRiser\"])) {\n this.floorsWithoutRiser = [] as any;\n for (let item of _data[\"floorsWithoutRiser\"])\n this.floorsWithoutRiser!.push(FloorConfigDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"risers\"])) {\n this.risers = [] as any;\n for (let item of _data[\"risers\"])\n this.risers!.push(RiserConfigDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RFAConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RFAConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"numberOfApartments\"] = this.numberOfApartments;\n if (Array.isArray(this.floorsWithoutRiser)) {\n data[\"floorsWithoutRiser\"] = [];\n for (let item of this.floorsWithoutRiser)\n data[\"floorsWithoutRiser\"].push(item.toJSON());\n }\n if (Array.isArray(this.risers)) {\n data[\"risers\"] = [];\n for (let item of this.risers)\n data[\"risers\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRFAConfigDTO {\n numberOfApartments?: number;\n floorsWithoutRiser?: FloorConfigDTO[] | undefined;\n risers?: RiserConfigDTO[] | undefined;\n}\n\n/** 0 = LastStatus 1 = Opened 2 = Closed */\nexport enum RelayStatusAfterResetOptions {\n LastStatus = 0,\n Opened = 1,\n Closed = 2,\n}\n\n/** 0 = None 1 = Global 2 = Actuator */\nexport enum ResetType {\n None = 0,\n Global = 1,\n Actuator = 2,\n}\n\nexport class RiserConfigDTO implements IRiserConfigDTO {\n index?: number;\n name?: string | undefined;\n floors?: FloorConfigDTO[] | undefined;\n\n constructor(data?: IRiserConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"floors\"])) {\n this.floors = [] as any;\n for (let item of _data[\"floors\"])\n this.floors!.push(FloorConfigDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RiserConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RiserConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n if (Array.isArray(this.floors)) {\n data[\"floors\"] = [];\n for (let item of this.floors)\n data[\"floors\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRiserConfigDTO {\n index?: number;\n name?: string | undefined;\n floors?: FloorConfigDTO[] | undefined;\n}\n\nexport class RiserDTO implements IRiserDTO {\n riserId?: string;\n buildingId?: string;\n index?: string | undefined;\n name?: string | undefined;\n order?: number;\n\n constructor(data?: IRiserDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.riserId = _data[\"riserId\"];\n this.buildingId = _data[\"buildingId\"];\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.order = _data[\"order\"];\n }\n }\n\n static fromJS(data: any): RiserDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RiserDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"riserId\"] = this.riserId;\n data[\"buildingId\"] = this.buildingId;\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"order\"] = this.order;\n return data; \n }\n}\n\nexport interface IRiserDTO {\n riserId?: string;\n buildingId?: string;\n index?: string | undefined;\n name?: string | undefined;\n order?: number;\n}\n\nexport class Room implements IRoom {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObject[] | undefined;\n\n constructor(data?: IRoom) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(RoomObject.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Room {\n data = typeof data === 'object' ? data : {};\n let result = new Room();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoom {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObject[] | undefined;\n}\n\nexport class RoomDTO implements IRoomDTO {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObjectDTO[] | undefined;\n\n constructor(data?: IRoomDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(RoomObjectDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RoomDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoomDTO {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObjectDTO[] | undefined;\n}\n\nexport class RoomObject extends LinkableObject implements IRoomObject {\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n commandOpeningTime?: CommandOpeningTime;\n isAppliedToAllSameTypeCommands?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermo?: ThermoActuactor[] | undefined;\n isTemperatureDisplayed?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n isInterlockSystemEnabled?: boolean;\n isSeasonModeAuto?: boolean;\n isSeasonChangeModifiable?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: Device;\n seasonChangeAutoStartWinterDate?: Date;\n seasonChangeAutoStartSummerDate?: Date;\n isThermo99Zone?: boolean;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n heatingThermalProtection?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n energyMeterAndLoadControlType?: EnergyMeterAndLoadControlType;\n isEnergyMeter?: boolean;\n toroidDirectionType?: ToroidDirection;\n lineType?: Line;\n lineMisurationType?: LineMisuration;\n isAutoCommutation?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n temperatureType?: TemperatureType;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n isInterlockingExcluded?: boolean;\n pumpsDelay?: string;\n thermoUkFanSpeed?: number;\n thermoUkFanSpeed2?: number;\n thermoUkFanSpeed3?: number;\n coloredLightType?: ColoredLightType;\n daliType?: DaliType;\n isColor?: boolean;\n isTemperatureColor?: boolean;\n\n constructor(data?: IRoomObject) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n this.systemType = _data[\"systemType\"];\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.isAppliedToAllSameTypeCommands = _data[\"isAppliedToAllSameTypeCommands\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.actuatorModalityType = _data[\"actuatorModalityType\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n if (Array.isArray(_data[\"thermo\"])) {\n this.thermo = [] as any;\n for (let item of _data[\"thermo\"])\n this.thermo!.push(ThermoActuactor.fromJS(item));\n }\n this.isTemperatureDisplayed = _data[\"isTemperatureDisplayed\"];\n this.isWaterCycleEnabled = _data[\"isWaterCycleEnabled\"];\n this.arePumpsOpenedAutomatically = _data[\"arePumpsOpenedAutomatically\"];\n this.minutesToKeepOpen = _data[\"minutesToKeepOpen\"];\n this.openAutomaticallyDaysDelay = _data[\"openAutomaticallyDaysDelay\"];\n this.isInterlockSystemEnabled = _data[\"isInterlockSystemEnabled\"];\n this.isSeasonModeAuto = _data[\"isSeasonModeAuto\"];\n this.isSeasonChangeModifiable = _data[\"isSeasonChangeModifiable\"];\n this.seasonChangeAutoType = _data[\"seasonChangeAutoType\"];\n this.selected3477Device = _data[\"selected3477Device\"] ? Device.fromJS(_data[\"selected3477Device\"]) : undefined;\n this.seasonChangeAutoStartWinterDate = _data[\"seasonChangeAutoStartWinterDate\"] ? new Date(_data[\"seasonChangeAutoStartWinterDate\"].toString()) : undefined;\n this.seasonChangeAutoStartSummerDate = _data[\"seasonChangeAutoStartSummerDate\"] ? new Date(_data[\"seasonChangeAutoStartSummerDate\"].toString()) : undefined;\n this.isThermo99Zone = _data[\"isThermo99Zone\"];\n this.thermo99SelectedZone = _data[\"thermo99SelectedZone\"];\n this.thermo99HasFancoil = _data[\"thermo99HasFancoil\"];\n this.heatingSetpointLow = _data[\"heatingSetpointLow\"];\n this.heatingSetpointHigh = _data[\"heatingSetpointHigh\"];\n this.heatingAntifreeze = _data[\"heatingAntifreeze\"];\n this.heatingThermalProtection = _data[\"heatingThermalProtection\"];\n this.coolingSetpointLow = _data[\"coolingSetpointLow\"];\n this.coolingSetpointHigh = _data[\"coolingSetpointHigh\"];\n this.coolingThermalProtection = _data[\"coolingThermalProtection\"];\n this.energyMeterAndLoadControlType = _data[\"energyMeterAndLoadControlType\"];\n this.isEnergyMeter = _data[\"isEnergyMeter\"];\n this.toroidDirectionType = _data[\"toroidDirectionType\"];\n this.lineType = _data[\"lineType\"];\n this.lineMisurationType = _data[\"lineMisurationType\"];\n this.isAutoCommutation = _data[\"isAutoCommutation\"];\n this.delayHeatingPumps = _data[\"delayHeatingPumps\"];\n this.delayCoolingPumps = _data[\"delayCoolingPumps\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.areButtonsEnabled = _data[\"areButtonsEnabled\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isBacklightEnabled = _data[\"isBacklightEnabled\"];\n this.backlightLevel = _data[\"backlightLevel\"];\n this.isManualHeatingOverrideEnabled = _data[\"isManualHeatingOverrideEnabled\"];\n this.heatingRegulationBand = _data[\"heatingRegulationBand\"];\n this.fanSpeed2ForHeating = _data[\"fanSpeed2ForHeating\"];\n this.fanSpeed3ForHeating = _data[\"fanSpeed3ForHeating\"];\n this.valvesTimeForHeatingFanCoil = _data[\"valvesTimeForHeatingFanCoil\"];\n this.isManualCoolingOverrideEnabled = _data[\"isManualCoolingOverrideEnabled\"];\n this.coolingRegulationBand = _data[\"coolingRegulationBand\"];\n this.fanSpeed2ForCooling = _data[\"fanSpeed2ForCooling\"];\n this.fanSpeed3ForCooling = _data[\"fanSpeed3ForCooling\"];\n this.valvesTimeForCoolingFanCoil = _data[\"valvesTimeForCoolingFanCoil\"];\n this.isIconAlwaysOff = _data[\"isIconAlwaysOff\"];\n this.isLocalContactNumberEnabled = _data[\"isLocalContactNumberEnabled\"];\n this.numberOfWindowsContact = _data[\"numberOfWindowsContact\"];\n this.openingContactTypeHeating = _data[\"openingContactTypeHeating\"];\n this.openingContactTempHeating = _data[\"openingContactTempHeating\"];\n this.openingContactDelayHeating = _data[\"openingContactDelayHeating\"];\n this.timeoutOpeningHeating = _data[\"timeoutOpeningHeating\"];\n this.closingContactTypeHeating = _data[\"closingContactTypeHeating\"];\n this.closingContactTempHeating = _data[\"closingContactTempHeating\"];\n this.closingContactDelayHeating = _data[\"closingContactDelayHeating\"];\n this.timeoutClosingHeating = _data[\"timeoutClosingHeating\"];\n this.openingContactTypeCooling = _data[\"openingContactTypeCooling\"];\n this.openingContactTempCooling = _data[\"openingContactTempCooling\"];\n this.openingContactDelayCooling = _data[\"openingContactDelayCooling\"];\n this.timeoutOpeningCooling = _data[\"timeoutOpeningCooling\"];\n this.closingContactTypeCooling = _data[\"closingContactTypeCooling\"];\n this.closingContactTempCooling = _data[\"closingContactTempCooling\"];\n this.closingContactDelayCooling = _data[\"closingContactDelayCooling\"];\n this.timeoutClosingCooling = _data[\"timeoutClosingCooling\"];\n this.isCoolingVentilationEnabled = _data[\"isCoolingVentilationEnabled\"];\n this.isHeatingVentilationEnabled = _data[\"isHeatingVentilationEnabled\"];\n this.timeoutCoolingVentilation = _data[\"timeoutCoolingVentilation\"];\n this.timeoutHeatingVentilation = _data[\"timeoutHeatingVentilation\"];\n this.isInterlockingExcluded = _data[\"isInterlockingExcluded\"];\n this.pumpsDelay = _data[\"pumpsDelay\"];\n this.thermoUkFanSpeed = _data[\"thermoUkFanSpeed\"];\n this.thermoUkFanSpeed2 = _data[\"thermoUkFanSpeed2\"];\n this.thermoUkFanSpeed3 = _data[\"thermoUkFanSpeed3\"];\n this.coloredLightType = _data[\"coloredLightType\"];\n this.daliType = _data[\"daliType\"];\n this.isColor = _data[\"isColor\"];\n this.isTemperatureColor = _data[\"isTemperatureColor\"];\n }\n }\n\n static fromJS(data: any): RoomObject {\n data = typeof data === 'object' ? data : {};\n let result = new RoomObject();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"systemType\"] = this.systemType;\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"isAppliedToAllSameTypeCommands\"] = this.isAppliedToAllSameTypeCommands;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"actuatorModalityType\"] = this.actuatorModalityType;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n if (Array.isArray(this.thermo)) {\n data[\"thermo\"] = [];\n for (let item of this.thermo)\n data[\"thermo\"].push(item.toJSON());\n }\n data[\"isTemperatureDisplayed\"] = this.isTemperatureDisplayed;\n data[\"isWaterCycleEnabled\"] = this.isWaterCycleEnabled;\n data[\"arePumpsOpenedAutomatically\"] = this.arePumpsOpenedAutomatically;\n data[\"minutesToKeepOpen\"] = this.minutesToKeepOpen;\n data[\"openAutomaticallyDaysDelay\"] = this.openAutomaticallyDaysDelay;\n data[\"isInterlockSystemEnabled\"] = this.isInterlockSystemEnabled;\n data[\"isSeasonModeAuto\"] = this.isSeasonModeAuto;\n data[\"isSeasonChangeModifiable\"] = this.isSeasonChangeModifiable;\n data[\"seasonChangeAutoType\"] = this.seasonChangeAutoType;\n data[\"selected3477Device\"] = this.selected3477Device ? this.selected3477Device.toJSON() : undefined;\n data[\"seasonChangeAutoStartWinterDate\"] = this.seasonChangeAutoStartWinterDate ? this.seasonChangeAutoStartWinterDate.toISOString() : undefined;\n data[\"seasonChangeAutoStartSummerDate\"] = this.seasonChangeAutoStartSummerDate ? this.seasonChangeAutoStartSummerDate.toISOString() : undefined;\n data[\"isThermo99Zone\"] = this.isThermo99Zone;\n data[\"thermo99SelectedZone\"] = this.thermo99SelectedZone;\n data[\"thermo99HasFancoil\"] = this.thermo99HasFancoil;\n data[\"heatingSetpointLow\"] = this.heatingSetpointLow;\n data[\"heatingSetpointHigh\"] = this.heatingSetpointHigh;\n data[\"heatingAntifreeze\"] = this.heatingAntifreeze;\n data[\"heatingThermalProtection\"] = this.heatingThermalProtection;\n data[\"coolingSetpointLow\"] = this.coolingSetpointLow;\n data[\"coolingSetpointHigh\"] = this.coolingSetpointHigh;\n data[\"coolingThermalProtection\"] = this.coolingThermalProtection;\n data[\"energyMeterAndLoadControlType\"] = this.energyMeterAndLoadControlType;\n data[\"isEnergyMeter\"] = this.isEnergyMeter;\n data[\"toroidDirectionType\"] = this.toroidDirectionType;\n data[\"lineType\"] = this.lineType;\n data[\"lineMisurationType\"] = this.lineMisurationType;\n data[\"isAutoCommutation\"] = this.isAutoCommutation;\n data[\"delayHeatingPumps\"] = this.delayHeatingPumps;\n data[\"delayCoolingPumps\"] = this.delayCoolingPumps;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"areButtonsEnabled\"] = this.areButtonsEnabled;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isBacklightEnabled\"] = this.isBacklightEnabled;\n data[\"backlightLevel\"] = this.backlightLevel;\n data[\"isManualHeatingOverrideEnabled\"] = this.isManualHeatingOverrideEnabled;\n data[\"heatingRegulationBand\"] = this.heatingRegulationBand;\n data[\"fanSpeed2ForHeating\"] = this.fanSpeed2ForHeating;\n data[\"fanSpeed3ForHeating\"] = this.fanSpeed3ForHeating;\n data[\"valvesTimeForHeatingFanCoil\"] = this.valvesTimeForHeatingFanCoil;\n data[\"isManualCoolingOverrideEnabled\"] = this.isManualCoolingOverrideEnabled;\n data[\"coolingRegulationBand\"] = this.coolingRegulationBand;\n data[\"fanSpeed2ForCooling\"] = this.fanSpeed2ForCooling;\n data[\"fanSpeed3ForCooling\"] = this.fanSpeed3ForCooling;\n data[\"valvesTimeForCoolingFanCoil\"] = this.valvesTimeForCoolingFanCoil;\n data[\"isIconAlwaysOff\"] = this.isIconAlwaysOff;\n data[\"isLocalContactNumberEnabled\"] = this.isLocalContactNumberEnabled;\n data[\"numberOfWindowsContact\"] = this.numberOfWindowsContact;\n data[\"openingContactTypeHeating\"] = this.openingContactTypeHeating;\n data[\"openingContactTempHeating\"] = this.openingContactTempHeating;\n data[\"openingContactDelayHeating\"] = this.openingContactDelayHeating;\n data[\"timeoutOpeningHeating\"] = this.timeoutOpeningHeating;\n data[\"closingContactTypeHeating\"] = this.closingContactTypeHeating;\n data[\"closingContactTempHeating\"] = this.closingContactTempHeating;\n data[\"closingContactDelayHeating\"] = this.closingContactDelayHeating;\n data[\"timeoutClosingHeating\"] = this.timeoutClosingHeating;\n data[\"openingContactTypeCooling\"] = this.openingContactTypeCooling;\n data[\"openingContactTempCooling\"] = this.openingContactTempCooling;\n data[\"openingContactDelayCooling\"] = this.openingContactDelayCooling;\n data[\"timeoutOpeningCooling\"] = this.timeoutOpeningCooling;\n data[\"closingContactTypeCooling\"] = this.closingContactTypeCooling;\n data[\"closingContactTempCooling\"] = this.closingContactTempCooling;\n data[\"closingContactDelayCooling\"] = this.closingContactDelayCooling;\n data[\"timeoutClosingCooling\"] = this.timeoutClosingCooling;\n data[\"isCoolingVentilationEnabled\"] = this.isCoolingVentilationEnabled;\n data[\"isHeatingVentilationEnabled\"] = this.isHeatingVentilationEnabled;\n data[\"timeoutCoolingVentilation\"] = this.timeoutCoolingVentilation;\n data[\"timeoutHeatingVentilation\"] = this.timeoutHeatingVentilation;\n data[\"isInterlockingExcluded\"] = this.isInterlockingExcluded;\n data[\"pumpsDelay\"] = this.pumpsDelay;\n data[\"thermoUkFanSpeed\"] = this.thermoUkFanSpeed;\n data[\"thermoUkFanSpeed2\"] = this.thermoUkFanSpeed2;\n data[\"thermoUkFanSpeed3\"] = this.thermoUkFanSpeed3;\n data[\"coloredLightType\"] = this.coloredLightType;\n data[\"daliType\"] = this.daliType;\n data[\"isColor\"] = this.isColor;\n data[\"isTemperatureColor\"] = this.isTemperatureColor;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IRoomObject extends ILinkableObject {\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n commandOpeningTime?: CommandOpeningTime;\n isAppliedToAllSameTypeCommands?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermo?: ThermoActuactor[] | undefined;\n isTemperatureDisplayed?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n isInterlockSystemEnabled?: boolean;\n isSeasonModeAuto?: boolean;\n isSeasonChangeModifiable?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: Device;\n seasonChangeAutoStartWinterDate?: Date;\n seasonChangeAutoStartSummerDate?: Date;\n isThermo99Zone?: boolean;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n heatingThermalProtection?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n energyMeterAndLoadControlType?: EnergyMeterAndLoadControlType;\n isEnergyMeter?: boolean;\n toroidDirectionType?: ToroidDirection;\n lineType?: Line;\n lineMisurationType?: LineMisuration;\n isAutoCommutation?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n temperatureType?: TemperatureType;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n isInterlockingExcluded?: boolean;\n pumpsDelay?: string;\n thermoUkFanSpeed?: number;\n thermoUkFanSpeed2?: number;\n thermoUkFanSpeed3?: number;\n coloredLightType?: ColoredLightType;\n daliType?: DaliType;\n isColor?: boolean;\n isTemperatureColor?: boolean;\n}\n\nexport class RoomObjectActionListItemDTO implements IRoomObjectActionListItemDTO {\n roomObjects?: SceneActionListItemDTO[] | undefined;\n name?: string | undefined;\n type?: RoomType;\n\n constructor(data?: IRoomObjectActionListItemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(SceneActionListItemDTO.fromJS(item));\n }\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): RoomObjectActionListItemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomObjectActionListItemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n return data; \n }\n}\n\nexport interface IRoomObjectActionListItemDTO {\n roomObjects?: SceneActionListItemDTO[] | undefined;\n name?: string | undefined;\n type?: RoomType;\n}\n\nexport class RoomObjectDTO implements IRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n hasConfigurationToEnd?: boolean;\n extDevices?: ExtDevice[] | undefined;\n\n constructor(data?: IRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.systemType = _data[\"systemType\"];\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.thermo99SelectedZone = _data[\"thermo99SelectedZone\"];\n this.thermo99HasFancoil = _data[\"thermo99HasFancoil\"];\n this.hasConfigurationToEnd = _data[\"hasConfigurationToEnd\"];\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"systemType\"] = this.systemType;\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"thermo99SelectedZone\"] = this.thermo99SelectedZone;\n data[\"thermo99HasFancoil\"] = this.thermo99HasFancoil;\n data[\"hasConfigurationToEnd\"] = this.hasConfigurationToEnd;\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n hasConfigurationToEnd?: boolean;\n extDevices?: ExtDevice[] | undefined;\n}\n\n/** 0 = Light 1 = Shutter 2 = Socket 3 = Lock 4 = Thermostat 5 = Fancoil 6 = TowelWarmer 7 = WirelessCommand 8 = Blind 9 = Player 10 = Xmeter 11 = Alarm 12 = ColoredLight 13 = ScheduledScenarioPlus 14 = None 15 = Contact 16 = AlarmSensor 17 = Thermostat99zones 18 = DimmerDmx 19 = DimmerDali 20 = Actuactor */\nexport enum RoomObjectType {\n Light = 0,\n Shutter = 1,\n Socket = 2,\n Lock = 3,\n Thermostat = 4,\n Fancoil = 5,\n TowelWarmer = 6,\n WirelessCommand = 7,\n Blind = 8,\n Player = 9,\n Xmeter = 10,\n Alarm = 11,\n ColoredLight = 12,\n ScheduledScenarioPlus = 13,\n None = 14,\n Contact = 15,\n AlarmSensor = 16,\n Thermostat99zones = 17,\n DimmerDmx = 18,\n DimmerDali = 19,\n Actuactor = 20,\n}\n\n/** 0 = Livingroom 1 = Bathroom 2 = Kitchen 3 = Bedroom 4 = Dining_room 5 = Toilets 6 = Lobby 7 = Corridor 8 = Garage 9 = Outdoor 10 = Home_office 11 = Stairs 12 = Electrical_cabinet 13 = Custom */\nexport enum RoomType {\n Livingroom = 0,\n Bathroom = 1,\n Kitchen = 2,\n Bedroom = 3,\n Dining_room = 4,\n Toilets = 5,\n Lobby = 6,\n Corridor = 7,\n Garage = 8,\n Outdoor = 9,\n Home_office = 10,\n Stairs = 11,\n Electrical_cabinet = 12,\n Custom = 13,\n}\n\nexport class RoomUpdateDTO implements IRoomUpdateDTO {\n name?: string | undefined;\n type?: RoomType;\n\n constructor(data?: IRoomUpdateDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): RoomUpdateDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomUpdateDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n return data; \n }\n}\n\nexport interface IRoomUpdateDTO {\n name?: string | undefined;\n type?: RoomType;\n}\n\nexport class Scene extends LinkableObject implements IScene {\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n isSceneFromServer?: boolean;\n actions?: Action[] | undefined;\n triggers?: Trigger[] | undefined;\n conditions?: Condition[] | undefined;\n room_id?: string | undefined;\n share?: boolean;\n user?: string | undefined;\n category?: string | undefined;\n preconditionSelected?: SceneThermostatModalityState;\n\n constructor(data?: IScene) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n this.isDisabled = _data[\"isDisabled\"];\n this.isHidden = _data[\"isHidden\"];\n this.isEditable = _data[\"isEditable\"];\n this.isSceneFromServer = _data[\"isSceneFromServer\"];\n if (Array.isArray(_data[\"actions\"])) {\n this.actions = [] as any;\n for (let item of _data[\"actions\"])\n this.actions!.push(Action.fromJS(item));\n }\n if (Array.isArray(_data[\"triggers\"])) {\n this.triggers = [] as any;\n for (let item of _data[\"triggers\"])\n this.triggers!.push(Trigger.fromJS(item));\n }\n if (Array.isArray(_data[\"conditions\"])) {\n this.conditions = [] as any;\n for (let item of _data[\"conditions\"])\n this.conditions!.push(Condition.fromJS(item));\n }\n this.room_id = _data[\"room_id\"];\n this.share = _data[\"share\"];\n this.user = _data[\"user\"];\n this.category = _data[\"category\"];\n this.preconditionSelected = _data[\"preconditionSelected\"];\n }\n }\n\n static fromJS(data: any): Scene {\n data = typeof data === 'object' ? data : {};\n let result = new Scene();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"isDisabled\"] = this.isDisabled;\n data[\"isHidden\"] = this.isHidden;\n data[\"isEditable\"] = this.isEditable;\n data[\"isSceneFromServer\"] = this.isSceneFromServer;\n if (Array.isArray(this.actions)) {\n data[\"actions\"] = [];\n for (let item of this.actions)\n data[\"actions\"].push(item.toJSON());\n }\n if (Array.isArray(this.triggers)) {\n data[\"triggers\"] = [];\n for (let item of this.triggers)\n data[\"triggers\"].push(item.toJSON());\n }\n if (Array.isArray(this.conditions)) {\n data[\"conditions\"] = [];\n for (let item of this.conditions)\n data[\"conditions\"].push(item.toJSON());\n }\n data[\"room_id\"] = this.room_id;\n data[\"share\"] = this.share;\n data[\"user\"] = this.user;\n data[\"category\"] = this.category;\n data[\"preconditionSelected\"] = this.preconditionSelected;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IScene extends ILinkableObject {\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n isSceneFromServer?: boolean;\n actions?: Action[] | undefined;\n triggers?: Trigger[] | undefined;\n conditions?: Condition[] | undefined;\n room_id?: string | undefined;\n share?: boolean;\n user?: string | undefined;\n category?: string | undefined;\n preconditionSelected?: SceneThermostatModalityState;\n}\n\nexport class SceneActionListItemDTO implements ISceneActionListItemDTO {\n isAddAction?: boolean;\n linkableObjectId?: string | undefined;\n isUnselectEnabled?: boolean;\n id?: number;\n aggregateCommandType?: AggregateCommandType;\n sceneObjectType?: SceneObjectType;\n sceneLockState?: SceneLockState;\n isStateChanged?: boolean;\n name?: string | undefined;\n waitTime?: string;\n isSelected?: boolean;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n thermostatStatus?: ThermostatStatus;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n minRange?: number;\n maxRange?: number;\n sceneFancoilState?: SceneFancoilState;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n thermostatTriggerTemperature?: number;\n fancoilSpeed?: number;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n\n constructor(data?: ISceneActionListItemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isAddAction = _data[\"isAddAction\"];\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.isUnselectEnabled = _data[\"isUnselectEnabled\"];\n this.id = _data[\"id\"];\n this.aggregateCommandType = _data[\"aggregateCommandType\"];\n this.sceneObjectType = _data[\"sceneObjectType\"];\n this.sceneLockState = _data[\"sceneLockState\"];\n this.isStateChanged = _data[\"isStateChanged\"];\n this.name = _data[\"name\"];\n this.waitTime = _data[\"waitTime\"];\n this.isSelected = _data[\"isSelected\"];\n this.sceneLightState = _data[\"sceneLightState\"];\n this.dimmerStatus = _data[\"dimmerStatus\"];\n this.sceneShutterState = _data[\"sceneShutterState\"];\n this.sceneBlindState = _data[\"sceneBlindState\"];\n this.sceneSocketState = _data[\"sceneSocketState\"];\n this.thermostatStatus = _data[\"thermostatStatus\"];\n this.heatingSetpointLow = _data[\"heatingSetpointLow\"];\n this.heatingSetpointHigh = _data[\"heatingSetpointHigh\"];\n this.coolingSetpointLow = _data[\"coolingSetpointLow\"];\n this.coolingSetpointHigh = _data[\"coolingSetpointHigh\"];\n this.minRange = _data[\"minRange\"];\n this.maxRange = _data[\"maxRange\"];\n this.sceneFancoilState = _data[\"sceneFancoilState\"];\n this.sceneTowelWarmerState = _data[\"sceneTowelWarmerState\"];\n this.dimmerPercentage = _data[\"dimmerPercentage\"];\n this.dimmerFadeIn = _data[\"dimmerFadeIn\"];\n this.dimmerFadeOut = _data[\"dimmerFadeOut\"];\n this.workingMode = _data[\"workingMode\"];\n this.oldTemperature = _data[\"oldTemperature\"];\n this.thermostatTriggerTemperature = _data[\"thermostatTriggerTemperature\"];\n this.fancoilSpeed = _data[\"fancoilSpeed\"];\n this.sceneColoredLightsState = _data[\"sceneColoredLightsState\"];\n this.coloredLightsIntensity = _data[\"coloredLightsIntensity\"];\n this.coloredLightsTemperature = _data[\"coloredLightsTemperature\"];\n this.coloredLightsColor = _data[\"coloredLightsColor\"];\n this.scenePlayerState = _data[\"scenePlayerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.playerSourceId = _data[\"playerSourceId\"];\n this.playerSourceDescription = _data[\"playerSourceDescription\"];\n }\n }\n\n static fromJS(data: any): SceneActionListItemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SceneActionListItemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isAddAction\"] = this.isAddAction;\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"isUnselectEnabled\"] = this.isUnselectEnabled;\n data[\"id\"] = this.id;\n data[\"aggregateCommandType\"] = this.aggregateCommandType;\n data[\"sceneObjectType\"] = this.sceneObjectType;\n data[\"sceneLockState\"] = this.sceneLockState;\n data[\"isStateChanged\"] = this.isStateChanged;\n data[\"name\"] = this.name;\n data[\"waitTime\"] = this.waitTime;\n data[\"isSelected\"] = this.isSelected;\n data[\"sceneLightState\"] = this.sceneLightState;\n data[\"dimmerStatus\"] = this.dimmerStatus;\n data[\"sceneShutterState\"] = this.sceneShutterState;\n data[\"sceneBlindState\"] = this.sceneBlindState;\n data[\"sceneSocketState\"] = this.sceneSocketState;\n data[\"thermostatStatus\"] = this.thermostatStatus;\n data[\"heatingSetpointLow\"] = this.heatingSetpointLow;\n data[\"heatingSetpointHigh\"] = this.heatingSetpointHigh;\n data[\"coolingSetpointLow\"] = this.coolingSetpointLow;\n data[\"coolingSetpointHigh\"] = this.coolingSetpointHigh;\n data[\"minRange\"] = this.minRange;\n data[\"maxRange\"] = this.maxRange;\n data[\"sceneFancoilState\"] = this.sceneFancoilState;\n data[\"sceneTowelWarmerState\"] = this.sceneTowelWarmerState;\n data[\"dimmerPercentage\"] = this.dimmerPercentage;\n data[\"dimmerFadeIn\"] = this.dimmerFadeIn;\n data[\"dimmerFadeOut\"] = this.dimmerFadeOut;\n data[\"workingMode\"] = this.workingMode;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"thermostatTriggerTemperature\"] = this.thermostatTriggerTemperature;\n data[\"fancoilSpeed\"] = this.fancoilSpeed;\n data[\"sceneColoredLightsState\"] = this.sceneColoredLightsState;\n data[\"coloredLightsIntensity\"] = this.coloredLightsIntensity;\n data[\"coloredLightsTemperature\"] = this.coloredLightsTemperature;\n data[\"coloredLightsColor\"] = this.coloredLightsColor;\n data[\"scenePlayerState\"] = this.scenePlayerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"playerSourceId\"] = this.playerSourceId;\n data[\"playerSourceDescription\"] = this.playerSourceDescription;\n return data; \n }\n}\n\nexport interface ISceneActionListItemDTO {\n isAddAction?: boolean;\n linkableObjectId?: string | undefined;\n isUnselectEnabled?: boolean;\n id?: number;\n aggregateCommandType?: AggregateCommandType;\n sceneObjectType?: SceneObjectType;\n sceneLockState?: SceneLockState;\n isStateChanged?: boolean;\n name?: string | undefined;\n waitTime?: string;\n isSelected?: boolean;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n thermostatStatus?: ThermostatStatus;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n minRange?: number;\n maxRange?: number;\n sceneFancoilState?: SceneFancoilState;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n thermostatTriggerTemperature?: number;\n fancoilSpeed?: number;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n}\n\nexport class SceneActionsListsDTO implements ISceneActionsListsDTO {\n aggregateCommandsActions?: AggregateCommandActionListItemDTO[] | undefined;\n roomObjectsActions?: RoomObjectActionListItemDTO[] | undefined;\n\n constructor(data?: ISceneActionsListsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"aggregateCommandsActions\"])) {\n this.aggregateCommandsActions = [] as any;\n for (let item of _data[\"aggregateCommandsActions\"])\n this.aggregateCommandsActions!.push(AggregateCommandActionListItemDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"roomObjectsActions\"])) {\n this.roomObjectsActions = [] as any;\n for (let item of _data[\"roomObjectsActions\"])\n this.roomObjectsActions!.push(RoomObjectActionListItemDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SceneActionsListsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SceneActionsListsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.aggregateCommandsActions)) {\n data[\"aggregateCommandsActions\"] = [];\n for (let item of this.aggregateCommandsActions)\n data[\"aggregateCommandsActions\"].push(item.toJSON());\n }\n if (Array.isArray(this.roomObjectsActions)) {\n data[\"roomObjectsActions\"] = [];\n for (let item of this.roomObjectsActions)\n data[\"roomObjectsActions\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISceneActionsListsDTO {\n aggregateCommandsActions?: AggregateCommandActionListItemDTO[] | undefined;\n roomObjectsActions?: RoomObjectActionListItemDTO[] | undefined;\n}\n\n/** 0 = None 1 = Open 2 = Close */\nexport enum SceneBlindState {\n None = 0,\n Open = 1,\n Close = 2,\n}\n\n/** 0 = Blue 1 = LightPurple 2 = Magenta 3 = Fuchsia 4 = Red 5 = Orange 6 = Yellow 7 = Lime 8 = Green 9 = AcquaGreen 10 = LightBlue 11 = LightBlueSky */\nexport enum SceneColoredLightsColor {\n Blue = 0,\n LightPurple = 1,\n Magenta = 2,\n Fuchsia = 3,\n Red = 4,\n Orange = 5,\n Yellow = 6,\n Lime = 7,\n Green = 8,\n AcquaGreen = 9,\n LightBlue = 10,\n LightBlueSky = 11,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneColoredLightsState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\nexport class SceneConditionsListsDTO implements ISceneConditionsListsDTO {\n conditionsRoomsList?: TriggersAndConditionsRoomItemDTO[] | undefined;\n\n constructor(data?: ISceneConditionsListsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"conditionsRoomsList\"])) {\n this.conditionsRoomsList = [] as any;\n for (let item of _data[\"conditionsRoomsList\"])\n this.conditionsRoomsList!.push(TriggersAndConditionsRoomItemDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SceneConditionsListsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SceneConditionsListsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.conditionsRoomsList)) {\n data[\"conditionsRoomsList\"] = [];\n for (let item of this.conditionsRoomsList)\n data[\"conditionsRoomsList\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISceneConditionsListsDTO {\n conditionsRoomsList?: TriggersAndConditionsRoomItemDTO[] | undefined;\n}\n\nexport class SceneDTO implements ISceneDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n actions?: ActionDTO[] | undefined;\n triggers?: TriggerDTO[] | undefined;\n conditions?: ConditionDTO[] | undefined;\n\n constructor(data?: ISceneDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.isDisabled = _data[\"isDisabled\"];\n this.isHidden = _data[\"isHidden\"];\n this.isEditable = _data[\"isEditable\"];\n if (Array.isArray(_data[\"actions\"])) {\n this.actions = [] as any;\n for (let item of _data[\"actions\"])\n this.actions!.push(ActionDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"triggers\"])) {\n this.triggers = [] as any;\n for (let item of _data[\"triggers\"])\n this.triggers!.push(TriggerDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"conditions\"])) {\n this.conditions = [] as any;\n for (let item of _data[\"conditions\"])\n this.conditions!.push(ConditionDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SceneDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SceneDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"isDisabled\"] = this.isDisabled;\n data[\"isHidden\"] = this.isHidden;\n data[\"isEditable\"] = this.isEditable;\n if (Array.isArray(this.actions)) {\n data[\"actions\"] = [];\n for (let item of this.actions)\n data[\"actions\"].push(item.toJSON());\n }\n if (Array.isArray(this.triggers)) {\n data[\"triggers\"] = [];\n for (let item of this.triggers)\n data[\"triggers\"].push(item.toJSON());\n }\n if (Array.isArray(this.conditions)) {\n data[\"conditions\"] = [];\n for (let item of this.conditions)\n data[\"conditions\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISceneDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n actions?: ActionDTO[] | undefined;\n triggers?: TriggerDTO[] | undefined;\n conditions?: ConditionDTO[] | undefined;\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneDimmerPowerState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Dimmer 2 = Power */\nexport enum SceneDimmerState {\n None = 0,\n Dimmer = 1,\n Power = 2,\n}\n\n/** 0 = None 1 = One 2 = Two 3 = Three */\nexport enum SceneFancoilSpeedState {\n None = 0,\n One = 1,\n Two = 2,\n Three = 3,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneFancoilState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneLightState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = On */\nexport enum SceneLockState {\n None = 0,\n On = 1,\n}\n\n/** 0 = None 1 = Light 2 = Dimmer 3 = Shutter 4 = Lock 5 = Thermostat 6 = Socket 7 = Fancoil 8 = TowelWarmer 9 = GroupOfLights 10 = GroupOfShutters 11 = GeneralCommandsLights 12 = GeneralCommandsShutters 13 = Command 14 = DateTime 15 = Blind 16 = ColoredLights 17 = Email 18 = Weather 19 = PushNotificationAction 20 = Player 21 = Xmeter 22 = Alarm 23 = AlarmSensor 24 = DimmerDmx 25 = Dali */\nexport enum SceneObjectType {\n None = 0,\n Light = 1,\n Dimmer = 2,\n Shutter = 3,\n Lock = 4,\n Thermostat = 5,\n Socket = 6,\n Fancoil = 7,\n TowelWarmer = 8,\n GroupOfLights = 9,\n GroupOfShutters = 10,\n GeneralCommandsLights = 11,\n GeneralCommandsShutters = 12,\n Command = 13,\n DateTime = 14,\n Blind = 15,\n ColoredLights = 16,\n Email = 17,\n Weather = 18,\n PushNotificationAction = 19,\n Player = 20,\n Xmeter = 21,\n Alarm = 22,\n AlarmSensor = 23,\n DimmerDmx = 24,\n Dali = 25,\n}\n\n/** 0 = None 1 = Stop 2 = Play 3 = Pause */\nexport enum ScenePlayerState {\n None = 0,\n Stop = 1,\n Play = 2,\n Pause = 3,\n}\n\n/** 0 = None 1 = Power 2 = Volume */\nexport enum ScenePlayerTriggerMode {\n None = 0,\n Power = 1,\n Volume = 2,\n}\n\n/** 0 = None 1 = Movement 2 = Position */\nexport enum SceneShutterModality {\n None = 0,\n Movement = 1,\n Position = 2,\n}\n\n/** 0 = None 1 = Up 2 = Stop 3 = Down */\nexport enum SceneShutterState {\n None = 0,\n Up = 1,\n Stop = 2,\n Down = 3,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneSocketState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Equal 2 = Different 3 = Higher 4 = Lower 5 = Any */\nexport enum SceneStateComparer {\n None = 0,\n Equal = 1,\n Different = 2,\n Higher = 3,\n Lower = 4,\n Any = 5,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneThermostatConditionState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\n/** 0 = None 1 = Heating 2 = Cooling 3 = Auto 5 = Off */\nexport enum SceneThermostatModalityState {\n None = 0,\n Heating = 1,\n Cooling = 2,\n Auto = 3,\n Off = 5,\n}\n\n/** 0 = None 1 = Modality 2 = Temperature 3 = DesiredTemperature 4 = Condition 5 = Humidity */\nexport enum SceneThermostatState {\n None = 0,\n Modality = 1,\n Temperature = 2,\n DesiredTemperature = 3,\n Condition = 4,\n Humidity = 5,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneTowelWarmerState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\nexport class SceneTriggersListsDTO implements ISceneTriggersListsDTO {\n triggersRoomsList?: TriggersAndConditionsRoomItemDTO[] | undefined;\n compatibleDevices?: DeviceDTO[] | undefined;\n\n constructor(data?: ISceneTriggersListsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"triggersRoomsList\"])) {\n this.triggersRoomsList = [] as any;\n for (let item of _data[\"triggersRoomsList\"])\n this.triggersRoomsList!.push(TriggersAndConditionsRoomItemDTO.fromJS(item));\n }\n if (Array.isArray(_data[\"compatibleDevices\"])) {\n this.compatibleDevices = [] as any;\n for (let item of _data[\"compatibleDevices\"])\n this.compatibleDevices!.push(DeviceDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SceneTriggersListsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SceneTriggersListsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.triggersRoomsList)) {\n data[\"triggersRoomsList\"] = [];\n for (let item of this.triggersRoomsList)\n data[\"triggersRoomsList\"].push(item.toJSON());\n }\n if (Array.isArray(this.compatibleDevices)) {\n data[\"compatibleDevices\"] = [];\n for (let item of this.compatibleDevices)\n data[\"compatibleDevices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISceneTriggersListsDTO {\n triggersRoomsList?: TriggersAndConditionsRoomItemDTO[] | undefined;\n compatibleDevices?: DeviceDTO[] | undefined;\n}\n\n/** 0 = Wake_Up 1 = BedTime 2 = Home 3 = Away 4 = Custom */\nexport enum SceneType {\n Wake_Up = 0,\n BedTime = 1,\n Home = 2,\n Away = 3,\n Custom = 4,\n}\n\n/** 0 = None 1 = Sunrise 2 = Sunset */\nexport enum SceneWeatherCrepuscular {\n None = 0,\n Sunrise = 1,\n Sunset = 2,\n}\n\n/** 0 = None 1 = Sunny 2 = Rain 3 = Storm 4 = Cloudy 5 = Snow 6 = Foggy */\nexport enum SceneWeatherForecastState {\n None = 0,\n Sunny = 1,\n Rain = 2,\n Storm = 3,\n Cloudy = 4,\n Snow = 5,\n Foggy = 6,\n}\n\n/** 0 = None 1 = Temperature 2 = Wind 3 = Humidity 4 = WeatherForecast 5 = Crepuscular */\nexport enum SceneWeatherModality {\n None = 0,\n Temperature = 1,\n Wind = 2,\n Humidity = 3,\n WeatherForecast = 4,\n Crepuscular = 5,\n}\n\n/** 0 = Heating 1 = Cooling */\nexport enum SeasonChange3477Mode {\n Heating = 0,\n Cooling = 1,\n}\n\n/** 0 = None 1 = WithDate 2 = WithDevice 3 = WithTemperature */\nexport enum SeasonChangeAutoType {\n None = 0,\n WithDate = 1,\n WithDevice = 2,\n WithTemperature = 3,\n}\n\nexport class SelectColorAction extends Action implements ISelectColorAction {\n hasTemperature?: boolean;\n hasColor?: boolean;\n name?: string | undefined;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n\n constructor(data?: ISelectColorAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.hasTemperature = _data[\"hasTemperature\"];\n this.hasColor = _data[\"hasColor\"];\n this.name = _data[\"name\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.workingMode = _data[\"workingMode\"];\n }\n }\n\n static fromJS(data: any): SelectColorAction {\n data = typeof data === 'object' ? data : {};\n let result = new SelectColorAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasTemperature\"] = this.hasTemperature;\n data[\"hasColor\"] = this.hasColor;\n data[\"name\"] = this.name;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"workingMode\"] = this.workingMode;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ISelectColorAction extends IAction {\n hasTemperature?: boolean;\n hasColor?: boolean;\n name?: string | undefined;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n}\n\n/** 0 = Classe300EOS 1 = MyHomeServer1 2 = F460 3 = F461 */\nexport enum ServerModel {\n Classe300EOS = 0,\n MyHomeServer1 = 1,\n F460 = 2,\n F461 = 3,\n}\n\nexport class ShutterActuatorSettings extends ActuatorSettings implements IShutterActuatorSettings {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n\n constructor(data?: IShutterActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.hasPUL = _data[\"hasPUL\"];\n this.shutterMotorType = _data[\"shutterMotorType\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.stopPulseDuration = _data[\"stopPulseDuration\"];\n this.upDownPulseDuration = _data[\"upDownPulseDuration\"];\n this.stopTime = _data[\"stopTime\"];\n this.delayBetweenDoorsTime = _data[\"delayBetweenDoorsTime\"];\n }\n }\n\n static fromJS(data: any): ShutterActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasPUL\"] = this.hasPUL;\n data[\"shutterMotorType\"] = this.shutterMotorType;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"stopPulseDuration\"] = this.stopPulseDuration;\n data[\"upDownPulseDuration\"] = this.upDownPulseDuration;\n data[\"stopTime\"] = this.stopTime;\n data[\"delayBetweenDoorsTime\"] = this.delayBetweenDoorsTime;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShutterActuatorSettings extends IActuatorSettings {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n}\n\nexport class ShutterActuatorSettingsResult implements IShutterActuatorSettingsResult {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n index?: number;\n\n constructor(data?: IShutterActuatorSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasPUL = _data[\"hasPUL\"];\n this.shutterMotorType = _data[\"shutterMotorType\"];\n this.stopPulseDuration = _data[\"stopPulseDuration\"];\n this.upDownPulseDuration = _data[\"upDownPulseDuration\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.stopTime = _data[\"stopTime\"];\n this.delayBetweenDoorsTime = _data[\"delayBetweenDoorsTime\"];\n this.index = _data[\"index\"];\n }\n }\n\n static fromJS(data: any): ShutterActuatorSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterActuatorSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasPUL\"] = this.hasPUL;\n data[\"shutterMotorType\"] = this.shutterMotorType;\n data[\"stopPulseDuration\"] = this.stopPulseDuration;\n data[\"upDownPulseDuration\"] = this.upDownPulseDuration;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"stopTime\"] = this.stopTime;\n data[\"delayBetweenDoorsTime\"] = this.delayBetweenDoorsTime;\n data[\"index\"] = this.index;\n return data; \n }\n}\n\nexport interface IShutterActuatorSettingsResult {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n index?: number;\n}\n\nexport class ShutterCommandItemSettingsDTO implements IShutterCommandItemSettingsDTO {\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n presetValue?: number;\n shutterMode?: ShutterMode;\n commandDirection?: CommandDirection;\n hasPreset?: boolean;\n isManagedPosition?: boolean;\n saveTo?: number[] | undefined;\n showBistableAndBladesControl?: boolean;\n showMonostableAndBistable?: boolean;\n showBladesControlAndBistable?: boolean;\n showPreset?: boolean;\n showCommandDirection?: boolean;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n\n constructor(data?: IShutterCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.presetValue = _data[\"presetValue\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.commandDirection = _data[\"commandDirection\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.isManagedPosition = _data[\"isManagedPosition\"];\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n this.showBistableAndBladesControl = _data[\"showBistableAndBladesControl\"];\n this.showMonostableAndBistable = _data[\"showMonostableAndBistable\"];\n this.showBladesControlAndBistable = _data[\"showBladesControlAndBistable\"];\n this.showPreset = _data[\"showPreset\"];\n this.showCommandDirection = _data[\"showCommandDirection\"];\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n this.conctactType = _data[\"conctactType\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.hasChanges = _data[\"hasChanges\"];\n }\n }\n\n static fromJS(data: any): ShutterCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"presetValue\"] = this.presetValue;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"commandDirection\"] = this.commandDirection;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"isManagedPosition\"] = this.isManagedPosition;\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n data[\"showBistableAndBladesControl\"] = this.showBistableAndBladesControl;\n data[\"showMonostableAndBistable\"] = this.showMonostableAndBistable;\n data[\"showBladesControlAndBistable\"] = this.showBladesControlAndBistable;\n data[\"showPreset\"] = this.showPreset;\n data[\"showCommandDirection\"] = this.showCommandDirection;\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n data[\"conctactType\"] = this.conctactType;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"hasChanges\"] = this.hasChanges;\n return data; \n }\n}\n\nexport interface IShutterCommandItemSettingsDTO {\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n presetValue?: number;\n shutterMode?: ShutterMode;\n commandDirection?: CommandDirection;\n hasPreset?: boolean;\n isManagedPosition?: boolean;\n saveTo?: number[] | undefined;\n showBistableAndBladesControl?: boolean;\n showMonostableAndBistable?: boolean;\n showBladesControlAndBistable?: boolean;\n showPreset?: boolean;\n showCommandDirection?: boolean;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n}\n\nexport class ShutterCommandSettings extends CommandSettings implements IShutterCommandSettings {\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n commandDirection?: CommandDirection;\n typeofContact?: ConctactType;\n\n constructor(data?: IShutterCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.commandDirection = _data[\"commandDirection\"];\n this.typeofContact = _data[\"typeofContact\"];\n }\n }\n\n static fromJS(data: any): ShutterCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"commandDirection\"] = this.commandDirection;\n data[\"typeofContact\"] = this.typeofContact;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShutterCommandSettings extends ICommandSettings {\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n commandDirection?: CommandDirection;\n typeofContact?: ConctactType;\n}\n\nexport class ShutterCommandSettingsResult extends BaseShuttersCommandSettingsResult implements IShutterCommandSettingsResult {\n hasPreset?: boolean;\n presetValue?: number;\n conctactType?: ConctactType;\n commandDirection?: CommandDirection;\n index?: number;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n\n constructor(data?: IShutterCommandSettingsResult) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.conctactType = _data[\"conctactType\"];\n this.commandDirection = _data[\"commandDirection\"];\n this.index = _data[\"index\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.hasChanges = _data[\"hasChanges\"];\n }\n }\n\n static fromJS(data: any): ShutterCommandSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"conctactType\"] = this.conctactType;\n data[\"commandDirection\"] = this.commandDirection;\n data[\"index\"] = this.index;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"hasChanges\"] = this.hasChanges;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShutterCommandSettingsResult extends IBaseShuttersCommandSettingsResult {\n hasPreset?: boolean;\n presetValue?: number;\n conctactType?: ConctactType;\n commandDirection?: CommandDirection;\n index?: number;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n}\n\nexport class ShutterCommandSettingsResultList implements IShutterCommandSettingsResultList {\n results?: ShutterCommandSettingsResult[] | undefined;\n\n constructor(data?: IShutterCommandSettingsResultList) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"results\"])) {\n this.results = [] as any;\n for (let item of _data[\"results\"])\n this.results!.push(ShutterCommandSettingsResult.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ShutterCommandSettingsResultList {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandSettingsResultList();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.results)) {\n data[\"results\"] = [];\n for (let item of this.results)\n data[\"results\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IShutterCommandSettingsResultList {\n results?: ShutterCommandSettingsResult[] | undefined;\n}\n\n/** 0 = Monostable 1 = Bistable 2 = BistableWithBladesControl 3 = BladesAndBistable 4 = MonostableBistable */\nexport enum ShutterMode {\n Monostable = 0,\n Bistable = 1,\n BistableWithBladesControl = 2,\n BladesAndBistable = 3,\n MonostableBistable = 4,\n}\n\n/** 0 = StandardAutomatic 1 = Standard 2 = Pulse */\nexport enum ShutterMotorType {\n StandardAutomatic = 0,\n Standard = 1,\n Pulse = 2,\n}\n\nexport class ShuttersActuatorSettingsObjectParam implements IShuttersActuatorSettingsObjectParam {\n isManagedPosition?: boolean;\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n isGroupPULVisible?: boolean;\n isGroupMotorTypeVisible?: boolean;\n canHaveStandardAutomaticMotorType?: boolean;\n isGroupModeVisible?: boolean;\n isGroupPresetVisible?: boolean;\n isGroupStopTimeTypeVisible?: boolean;\n isGroupDelayBetweenDoorsVisible?: boolean;\n stopPulseDurationPickerValues?: DelayValue[] | undefined;\n upDownPulseDurationPickerValues?: DelayValue[] | undefined;\n stopTimePickerValues?: DelayValue[] | undefined;\n delayBetweenDoorsTimePickerValues?: DelayValue[] | undefined;\n\n constructor(data?: IShuttersActuatorSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isManagedPosition = _data[\"isManagedPosition\"];\n this.hasPUL = _data[\"hasPUL\"];\n this.shutterMotorType = _data[\"shutterMotorType\"];\n this.stopPulseDuration = _data[\"stopPulseDuration\"];\n this.upDownPulseDuration = _data[\"upDownPulseDuration\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.stopTime = _data[\"stopTime\"];\n this.delayBetweenDoorsTime = _data[\"delayBetweenDoorsTime\"];\n this.isGroupPULVisible = _data[\"isGroupPULVisible\"];\n this.isGroupMotorTypeVisible = _data[\"isGroupMotorTypeVisible\"];\n this.canHaveStandardAutomaticMotorType = _data[\"canHaveStandardAutomaticMotorType\"];\n this.isGroupModeVisible = _data[\"isGroupModeVisible\"];\n this.isGroupPresetVisible = _data[\"isGroupPresetVisible\"];\n this.isGroupStopTimeTypeVisible = _data[\"isGroupStopTimeTypeVisible\"];\n this.isGroupDelayBetweenDoorsVisible = _data[\"isGroupDelayBetweenDoorsVisible\"];\n if (Array.isArray(_data[\"stopPulseDurationPickerValues\"])) {\n this.stopPulseDurationPickerValues = [] as any;\n for (let item of _data[\"stopPulseDurationPickerValues\"])\n this.stopPulseDurationPickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"upDownPulseDurationPickerValues\"])) {\n this.upDownPulseDurationPickerValues = [] as any;\n for (let item of _data[\"upDownPulseDurationPickerValues\"])\n this.upDownPulseDurationPickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"stopTimePickerValues\"])) {\n this.stopTimePickerValues = [] as any;\n for (let item of _data[\"stopTimePickerValues\"])\n this.stopTimePickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"delayBetweenDoorsTimePickerValues\"])) {\n this.delayBetweenDoorsTimePickerValues = [] as any;\n for (let item of _data[\"delayBetweenDoorsTimePickerValues\"])\n this.delayBetweenDoorsTimePickerValues!.push(DelayValue.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ShuttersActuatorSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new ShuttersActuatorSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isManagedPosition\"] = this.isManagedPosition;\n data[\"hasPUL\"] = this.hasPUL;\n data[\"shutterMotorType\"] = this.shutterMotorType;\n data[\"stopPulseDuration\"] = this.stopPulseDuration;\n data[\"upDownPulseDuration\"] = this.upDownPulseDuration;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"stopTime\"] = this.stopTime;\n data[\"delayBetweenDoorsTime\"] = this.delayBetweenDoorsTime;\n data[\"isGroupPULVisible\"] = this.isGroupPULVisible;\n data[\"isGroupMotorTypeVisible\"] = this.isGroupMotorTypeVisible;\n data[\"canHaveStandardAutomaticMotorType\"] = this.canHaveStandardAutomaticMotorType;\n data[\"isGroupModeVisible\"] = this.isGroupModeVisible;\n data[\"isGroupPresetVisible\"] = this.isGroupPresetVisible;\n data[\"isGroupStopTimeTypeVisible\"] = this.isGroupStopTimeTypeVisible;\n data[\"isGroupDelayBetweenDoorsVisible\"] = this.isGroupDelayBetweenDoorsVisible;\n if (Array.isArray(this.stopPulseDurationPickerValues)) {\n data[\"stopPulseDurationPickerValues\"] = [];\n for (let item of this.stopPulseDurationPickerValues)\n data[\"stopPulseDurationPickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.upDownPulseDurationPickerValues)) {\n data[\"upDownPulseDurationPickerValues\"] = [];\n for (let item of this.upDownPulseDurationPickerValues)\n data[\"upDownPulseDurationPickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.stopTimePickerValues)) {\n data[\"stopTimePickerValues\"] = [];\n for (let item of this.stopTimePickerValues)\n data[\"stopTimePickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.delayBetweenDoorsTimePickerValues)) {\n data[\"delayBetweenDoorsTimePickerValues\"] = [];\n for (let item of this.delayBetweenDoorsTimePickerValues)\n data[\"delayBetweenDoorsTimePickerValues\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IShuttersActuatorSettingsObjectParam {\n isManagedPosition?: boolean;\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n isGroupPULVisible?: boolean;\n isGroupMotorTypeVisible?: boolean;\n canHaveStandardAutomaticMotorType?: boolean;\n isGroupModeVisible?: boolean;\n isGroupPresetVisible?: boolean;\n isGroupStopTimeTypeVisible?: boolean;\n isGroupDelayBetweenDoorsVisible?: boolean;\n stopPulseDurationPickerValues?: DelayValue[] | undefined;\n upDownPulseDurationPickerValues?: DelayValue[] | undefined;\n stopTimePickerValues?: DelayValue[] | undefined;\n delayBetweenDoorsTimePickerValues?: DelayValue[] | undefined;\n}\n\nexport class ShuttersCommandSettingsObjectDTO extends BaseShuttersCommandSettingsObjectDTO implements IShuttersCommandSettingsObjectDTO {\n slots?: ShutterCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n\n constructor(data?: IShuttersCommandSettingsObjectDTO) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(ShutterCommandItemSettingsDTO.fromJS(item));\n }\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n }\n }\n\n static fromJS(data: any): ShuttersCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ShuttersCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShuttersCommandSettingsObjectDTO extends IBaseShuttersCommandSettingsObjectDTO {\n slots?: ShutterCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n}\n\nexport class SimpleIntPickerValue implements ISimpleIntPickerValue {\n value?: number;\n readonly description?: string | undefined;\n\n constructor(data?: ISimpleIntPickerValue) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.value = _data[\"value\"];\n (this).description = _data[\"description\"];\n }\n }\n\n static fromJS(data: any): SimpleIntPickerValue {\n data = typeof data === 'object' ? data : {};\n let result = new SimpleIntPickerValue();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"value\"] = this.value;\n data[\"description\"] = this.description;\n return data; \n }\n}\n\nexport interface ISimpleIntPickerValue {\n value?: number;\n description?: string | undefined;\n}\n\nexport class Slot implements ISlot {\n configured?: boolean;\n id?: string | undefined;\n keyObject?: number;\n links_id?: string[] | undefined;\n groups_id?: string[] | undefined;\n index?: number;\n address?: string | undefined;\n status?: SlotStatus;\n linkedObjects?: LinkableObject[] | undefined;\n configurationType?: ConfigurationType;\n modalityTypeConfiguration?: ActuatorModalityType;\n thermoActuatorTypes?: { [key: string]: ThermoActuatorType; } | undefined;\n assignedComponentType?: ComponentType;\n isSetting?: boolean;\n commandIcon?: CommandIcon;\n paramsKo?: ParamCreateLinkModule[] | undefined;\n scenes_id?: ParamsScenesId[] | undefined;\n commandSettings?: CommandSettings | undefined;\n probeSettings?: ProbeSettings;\n actuatorSettings?: ActuatorSettings | undefined;\n isShutterSelfCommandActuatorSlot?: boolean;\n mX_Id_ThermoCU?: string | undefined;\n\n constructor(data?: ISlot) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.configured = _data[\"configured\"];\n this.id = _data[\"id\"];\n this.keyObject = _data[\"keyObject\"];\n if (Array.isArray(_data[\"links_id\"])) {\n this.links_id = [] as any;\n for (let item of _data[\"links_id\"])\n this.links_id!.push(item);\n }\n if (Array.isArray(_data[\"groups_id\"])) {\n this.groups_id = [] as any;\n for (let item of _data[\"groups_id\"])\n this.groups_id!.push(item);\n }\n this.index = _data[\"index\"];\n this.address = _data[\"address\"];\n this.status = _data[\"status\"];\n if (Array.isArray(_data[\"linkedObjects\"])) {\n this.linkedObjects = [] as any;\n for (let item of _data[\"linkedObjects\"])\n this.linkedObjects!.push(LinkableObject.fromJS(item));\n }\n this.configurationType = _data[\"configurationType\"];\n this.modalityTypeConfiguration = _data[\"modalityTypeConfiguration\"];\n if (_data[\"thermoActuatorTypes\"]) {\n this.thermoActuatorTypes = {} as any;\n for (let key in _data[\"thermoActuatorTypes\"]) {\n if (_data[\"thermoActuatorTypes\"].hasOwnProperty(key))\n (this.thermoActuatorTypes)![key] = _data[\"thermoActuatorTypes\"][key];\n }\n }\n this.assignedComponentType = _data[\"assignedComponentType\"];\n this.isSetting = _data[\"isSetting\"];\n this.commandIcon = _data[\"commandIcon\"];\n if (Array.isArray(_data[\"paramsKo\"])) {\n this.paramsKo = [] as any;\n for (let item of _data[\"paramsKo\"])\n this.paramsKo!.push(ParamCreateLinkModule.fromJS(item));\n }\n if (Array.isArray(_data[\"scenes_id\"])) {\n this.scenes_id = [] as any;\n for (let item of _data[\"scenes_id\"])\n this.scenes_id!.push(ParamsScenesId.fromJS(item));\n }\n this.commandSettings = _data[\"commandSettings\"] ? CommandSettings.fromJS(_data[\"commandSettings\"]) : undefined;\n this.probeSettings = _data[\"probeSettings\"] ? ProbeSettings.fromJS(_data[\"probeSettings\"]) : undefined;\n this.actuatorSettings = _data[\"actuatorSettings\"] ? ActuatorSettings.fromJS(_data[\"actuatorSettings\"]) : undefined;\n this.isShutterSelfCommandActuatorSlot = _data[\"isShutterSelfCommandActuatorSlot\"];\n this.mX_Id_ThermoCU = _data[\"mX_Id_ThermoCU\"];\n }\n }\n\n static fromJS(data: any): Slot {\n data = typeof data === 'object' ? data : {};\n let result = new Slot();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"configured\"] = this.configured;\n data[\"id\"] = this.id;\n data[\"keyObject\"] = this.keyObject;\n if (Array.isArray(this.links_id)) {\n data[\"links_id\"] = [];\n for (let item of this.links_id)\n data[\"links_id\"].push(item);\n }\n if (Array.isArray(this.groups_id)) {\n data[\"groups_id\"] = [];\n for (let item of this.groups_id)\n data[\"groups_id\"].push(item);\n }\n data[\"index\"] = this.index;\n data[\"address\"] = this.address;\n data[\"status\"] = this.status;\n if (Array.isArray(this.linkedObjects)) {\n data[\"linkedObjects\"] = [];\n for (let item of this.linkedObjects)\n data[\"linkedObjects\"].push(item.toJSON());\n }\n data[\"configurationType\"] = this.configurationType;\n data[\"modalityTypeConfiguration\"] = this.modalityTypeConfiguration;\n if (this.thermoActuatorTypes) {\n data[\"thermoActuatorTypes\"] = {};\n for (let key in this.thermoActuatorTypes) {\n if (this.thermoActuatorTypes.hasOwnProperty(key))\n (data[\"thermoActuatorTypes\"])[key] = this.thermoActuatorTypes[key];\n }\n }\n data[\"assignedComponentType\"] = this.assignedComponentType;\n data[\"isSetting\"] = this.isSetting;\n data[\"commandIcon\"] = this.commandIcon;\n if (Array.isArray(this.paramsKo)) {\n data[\"paramsKo\"] = [];\n for (let item of this.paramsKo)\n data[\"paramsKo\"].push(item.toJSON());\n }\n if (Array.isArray(this.scenes_id)) {\n data[\"scenes_id\"] = [];\n for (let item of this.scenes_id)\n data[\"scenes_id\"].push(item.toJSON());\n }\n data[\"commandSettings\"] = this.commandSettings ? this.commandSettings.toJSON() : undefined;\n data[\"probeSettings\"] = this.probeSettings ? this.probeSettings.toJSON() : undefined;\n data[\"actuatorSettings\"] = this.actuatorSettings ? this.actuatorSettings.toJSON() : undefined;\n data[\"isShutterSelfCommandActuatorSlot\"] = this.isShutterSelfCommandActuatorSlot;\n data[\"mX_Id_ThermoCU\"] = this.mX_Id_ThermoCU;\n return data; \n }\n}\n\nexport interface ISlot {\n configured?: boolean;\n id?: string | undefined;\n keyObject?: number;\n links_id?: string[] | undefined;\n groups_id?: string[] | undefined;\n index?: number;\n address?: string | undefined;\n status?: SlotStatus;\n linkedObjects?: LinkableObject[] | undefined;\n configurationType?: ConfigurationType;\n modalityTypeConfiguration?: ActuatorModalityType;\n thermoActuatorTypes?: { [key: string]: ThermoActuatorType; } | undefined;\n assignedComponentType?: ComponentType;\n isSetting?: boolean;\n commandIcon?: CommandIcon;\n paramsKo?: ParamCreateLinkModule[] | undefined;\n scenes_id?: ParamsScenesId[] | undefined;\n commandSettings?: CommandSettings | undefined;\n probeSettings?: ProbeSettings;\n actuatorSettings?: ActuatorSettings | undefined;\n isShutterSelfCommandActuatorSlot?: boolean;\n mX_Id_ThermoCU?: string | undefined;\n}\n\n/** 0 = Configured 1 = NotConfigured 2 = NotUsed 3 = MarkedForLinking 4 = MarkedAdjacent 5 = NoLoad 6 = NoCompatible */\nexport enum SlotStatus {\n Configured = 0,\n NotConfigured = 1,\n NotUsed = 2,\n MarkedForLinking = 3,\n MarkedAdjacent = 4,\n NoLoad = 5,\n NoCompatible = 6,\n}\n\nexport class SwitchboardConfigDTO implements ISwitchboardConfigDTO {\n switchboard?: SwitchboardDTO;\n devices?: EPDeviceDTO[] | undefined;\n\n constructor(data?: ISwitchboardConfigDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.switchboard = _data[\"switchboard\"] ? SwitchboardDTO.fromJS(_data[\"switchboard\"]) : undefined;\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(EPDeviceDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): SwitchboardConfigDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SwitchboardConfigDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"switchboard\"] = this.switchboard ? this.switchboard.toJSON() : undefined;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ISwitchboardConfigDTO {\n switchboard?: SwitchboardDTO;\n devices?: EPDeviceDTO[] | undefined;\n}\n\nexport class SwitchboardDTO implements ISwitchboardDTO {\n switchboardId?: string;\n name?: string | undefined;\n scsAddr?: number;\n\n constructor(data?: ISwitchboardDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.switchboardId = _data[\"switchboardId\"];\n this.name = _data[\"name\"];\n this.scsAddr = _data[\"scsAddr\"];\n }\n }\n\n static fromJS(data: any): SwitchboardDTO {\n data = typeof data === 'object' ? data : {};\n let result = new SwitchboardDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"switchboardId\"] = this.switchboardId;\n data[\"name\"] = this.name;\n data[\"scsAddr\"] = this.scsAddr;\n return data; \n }\n}\n\nexport interface ISwitchboardDTO {\n switchboardId?: string;\n name?: string | undefined;\n scsAddr?: number;\n}\n\n/** 0 = None 1 = OneOnOffValve 2 = OneOpenCloseValve 3 = OneProportionalValve 4 = TwoTubesOnOffValve 5 = TwoTubesProportionalValve 6 = TwoTubesProportionalSpeedControlValve 7 = FourTubesOnOffValve 8 = FourTubesProportionalValve 9 = FourTubesProportionalSpeedControlValve 10 = GatewayMode 11 = Pump */\nexport enum SystemControlType {\n None = 0,\n OneOnOffValve = 1,\n OneOpenCloseValve = 2,\n OneProportionalValve = 3,\n TwoTubesOnOffValve = 4,\n TwoTubesProportionalValve = 5,\n TwoTubesProportionalSpeedControlValve = 6,\n FourTubesOnOffValve = 7,\n FourTubesProportionalValve = 8,\n FourTubesProportionalSpeedControlValve = 9,\n GatewayMode = 10,\n Pump = 11,\n}\n\n/** 0 = Scs 1 = Zigbee */\nexport enum SystemType {\n Scs = 0,\n Zigbee = 1,\n}\n\n/** 0 = Celsius 1 = Fahrenheit */\nexport enum TemperatureType {\n Celsius = 0,\n Fahrenheit = 1,\n}\n\nexport class ThermoActuactor implements IThermoActuactor {\n number?: number;\n function?: ThermoActuatorType;\n valve?: boolean;\n id?: string[] | undefined;\n\n constructor(data?: IThermoActuactor) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.number = _data[\"number\"];\n this.function = _data[\"function\"];\n this.valve = _data[\"valve\"];\n if (Array.isArray(_data[\"id\"])) {\n this.id = [] as any;\n for (let item of _data[\"id\"])\n this.id!.push(item);\n }\n }\n }\n\n static fromJS(data: any): ThermoActuactor {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoActuactor();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"number\"] = this.number;\n data[\"function\"] = this.function;\n data[\"valve\"] = this.valve;\n if (Array.isArray(this.id)) {\n data[\"id\"] = [];\n for (let item of this.id)\n data[\"id\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IThermoActuactor {\n number?: number;\n function?: ThermoActuatorType;\n valve?: boolean;\n id?: string[] | undefined;\n}\n\n/** 0 = None 1 = HeatingValve 2 = HeatingPump 3 = CoolingValve 4 = CoolingPump 5 = SharedValve 6 = SharedPump 7 = HeatingAndCoolingPump 8 = HeatingAndCoolingValve */\nexport enum ThermoActuatorType {\n None = 0,\n HeatingValve = 1,\n HeatingPump = 2,\n CoolingValve = 3,\n CoolingPump = 4,\n SharedValve = 5,\n SharedPump = 6,\n HeatingAndCoolingPump = 7,\n HeatingAndCoolingValve = 8,\n}\n\n/** 0 = None 1 = Yes 2 = No */\nexport enum ThermoAssociatedPump {\n None = 0,\n Yes = 1,\n No = 2,\n}\n\nexport class ThermoOldInformation implements IThermoOldInformation {\n address?: string | undefined;\n links_id?: string[] | undefined;\n\n constructor(data?: IThermoOldInformation) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.address = _data[\"address\"];\n if (Array.isArray(_data[\"links_id\"])) {\n this.links_id = [] as any;\n for (let item of _data[\"links_id\"])\n this.links_id!.push(item);\n }\n }\n }\n\n static fromJS(data: any): ThermoOldInformation {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoOldInformation();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n if (Array.isArray(this.links_id)) {\n data[\"links_id\"] = [];\n for (let item of this.links_id)\n data[\"links_id\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IThermoOldInformation {\n address?: string | undefined;\n links_id?: string[] | undefined;\n}\n\nexport class ThermoProbeSettingsObjectParam implements IThermoProbeSettingsObjectParam {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n isLedmanagedVisible?: boolean;\n isExternalSensorTypeVisible?: boolean;\n\n constructor(data?: IThermoProbeSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isLedmanaged = _data[\"isLedmanaged\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isLedmanagedVisible = _data[\"isLedmanagedVisible\"];\n this.isExternalSensorTypeVisible = _data[\"isExternalSensorTypeVisible\"];\n }\n }\n\n static fromJS(data: any): ThermoProbeSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoProbeSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isLedmanaged\"] = this.isLedmanaged;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isLedmanagedVisible\"] = this.isLedmanagedVisible;\n data[\"isExternalSensorTypeVisible\"] = this.isExternalSensorTypeVisible;\n return data; \n }\n}\n\nexport interface IThermoProbeSettingsObjectParam {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n isLedmanagedVisible?: boolean;\n isExternalSensorTypeVisible?: boolean;\n}\n\nexport class ThermoProbeSettingsResult implements IThermoProbeSettingsResult {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n\n constructor(data?: IThermoProbeSettingsResult) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isLedmanaged = _data[\"isLedmanaged\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n }\n }\n\n static fromJS(data: any): ThermoProbeSettingsResult {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoProbeSettingsResult();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isLedmanaged\"] = this.isLedmanaged;\n data[\"externalSensorType\"] = this.externalSensorType;\n return data; \n }\n}\n\nexport interface IThermoProbeSettingsResult {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n}\n\nexport class ThermoRoomObjectDTO implements IThermoRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n heatingSystemControlType?: SystemControlType;\n coolingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n configurationSteps?: number;\n nextStep?: number;\n objectDuplication?: ObjectDuplication;\n resetType?: ResetType;\n isApplyAllTemperatureRange?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n isAutoCommutation?: boolean;\n isApplyAllCirculationPumpDelay?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n isApplyAllCelsiusFahrenheit?: boolean;\n temperatureType?: TemperatureType;\n isApplyAllButtonsManagement?: boolean;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isApplyAllBacklight?: boolean;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isApplyAllWindowsContact?: boolean;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isInterlockingExcluded?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n pumpsDelay?: string;\n thermoUKFanSpeed?: number;\n thermoUKFanSpeed2?: number;\n thermoUKFanSpeed3?: number;\n plantId?: string | undefined;\n roomId?: string | undefined;\n extDevices?: ExtDevice[] | undefined;\n roomObjectType?: RoomObjectType;\n isNotFullyConfigured?: boolean;\n isEdit?: boolean;\n isApplyAllTemperatureVisualization?: boolean;\n isTemperatureDisplayed?: boolean;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n thermoOldInformation?: ThermoOldInformation;\n thermo?: ThermoActuactor[] | undefined;\n tempAddressPumps?: AddressPumps[] | undefined;\n\n constructor(data?: IThermoRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.actuatorModalityType = _data[\"actuatorModalityType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n this.configurationSteps = _data[\"configurationSteps\"];\n this.nextStep = _data[\"nextStep\"];\n this.objectDuplication = _data[\"objectDuplication\"];\n this.resetType = _data[\"resetType\"];\n this.isApplyAllTemperatureRange = _data[\"isApplyAllTemperatureRange\"];\n this.heatingSetpointLow = _data[\"heatingSetpointLow\"];\n this.heatingSetpointHigh = _data[\"heatingSetpointHigh\"];\n this.heatingAntifreeze = _data[\"heatingAntifreeze\"];\n this.coolingSetpointLow = _data[\"coolingSetpointLow\"];\n this.coolingSetpointHigh = _data[\"coolingSetpointHigh\"];\n this.coolingThermalProtection = _data[\"coolingThermalProtection\"];\n this.isAutoCommutation = _data[\"isAutoCommutation\"];\n this.isApplyAllCirculationPumpDelay = _data[\"isApplyAllCirculationPumpDelay\"];\n this.delayHeatingPumps = _data[\"delayHeatingPumps\"];\n this.delayCoolingPumps = _data[\"delayCoolingPumps\"];\n this.isApplyAllCelsiusFahrenheit = _data[\"isApplyAllCelsiusFahrenheit\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.isApplyAllButtonsManagement = _data[\"isApplyAllButtonsManagement\"];\n this.areButtonsEnabled = _data[\"areButtonsEnabled\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isApplyAllBacklight = _data[\"isApplyAllBacklight\"];\n this.isBacklightEnabled = _data[\"isBacklightEnabled\"];\n this.backlightLevel = _data[\"backlightLevel\"];\n this.isManualHeatingOverrideEnabled = _data[\"isManualHeatingOverrideEnabled\"];\n this.heatingRegulationBand = _data[\"heatingRegulationBand\"];\n this.fanSpeed2ForHeating = _data[\"fanSpeed2ForHeating\"];\n this.fanSpeed3ForHeating = _data[\"fanSpeed3ForHeating\"];\n this.valvesTimeForHeatingFanCoil = _data[\"valvesTimeForHeatingFanCoil\"];\n this.isManualCoolingOverrideEnabled = _data[\"isManualCoolingOverrideEnabled\"];\n this.coolingRegulationBand = _data[\"coolingRegulationBand\"];\n this.fanSpeed2ForCooling = _data[\"fanSpeed2ForCooling\"];\n this.fanSpeed3ForCooling = _data[\"fanSpeed3ForCooling\"];\n this.valvesTimeForCoolingFanCoil = _data[\"valvesTimeForCoolingFanCoil\"];\n this.isApplyAllWindowsContact = _data[\"isApplyAllWindowsContact\"];\n this.isIconAlwaysOff = _data[\"isIconAlwaysOff\"];\n this.isLocalContactNumberEnabled = _data[\"isLocalContactNumberEnabled\"];\n this.numberOfWindowsContact = _data[\"numberOfWindowsContact\"];\n this.openingContactTypeHeating = _data[\"openingContactTypeHeating\"];\n this.openingContactTempHeating = _data[\"openingContactTempHeating\"];\n this.openingContactDelayHeating = _data[\"openingContactDelayHeating\"];\n this.timeoutOpeningHeating = _data[\"timeoutOpeningHeating\"];\n this.closingContactTypeHeating = _data[\"closingContactTypeHeating\"];\n this.closingContactTempHeating = _data[\"closingContactTempHeating\"];\n this.closingContactDelayHeating = _data[\"closingContactDelayHeating\"];\n this.timeoutClosingHeating = _data[\"timeoutClosingHeating\"];\n this.openingContactTypeCooling = _data[\"openingContactTypeCooling\"];\n this.openingContactTempCooling = _data[\"openingContactTempCooling\"];\n this.openingContactDelayCooling = _data[\"openingContactDelayCooling\"];\n this.timeoutOpeningCooling = _data[\"timeoutOpeningCooling\"];\n this.closingContactTypeCooling = _data[\"closingContactTypeCooling\"];\n this.closingContactTempCooling = _data[\"closingContactTempCooling\"];\n this.closingContactDelayCooling = _data[\"closingContactDelayCooling\"];\n this.timeoutClosingCooling = _data[\"timeoutClosingCooling\"];\n this.isInterlockingExcluded = _data[\"isInterlockingExcluded\"];\n this.isWaterCycleEnabled = _data[\"isWaterCycleEnabled\"];\n this.arePumpsOpenedAutomatically = _data[\"arePumpsOpenedAutomatically\"];\n this.minutesToKeepOpen = _data[\"minutesToKeepOpen\"];\n this.openAutomaticallyDaysDelay = _data[\"openAutomaticallyDaysDelay\"];\n this.pumpsDelay = _data[\"pumpsDelay\"];\n this.thermoUKFanSpeed = _data[\"thermoUKFanSpeed\"];\n this.thermoUKFanSpeed2 = _data[\"thermoUKFanSpeed2\"];\n this.thermoUKFanSpeed3 = _data[\"thermoUKFanSpeed3\"];\n this.plantId = _data[\"plantId\"];\n this.roomId = _data[\"roomId\"];\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n this.roomObjectType = _data[\"roomObjectType\"];\n this.isNotFullyConfigured = _data[\"isNotFullyConfigured\"];\n this.isEdit = _data[\"isEdit\"];\n this.isApplyAllTemperatureVisualization = _data[\"isApplyAllTemperatureVisualization\"];\n this.isTemperatureDisplayed = _data[\"isTemperatureDisplayed\"];\n this.isCoolingVentilationEnabled = _data[\"isCoolingVentilationEnabled\"];\n this.isHeatingVentilationEnabled = _data[\"isHeatingVentilationEnabled\"];\n this.timeoutCoolingVentilation = _data[\"timeoutCoolingVentilation\"];\n this.timeoutHeatingVentilation = _data[\"timeoutHeatingVentilation\"];\n this.thermoOldInformation = _data[\"thermoOldInformation\"] ? ThermoOldInformation.fromJS(_data[\"thermoOldInformation\"]) : undefined;\n if (Array.isArray(_data[\"thermo\"])) {\n this.thermo = [] as any;\n for (let item of _data[\"thermo\"])\n this.thermo!.push(ThermoActuactor.fromJS(item));\n }\n if (Array.isArray(_data[\"tempAddressPumps\"])) {\n this.tempAddressPumps = [] as any;\n for (let item of _data[\"tempAddressPumps\"])\n this.tempAddressPumps!.push(AddressPumps.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ThermoRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"actuatorModalityType\"] = this.actuatorModalityType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n data[\"configurationSteps\"] = this.configurationSteps;\n data[\"nextStep\"] = this.nextStep;\n data[\"objectDuplication\"] = this.objectDuplication;\n data[\"resetType\"] = this.resetType;\n data[\"isApplyAllTemperatureRange\"] = this.isApplyAllTemperatureRange;\n data[\"heatingSetpointLow\"] = this.heatingSetpointLow;\n data[\"heatingSetpointHigh\"] = this.heatingSetpointHigh;\n data[\"heatingAntifreeze\"] = this.heatingAntifreeze;\n data[\"coolingSetpointLow\"] = this.coolingSetpointLow;\n data[\"coolingSetpointHigh\"] = this.coolingSetpointHigh;\n data[\"coolingThermalProtection\"] = this.coolingThermalProtection;\n data[\"isAutoCommutation\"] = this.isAutoCommutation;\n data[\"isApplyAllCirculationPumpDelay\"] = this.isApplyAllCirculationPumpDelay;\n data[\"delayHeatingPumps\"] = this.delayHeatingPumps;\n data[\"delayCoolingPumps\"] = this.delayCoolingPumps;\n data[\"isApplyAllCelsiusFahrenheit\"] = this.isApplyAllCelsiusFahrenheit;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"isApplyAllButtonsManagement\"] = this.isApplyAllButtonsManagement;\n data[\"areButtonsEnabled\"] = this.areButtonsEnabled;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isApplyAllBacklight\"] = this.isApplyAllBacklight;\n data[\"isBacklightEnabled\"] = this.isBacklightEnabled;\n data[\"backlightLevel\"] = this.backlightLevel;\n data[\"isManualHeatingOverrideEnabled\"] = this.isManualHeatingOverrideEnabled;\n data[\"heatingRegulationBand\"] = this.heatingRegulationBand;\n data[\"fanSpeed2ForHeating\"] = this.fanSpeed2ForHeating;\n data[\"fanSpeed3ForHeating\"] = this.fanSpeed3ForHeating;\n data[\"valvesTimeForHeatingFanCoil\"] = this.valvesTimeForHeatingFanCoil;\n data[\"isManualCoolingOverrideEnabled\"] = this.isManualCoolingOverrideEnabled;\n data[\"coolingRegulationBand\"] = this.coolingRegulationBand;\n data[\"fanSpeed2ForCooling\"] = this.fanSpeed2ForCooling;\n data[\"fanSpeed3ForCooling\"] = this.fanSpeed3ForCooling;\n data[\"valvesTimeForCoolingFanCoil\"] = this.valvesTimeForCoolingFanCoil;\n data[\"isApplyAllWindowsContact\"] = this.isApplyAllWindowsContact;\n data[\"isIconAlwaysOff\"] = this.isIconAlwaysOff;\n data[\"isLocalContactNumberEnabled\"] = this.isLocalContactNumberEnabled;\n data[\"numberOfWindowsContact\"] = this.numberOfWindowsContact;\n data[\"openingContactTypeHeating\"] = this.openingContactTypeHeating;\n data[\"openingContactTempHeating\"] = this.openingContactTempHeating;\n data[\"openingContactDelayHeating\"] = this.openingContactDelayHeating;\n data[\"timeoutOpeningHeating\"] = this.timeoutOpeningHeating;\n data[\"closingContactTypeHeating\"] = this.closingContactTypeHeating;\n data[\"closingContactTempHeating\"] = this.closingContactTempHeating;\n data[\"closingContactDelayHeating\"] = this.closingContactDelayHeating;\n data[\"timeoutClosingHeating\"] = this.timeoutClosingHeating;\n data[\"openingContactTypeCooling\"] = this.openingContactTypeCooling;\n data[\"openingContactTempCooling\"] = this.openingContactTempCooling;\n data[\"openingContactDelayCooling\"] = this.openingContactDelayCooling;\n data[\"timeoutOpeningCooling\"] = this.timeoutOpeningCooling;\n data[\"closingContactTypeCooling\"] = this.closingContactTypeCooling;\n data[\"closingContactTempCooling\"] = this.closingContactTempCooling;\n data[\"closingContactDelayCooling\"] = this.closingContactDelayCooling;\n data[\"timeoutClosingCooling\"] = this.timeoutClosingCooling;\n data[\"isInterlockingExcluded\"] = this.isInterlockingExcluded;\n data[\"isWaterCycleEnabled\"] = this.isWaterCycleEnabled;\n data[\"arePumpsOpenedAutomatically\"] = this.arePumpsOpenedAutomatically;\n data[\"minutesToKeepOpen\"] = this.minutesToKeepOpen;\n data[\"openAutomaticallyDaysDelay\"] = this.openAutomaticallyDaysDelay;\n data[\"pumpsDelay\"] = this.pumpsDelay;\n data[\"thermoUKFanSpeed\"] = this.thermoUKFanSpeed;\n data[\"thermoUKFanSpeed2\"] = this.thermoUKFanSpeed2;\n data[\"thermoUKFanSpeed3\"] = this.thermoUKFanSpeed3;\n data[\"plantId\"] = this.plantId;\n data[\"roomId\"] = this.roomId;\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n data[\"roomObjectType\"] = this.roomObjectType;\n data[\"isNotFullyConfigured\"] = this.isNotFullyConfigured;\n data[\"isEdit\"] = this.isEdit;\n data[\"isApplyAllTemperatureVisualization\"] = this.isApplyAllTemperatureVisualization;\n data[\"isTemperatureDisplayed\"] = this.isTemperatureDisplayed;\n data[\"isCoolingVentilationEnabled\"] = this.isCoolingVentilationEnabled;\n data[\"isHeatingVentilationEnabled\"] = this.isHeatingVentilationEnabled;\n data[\"timeoutCoolingVentilation\"] = this.timeoutCoolingVentilation;\n data[\"timeoutHeatingVentilation\"] = this.timeoutHeatingVentilation;\n data[\"thermoOldInformation\"] = this.thermoOldInformation ? this.thermoOldInformation.toJSON() : undefined;\n if (Array.isArray(this.thermo)) {\n data[\"thermo\"] = [];\n for (let item of this.thermo)\n data[\"thermo\"].push(item.toJSON());\n }\n if (Array.isArray(this.tempAddressPumps)) {\n data[\"tempAddressPumps\"] = [];\n for (let item of this.tempAddressPumps)\n data[\"tempAddressPumps\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IThermoRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n heatingSystemControlType?: SystemControlType;\n coolingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n configurationSteps?: number;\n nextStep?: number;\n objectDuplication?: ObjectDuplication;\n resetType?: ResetType;\n isApplyAllTemperatureRange?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n isAutoCommutation?: boolean;\n isApplyAllCirculationPumpDelay?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n isApplyAllCelsiusFahrenheit?: boolean;\n temperatureType?: TemperatureType;\n isApplyAllButtonsManagement?: boolean;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isApplyAllBacklight?: boolean;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isApplyAllWindowsContact?: boolean;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isInterlockingExcluded?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n pumpsDelay?: string;\n thermoUKFanSpeed?: number;\n thermoUKFanSpeed2?: number;\n thermoUKFanSpeed3?: number;\n plantId?: string | undefined;\n roomId?: string | undefined;\n extDevices?: ExtDevice[] | undefined;\n roomObjectType?: RoomObjectType;\n isNotFullyConfigured?: boolean;\n isEdit?: boolean;\n isApplyAllTemperatureVisualization?: boolean;\n isTemperatureDisplayed?: boolean;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n thermoOldInformation?: ThermoOldInformation;\n thermo?: ThermoActuactor[] | undefined;\n tempAddressPumps?: AddressPumps[] | undefined;\n}\n\n/** 0 = None 1 = Heating 2 = Cooling 3 = HeatingAndCooling */\nexport enum ThermoTypeOfObject {\n None = 0,\n Heating = 1,\n Cooling = 2,\n HeatingAndCooling = 3,\n}\n\n/** 0 = Off 1 = Heat 2 = Cool 3 = Auto 4 = None */\nexport enum ThermostatStatus {\n Off = 0,\n Heat = 1,\n Cool = 2,\n Auto = 3,\n None = 4,\n}\n\nexport class TimeCondition extends Condition implements ITimeCondition {\n startTime?: string;\n endTime?: string;\n weekDays?: WeekDay[] | undefined;\n\n constructor(data?: ITimeCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.startTime = _data[\"startTime\"];\n this.endTime = _data[\"endTime\"];\n if (Array.isArray(_data[\"weekDays\"])) {\n this.weekDays = [] as any;\n for (let item of _data[\"weekDays\"])\n this.weekDays!.push(item);\n }\n }\n }\n\n static fromJS(data: any): TimeCondition {\n data = typeof data === 'object' ? data : {};\n let result = new TimeCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"startTime\"] = this.startTime;\n data[\"endTime\"] = this.endTime;\n if (Array.isArray(this.weekDays)) {\n data[\"weekDays\"] = [];\n for (let item of this.weekDays)\n data[\"weekDays\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ITimeCondition extends ICondition {\n startTime?: string;\n endTime?: string;\n weekDays?: WeekDay[] | undefined;\n}\n\nexport class TimeSlot implements ITimeSlot {\n id?: string;\n timeSince?: Date;\n timeUntil?: Date;\n\n constructor(data?: ITimeSlot) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.timeSince = _data[\"timeSince\"] ? new Date(_data[\"timeSince\"].toString()) : undefined;\n this.timeUntil = _data[\"timeUntil\"] ? new Date(_data[\"timeUntil\"].toString()) : undefined;\n }\n }\n\n static fromJS(data: any): TimeSlot {\n data = typeof data === 'object' ? data : {};\n let result = new TimeSlot();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"timeSince\"] = this.timeSince ? this.timeSince.toISOString() : undefined;\n data[\"timeUntil\"] = this.timeUntil ? this.timeUntil.toISOString() : undefined;\n return data; \n }\n}\n\nexport interface ITimeSlot {\n id?: string;\n timeSince?: Date;\n timeUntil?: Date;\n}\n\n/** 0 = None 1 = Onedirection 2 = Boththedirections */\nexport enum ToroidDirection {\n None = 0,\n Onedirection = 1,\n Boththedirections = 2,\n}\n\nexport class TransferOwnershipDTO implements ITransferOwnershipDTO {\n password?: string | undefined;\n shouldCurrentUserRightsBeRemoved?: boolean | undefined;\n\n constructor(data?: ITransferOwnershipDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.password = _data[\"password\"];\n this.shouldCurrentUserRightsBeRemoved = _data[\"shouldCurrentUserRightsBeRemoved\"];\n }\n }\n\n static fromJS(data: any): TransferOwnershipDTO {\n data = typeof data === 'object' ? data : {};\n let result = new TransferOwnershipDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"password\"] = this.password;\n data[\"shouldCurrentUserRightsBeRemoved\"] = this.shouldCurrentUserRightsBeRemoved;\n return data; \n }\n}\n\nexport interface ITransferOwnershipDTO {\n password?: string | undefined;\n shouldCurrentUserRightsBeRemoved?: boolean | undefined;\n}\n\nexport class TriggerDTO implements ITriggerDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n triggerParams?: Trigger | undefined;\n\n constructor(data?: ITriggerDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.objectName = _data[\"objectName\"];\n this.sceneObjectType = _data[\"sceneObjectType\"];\n this.triggerParams = _data[\"triggerParams\"] ? Trigger.fromJS(_data[\"triggerParams\"]) : undefined;\n }\n }\n\n static fromJS(data: any): TriggerDTO {\n data = typeof data === 'object' ? data : {};\n let result = new TriggerDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"objectName\"] = this.objectName;\n data[\"sceneObjectType\"] = this.sceneObjectType;\n data[\"triggerParams\"] = this.triggerParams ? this.triggerParams.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface ITriggerDTO {\n objectName?: string | undefined;\n sceneObjectType?: SceneObjectType;\n triggerParams?: Trigger | undefined;\n}\n\nexport class TriggersAndConditionsRoomItemDTO implements ITriggersAndConditionsRoomItemDTO {\n roomObjects?: TriggersAndConditionsRoomObjectItemDTO[] | undefined;\n name?: string | undefined;\n type?: RoomType;\n\n constructor(data?: ITriggersAndConditionsRoomItemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(TriggersAndConditionsRoomObjectItemDTO.fromJS(item));\n }\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n }\n }\n\n static fromJS(data: any): TriggersAndConditionsRoomItemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new TriggersAndConditionsRoomItemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n return data; \n }\n}\n\nexport interface ITriggersAndConditionsRoomItemDTO {\n roomObjects?: TriggersAndConditionsRoomObjectItemDTO[] | undefined;\n name?: string | undefined;\n type?: RoomType;\n}\n\nexport class TriggersAndConditionsRoomObjectItemDTO implements ITriggersAndConditionsRoomObjectItemDTO {\n id?: string | undefined;\n plantId?: string | undefined;\n sceneObjectType?: SceneObjectType;\n name?: string | undefined;\n\n constructor(data?: ITriggersAndConditionsRoomObjectItemDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.plantId = _data[\"plantId\"];\n this.sceneObjectType = _data[\"sceneObjectType\"];\n this.name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): TriggersAndConditionsRoomObjectItemDTO {\n data = typeof data === 'object' ? data : {};\n let result = new TriggersAndConditionsRoomObjectItemDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"plantId\"] = this.plantId;\n data[\"sceneObjectType\"] = this.sceneObjectType;\n data[\"name\"] = this.name;\n return data; \n }\n}\n\nexport interface ITriggersAndConditionsRoomObjectItemDTO {\n id?: string | undefined;\n plantId?: string | undefined;\n sceneObjectType?: SceneObjectType;\n name?: string | undefined;\n}\n\nexport class UserDTO implements IUserDTO {\n id?: string | undefined;\n name?: string | undefined;\n surname?: string | undefined;\n email?: string | undefined;\n\n constructor(data?: IUserDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.surname = _data[\"surname\"];\n this.email = _data[\"email\"];\n }\n }\n\n static fromJS(data: any): UserDTO {\n data = typeof data === 'object' ? data : {};\n let result = new UserDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"surname\"] = this.surname;\n data[\"email\"] = this.email;\n return data; \n }\n}\n\nexport interface IUserDTO {\n id?: string | undefined;\n name?: string | undefined;\n surname?: string | undefined;\n email?: string | undefined;\n}\n\nexport class Version implements IVersion {\n readonly major?: number;\n readonly minor?: number;\n readonly build?: number;\n readonly revision?: number;\n readonly majorRevision?: number;\n readonly minorRevision?: number;\n\n constructor(data?: IVersion) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).major = _data[\"major\"];\n (this).minor = _data[\"minor\"];\n (this).build = _data[\"build\"];\n (this).revision = _data[\"revision\"];\n (this).majorRevision = _data[\"majorRevision\"];\n (this).minorRevision = _data[\"minorRevision\"];\n }\n }\n\n static fromJS(data: any): Version {\n data = typeof data === 'object' ? data : {};\n let result = new Version();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"major\"] = this.major;\n data[\"minor\"] = this.minor;\n data[\"build\"] = this.build;\n data[\"revision\"] = this.revision;\n data[\"majorRevision\"] = this.majorRevision;\n data[\"minorRevision\"] = this.minorRevision;\n return data; \n }\n}\n\nexport interface IVersion {\n major?: number;\n minor?: number;\n build?: number;\n revision?: number;\n majorRevision?: number;\n minorRevision?: number;\n}\n\nexport class WaitTimeAction extends Action implements IWaitTimeAction {\n waitTime?: string;\n\n constructor(data?: IWaitTimeAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.waitTime = _data[\"waitTime\"];\n }\n }\n\n static fromJS(data: any): WaitTimeAction {\n data = typeof data === 'object' ? data : {};\n let result = new WaitTimeAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"waitTime\"] = this.waitTime;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWaitTimeAction extends IAction {\n waitTime?: string;\n}\n\nexport class WeatherCondition extends Condition implements IWeatherCondition {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n\n constructor(data?: IWeatherCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.weatherStateComparer = _data[\"weatherStateComparer\"];\n this.weatherTemperature = _data[\"weatherTemperature\"];\n this.sceneWeatherModality = _data[\"sceneWeatherModality\"];\n this.weatherWindSpeed = _data[\"weatherWindSpeed\"];\n this.humidityPercentage = _data[\"humidityPercentage\"];\n this.sceneWeatherForecastState = _data[\"sceneWeatherForecastState\"];\n this.sceneWeatherCrepuscular = _data[\"sceneWeatherCrepuscular\"];\n }\n }\n\n static fromJS(data: any): WeatherCondition {\n data = typeof data === 'object' ? data : {};\n let result = new WeatherCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"weatherStateComparer\"] = this.weatherStateComparer;\n data[\"weatherTemperature\"] = this.weatherTemperature;\n data[\"sceneWeatherModality\"] = this.sceneWeatherModality;\n data[\"weatherWindSpeed\"] = this.weatherWindSpeed;\n data[\"humidityPercentage\"] = this.humidityPercentage;\n data[\"sceneWeatherForecastState\"] = this.sceneWeatherForecastState;\n data[\"sceneWeatherCrepuscular\"] = this.sceneWeatherCrepuscular;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWeatherCondition extends ICondition {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n}\n\nexport class WeatherTrigger extends Trigger implements IWeatherTrigger {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n\n constructor(data?: IWeatherTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.weatherStateComparer = _data[\"weatherStateComparer\"];\n this.weatherTemperature = _data[\"weatherTemperature\"];\n this.sceneWeatherModality = _data[\"sceneWeatherModality\"];\n this.weatherWindSpeed = _data[\"weatherWindSpeed\"];\n this.humidityPercentage = _data[\"humidityPercentage\"];\n this.sceneWeatherForecastState = _data[\"sceneWeatherForecastState\"];\n this.sceneWeatherCrepuscular = _data[\"sceneWeatherCrepuscular\"];\n }\n }\n\n static fromJS(data: any): WeatherTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new WeatherTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"weatherStateComparer\"] = this.weatherStateComparer;\n data[\"weatherTemperature\"] = this.weatherTemperature;\n data[\"sceneWeatherModality\"] = this.sceneWeatherModality;\n data[\"weatherWindSpeed\"] = this.weatherWindSpeed;\n data[\"humidityPercentage\"] = this.humidityPercentage;\n data[\"sceneWeatherForecastState\"] = this.sceneWeatherForecastState;\n data[\"sceneWeatherCrepuscular\"] = this.sceneWeatherCrepuscular;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWeatherTrigger extends ITrigger {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n}\n\n/** 0 = Monday 1 = Tuesday 2 = Wednesday 3 = Thursday 4 = Friday 5 = Saturday 6 = Sunday */\nexport enum WeekDay {\n Monday = 0,\n Tuesday = 1,\n Wednesday = 2,\n Thursday = 3,\n Friday = 4,\n Saturday = 5,\n Sunday = 6,\n}\n\nexport class XmeterExtDevice extends ExtDevice implements IXmeterExtDevice {\n readonly address?: string | undefined;\n\n constructor(data?: IXmeterExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): XmeterExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new XmeterExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IXmeterExtDevice extends IExtDevice {\n address?: string | undefined;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n if (result !== null && result !== undefined)\n throw result;\n else\n throw new ApiException(message, status, response, headers, null);\n}\n\nfunction isAxiosError(obj: any | undefined): obj is AxiosError {\n return obj && obj.isAxiosError === true;\n}","module.exports = __webpack_public_path__ + \"img/apt-2@2x.c920d3e4.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_4@2x.eb8345b2.jpg\";","module.exports = __webpack_public_path__ + \"img/smart-home.22edb214.jpg\";","const SET_ACCOUNT = 'SET_ACCOUNT';\nconst SET_APP_LOADING = 'SET_APP_LOADING';\nconst SET_SELECTED_PLANT = 'SET_SELECTED_PLANT';\nconst SET_SIDEBAR_EXPANDED = 'SET_SIDEBAR_EXPANDED';\nconst SET_SELECTED_PLANT_ID = 'SET_SELECTED_PLANT_ID';\nconst SET_CONTEXTUAL_MENU_ITEMS = 'SET_CONTEXTUAL_MENU_ITEMS';\n\n// TODO: remove this comment if we keep this refactor\nconst SET_SELECTED_ENTRANCE_PLANT = 'SET_SELECTED_ENTRANCE_PLANT';\nconst SET_SELECTED_ENTRANCE_PLANT_ID = 'SET_SELECTED_ENTRANCE_PLANT_ID';\n\nexport {\n SET_ACCOUNT,\n SET_APP_LOADING,\n SET_SELECTED_PLANT,\n SET_SIDEBAR_EXPANDED,\n SET_SELECTED_PLANT_ID,\n SET_CONTEXTUAL_MENU_ITEMS,\n SET_SELECTED_ENTRANCE_PLANT, // TODO: remove this comment if we keep this refactor\n SET_SELECTED_ENTRANCE_PLANT_ID, // TODO: remove this comment if we keep this refactor\n};\n","module.exports = __webpack_public_path__ + \"img/entrance_plant_3@2x.65cab3bc.jpg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./TheHeader.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/entrance_plant_1.4bd89ce8.jpg\";","module.exports = __webpack_public_path__ + \"img/apt-1@3x.64d6c0a5.jpg\";","module.exports = __webpack_public_path__ + \"img/smart-home@2x.11ccabaf.jpg\";","module.exports = __webpack_public_path__ + \"img/icon-profile.a9bc220e.svg\";","module.exports = __webpack_public_path__ + \"img/apt-1@2x.68e0c59a.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_3.04155a72.jpg\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/index.js??ref--0-1!./App.vue?vue&type=style&index=0&id=b51da03a&lang=scss\"","import { Slot } from 'client-generator/generated-clients/plants';\n\nexport interface WorkflowCallbackData {\n warningTitle?: string;\n warningMessage?: string;\n _adjacentSlotVm?: Slot;\n isConfirmation?: boolean; //choose if show 'yes/no' or 'ok'\n _isUnlinkFlow?: boolean;\n _isSingleLoadFlow?: boolean;\n _isMostrineFlow?: boolean;\n\n isWarningRequested?: boolean; //open a popup\n isPresetWarningRequested?: boolean; //open another popup\n}\nexport interface WorkflowCallbackFunction {\n (\n data: WorkflowCallbackData,\n doYesCallback?: Function,\n doNoCallback?: Function,\n doAlertCallback?: Function\n ): void;\n}\n\nexport enum SlotRuleServiceType {\n AUTOMATION_ACTUATOR,\n AUTOMATION_COMMAND,\n THERMO_THERMO,\n THERMO_PROBE,\n THERMO_HEATING_ACTUATORS,\n THERMO_COOLING_ACTUATORS,\n THERMO_HEATING_PUMPS,\n THERMO_COOLING_PUMPS,\n THERMO_SHARED_ACTUATORS,\n THERMO_SHARED_PUMPS,\n COMMANDS_AND_GROUPS,\n}\n","const FETCH_PLANT = 'FETCH_PLANT';\nconst HANDLE_REFRESH_PLANT = 'HANDLE_REFRESH_PLANT';\nconst MANAGE_ELIOT_PARSE_EXCEPTION = 'MANAGE_ELIOT_PARSE_EXCEPTION';\nconst AUTOMATION_WIZARD_NEXT_CALLED = 'AUTOMATION_WIZARD_NEXT_CALLED';\n\nexport {\n FETCH_PLANT,\n HANDLE_REFRESH_PLANT,\n MANAGE_ELIOT_PARSE_EXCEPTION,\n AUTOMATION_WIZARD_NEXT_CALLED,\n};\n","module.exports = \"data:image/jpeg;base64,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\"","module.exports = __webpack_public_path__ + \"img/house-3@2x.a4cfcc9d.jpg\";","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.13.2.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelToken } from 'axios';\n\nexport class Client {\n private instance: AxiosInstance;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, instance?: AxiosInstance) {\n this.instance = instance ? instance : axios.create();\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\n }\n\n /**\n * Get default settings for aggregate commands devices (Auth)\n * @param body (optional) \n * @return Device settings\n */\n aggregateCommandsDefault(linkableobjectid: string, body: AggregateCommandDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/devicesettings/aggregate-commands-default/{linkableobjectid}\";\n if (linkableobjectid === undefined || linkableobjectid === null)\n throw new Error(\"The parameter 'linkableobjectid' must be defined.\");\n url_ = url_.replace(\"{linkableobjectid}\", encodeURIComponent(\"\" + linkableobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processAggregateCommandsDefault(_response);\n });\n }\n\n protected processAggregateCommandsDefault(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DefaultDevicesSettingsDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get default settings for room object's devices (Auth)\n * @param body (optional) \n * @return RoomObject\n */\n roomObjectDefault(linkableobjectid: string, body: AddRoomObjectDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/devicesettings/room-object-default/{linkableobjectid}\";\n if (linkableobjectid === undefined || linkableobjectid === null)\n throw new Error(\"The parameter 'linkableobjectid' must be defined.\");\n url_ = url_.replace(\"{linkableobjectid}\", encodeURIComponent(\"\" + linkableobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processRoomObjectDefault(_response);\n });\n }\n\n protected processRoomObjectDefault(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DefaultDevicesSettingsDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n\n /**\n * Get default settings for room object's thermo devices (Auth)\n * @param body (optional) \n * @return Device settings\n */\n thermoDefault(linkableobjectid: string, body: ThermoRoomObjectDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/devicesettings/thermo-default/{linkableobjectid}\";\n if (linkableobjectid === undefined || linkableobjectid === null)\n throw new Error(\"The parameter 'linkableobjectid' must be defined.\");\n url_ = url_.replace(\"{linkableobjectid}\", encodeURIComponent(\"\" + linkableobjectid));\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n \"Accept\": \"text/plain\"\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processThermoDefault(_response);\n });\n }\n\n protected processThermoDefault(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n let result200: any = null;\n let resultData200 = _responseText;\n if (Array.isArray(resultData200)) {\n result200 = [] as any;\n for (let item of resultData200)\n result200!.push(DefaultDevicesSettingsDTO.fromJS(item));\n }\n else {\n result200 = null;\n }\n return result200;\n } else if (status === 500) {\n const _responseText = response.data;\n return throwException(\"A generic error occurred\", status, _responseText, _headers);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n}\n\nexport class Action implements IAction {\n id?: number;\n\n constructor(data?: IAction) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n }\n }\n\n static fromJS(data: any): Action {\n data = typeof data === 'object' ? data : {};\n let result = new Action();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n return data; \n }\n}\n\nexport interface IAction {\n id?: number;\n}\n\n/** 0 = None 1 = Separate 2 = Shared 3 = Mixed */\nexport enum ActuatorModalityType {\n None = 0,\n Separate = 1,\n Shared = 2,\n Mixed = 3,\n}\n\nexport class ActuatorSettings implements IActuatorSettings {\n\n constructor(data?: IActuatorSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n }\n\n static fromJS(data: any): ActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n return data; \n }\n}\n\nexport interface IActuatorSettings {\n}\n\nexport class AddRoomObjectDTO implements IAddRoomObjectDTO {\n name?: string | undefined;\n type?: RoomObjectType;\n devices?: Device[] | undefined;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n\n constructor(data?: IAddRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n }\n }\n\n static fromJS(data: any): AddRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AddRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n return data; \n }\n}\n\nexport interface IAddRoomObjectDTO {\n name?: string | undefined;\n type?: RoomObjectType;\n devices?: Device[] | undefined;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n}\n\nexport class AddressPumps implements IAddressPumps {\n number?: string | undefined;\n idSlot?: string | undefined;\n deviceid?: string | undefined;\n linksId?: string[] | undefined;\n\n constructor(data?: IAddressPumps) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.number = _data[\"number\"];\n this.idSlot = _data[\"idSlot\"];\n this.deviceid = _data[\"deviceid\"];\n if (Array.isArray(_data[\"linksId\"])) {\n this.linksId = [] as any;\n for (let item of _data[\"linksId\"])\n this.linksId!.push(item);\n }\n }\n }\n\n static fromJS(data: any): AddressPumps {\n data = typeof data === 'object' ? data : {};\n let result = new AddressPumps();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"number\"] = this.number;\n data[\"idSlot\"] = this.idSlot;\n data[\"deviceid\"] = this.deviceid;\n if (Array.isArray(this.linksId)) {\n data[\"linksId\"] = [];\n for (let item of this.linksId)\n data[\"linksId\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IAddressPumps {\n number?: string | undefined;\n idSlot?: string | undefined;\n deviceid?: string | undefined;\n linksId?: string[] | undefined;\n}\n\nexport class LinkableObject implements ILinkableObject {\n id?: string | undefined;\n name?: string | undefined;\n devices?: Device[] | undefined;\n extDevices?: ExtDevice[] | undefined;\n\n constructor(data?: ILinkableObject) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LinkableObject {\n data = typeof data === 'object' ? data : {};\n let result = new LinkableObject();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILinkableObject {\n id?: string | undefined;\n name?: string | undefined;\n devices?: Device[] | undefined;\n extDevices?: ExtDevice[] | undefined;\n}\n\nexport class AggregateCommand extends LinkableObject implements IAggregateCommand {\n rooms?: Room[] | undefined;\n objectsName?: string[] | undefined;\n type?: AggregateCommandType;\n roomObjectType?: RoomObjectType;\n address?: string | undefined;\n\n constructor(data?: IAggregateCommand) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"rooms\"])) {\n this.rooms = [] as any;\n for (let item of _data[\"rooms\"])\n this.rooms!.push(Room.fromJS(item));\n }\n if (Array.isArray(_data[\"objectsName\"])) {\n this.objectsName = [] as any;\n for (let item of _data[\"objectsName\"])\n this.objectsName!.push(item);\n }\n this.type = _data[\"type\"];\n this.roomObjectType = _data[\"roomObjectType\"];\n this.address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): AggregateCommand {\n data = typeof data === 'object' ? data : {};\n let result = new AggregateCommand();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.rooms)) {\n data[\"rooms\"] = [];\n for (let item of this.rooms)\n data[\"rooms\"].push(item.toJSON());\n }\n if (Array.isArray(this.objectsName)) {\n data[\"objectsName\"] = [];\n for (let item of this.objectsName)\n data[\"objectsName\"].push(item);\n }\n data[\"type\"] = this.type;\n data[\"roomObjectType\"] = this.roomObjectType;\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAggregateCommand extends ILinkableObject {\n rooms?: Room[] | undefined;\n objectsName?: string[] | undefined;\n type?: AggregateCommandType;\n roomObjectType?: RoomObjectType;\n address?: string | undefined;\n}\n\nexport class AggregateCommandDTO implements IAggregateCommandDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: AggregateCommandType;\n isPlaceholder?: boolean;\n rooms?: RoomDTO[] | undefined;\n roomObjectType?: RoomObjectType;\n\n constructor(data?: IAggregateCommandDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.isPlaceholder = _data[\"isPlaceholder\"];\n if (Array.isArray(_data[\"rooms\"])) {\n this.rooms = [] as any;\n for (let item of _data[\"rooms\"])\n this.rooms!.push(RoomDTO.fromJS(item));\n }\n this.roomObjectType = _data[\"roomObjectType\"];\n }\n }\n\n static fromJS(data: any): AggregateCommandDTO {\n data = typeof data === 'object' ? data : {};\n let result = new AggregateCommandDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"isPlaceholder\"] = this.isPlaceholder;\n if (Array.isArray(this.rooms)) {\n data[\"rooms\"] = [];\n for (let item of this.rooms)\n data[\"rooms\"].push(item.toJSON());\n }\n data[\"roomObjectType\"] = this.roomObjectType;\n return data; \n }\n}\n\nexport interface IAggregateCommandDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: AggregateCommandType;\n isPlaceholder?: boolean;\n rooms?: RoomDTO[] | undefined;\n roomObjectType?: RoomObjectType;\n}\n\n/** 0 = General 1 = Group */\nexport enum AggregateCommandType {\n General = 0,\n Group = 1,\n}\n\nexport class AlarmAction extends Action implements IAlarmAction {\n isSuspended?: boolean;\n alarmType?: AlarmType;\n alarmState?: AlarmPartitionState;\n alarmPartitionOrSceneId?: string | undefined;\n alarmPin?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isSuspended = _data[\"isSuspended\"];\n this.alarmType = _data[\"alarmType\"];\n this.alarmState = _data[\"alarmState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmPin = _data[\"alarmPin\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmAction {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isSuspended\"] = this.isSuspended;\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmState\"] = this.alarmState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmPin\"] = this.alarmPin;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmAction extends IAction {\n isSuspended?: boolean;\n alarmType?: AlarmType;\n alarmState?: AlarmPartitionState;\n alarmPartitionOrSceneId?: string | undefined;\n alarmPin?: string | undefined;\n alarmName?: string | undefined;\n}\n\nexport class ExtDevice implements IExtDevice {\n componentType?: ExtComponentType;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n\n constructor(data?: IExtDevice) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.componentType = _data[\"componentType\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n }\n }\n\n static fromJS(data: any): ExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new ExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"componentType\"] = this.componentType;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n return data; \n }\n}\n\nexport interface IExtDevice {\n componentType?: ExtComponentType;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n}\n\nexport class AlarmCentralUnitExtDevice extends ExtDevice implements IAlarmCentralUnitExtDevice {\n readonly address?: string | undefined;\n\n constructor(data?: IAlarmCentralUnitExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): AlarmCentralUnitExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmCentralUnitExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmCentralUnitExtDevice extends IExtDevice {\n address?: string | undefined;\n}\n\nexport class Condition implements ICondition {\n id?: number;\n isSuspended?: boolean;\n\n constructor(data?: ICondition) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.isSuspended = _data[\"isSuspended\"];\n }\n }\n\n static fromJS(data: any): Condition {\n data = typeof data === 'object' ? data : {};\n let result = new Condition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"isSuspended\"] = this.isSuspended;\n return data; \n }\n}\n\nexport interface ICondition {\n id?: number;\n isSuspended?: boolean;\n}\n\nexport class AlarmCondition extends Condition implements IAlarmCondition {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.alarmType = _data[\"alarmType\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmCondition {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmCondition extends ICondition {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n}\n\n/** 0 = Disarmed 1 = Exit 2 = Armed 3 = PreAlarm 4 = Ready_To_Arm 5 = Alarm 6 = Armed_Immediate 7 = Tamper 8 = None */\nexport enum AlarmPartitionState {\n Disarmed = 0,\n Exit = 1,\n Armed = 2,\n PreAlarm = 3,\n Ready_To_Arm = 4,\n Alarm = 5,\n Armed_Immediate = 6,\n Tamper = 7,\n None = 8,\n}\n\n/** 0 = Disarm 1 = Arm_With_Delay 2 = Arm_Without_Delay */\nexport enum AlarmPartitionStatus {\n Disarm = 0,\n Arm_With_Delay = 1,\n Arm_Without_Delay = 2,\n}\n\nexport class AlarmSensorExtDevice extends ExtDevice implements IAlarmSensorExtDevice {\n readonly address?: string | undefined;\n readonly senrosName?: string | undefined;\n\n constructor(data?: IAlarmSensorExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n (this).senrosName = _data[\"senrosName\"];\n }\n }\n\n static fromJS(data: any): AlarmSensorExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmSensorExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n data[\"senrosName\"] = this.senrosName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmSensorExtDevice extends IExtDevice {\n address?: string | undefined;\n senrosName?: string | undefined;\n}\n\n/** 0 = Idle 1 = Tamper 2 = Trigger 3 = Mask */\nexport enum AlarmSensorStatus {\n Idle = 0,\n Tamper = 1,\n Trigger = 2,\n Mask = 3,\n}\n\n/** 0 = None 1 = Normal 2 = Alarm */\nexport enum AlarmSensorStatusScene {\n None = 0,\n Normal = 1,\n Alarm = 2,\n}\n\nexport class Trigger implements ITrigger {\n id?: number;\n isSuspended?: boolean;\n address?: string | undefined;\n\n constructor(data?: ITrigger) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.isSuspended = _data[\"isSuspended\"];\n this.address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): Trigger {\n data = typeof data === 'object' ? data : {};\n let result = new Trigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"isSuspended\"] = this.isSuspended;\n data[\"address\"] = this.address;\n return data; \n }\n}\n\nexport interface ITrigger {\n id?: number;\n isSuspended?: boolean;\n address?: string | undefined;\n}\n\nexport class AlarmTrigger extends Trigger implements IAlarmTrigger {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n\n constructor(data?: IAlarmTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.alarmType = _data[\"alarmType\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmPartitionOrSceneId = _data[\"alarmPartitionOrSceneId\"];\n this.alarmName = _data[\"alarmName\"];\n }\n }\n\n static fromJS(data: any): AlarmTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new AlarmTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"alarmType\"] = this.alarmType;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmPartitionOrSceneId\"] = this.alarmPartitionOrSceneId;\n data[\"alarmName\"] = this.alarmName;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IAlarmTrigger extends ITrigger {\n alarmType?: AlarmType;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmPartitionOrSceneId?: string | undefined;\n alarmName?: string | undefined;\n}\n\n/** 0 = Partition 1 = AlarmSystemType */\nexport enum AlarmType {\n Partition = 0,\n AlarmSystemType = 1,\n}\n\nexport class BaseShuttersCommandSettingsObjectDTO implements IBaseShuttersCommandSettingsObjectDTO {\n shutterMode?: ShutterMode;\n\n constructor(data?: IBaseShuttersCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.shutterMode = _data[\"shutterMode\"];\n }\n }\n\n static fromJS(data: any): BaseShuttersCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new BaseShuttersCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"shutterMode\"] = this.shutterMode;\n return data; \n }\n}\n\nexport interface IBaseShuttersCommandSettingsObjectDTO {\n shutterMode?: ShutterMode;\n}\n\n/** 0 = None 1 = Dimmer 2 = ColorTemperature 4 = Color 8 = Color1 16 = Color2 */\nexport enum BitmaskDaliLoadTypes {\n None = 0,\n Dimmer = 1,\n ColorTemperature = 2,\n Color = 4,\n Color1 = 8,\n Color2 = 16,\n}\n\nexport class ButtonTrigger extends Trigger implements IButtonTrigger {\n devices?: Device[] | undefined;\n\n constructor(data?: IButtonTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(Device.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ButtonTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new ButtonTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IButtonTrigger extends ITrigger {\n devices?: Device[] | undefined;\n}\n\nexport class Color implements IColor {\n readonly r?: number;\n readonly g?: number;\n readonly b?: number;\n readonly a?: number;\n readonly isKnownColor?: boolean;\n readonly isEmpty?: boolean;\n readonly isNamedColor?: boolean;\n readonly isSystemColor?: boolean;\n readonly name?: string | undefined;\n\n constructor(data?: IColor) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).r = _data[\"r\"];\n (this).g = _data[\"g\"];\n (this).b = _data[\"b\"];\n (this).a = _data[\"a\"];\n (this).isKnownColor = _data[\"isKnownColor\"];\n (this).isEmpty = _data[\"isEmpty\"];\n (this).isNamedColor = _data[\"isNamedColor\"];\n (this).isSystemColor = _data[\"isSystemColor\"];\n (this).name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): Color {\n data = typeof data === 'object' ? data : {};\n let result = new Color();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"r\"] = this.r;\n data[\"g\"] = this.g;\n data[\"b\"] = this.b;\n data[\"a\"] = this.a;\n data[\"isKnownColor\"] = this.isKnownColor;\n data[\"isEmpty\"] = this.isEmpty;\n data[\"isNamedColor\"] = this.isNamedColor;\n data[\"isSystemColor\"] = this.isSystemColor;\n data[\"name\"] = this.name;\n return data; \n }\n}\n\nexport interface IColor {\n r?: number;\n g?: number;\n b?: number;\n a?: number;\n isKnownColor?: boolean;\n isEmpty?: boolean;\n isNamedColor?: boolean;\n isSystemColor?: boolean;\n name?: string | undefined;\n}\n\nexport class ColoredLightExtDevice extends ExtDevice implements IColoredLightExtDevice {\n coloredLightType?: ColoredLightType;\n readonly philipsHueBridge?: string | undefined;\n readonly philipsHueLamp?: string | undefined;\n readonly philipsHueLampName?: string | undefined;\n readonly lifxLamp?: string | undefined;\n readonly dmxMacAddress?: string | undefined;\n readonly dmxNode?: string | undefined;\n\n constructor(data?: IColoredLightExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.coloredLightType = _data[\"coloredLightType\"];\n (this).philipsHueBridge = _data[\"philipsHueBridge\"];\n (this).philipsHueLamp = _data[\"philipsHueLamp\"];\n (this).philipsHueLampName = _data[\"philipsHueLampName\"];\n (this).lifxLamp = _data[\"lifxLamp\"];\n (this).dmxMacAddress = _data[\"dmxMacAddress\"];\n (this).dmxNode = _data[\"dmxNode\"];\n }\n }\n\n static fromJS(data: any): ColoredLightExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new ColoredLightExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"coloredLightType\"] = this.coloredLightType;\n data[\"philipsHueBridge\"] = this.philipsHueBridge;\n data[\"philipsHueLamp\"] = this.philipsHueLamp;\n data[\"philipsHueLampName\"] = this.philipsHueLampName;\n data[\"lifxLamp\"] = this.lifxLamp;\n data[\"dmxMacAddress\"] = this.dmxMacAddress;\n data[\"dmxNode\"] = this.dmxNode;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IColoredLightExtDevice extends IExtDevice {\n coloredLightType?: ColoredLightType;\n philipsHueBridge?: string | undefined;\n philipsHueLamp?: string | undefined;\n philipsHueLampName?: string | undefined;\n lifxLamp?: string | undefined;\n dmxMacAddress?: string | undefined;\n dmxNode?: string | undefined;\n}\n\n/** 0 = None 1 = PhilipsHue 2 = Lifx 3 = Dmx */\nexport enum ColoredLightType {\n None = 0,\n PhilipsHue = 1,\n Lifx = 2,\n Dmx = 3,\n}\n\n/** 0 = None 1 = Up 2 = Down */\nexport enum CommandDirection {\n None = 0,\n Up = 1,\n Down = 2,\n}\n\n/** 0 = None 1 = Generic1 2 = Generic2 3 = Generic3 4 = Generic4 5 = Generic5 6 = Generic6 7 = Generic7 8 = Generic8 9 = Generic9 10 = Day 11 = Night 12 = Entrance 13 = Exit 14 = Key 15 = Fan 16 = Ring 17 = A 18 = B 19 = C 20 = D 21 = E 22 = F 23 = G 24 = H 25 = I 26 = J 27 = K 28 = L 29 = M 30 = N 31 = O 32 = P 33 = Q 34 = R 35 = S 36 = T 37 = U 38 = V 39 = W 40 = X 41 = Y 42 = Z 43 = Zero 44 = One 45 = Two 46 = Three 47 = Four 48 = Five 49 = Six 50 = Seven 51 = Eight 52 = Nine 53 = DefaultLoad 54 = Disabled1M 55 = Disabled2M 56 = Disabled3M 57 = LightGroup 58 = Shutter 59 = DimmerP2P 60 = DimmerGroup 61 = Player 62 = Disabled1Mb 63 = Disabled3Mb 64 = C_wrong */\nexport enum CommandIcon {\n None = 0,\n Generic1 = 1,\n Generic2 = 2,\n Generic3 = 3,\n Generic4 = 4,\n Generic5 = 5,\n Generic6 = 6,\n Generic7 = 7,\n Generic8 = 8,\n Generic9 = 9,\n Day = 10,\n Night = 11,\n Entrance = 12,\n Exit = 13,\n Key = 14,\n Fan = 15,\n Ring = 16,\n A = 17,\n B = 18,\n C = 19,\n D = 20,\n E = 21,\n F = 22,\n G = 23,\n H = 24,\n I = 25,\n J = 26,\n K = 27,\n L = 28,\n M = 29,\n N = 30,\n O = 31,\n P = 32,\n Q = 33,\n R = 34,\n S = 35,\n T = 36,\n U = 37,\n V = 38,\n W = 39,\n X = 40,\n Y = 41,\n Z = 42,\n Zero = 43,\n One = 44,\n Two = 45,\n Three = 46,\n Four = 47,\n Five = 48,\n Six = 49,\n Seven = 50,\n Eight = 51,\n Nine = 52,\n DefaultLoad = 53,\n Disabled1M = 54,\n Disabled2M = 55,\n Disabled3M = 56,\n LightGroup = 57,\n Shutter = 58,\n DimmerP2P = 59,\n DimmerGroup = 60,\n Player = 61,\n Disabled1Mb = 62,\n Disabled3Mb = 63,\n C_wrong = 64,\n}\n\n/** 0 = HalfSecond 1 = TwoSecond */\nexport enum CommandOpeningTime {\n HalfSecond = 0,\n TwoSecond = 1,\n}\n\nexport class CommandSettings implements ICommandSettings {\n\n constructor(data?: ICommandSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n }\n\n static fromJS(data: any): CommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new CommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n return data; \n }\n}\n\nexport interface ICommandSettings {\n}\n\n/** 0 = None 1 = Thermo 2 = Probe 3 = Actuator 4 = ShutterActuator 5 = DimmerActuator 6 = Command 7 = ShutterCommand 8 = ShutterActuatorCommand 9 = DimmerCommand 10 = SceneCommand 11 = Contact 12 = PlayerCommand 13 = BlindActuator 14 = MusicPlayer 15 = SensorCommand 16 = ColoredLight 17 = Xmeter 18 = DimmerDaliActuator 19 = GatewayDaliActuator 20 = EnergyMeter */\nexport enum ComponentType {\n None = 0,\n Thermo = 1,\n Probe = 2,\n Actuator = 3,\n ShutterActuator = 4,\n DimmerActuator = 5,\n Command = 6,\n ShutterCommand = 7,\n ShutterActuatorCommand = 8,\n DimmerCommand = 9,\n SceneCommand = 10,\n Contact = 11,\n PlayerCommand = 12,\n BlindActuator = 13,\n MusicPlayer = 14,\n SensorCommand = 15,\n ColoredLight = 16,\n Xmeter = 17,\n DimmerDaliActuator = 18,\n GatewayDaliActuator = 19,\n EnergyMeter = 20,\n}\n\n/** 0 = None 1 = NormallyOpen 2 = NormallyClose */\nexport enum ConctactType {\n None = 0,\n NormallyOpen = 1,\n NormallyClose = 2,\n}\n\n/** 0 = None 1 = Mostrine 2 = Preset */\nexport enum ConfigurationType {\n None = 0,\n Mostrine = 1,\n Preset = 2,\n}\n\n/** 0 = NoAction 1 = Protection 2 = Manual 3 = PreviousState */\nexport enum ContactType {\n NoAction = 0,\n Protection = 1,\n Manual = 2,\n PreviousState = 3,\n}\n\n/** 0 = None 1 = DaliDimmer 2 = DaliGateway */\nexport enum DaliType {\n None = 0,\n DaliDimmer = 1,\n DaliGateway = 2,\n}\n\nexport class DateAndTimeTrigger extends Trigger implements IDateAndTimeTrigger {\n time?: string;\n weekDays?: WeekDay[] | undefined;\n\n constructor(data?: IDateAndTimeTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.time = _data[\"time\"];\n if (Array.isArray(_data[\"weekDays\"])) {\n this.weekDays = [] as any;\n for (let item of _data[\"weekDays\"])\n this.weekDays!.push(item);\n }\n }\n }\n\n static fromJS(data: any): DateAndTimeTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new DateAndTimeTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"time\"] = this.time;\n if (Array.isArray(this.weekDays)) {\n data[\"weekDays\"] = [];\n for (let item of this.weekDays)\n data[\"weekDays\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDateAndTimeTrigger extends ITrigger {\n time?: string;\n weekDays?: WeekDay[] | undefined;\n}\n\nexport class DefaultDevicesSettingsDTO implements IDefaultDevicesSettingsDTO {\n deviceUid?: string | undefined;\n thermoProbeSettings?: ThermoProbeSettingsObjectParam;\n shuttersActuatorSettings?: ShuttersActuatorSettingsObjectParam;\n lightsActuatorSettings?: LightsActuatorSettingsObjectDTO;\n lockCommandSettings?: LockCommandSettingsObjectDTO;\n lockActuatorSettings?: LockActuatorSettingsObjectParam;\n lightsCommandSettings?: LightsCommandSettingsObjectDTO;\n shuttersCommandSettings?: ShuttersCommandSettingsObjectDTO;\n selectedCommandIcon?: CommandIcon;\n hasChangeIconButtonVisible?: boolean;\n activeLinksLabel?: string | undefined;\n selectedComponentType?: ComponentType;\n thermoActuatorType?: ThermoActuatorType;\n isAggregateRoomObject?: boolean;\n roomType?: RoomType;\n identifier?: string | undefined;\n\n constructor(data?: IDefaultDevicesSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.deviceUid = _data[\"deviceUid\"];\n this.thermoProbeSettings = _data[\"thermoProbeSettings\"] ? ThermoProbeSettingsObjectParam.fromJS(_data[\"thermoProbeSettings\"]) : undefined;\n this.shuttersActuatorSettings = _data[\"shuttersActuatorSettings\"] ? ShuttersActuatorSettingsObjectParam.fromJS(_data[\"shuttersActuatorSettings\"]) : undefined;\n this.lightsActuatorSettings = _data[\"lightsActuatorSettings\"] ? LightsActuatorSettingsObjectDTO.fromJS(_data[\"lightsActuatorSettings\"]) : undefined;\n this.lockCommandSettings = _data[\"lockCommandSettings\"] ? LockCommandSettingsObjectDTO.fromJS(_data[\"lockCommandSettings\"]) : undefined;\n this.lockActuatorSettings = _data[\"lockActuatorSettings\"] ? LockActuatorSettingsObjectParam.fromJS(_data[\"lockActuatorSettings\"]) : undefined;\n this.lightsCommandSettings = _data[\"lightsCommandSettings\"] ? LightsCommandSettingsObjectDTO.fromJS(_data[\"lightsCommandSettings\"]) : undefined;\n this.shuttersCommandSettings = _data[\"shuttersCommandSettings\"] ? ShuttersCommandSettingsObjectDTO.fromJS(_data[\"shuttersCommandSettings\"]) : undefined;\n this.selectedCommandIcon = _data[\"selectedCommandIcon\"];\n this.hasChangeIconButtonVisible = _data[\"hasChangeIconButtonVisible\"];\n this.activeLinksLabel = _data[\"activeLinksLabel\"];\n this.selectedComponentType = _data[\"selectedComponentType\"];\n this.thermoActuatorType = _data[\"thermoActuatorType\"];\n this.isAggregateRoomObject = _data[\"isAggregateRoomObject\"];\n this.roomType = _data[\"roomType\"];\n this.identifier = _data[\"identifier\"];\n }\n }\n\n static fromJS(data: any): DefaultDevicesSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DefaultDevicesSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"deviceUid\"] = this.deviceUid;\n data[\"thermoProbeSettings\"] = this.thermoProbeSettings ? this.thermoProbeSettings.toJSON() : undefined;\n data[\"shuttersActuatorSettings\"] = this.shuttersActuatorSettings ? this.shuttersActuatorSettings.toJSON() : undefined;\n data[\"lightsActuatorSettings\"] = this.lightsActuatorSettings ? this.lightsActuatorSettings.toJSON() : undefined;\n data[\"lockCommandSettings\"] = this.lockCommandSettings ? this.lockCommandSettings.toJSON() : undefined;\n data[\"lockActuatorSettings\"] = this.lockActuatorSettings ? this.lockActuatorSettings.toJSON() : undefined;\n data[\"lightsCommandSettings\"] = this.lightsCommandSettings ? this.lightsCommandSettings.toJSON() : undefined;\n data[\"shuttersCommandSettings\"] = this.shuttersCommandSettings ? this.shuttersCommandSettings.toJSON() : undefined;\n data[\"selectedCommandIcon\"] = this.selectedCommandIcon;\n data[\"hasChangeIconButtonVisible\"] = this.hasChangeIconButtonVisible;\n data[\"activeLinksLabel\"] = this.activeLinksLabel;\n data[\"selectedComponentType\"] = this.selectedComponentType;\n data[\"thermoActuatorType\"] = this.thermoActuatorType;\n data[\"isAggregateRoomObject\"] = this.isAggregateRoomObject;\n data[\"roomType\"] = this.roomType;\n data[\"identifier\"] = this.identifier;\n return data; \n }\n}\n\nexport interface IDefaultDevicesSettingsDTO {\n deviceUid?: string | undefined;\n thermoProbeSettings?: ThermoProbeSettingsObjectParam;\n shuttersActuatorSettings?: ShuttersActuatorSettingsObjectParam;\n lightsActuatorSettings?: LightsActuatorSettingsObjectDTO;\n lockCommandSettings?: LockCommandSettingsObjectDTO;\n lockActuatorSettings?: LockActuatorSettingsObjectParam;\n lightsCommandSettings?: LightsCommandSettingsObjectDTO;\n shuttersCommandSettings?: ShuttersCommandSettingsObjectDTO;\n selectedCommandIcon?: CommandIcon;\n hasChangeIconButtonVisible?: boolean;\n activeLinksLabel?: string | undefined;\n selectedComponentType?: ComponentType;\n thermoActuatorType?: ThermoActuatorType;\n isAggregateRoomObject?: boolean;\n roomType?: RoomType;\n identifier?: string | undefined;\n}\n\nexport class ObjectAction extends Action implements IObjectAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n sceneShutterState?: SceneShutterState;\n sceneShutterPosition?: number;\n isShutterPositionManagement?: boolean;\n sceneSocketState?: SceneSocketState;\n sceneBlindState?: SceneBlindState;\n sceneLockState?: SceneLockState;\n thermostatStatus?: ThermostatStatus;\n thermostatTypeOfObject?: ThermoTypeOfObject;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermostatTriggerTemperature?: number;\n sceneFancoilState?: SceneFancoilState;\n fancoilSpeed?: number;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceType?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n alarmPin?: string | undefined;\n alarmPartitions?: Action[] | undefined;\n alarmPartitionStatus?: AlarmPartitionStatus;\n alarmSensorStatusScene?: AlarmSensorStatusScene;\n alarmPartitionorSceneId?: string | undefined;\n alarmType?: AlarmType;\n duration?: number | undefined;\n delay?: number | undefined;\n\n constructor(data?: IObjectAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.sceneLightState = _data[\"sceneLightState\"];\n this.dimmerStatus = _data[\"dimmerStatus\"];\n this.dimmerPercentage = _data[\"dimmerPercentage\"];\n this.dimmerFadeIn = _data[\"dimmerFadeIn\"];\n this.dimmerFadeOut = _data[\"dimmerFadeOut\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.workingMode = _data[\"workingMode\"];\n this.oldTemperature = _data[\"oldTemperature\"];\n this.sceneShutterState = _data[\"sceneShutterState\"];\n this.sceneShutterPosition = _data[\"sceneShutterPosition\"];\n this.isShutterPositionManagement = _data[\"isShutterPositionManagement\"];\n this.sceneSocketState = _data[\"sceneSocketState\"];\n this.sceneBlindState = _data[\"sceneBlindState\"];\n this.sceneLockState = _data[\"sceneLockState\"];\n this.thermostatStatus = _data[\"thermostatStatus\"];\n this.thermostatTypeOfObject = _data[\"thermostatTypeOfObject\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n this.thermostatTriggerTemperature = _data[\"thermostatTriggerTemperature\"];\n this.sceneFancoilState = _data[\"sceneFancoilState\"];\n this.fancoilSpeed = _data[\"fancoilSpeed\"];\n this.sceneTowelWarmerState = _data[\"sceneTowelWarmerState\"];\n this.sceneColoredLightsState = _data[\"sceneColoredLightsState\"];\n this.coloredLightsIntensity = _data[\"coloredLightsIntensity\"];\n this.coloredLightsTemperature = _data[\"coloredLightsTemperature\"];\n this.coloredLightsColor = _data[\"coloredLightsColor\"];\n this.scenePlayerState = _data[\"scenePlayerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.playerSourceType = _data[\"playerSourceType\"];\n this.playerSourceId = _data[\"playerSourceId\"];\n this.playerSourceDescription = _data[\"playerSourceDescription\"];\n this.alarmPin = _data[\"alarmPin\"];\n if (Array.isArray(_data[\"alarmPartitions\"])) {\n this.alarmPartitions = [] as any;\n for (let item of _data[\"alarmPartitions\"])\n this.alarmPartitions!.push(Action.fromJS(item));\n }\n this.alarmPartitionStatus = _data[\"alarmPartitionStatus\"];\n this.alarmSensorStatusScene = _data[\"alarmSensorStatusScene\"];\n this.alarmPartitionorSceneId = _data[\"alarmPartitionorSceneId\"];\n this.alarmType = _data[\"alarmType\"];\n this.duration = _data[\"duration\"];\n this.delay = _data[\"delay\"];\n }\n }\n\n static fromJS(data: any): ObjectAction {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"sceneLightState\"] = this.sceneLightState;\n data[\"dimmerStatus\"] = this.dimmerStatus;\n data[\"dimmerPercentage\"] = this.dimmerPercentage;\n data[\"dimmerFadeIn\"] = this.dimmerFadeIn;\n data[\"dimmerFadeOut\"] = this.dimmerFadeOut;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"workingMode\"] = this.workingMode;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"sceneShutterState\"] = this.sceneShutterState;\n data[\"sceneShutterPosition\"] = this.sceneShutterPosition;\n data[\"isShutterPositionManagement\"] = this.isShutterPositionManagement;\n data[\"sceneSocketState\"] = this.sceneSocketState;\n data[\"sceneBlindState\"] = this.sceneBlindState;\n data[\"sceneLockState\"] = this.sceneLockState;\n data[\"thermostatStatus\"] = this.thermostatStatus;\n data[\"thermostatTypeOfObject\"] = this.thermostatTypeOfObject;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n data[\"thermostatTriggerTemperature\"] = this.thermostatTriggerTemperature;\n data[\"sceneFancoilState\"] = this.sceneFancoilState;\n data[\"fancoilSpeed\"] = this.fancoilSpeed;\n data[\"sceneTowelWarmerState\"] = this.sceneTowelWarmerState;\n data[\"sceneColoredLightsState\"] = this.sceneColoredLightsState;\n data[\"coloredLightsIntensity\"] = this.coloredLightsIntensity;\n data[\"coloredLightsTemperature\"] = this.coloredLightsTemperature;\n data[\"coloredLightsColor\"] = this.coloredLightsColor;\n data[\"scenePlayerState\"] = this.scenePlayerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"playerSourceType\"] = this.playerSourceType;\n data[\"playerSourceId\"] = this.playerSourceId;\n data[\"playerSourceDescription\"] = this.playerSourceDescription;\n data[\"alarmPin\"] = this.alarmPin;\n if (Array.isArray(this.alarmPartitions)) {\n data[\"alarmPartitions\"] = [];\n for (let item of this.alarmPartitions)\n data[\"alarmPartitions\"].push(item.toJSON());\n }\n data[\"alarmPartitionStatus\"] = this.alarmPartitionStatus;\n data[\"alarmSensorStatusScene\"] = this.alarmSensorStatusScene;\n data[\"alarmPartitionorSceneId\"] = this.alarmPartitionorSceneId;\n data[\"alarmType\"] = this.alarmType;\n data[\"duration\"] = this.duration;\n data[\"delay\"] = this.delay;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectAction extends IAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n dimmerStatus?: DimmerStatus;\n dimmerPercentage?: number;\n dimmerFadeIn?: number;\n dimmerFadeOut?: number;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n oldTemperature?: number;\n sceneShutterState?: SceneShutterState;\n sceneShutterPosition?: number;\n isShutterPositionManagement?: boolean;\n sceneSocketState?: SceneSocketState;\n sceneBlindState?: SceneBlindState;\n sceneLockState?: SceneLockState;\n thermostatStatus?: ThermostatStatus;\n thermostatTypeOfObject?: ThermoTypeOfObject;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermostatTriggerTemperature?: number;\n sceneFancoilState?: SceneFancoilState;\n fancoilSpeed?: number;\n sceneTowelWarmerState?: SceneTowelWarmerState;\n sceneColoredLightsState?: SceneColoredLightsState;\n coloredLightsIntensity?: number;\n coloredLightsTemperature?: number;\n coloredLightsColor?: number;\n scenePlayerState?: ScenePlayerState;\n playerVolume?: number;\n playerSourceType?: number;\n playerSourceId?: string | undefined;\n playerSourceDescription?: string | undefined;\n alarmPin?: string | undefined;\n alarmPartitions?: Action[] | undefined;\n alarmPartitionStatus?: AlarmPartitionStatus;\n alarmSensorStatusScene?: AlarmSensorStatusScene;\n alarmPartitionorSceneId?: string | undefined;\n alarmType?: AlarmType;\n duration?: number | undefined;\n delay?: number | undefined;\n}\n\nexport class DefaultObjectAction extends ObjectAction implements IDefaultObjectAction {\n isEnabled?: boolean;\n\n constructor(data?: IDefaultObjectAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isEnabled = _data[\"isEnabled\"];\n }\n }\n\n static fromJS(data: any): DefaultObjectAction {\n data = typeof data === 'object' ? data : {};\n let result = new DefaultObjectAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isEnabled\"] = this.isEnabled;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDefaultObjectAction extends IObjectAction {\n isEnabled?: boolean;\n}\n\nexport class DelayValue implements IDelayValue {\n value?: number;\n description?: string | undefined;\n\n constructor(data?: IDelayValue) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.value = _data[\"value\"];\n this.description = _data[\"description\"];\n }\n }\n\n static fromJS(data: any): DelayValue {\n data = typeof data === 'object' ? data : {};\n let result = new DelayValue();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"value\"] = this.value;\n data[\"description\"] = this.description;\n return data; \n }\n}\n\nexport interface IDelayValue {\n value?: number;\n description?: string | undefined;\n}\n\nexport class Device implements IDevice {\n uid?: string | undefined;\n id?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n hasSubModule?: boolean;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isF422Acompatible?: boolean;\n problemType?: ProblemType;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n thermoSystemControlType?: SystemControlType[] | undefined;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n interface?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n hasChanges?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n firmwareVersion?: Version;\n\n constructor(data?: IDevice) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.uid = _data[\"uid\"];\n this.id = _data[\"id\"];\n this.model = _data[\"model\"];\n this.modelObject = _data[\"modelObject\"];\n this.hasSubModule = _data[\"hasSubModule\"];\n this.isManaged = _data[\"isManaged\"];\n this.isShutterWithPosition = _data[\"isShutterWithPosition\"];\n this.canHandlePreset = _data[\"canHandlePreset\"];\n this.isAnomaly = _data[\"isAnomaly\"];\n this.isBlocking = _data[\"isBlocking\"];\n this.isF422Acompatible = _data[\"isF422Acompatible\"];\n this.problemType = _data[\"problemType\"];\n this.isIgnored = _data[\"isIgnored\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(Slot.fromJS(item));\n }\n this.functionType = _data[\"functionType\"];\n this.systemType = _data[\"systemType\"];\n if (Array.isArray(_data[\"componentTypes\"])) {\n this.componentTypes = [] as any;\n for (let item of _data[\"componentTypes\"])\n this.componentTypes!.push(item);\n }\n this.isDoubleDimmer = _data[\"isDoubleDimmer\"];\n this.canHandleDoubleDimmer = _data[\"canHandleDoubleDimmer\"];\n if (Array.isArray(_data[\"thermoSystemControlType\"])) {\n this.thermoSystemControlType = [] as any;\n for (let item of _data[\"thermoSystemControlType\"])\n this.thermoSystemControlType!.push(item);\n }\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.interface = _data[\"interface\"];\n this.ledModality = _data[\"ledModality\"];\n this.hasRefresherFeedback = _data[\"hasRefresherFeedback\"];\n this.hasChanges = _data[\"hasChanges\"];\n this.fwVersion = _data[\"fwVersion\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n this.firmwareVersion = _data[\"firmwareVersion\"] ? Version.fromJS(_data[\"firmwareVersion\"]) : undefined;\n }\n }\n\n static fromJS(data: any): Device {\n data = typeof data === 'object' ? data : {};\n let result = new Device();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"uid\"] = this.uid;\n data[\"id\"] = this.id;\n data[\"model\"] = this.model;\n data[\"modelObject\"] = this.modelObject;\n data[\"hasSubModule\"] = this.hasSubModule;\n data[\"isManaged\"] = this.isManaged;\n data[\"isShutterWithPosition\"] = this.isShutterWithPosition;\n data[\"canHandlePreset\"] = this.canHandlePreset;\n data[\"isAnomaly\"] = this.isAnomaly;\n data[\"isBlocking\"] = this.isBlocking;\n data[\"isF422Acompatible\"] = this.isF422Acompatible;\n data[\"problemType\"] = this.problemType;\n data[\"isIgnored\"] = this.isIgnored;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"functionType\"] = this.functionType;\n data[\"systemType\"] = this.systemType;\n if (Array.isArray(this.componentTypes)) {\n data[\"componentTypes\"] = [];\n for (let item of this.componentTypes)\n data[\"componentTypes\"].push(item);\n }\n data[\"isDoubleDimmer\"] = this.isDoubleDimmer;\n data[\"canHandleDoubleDimmer\"] = this.canHandleDoubleDimmer;\n if (Array.isArray(this.thermoSystemControlType)) {\n data[\"thermoSystemControlType\"] = [];\n for (let item of this.thermoSystemControlType)\n data[\"thermoSystemControlType\"].push(item);\n }\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"interface\"] = this.interface;\n data[\"ledModality\"] = this.ledModality;\n data[\"hasRefresherFeedback\"] = this.hasRefresherFeedback;\n data[\"hasChanges\"] = this.hasChanges;\n data[\"fwVersion\"] = this.fwVersion;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n data[\"firmwareVersion\"] = this.firmwareVersion ? this.firmwareVersion.toJSON() : undefined;\n return data; \n }\n}\n\nexport interface IDevice {\n uid?: string | undefined;\n id?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n hasSubModule?: boolean;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isF422Acompatible?: boolean;\n problemType?: ProblemType;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n thermoSystemControlType?: SystemControlType[] | undefined;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n interface?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n hasChanges?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n firmwareVersion?: Version;\n}\n\n/** 0 = None 1 = Min 2 = Max */\nexport enum DeviceBrightness {\n None = 0,\n Min = 1,\n Max = 2,\n}\n\nexport class DeviceDTO implements IDeviceDTO {\n uid?: string | undefined;\n id?: string | undefined;\n name?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n problemType?: ProblemType;\n readonly isActuatorDevice?: boolean;\n readonly isCommandDevice?: boolean;\n readonly isThermostatDevice?: boolean;\n readonly isThermoProbeDevice?: boolean;\n readonly isAssigned?: boolean;\n readonly isAssignedCommand?: boolean;\n readonly isAssignedActuator?: boolean;\n readonly isAssignedActuatorAndCommand?: boolean;\n selectedComponentType?: ComponentType;\n settingsVisibility?: DeviceSettingsVisibilityDTO;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n defaultSettings?: DefaultDevicesSettingsDTO[] | undefined;\n\n constructor(data?: IDeviceDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.uid = _data[\"uid\"];\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.model = _data[\"model\"];\n this.modelObject = _data[\"modelObject\"];\n this.isManaged = _data[\"isManaged\"];\n this.isShutterWithPosition = _data[\"isShutterWithPosition\"];\n this.canHandlePreset = _data[\"canHandlePreset\"];\n this.isAnomaly = _data[\"isAnomaly\"];\n this.isBlocking = _data[\"isBlocking\"];\n this.isIgnored = _data[\"isIgnored\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(Slot.fromJS(item));\n }\n this.functionType = _data[\"functionType\"];\n this.systemType = _data[\"systemType\"];\n if (Array.isArray(_data[\"componentTypes\"])) {\n this.componentTypes = [] as any;\n for (let item of _data[\"componentTypes\"])\n this.componentTypes!.push(item);\n }\n this.isDoubleDimmer = _data[\"isDoubleDimmer\"];\n this.canHandleDoubleDimmer = _data[\"canHandleDoubleDimmer\"];\n this.problemType = _data[\"problemType\"];\n (this).isActuatorDevice = _data[\"isActuatorDevice\"];\n (this).isCommandDevice = _data[\"isCommandDevice\"];\n (this).isThermostatDevice = _data[\"isThermostatDevice\"];\n (this).isThermoProbeDevice = _data[\"isThermoProbeDevice\"];\n (this).isAssigned = _data[\"isAssigned\"];\n (this).isAssignedCommand = _data[\"isAssignedCommand\"];\n (this).isAssignedActuator = _data[\"isAssignedActuator\"];\n (this).isAssignedActuatorAndCommand = _data[\"isAssignedActuatorAndCommand\"];\n this.selectedComponentType = _data[\"selectedComponentType\"];\n this.settingsVisibility = _data[\"settingsVisibility\"] ? DeviceSettingsVisibilityDTO.fromJS(_data[\"settingsVisibility\"]) : undefined;\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.hasRefresherFeedback = _data[\"hasRefresherFeedback\"];\n this.fwVersion = _data[\"fwVersion\"];\n if (_data[\"deviceConfiguration\"]) {\n this.deviceConfiguration = {} as any;\n for (let key in _data[\"deviceConfiguration\"]) {\n if (_data[\"deviceConfiguration\"].hasOwnProperty(key))\n (this.deviceConfiguration)![key] = _data[\"deviceConfiguration\"][key];\n }\n }\n if (Array.isArray(_data[\"defaultSettings\"])) {\n this.defaultSettings = [] as any;\n for (let item of _data[\"defaultSettings\"])\n this.defaultSettings!.push(DefaultDevicesSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): DeviceDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"uid\"] = this.uid;\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"model\"] = this.model;\n data[\"modelObject\"] = this.modelObject;\n data[\"isManaged\"] = this.isManaged;\n data[\"isShutterWithPosition\"] = this.isShutterWithPosition;\n data[\"canHandlePreset\"] = this.canHandlePreset;\n data[\"isAnomaly\"] = this.isAnomaly;\n data[\"isBlocking\"] = this.isBlocking;\n data[\"isIgnored\"] = this.isIgnored;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"functionType\"] = this.functionType;\n data[\"systemType\"] = this.systemType;\n if (Array.isArray(this.componentTypes)) {\n data[\"componentTypes\"] = [];\n for (let item of this.componentTypes)\n data[\"componentTypes\"].push(item);\n }\n data[\"isDoubleDimmer\"] = this.isDoubleDimmer;\n data[\"canHandleDoubleDimmer\"] = this.canHandleDoubleDimmer;\n data[\"problemType\"] = this.problemType;\n data[\"isActuatorDevice\"] = this.isActuatorDevice;\n data[\"isCommandDevice\"] = this.isCommandDevice;\n data[\"isThermostatDevice\"] = this.isThermostatDevice;\n data[\"isThermoProbeDevice\"] = this.isThermoProbeDevice;\n data[\"isAssigned\"] = this.isAssigned;\n data[\"isAssignedCommand\"] = this.isAssignedCommand;\n data[\"isAssignedActuator\"] = this.isAssignedActuator;\n data[\"isAssignedActuatorAndCommand\"] = this.isAssignedActuatorAndCommand;\n data[\"selectedComponentType\"] = this.selectedComponentType;\n data[\"settingsVisibility\"] = this.settingsVisibility ? this.settingsVisibility.toJSON() : undefined;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"hasRefresherFeedback\"] = this.hasRefresherFeedback;\n data[\"fwVersion\"] = this.fwVersion;\n if (this.deviceConfiguration) {\n data[\"deviceConfiguration\"] = {};\n for (let key in this.deviceConfiguration) {\n if (this.deviceConfiguration.hasOwnProperty(key))\n (data[\"deviceConfiguration\"])[key] = this.deviceConfiguration[key];\n }\n }\n if (Array.isArray(this.defaultSettings)) {\n data[\"defaultSettings\"] = [];\n for (let item of this.defaultSettings)\n data[\"defaultSettings\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IDeviceDTO {\n uid?: string | undefined;\n id?: string | undefined;\n name?: string | undefined;\n model?: string | undefined;\n modelObject?: string | undefined;\n isManaged?: boolean;\n isShutterWithPosition?: boolean;\n canHandlePreset?: boolean;\n isAnomaly?: boolean;\n isBlocking?: boolean;\n isIgnored?: boolean;\n slots?: Slot[] | undefined;\n functionType?: FunctionType;\n systemType?: SystemType;\n componentTypes?: ComponentType[] | undefined;\n isDoubleDimmer?: boolean;\n canHandleDoubleDimmer?: boolean;\n problemType?: ProblemType;\n isActuatorDevice?: boolean;\n isCommandDevice?: boolean;\n isThermostatDevice?: boolean;\n isThermoProbeDevice?: boolean;\n isAssigned?: boolean;\n isAssignedCommand?: boolean;\n isAssignedActuator?: boolean;\n isAssignedActuatorAndCommand?: boolean;\n selectedComponentType?: ComponentType;\n settingsVisibility?: DeviceSettingsVisibilityDTO;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n deviceIconsVisibility?: DeviceIconsVisibility;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n hasRefresherFeedback?: boolean;\n fwVersion?: string | undefined;\n deviceConfiguration?: { [key: string]: string; } | undefined;\n defaultSettings?: DefaultDevicesSettingsDTO[] | undefined;\n}\n\n/** 0 = None 1 = AtTouch 2 = Always */\nexport enum DeviceIconsVisibility {\n None = 0,\n AtTouch = 1,\n Always = 2,\n}\n\n/** 0 = On 1 = OnDuringUpdate 2 = Off */\nexport enum DeviceLedModality {\n On = 0,\n OnDuringUpdate = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Min 2 = Med 3 = Max */\nexport enum DeviceProximity {\n None = 0,\n Min = 1,\n Med = 2,\n Max = 3,\n}\n\nexport class DeviceSettingsVisibilityDTO implements IDeviceSettingsVisibilityDTO {\n hasSettings?: boolean;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntensity?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n\n constructor(data?: IDeviceSettingsVisibilityDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasSettings = _data[\"hasSettings\"];\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntensity = _data[\"hasLedIntensity\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n }\n }\n\n static fromJS(data: any): DeviceSettingsVisibilityDTO {\n data = typeof data === 'object' ? data : {};\n let result = new DeviceSettingsVisibilityDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasSettings\"] = this.hasSettings;\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntensity\"] = this.hasLedIntensity;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n return data; \n }\n}\n\nexport interface IDeviceSettingsVisibilityDTO {\n hasSettings?: boolean;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntensity?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n}\n\nexport class DimmerDaliActuatorSettings extends ActuatorSettings implements IDimmerDaliActuatorSettings {\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n hasPUL?: boolean;\n loadDaliTypes?: BitmaskDaliLoadTypes[] | undefined;\n\n constructor(data?: IDimmerDaliActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.loadType = _data[\"loadType\"];\n this.hasPUL = _data[\"hasPUL\"];\n if (Array.isArray(_data[\"loadDaliTypes\"])) {\n this.loadDaliTypes = [] as any;\n for (let item of _data[\"loadDaliTypes\"])\n this.loadDaliTypes!.push(item);\n }\n }\n }\n\n static fromJS(data: any): DimmerDaliActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new DimmerDaliActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"loadType\"] = this.loadType;\n data[\"hasPUL\"] = this.hasPUL;\n if (Array.isArray(this.loadDaliTypes)) {\n data[\"loadDaliTypes\"] = [];\n for (let item of this.loadDaliTypes)\n data[\"loadDaliTypes\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IDimmerDaliActuatorSettings extends IActuatorSettings {\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n loadType?: LightsLoadTypes;\n hasPUL?: boolean;\n loadDaliTypes?: BitmaskDaliLoadTypes[] | undefined;\n}\n\n/** 0 = None 1 = On 2 = Off 3 = Dimmer */\nexport enum DimmerStatus {\n None = 0,\n On = 1,\n Off = 2,\n Dimmer = 3,\n}\n\n/** 0 = None 1 = Any 2 = WhiteTemperature 3 = ColorTemperature */\nexport enum DimmerWorkingMode {\n None = 0,\n Any = 1,\n WhiteTemperature = 2,\n ColorTemperature = 3,\n}\n\nexport class EMailAction extends Action implements IEMailAction {\n\n constructor(data?: IEMailAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n }\n\n static fromJS(data: any): EMailAction {\n data = typeof data === 'object' ? data : {};\n let result = new EMailAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IEMailAction extends IAction {\n}\n\n/** 0 = None 1 = Socket 2 = Light 3 = Kitchenappliances 4 = Shutter 5 = Heating 6 = Boiler 7 = Airconditioner 8 = Other 9 = Fridge 10 = Oven 11 = Washingmachine 12 = Dryer 13 = Dishwasher 14 = Multimedia 15 = Internetbox */\nexport enum EnergyMeterAndLoadControlType {\n None = 0,\n Socket = 1,\n Light = 2,\n Kitchenappliances = 3,\n Shutter = 4,\n Heating = 5,\n Boiler = 6,\n Airconditioner = 7,\n Other = 8,\n Fridge = 9,\n Oven = 10,\n Washingmachine = 11,\n Dryer = 12,\n Dishwasher = 13,\n Multimedia = 14,\n Internetbox = 15,\n}\n\n/** 0 = ColoredLight 1 = Xmeter 2 = Player 3 = AlarmCentralUnit 4 = AlarmSensor 5 = DimmerDmx */\nexport enum ExtComponentType {\n ColoredLight = 0,\n Xmeter = 1,\n Player = 2,\n AlarmCentralUnit = 3,\n AlarmSensor = 4,\n DimmerDmx = 5,\n}\n\n/** 0 = Bticino 1 = Vantage */\nexport enum ExternalSensorType {\n Bticino = 0,\n Vantage = 1,\n}\n\n/** 0 = All 1 = Thermo 2 = Automation 3 = Energy 4 = Security 5 = Integration 6 = AllAndGateway 7 = OnlyGateway 8 = Nd */\nexport enum FunctionType {\n All = 0,\n Thermo = 1,\n Automation = 2,\n Energy = 3,\n Security = 4,\n Integration = 5,\n AllAndGateway = 6,\n OnlyGateway = 7,\n Nd = 8,\n}\n\nexport class GeneralCommandsAndGroupsAction extends Action implements IGeneralCommandsAndGroupsAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n\n constructor(data?: IGeneralCommandsAndGroupsAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.sceneLightState = _data[\"sceneLightState\"];\n this.sceneShutterState = _data[\"sceneShutterState\"];\n this.sceneBlindState = _data[\"sceneBlindState\"];\n this.sceneSocketState = _data[\"sceneSocketState\"];\n }\n }\n\n static fromJS(data: any): GeneralCommandsAndGroupsAction {\n data = typeof data === 'object' ? data : {};\n let result = new GeneralCommandsAndGroupsAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"sceneLightState\"] = this.sceneLightState;\n data[\"sceneShutterState\"] = this.sceneShutterState;\n data[\"sceneBlindState\"] = this.sceneBlindState;\n data[\"sceneSocketState\"] = this.sceneSocketState;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IGeneralCommandsAndGroupsAction extends IAction {\n linkableObjectId?: string | undefined;\n sceneLightState?: SceneLightState;\n sceneShutterState?: SceneShutterState;\n sceneBlindState?: SceneBlindState;\n sceneSocketState?: SceneSocketState;\n}\n\n/** 0 = None 1 = OnOff 2 = Dimmer */\nexport enum LightType {\n None = 0,\n OnOff = 1,\n Dimmer = 2,\n}\n\nexport class LightsActuatorItemSettingsDTO implements ILightsActuatorItemSettingsDTO {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelSelectedPickerValue?: SimpleIntPickerValue;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n isGroupZeroCrossingVisible?: boolean;\n isZeroCrossing1EnabledFollow2?: boolean;\n isZeroCrossing1DisabledFollow2?: boolean;\n isZeroCrossing2EnabledFollow1?: boolean;\n isZeroCrossing2DisabledFollow1?: boolean;\n isGroupRelayStatusAfterResetVisible?: boolean;\n isGroupRestoreStatusAfterResetVisible?: boolean;\n isGroupMinimumRegulationLevelVisible?: boolean;\n isGroupLoadTypeVisible?: boolean;\n hasLoadTypesForGroup7?: boolean;\n hasLoadTypesForGroup9?: boolean;\n isGroupVoltageVisible?: boolean;\n isGroupPULVisible?: boolean;\n saveTo?: number[] | undefined;\n minimumRegulationLevelPickerValues?: SimpleIntPickerValue[] | undefined;\n isGroupMinimumRegulationLevelToggleVisible?: boolean;\n isZeroCrossingWarningVisible?: boolean;\n\n constructor(data?: ILightsActuatorItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n this.relayStatusAfterReset = _data[\"relayStatusAfterReset\"];\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.minimumRegulationLevelSelectedPickerValue = _data[\"minimumRegulationLevelSelectedPickerValue\"] ? SimpleIntPickerValue.fromJS(_data[\"minimumRegulationLevelSelectedPickerValue\"]) : undefined;\n this.loadType = _data[\"loadType\"];\n this.voltageType = _data[\"voltageType\"];\n this.hasPUL = _data[\"hasPUL\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.isGroupZeroCrossingVisible = _data[\"isGroupZeroCrossingVisible\"];\n this.isZeroCrossing1EnabledFollow2 = _data[\"isZeroCrossing1EnabledFollow2\"];\n this.isZeroCrossing1DisabledFollow2 = _data[\"isZeroCrossing1DisabledFollow2\"];\n this.isZeroCrossing2EnabledFollow1 = _data[\"isZeroCrossing2EnabledFollow1\"];\n this.isZeroCrossing2DisabledFollow1 = _data[\"isZeroCrossing2DisabledFollow1\"];\n this.isGroupRelayStatusAfterResetVisible = _data[\"isGroupRelayStatusAfterResetVisible\"];\n this.isGroupRestoreStatusAfterResetVisible = _data[\"isGroupRestoreStatusAfterResetVisible\"];\n this.isGroupMinimumRegulationLevelVisible = _data[\"isGroupMinimumRegulationLevelVisible\"];\n this.isGroupLoadTypeVisible = _data[\"isGroupLoadTypeVisible\"];\n this.hasLoadTypesForGroup7 = _data[\"hasLoadTypesForGroup7\"];\n this.hasLoadTypesForGroup9 = _data[\"hasLoadTypesForGroup9\"];\n this.isGroupVoltageVisible = _data[\"isGroupVoltageVisible\"];\n this.isGroupPULVisible = _data[\"isGroupPULVisible\"];\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n if (Array.isArray(_data[\"minimumRegulationLevelPickerValues\"])) {\n this.minimumRegulationLevelPickerValues = [] as any;\n for (let item of _data[\"minimumRegulationLevelPickerValues\"])\n this.minimumRegulationLevelPickerValues!.push(SimpleIntPickerValue.fromJS(item));\n }\n this.isGroupMinimumRegulationLevelToggleVisible = _data[\"isGroupMinimumRegulationLevelToggleVisible\"];\n this.isZeroCrossingWarningVisible = _data[\"isZeroCrossingWarningVisible\"];\n }\n }\n\n static fromJS(data: any): LightsActuatorItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n data[\"relayStatusAfterReset\"] = this.relayStatusAfterReset;\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"minimumRegulationLevelSelectedPickerValue\"] = this.minimumRegulationLevelSelectedPickerValue ? this.minimumRegulationLevelSelectedPickerValue.toJSON() : undefined;\n data[\"loadType\"] = this.loadType;\n data[\"voltageType\"] = this.voltageType;\n data[\"hasPUL\"] = this.hasPUL;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"isGroupZeroCrossingVisible\"] = this.isGroupZeroCrossingVisible;\n data[\"isZeroCrossing1EnabledFollow2\"] = this.isZeroCrossing1EnabledFollow2;\n data[\"isZeroCrossing1DisabledFollow2\"] = this.isZeroCrossing1DisabledFollow2;\n data[\"isZeroCrossing2EnabledFollow1\"] = this.isZeroCrossing2EnabledFollow1;\n data[\"isZeroCrossing2DisabledFollow1\"] = this.isZeroCrossing2DisabledFollow1;\n data[\"isGroupRelayStatusAfterResetVisible\"] = this.isGroupRelayStatusAfterResetVisible;\n data[\"isGroupRestoreStatusAfterResetVisible\"] = this.isGroupRestoreStatusAfterResetVisible;\n data[\"isGroupMinimumRegulationLevelVisible\"] = this.isGroupMinimumRegulationLevelVisible;\n data[\"isGroupLoadTypeVisible\"] = this.isGroupLoadTypeVisible;\n data[\"hasLoadTypesForGroup7\"] = this.hasLoadTypesForGroup7;\n data[\"hasLoadTypesForGroup9\"] = this.hasLoadTypesForGroup9;\n data[\"isGroupVoltageVisible\"] = this.isGroupVoltageVisible;\n data[\"isGroupPULVisible\"] = this.isGroupPULVisible;\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n if (Array.isArray(this.minimumRegulationLevelPickerValues)) {\n data[\"minimumRegulationLevelPickerValues\"] = [];\n for (let item of this.minimumRegulationLevelPickerValues)\n data[\"minimumRegulationLevelPickerValues\"].push(item.toJSON());\n }\n data[\"isGroupMinimumRegulationLevelToggleVisible\"] = this.isGroupMinimumRegulationLevelToggleVisible;\n data[\"isZeroCrossingWarningVisible\"] = this.isZeroCrossingWarningVisible;\n return data; \n }\n}\n\nexport interface ILightsActuatorItemSettingsDTO {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelSelectedPickerValue?: SimpleIntPickerValue;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n isGroupZeroCrossingVisible?: boolean;\n isZeroCrossing1EnabledFollow2?: boolean;\n isZeroCrossing1DisabledFollow2?: boolean;\n isZeroCrossing2EnabledFollow1?: boolean;\n isZeroCrossing2DisabledFollow1?: boolean;\n isGroupRelayStatusAfterResetVisible?: boolean;\n isGroupRestoreStatusAfterResetVisible?: boolean;\n isGroupMinimumRegulationLevelVisible?: boolean;\n isGroupLoadTypeVisible?: boolean;\n hasLoadTypesForGroup7?: boolean;\n hasLoadTypesForGroup9?: boolean;\n isGroupVoltageVisible?: boolean;\n isGroupPULVisible?: boolean;\n saveTo?: number[] | undefined;\n minimumRegulationLevelPickerValues?: SimpleIntPickerValue[] | undefined;\n isGroupMinimumRegulationLevelToggleVisible?: boolean;\n isZeroCrossingWarningVisible?: boolean;\n}\n\nexport class LightsActuatorSettings extends ActuatorSettings implements ILightsActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelValueAdvanced?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n\n constructor(data?: ILightsActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n this.relayStatusAfterReset = _data[\"relayStatusAfterReset\"];\n this.isRestoreStateAfterResetEnabled = _data[\"isRestoreStateAfterResetEnabled\"];\n this.isMinimumregulationLevelEnabled = _data[\"isMinimumregulationLevelEnabled\"];\n this.minimumRegulationLevelValue = _data[\"minimumRegulationLevelValue\"];\n this.minimumRegulationLevelValueAdvanced = _data[\"minimumRegulationLevelValueAdvanced\"];\n this.loadType = _data[\"loadType\"];\n this.voltageType = _data[\"voltageType\"];\n this.hasPUL = _data[\"hasPUL\"];\n }\n }\n\n static fromJS(data: any): LightsActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n data[\"relayStatusAfterReset\"] = this.relayStatusAfterReset;\n data[\"isRestoreStateAfterResetEnabled\"] = this.isRestoreStateAfterResetEnabled;\n data[\"isMinimumregulationLevelEnabled\"] = this.isMinimumregulationLevelEnabled;\n data[\"minimumRegulationLevelValue\"] = this.minimumRegulationLevelValue;\n data[\"minimumRegulationLevelValueAdvanced\"] = this.minimumRegulationLevelValueAdvanced;\n data[\"loadType\"] = this.loadType;\n data[\"voltageType\"] = this.voltageType;\n data[\"hasPUL\"] = this.hasPUL;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILightsActuatorSettings extends IActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n relayStatusAfterReset?: RelayStatusAfterResetOptions;\n isRestoreStateAfterResetEnabled?: boolean;\n isMinimumregulationLevelEnabled?: boolean;\n minimumRegulationLevelValue?: number;\n minimumRegulationLevelValueAdvanced?: number;\n loadType?: LightsLoadTypes;\n voltageType?: LightsVoltageOptions;\n hasPUL?: boolean;\n}\n\nexport class LightsActuatorSettingsObjectDTO implements ILightsActuatorSettingsObjectDTO {\n slots?: LightsActuatorItemSettingsDTO[] | undefined;\n\n constructor(data?: ILightsActuatorSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LightsActuatorItemSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LightsActuatorSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsActuatorSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILightsActuatorSettingsObjectDTO {\n slots?: LightsActuatorItemSettingsDTO[] | undefined;\n}\n\nexport class LightsCommandItemSettingsDTO implements ILightsCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n timedDelayPickerValues?: DelayValue[] | undefined;\n lightsOnOffMode?: LightsOnOffMode;\n minimumRegulationLevel?: number;\n timedDelayPickerSelectedValue?: DelayValue;\n isTimedDelayVisible?: boolean;\n defaultSettings?: LigthsCommandSettings;\n currentSettings?: LigthsCommandSettings;\n isOptionOnOffVisible?: boolean;\n isOptionOffVisible?: boolean;\n isOptionOnVisible?: boolean;\n isOptionOnRegulationVisible?: boolean;\n isOptionToggleVisible?: boolean;\n isOptionToggleOnOffVisible?: boolean;\n isOptionButtonVisible?: boolean;\n isOptionTimedVisible?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n availableDelayValues?: DelayValue[] | undefined;\n isContactTypeVisibile?: boolean;\n indexes?: number[] | undefined;\n conctactType?: ConctactType;\n isConctactTypeVisibile?: boolean;\n\n constructor(data?: ILightsCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n if (Array.isArray(_data[\"timedDelayPickerValues\"])) {\n this.timedDelayPickerValues = [] as any;\n for (let item of _data[\"timedDelayPickerValues\"])\n this.timedDelayPickerValues!.push(DelayValue.fromJS(item));\n }\n this.lightsOnOffMode = _data[\"lightsOnOffMode\"];\n this.minimumRegulationLevel = _data[\"minimumRegulationLevel\"];\n this.timedDelayPickerSelectedValue = _data[\"timedDelayPickerSelectedValue\"] ? DelayValue.fromJS(_data[\"timedDelayPickerSelectedValue\"]) : undefined;\n this.isTimedDelayVisible = _data[\"isTimedDelayVisible\"];\n this.defaultSettings = _data[\"defaultSettings\"] ? LigthsCommandSettings.fromJS(_data[\"defaultSettings\"]) : undefined;\n this.currentSettings = _data[\"currentSettings\"] ? LigthsCommandSettings.fromJS(_data[\"currentSettings\"]) : undefined;\n this.isOptionOnOffVisible = _data[\"isOptionOnOffVisible\"];\n this.isOptionOffVisible = _data[\"isOptionOffVisible\"];\n this.isOptionOnVisible = _data[\"isOptionOnVisible\"];\n this.isOptionOnRegulationVisible = _data[\"isOptionOnRegulationVisible\"];\n this.isOptionToggleVisible = _data[\"isOptionToggleVisible\"];\n this.isOptionToggleOnOffVisible = _data[\"isOptionToggleOnOffVisible\"];\n this.isOptionButtonVisible = _data[\"isOptionButtonVisible\"];\n this.isOptionTimedVisible = _data[\"isOptionTimedVisible\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"availableDelayValues\"])) {\n this.availableDelayValues = [] as any;\n for (let item of _data[\"availableDelayValues\"])\n this.availableDelayValues!.push(DelayValue.fromJS(item));\n }\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.conctactType = _data[\"conctactType\"];\n this.isConctactTypeVisibile = _data[\"isConctactTypeVisibile\"];\n }\n }\n\n static fromJS(data: any): LightsCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n if (Array.isArray(this.timedDelayPickerValues)) {\n data[\"timedDelayPickerValues\"] = [];\n for (let item of this.timedDelayPickerValues)\n data[\"timedDelayPickerValues\"].push(item.toJSON());\n }\n data[\"lightsOnOffMode\"] = this.lightsOnOffMode;\n data[\"minimumRegulationLevel\"] = this.minimumRegulationLevel;\n data[\"timedDelayPickerSelectedValue\"] = this.timedDelayPickerSelectedValue ? this.timedDelayPickerSelectedValue.toJSON() : undefined;\n data[\"isTimedDelayVisible\"] = this.isTimedDelayVisible;\n data[\"defaultSettings\"] = this.defaultSettings ? this.defaultSettings.toJSON() : undefined;\n data[\"currentSettings\"] = this.currentSettings ? this.currentSettings.toJSON() : undefined;\n data[\"isOptionOnOffVisible\"] = this.isOptionOnOffVisible;\n data[\"isOptionOffVisible\"] = this.isOptionOffVisible;\n data[\"isOptionOnVisible\"] = this.isOptionOnVisible;\n data[\"isOptionOnRegulationVisible\"] = this.isOptionOnRegulationVisible;\n data[\"isOptionToggleVisible\"] = this.isOptionToggleVisible;\n data[\"isOptionToggleOnOffVisible\"] = this.isOptionToggleOnOffVisible;\n data[\"isOptionButtonVisible\"] = this.isOptionButtonVisible;\n data[\"isOptionTimedVisible\"] = this.isOptionTimedVisible;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.availableDelayValues)) {\n data[\"availableDelayValues\"] = [];\n for (let item of this.availableDelayValues)\n data[\"availableDelayValues\"].push(item.toJSON());\n }\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"conctactType\"] = this.conctactType;\n data[\"isConctactTypeVisibile\"] = this.isConctactTypeVisibile;\n return data; \n }\n}\n\nexport interface ILightsCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n timedDelayPickerValues?: DelayValue[] | undefined;\n lightsOnOffMode?: LightsOnOffMode;\n minimumRegulationLevel?: number;\n timedDelayPickerSelectedValue?: DelayValue;\n isTimedDelayVisible?: boolean;\n defaultSettings?: LigthsCommandSettings;\n currentSettings?: LigthsCommandSettings;\n isOptionOnOffVisible?: boolean;\n isOptionOffVisible?: boolean;\n isOptionOnVisible?: boolean;\n isOptionOnRegulationVisible?: boolean;\n isOptionToggleVisible?: boolean;\n isOptionToggleOnOffVisible?: boolean;\n isOptionButtonVisible?: boolean;\n isOptionTimedVisible?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n availableDelayValues?: DelayValue[] | undefined;\n isContactTypeVisibile?: boolean;\n indexes?: number[] | undefined;\n conctactType?: ConctactType;\n isConctactTypeVisibile?: boolean;\n}\n\nexport class LightsCommandSettingsObjectDTO implements ILightsCommandSettingsObjectDTO {\n slots?: LightsCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n readonly disabledModules?: boolean;\n\n constructor(data?: ILightsCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LightsCommandItemSettingsDTO.fromJS(item));\n }\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n (this).disabledModules = _data[\"disabledModules\"];\n }\n }\n\n static fromJS(data: any): LightsCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LightsCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"disabledModules\"] = this.disabledModules;\n return data; \n }\n}\n\nexport interface ILightsCommandSettingsObjectDTO {\n slots?: LightsCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n disabledModules?: boolean;\n}\n\n/** 0 = Fluorescent 1 = Led 2 = Halogen 3 = LedTrailingEdgeOrElectronicTransformer 4 = LedLeadingEdge 5 = CFLTrailingEdge 6 = CFLLeadingEdge 7 = DaliStandard */\nexport enum LightsLoadTypes {\n Fluorescent = 0,\n Led = 1,\n Halogen = 2,\n LedTrailingEdgeOrElectronicTransformer = 3,\n LedLeadingEdge = 4,\n CFLTrailingEdge = 5,\n CFLLeadingEdge = 6,\n DaliStandard = 7,\n}\n\n/** 0 = Off 1 = OnOffRegulation 2 = Toggle 3 = Button 4 = Timed 5 = On 6 = OnRegulation 7 = ToggleOnOff 8 = CustomizedOn 9 = CustomizedOff 10 = CustomizedOnOff 11 = CustomizedOnOffRegulation 12 = CustomizedToggle 13 = CustomizedToggleRegulation 14 = CustomizedOnRegulation 15 = CustomizedOffRegulation */\nexport enum LightsOnOffMode {\n Off = 0,\n OnOffRegulation = 1,\n Toggle = 2,\n Button = 3,\n Timed = 4,\n On = 5,\n OnRegulation = 6,\n ToggleOnOff = 7,\n CustomizedOn = 8,\n CustomizedOff = 9,\n CustomizedOnOff = 10,\n CustomizedOnOffRegulation = 11,\n CustomizedToggle = 12,\n CustomizedToggleRegulation = 13,\n CustomizedOnRegulation = 14,\n CustomizedOffRegulation = 15,\n}\n\n/** 0 = AutoOnOff 1 = ManualOnAutoOff */\nexport enum LightsSensorOperatingMode {\n AutoOnOff = 0,\n ManualOnAutoOff = 1,\n}\n\n/** 0 = Low 1 = Medium 2 = High 3 = Maximum */\nexport enum LightsSensorSensitivity {\n Low = 0,\n Medium = 1,\n High = 2,\n Maximum = 3,\n}\n\n/** 0 = V_0_10 1 = V_1_10 */\nexport enum LightsVoltageOptions {\n V_0_10 = 0,\n V_1_10 = 1,\n}\n\nexport class LigthsCommandSettings extends CommandSettings implements ILigthsCommandSettings {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n typeofContact?: ConctactType;\n powerON?: number;\n fadeIn?: number;\n fadeOut?: number;\n dimmingSpeed?: number;\n\n constructor(data?: ILigthsCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.lightsOnOffMode = _data[\"lightsOnOffMode\"];\n this.lightsOnOffTimedDelay = _data[\"lightsOnOffTimedDelay\"];\n this.minimumRegulationLevel = _data[\"minimumRegulationLevel\"];\n this.typeofContact = _data[\"typeofContact\"];\n this.powerON = _data[\"powerON\"];\n this.fadeIn = _data[\"fadeIn\"];\n this.fadeOut = _data[\"fadeOut\"];\n this.dimmingSpeed = _data[\"dimmingSpeed\"];\n }\n }\n\n static fromJS(data: any): LigthsCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LigthsCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"lightsOnOffMode\"] = this.lightsOnOffMode;\n data[\"lightsOnOffTimedDelay\"] = this.lightsOnOffTimedDelay;\n data[\"minimumRegulationLevel\"] = this.minimumRegulationLevel;\n data[\"typeofContact\"] = this.typeofContact;\n data[\"powerON\"] = this.powerON;\n data[\"fadeIn\"] = this.fadeIn;\n data[\"fadeOut\"] = this.fadeOut;\n data[\"dimmingSpeed\"] = this.dimmingSpeed;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILigthsCommandSettings extends ICommandSettings {\n lightsOnOffMode?: LightsOnOffMode;\n lightsOnOffTimedDelay?: number;\n minimumRegulationLevel?: number;\n typeofContact?: ConctactType;\n powerON?: number;\n fadeIn?: number;\n fadeOut?: number;\n dimmingSpeed?: number;\n}\n\nexport class LigthsSensorCommandSettings extends CommandSettings implements ILigthsSensorCommandSettings {\n operationgfMode?: LightsSensorOperatingMode;\n daylightSetPoint?: number;\n timingOff?: number;\n pirSensitivity?: LightsSensorSensitivity;\n usSensitivity?: LightsSensorSensitivity;\n\n constructor(data?: ILigthsSensorCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.operationgfMode = _data[\"operationgfMode\"];\n this.daylightSetPoint = _data[\"daylightSetPoint\"];\n this.timingOff = _data[\"timingOff\"];\n this.pirSensitivity = _data[\"pirSensitivity\"];\n this.usSensitivity = _data[\"usSensitivity\"];\n }\n }\n\n static fromJS(data: any): LigthsSensorCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LigthsSensorCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"operationgfMode\"] = this.operationgfMode;\n data[\"daylightSetPoint\"] = this.daylightSetPoint;\n data[\"timingOff\"] = this.timingOff;\n data[\"pirSensitivity\"] = this.pirSensitivity;\n data[\"usSensitivity\"] = this.usSensitivity;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILigthsSensorCommandSettings extends ICommandSettings {\n operationgfMode?: LightsSensorOperatingMode;\n daylightSetPoint?: number;\n timingOff?: number;\n pirSensitivity?: LightsSensorSensitivity;\n usSensitivity?: LightsSensorSensitivity;\n}\n\n/** 0 = None 1 = Partial 2 = Total */\nexport enum Line {\n None = 0,\n Partial = 1,\n Total = 2,\n}\n\n/** 0 = None 1 = Production 2 = Consumption */\nexport enum LineMisuration {\n None = 0,\n Production = 1,\n Consumption = 2,\n}\n\nexport class LockActuatorSettings extends ActuatorSettings implements ILockActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n\n constructor(data?: ILockActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n }\n }\n\n static fromJS(data: any): LockActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LockActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILockActuatorSettings extends IActuatorSettings {\n isZeroCrossingEnabled?: boolean;\n}\n\nexport class LockActuatorSettingsObjectParam implements ILockActuatorSettingsObjectParam {\n isZeroCrossingEnabled?: boolean;\n\n constructor(data?: ILockActuatorSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isZeroCrossingEnabled = _data[\"isZeroCrossingEnabled\"];\n }\n }\n\n static fromJS(data: any): LockActuatorSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new LockActuatorSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isZeroCrossingEnabled\"] = this.isZeroCrossingEnabled;\n return data; \n }\n}\n\nexport interface ILockActuatorSettingsObjectParam {\n isZeroCrossingEnabled?: boolean;\n}\n\nexport class LockCommandSettings extends CommandSettings implements ILockCommandSettings {\n commandOpeningTime?: CommandOpeningTime;\n typeofContact?: ConctactType;\n\n constructor(data?: ILockCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.typeofContact = _data[\"typeofContact\"];\n }\n }\n\n static fromJS(data: any): LockCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"typeofContact\"] = this.typeofContact;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ILockCommandSettings extends ICommandSettings {\n commandOpeningTime?: CommandOpeningTime;\n typeofContact?: ConctactType;\n}\n\nexport class LockCommandSettingsObjectDTO implements ILockCommandSettingsObjectDTO {\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n slots?: LocksCommandItemSettingsDTO[] | undefined;\n\n constructor(data?: ILockCommandSettingsObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(LocksCommandItemSettingsDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): LockCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LockCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface ILockCommandSettingsObjectDTO {\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n slots?: LocksCommandItemSettingsDTO[] | undefined;\n}\n\nexport class LocksCommandItemSettingsDTO implements ILocksCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n lightType?: LightType;\n isManagePosition?: boolean;\n isAppliedToAllSameTypeCommands?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n commandOpeningTime?: CommandOpeningTime;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n\n constructor(data?: ILocksCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.isAppliedToAllSameTypeCommands = _data[\"isAppliedToAllSameTypeCommands\"];\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n this.conctactType = _data[\"conctactType\"];\n }\n }\n\n static fromJS(data: any): LocksCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new LocksCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"isAppliedToAllSameTypeCommands\"] = this.isAppliedToAllSameTypeCommands;\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n data[\"conctactType\"] = this.conctactType;\n return data; \n }\n}\n\nexport interface ILocksCommandItemSettingsDTO {\n saveTo?: number[] | undefined;\n lightType?: LightType;\n isManagePosition?: boolean;\n isAppliedToAllSameTypeCommands?: boolean;\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n commandOpeningTime?: CommandOpeningTime;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n}\n\nexport class ObjectCondition extends Condition implements IObjectCondition {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n\n constructor(data?: IObjectCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.stateComparer = _data[\"stateComparer\"];\n this.lightState = _data[\"lightState\"];\n this.dimmerState = _data[\"dimmerState\"];\n this.dimmerPowerState = _data[\"dimmerPowerState\"];\n this.dimmerPercent = _data[\"dimmerPercent\"];\n this.workingMode = _data[\"workingMode\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.oldTemperature = _data[\"oldTemperature\"];\n this.isShutterPositionManaged = _data[\"isShutterPositionManaged\"];\n this.shutterModality = _data[\"shutterModality\"];\n this.shutterState = _data[\"shutterState\"];\n this.shutterPosition = _data[\"shutterPosition\"];\n this.blindState = _data[\"blindState\"];\n this.socketState = _data[\"socketState\"];\n this.lockState = _data[\"lockState\"];\n this.thermostatState = _data[\"thermostatState\"];\n this.thermostatModalityState = _data[\"thermostatModalityState\"];\n this.thermostatConditionState = _data[\"thermostatConditionState\"];\n this.thermostatTemperature = _data[\"thermostatTemperature\"];\n this.thermostatHumidity = _data[\"thermostatHumidity\"];\n this.towelWarmerState = _data[\"towelWarmerState\"];\n this.fancoilState = _data[\"fancoilState\"];\n this.fancoilSpeedState = _data[\"fancoilSpeedState\"];\n this.coloredLightsState = _data[\"coloredLightsState\"];\n this.coloredLightStateComparer = _data[\"coloredLightStateComparer\"];\n this.sceneColoredLightsColor = _data[\"sceneColoredLightsColor\"];\n this.playerTriggerMode = _data[\"playerTriggerMode\"];\n this.playerTriggerPowerState = _data[\"playerTriggerPowerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.energyMeterKw = _data[\"energyMeterKw\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmSensorObjectStatus = _data[\"alarmSensorObjectStatus\"];\n }\n }\n\n static fromJS(data: any): ObjectCondition {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"stateComparer\"] = this.stateComparer;\n data[\"lightState\"] = this.lightState;\n data[\"dimmerState\"] = this.dimmerState;\n data[\"dimmerPowerState\"] = this.dimmerPowerState;\n data[\"dimmerPercent\"] = this.dimmerPercent;\n data[\"workingMode\"] = this.workingMode;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"isShutterPositionManaged\"] = this.isShutterPositionManaged;\n data[\"shutterModality\"] = this.shutterModality;\n data[\"shutterState\"] = this.shutterState;\n data[\"shutterPosition\"] = this.shutterPosition;\n data[\"blindState\"] = this.blindState;\n data[\"socketState\"] = this.socketState;\n data[\"lockState\"] = this.lockState;\n data[\"thermostatState\"] = this.thermostatState;\n data[\"thermostatModalityState\"] = this.thermostatModalityState;\n data[\"thermostatConditionState\"] = this.thermostatConditionState;\n data[\"thermostatTemperature\"] = this.thermostatTemperature;\n data[\"thermostatHumidity\"] = this.thermostatHumidity;\n data[\"towelWarmerState\"] = this.towelWarmerState;\n data[\"fancoilState\"] = this.fancoilState;\n data[\"fancoilSpeedState\"] = this.fancoilSpeedState;\n data[\"coloredLightsState\"] = this.coloredLightsState;\n data[\"coloredLightStateComparer\"] = this.coloredLightStateComparer;\n data[\"sceneColoredLightsColor\"] = this.sceneColoredLightsColor;\n data[\"playerTriggerMode\"] = this.playerTriggerMode;\n data[\"playerTriggerPowerState\"] = this.playerTriggerPowerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"energyMeterKw\"] = this.energyMeterKw;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmSensorObjectStatus\"] = this.alarmSensorObjectStatus;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectCondition extends ICondition {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n}\n\n/** 0 = None 1 = NewDuplication 2 = OldDuplication */\nexport enum ObjectDuplication {\n None = 0,\n NewDuplication = 1,\n OldDuplication = 2,\n}\n\nexport class ObjectTrigger extends Trigger implements IObjectTrigger {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n\n constructor(data?: IObjectTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.linkableObjectId = _data[\"linkableObjectId\"];\n this.stateComparer = _data[\"stateComparer\"];\n this.lightState = _data[\"lightState\"];\n this.dimmerState = _data[\"dimmerState\"];\n this.dimmerPowerState = _data[\"dimmerPowerState\"];\n this.dimmerPercent = _data[\"dimmerPercent\"];\n this.workingMode = _data[\"workingMode\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.oldTemperature = _data[\"oldTemperature\"];\n this.isShutterPositionManaged = _data[\"isShutterPositionManaged\"];\n this.shutterModality = _data[\"shutterModality\"];\n this.shutterState = _data[\"shutterState\"];\n this.shutterPosition = _data[\"shutterPosition\"];\n this.blindState = _data[\"blindState\"];\n this.socketState = _data[\"socketState\"];\n this.lockState = _data[\"lockState\"];\n this.thermostatState = _data[\"thermostatState\"];\n this.thermostatModalityState = _data[\"thermostatModalityState\"];\n this.thermostatConditionState = _data[\"thermostatConditionState\"];\n this.thermostatTemperature = _data[\"thermostatTemperature\"];\n this.thermostatHumidity = _data[\"thermostatHumidity\"];\n this.towelWarmerState = _data[\"towelWarmerState\"];\n this.fancoilState = _data[\"fancoilState\"];\n this.fancoilSpeedState = _data[\"fancoilSpeedState\"];\n this.coloredLightsState = _data[\"coloredLightsState\"];\n this.coloredLightStateComparer = _data[\"coloredLightStateComparer\"];\n this.sceneColoredLightsColor = _data[\"sceneColoredLightsColor\"];\n this.playerTriggerMode = _data[\"playerTriggerMode\"];\n this.playerTriggerPowerState = _data[\"playerTriggerPowerState\"];\n this.playerVolume = _data[\"playerVolume\"];\n this.energyMeterKw = _data[\"energyMeterKw\"];\n this.alarmPartitionState = _data[\"alarmPartitionState\"];\n this.alarmSensorState = _data[\"alarmSensorState\"];\n this.alarmSensorObjectStatus = _data[\"alarmSensorObjectStatus\"];\n }\n }\n\n static fromJS(data: any): ObjectTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new ObjectTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"linkableObjectId\"] = this.linkableObjectId;\n data[\"stateComparer\"] = this.stateComparer;\n data[\"lightState\"] = this.lightState;\n data[\"dimmerState\"] = this.dimmerState;\n data[\"dimmerPowerState\"] = this.dimmerPowerState;\n data[\"dimmerPercent\"] = this.dimmerPercent;\n data[\"workingMode\"] = this.workingMode;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"oldTemperature\"] = this.oldTemperature;\n data[\"isShutterPositionManaged\"] = this.isShutterPositionManaged;\n data[\"shutterModality\"] = this.shutterModality;\n data[\"shutterState\"] = this.shutterState;\n data[\"shutterPosition\"] = this.shutterPosition;\n data[\"blindState\"] = this.blindState;\n data[\"socketState\"] = this.socketState;\n data[\"lockState\"] = this.lockState;\n data[\"thermostatState\"] = this.thermostatState;\n data[\"thermostatModalityState\"] = this.thermostatModalityState;\n data[\"thermostatConditionState\"] = this.thermostatConditionState;\n data[\"thermostatTemperature\"] = this.thermostatTemperature;\n data[\"thermostatHumidity\"] = this.thermostatHumidity;\n data[\"towelWarmerState\"] = this.towelWarmerState;\n data[\"fancoilState\"] = this.fancoilState;\n data[\"fancoilSpeedState\"] = this.fancoilSpeedState;\n data[\"coloredLightsState\"] = this.coloredLightsState;\n data[\"coloredLightStateComparer\"] = this.coloredLightStateComparer;\n data[\"sceneColoredLightsColor\"] = this.sceneColoredLightsColor;\n data[\"playerTriggerMode\"] = this.playerTriggerMode;\n data[\"playerTriggerPowerState\"] = this.playerTriggerPowerState;\n data[\"playerVolume\"] = this.playerVolume;\n data[\"energyMeterKw\"] = this.energyMeterKw;\n data[\"alarmPartitionState\"] = this.alarmPartitionState;\n data[\"alarmSensorState\"] = this.alarmSensorState;\n data[\"alarmSensorObjectStatus\"] = this.alarmSensorObjectStatus;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IObjectTrigger extends ITrigger {\n linkableObjectId?: string | undefined;\n stateComparer?: SceneStateComparer;\n lightState?: SceneLightState;\n dimmerState?: SceneDimmerState;\n dimmerPowerState?: SceneDimmerPowerState;\n dimmerPercent?: number;\n workingMode?: DimmerWorkingMode;\n selectedColor?: Color;\n oldTemperature?: number;\n isShutterPositionManaged?: boolean;\n shutterModality?: SceneShutterModality;\n shutterState?: SceneShutterState;\n shutterPosition?: number;\n blindState?: SceneBlindState;\n socketState?: SceneSocketState;\n lockState?: SceneLockState;\n thermostatState?: SceneThermostatState;\n thermostatModalityState?: SceneThermostatModalityState;\n thermostatConditionState?: SceneThermostatConditionState;\n thermostatTemperature?: number;\n thermostatHumidity?: number;\n towelWarmerState?: SceneTowelWarmerState;\n fancoilState?: SceneFancoilState;\n fancoilSpeedState?: SceneFancoilSpeedState;\n coloredLightsState?: SceneColoredLightsState;\n coloredLightStateComparer?: SceneStateComparer;\n sceneColoredLightsColor?: SceneColoredLightsColor;\n playerTriggerMode?: ScenePlayerTriggerMode;\n playerTriggerPowerState?: ScenePlayerState;\n playerVolume?: number;\n energyMeterKw?: number;\n alarmPartitionState?: AlarmPartitionState;\n alarmSensorState?: AlarmSensorStatus;\n alarmSensorObjectStatus?: AlarmSensorStatusScene;\n}\n\nexport class ParamCreateLinkModule implements IParamCreateLinkModule {\n index?: number;\n name?: string | undefined;\n value?: string | undefined;\n\n constructor(data?: IParamCreateLinkModule) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.index = _data[\"index\"];\n this.name = _data[\"name\"];\n this.value = _data[\"value\"];\n }\n }\n\n static fromJS(data: any): ParamCreateLinkModule {\n data = typeof data === 'object' ? data : {};\n let result = new ParamCreateLinkModule();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"index\"] = this.index;\n data[\"name\"] = this.name;\n data[\"value\"] = this.value;\n return data; \n }\n}\n\nexport interface IParamCreateLinkModule {\n index?: number;\n name?: string | undefined;\n value?: string | undefined;\n}\n\nexport class ParamsScenesId implements IParamsScenesId {\n id?: string | undefined;\n button?: number;\n\n constructor(data?: IParamsScenesId) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.button = _data[\"button\"];\n }\n }\n\n static fromJS(data: any): ParamsScenesId {\n data = typeof data === 'object' ? data : {};\n let result = new ParamsScenesId();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"button\"] = this.button;\n return data; \n }\n}\n\nexport interface IParamsScenesId {\n id?: string | undefined;\n button?: number;\n}\n\nexport class PlayerExtDevice extends ExtDevice implements IPlayerExtDevice {\n playerSystem?: PlayerSystem;\n readonly macAddress?: string | undefined;\n readonly name?: string | undefined;\n\n constructor(data?: IPlayerExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.playerSystem = _data[\"playerSystem\"];\n (this).macAddress = _data[\"macAddress\"];\n (this).name = _data[\"name\"];\n }\n }\n\n static fromJS(data: any): PlayerExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new PlayerExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"playerSystem\"] = this.playerSystem;\n data[\"macAddress\"] = this.macAddress;\n data[\"name\"] = this.name;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPlayerExtDevice extends IExtDevice {\n playerSystem?: PlayerSystem;\n macAddress?: string | undefined;\n name?: string | undefined;\n}\n\n/** 0 = Nuvo 1 = Sonos */\nexport enum PlayerSystem {\n Nuvo = 0,\n Sonos = 1,\n}\n\nexport class ProbeSettings implements IProbeSettings {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n\n constructor(data?: IProbeSettings) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isLedmanaged = _data[\"isLedmanaged\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n }\n }\n\n static fromJS(data: any): ProbeSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ProbeSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isLedmanaged\"] = this.isLedmanaged;\n data[\"externalSensorType\"] = this.externalSensorType;\n return data; \n }\n}\n\nexport interface IProbeSettings {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n}\n\n/** 0 = None 1 = PhisicallyConfigured 2 = DeviceRemoved 3 = DeviceUnmanage 4 = DeviceChanged */\nexport enum ProblemType {\n None = 0,\n PhisicallyConfigured = 1,\n DeviceRemoved = 2,\n DeviceUnmanage = 3,\n DeviceChanged = 4,\n}\n\nexport class PushNotificationAction extends Action implements IPushNotificationAction {\n\n constructor(data?: IPushNotificationAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n }\n\n static fromJS(data: any): PushNotificationAction {\n data = typeof data === 'object' ? data : {};\n let result = new PushNotificationAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IPushNotificationAction extends IAction {\n}\n\n/** 0 = LastStatus 1 = Opened 2 = Closed */\nexport enum RelayStatusAfterResetOptions {\n LastStatus = 0,\n Opened = 1,\n Closed = 2,\n}\n\n/** 0 = None 1 = Global 2 = Actuator */\nexport enum ResetType {\n None = 0,\n Global = 1,\n Actuator = 2,\n}\n\nexport class Room implements IRoom {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObject[] | undefined;\n\n constructor(data?: IRoom) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(RoomObject.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): Room {\n data = typeof data === 'object' ? data : {};\n let result = new Room();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoom {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObject[] | undefined;\n}\n\nexport class RoomDTO implements IRoomDTO {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObjectDTO[] | undefined;\n\n constructor(data?: IRoomDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n this.type = _data[\"type\"];\n if (Array.isArray(_data[\"roomObjects\"])) {\n this.roomObjects = [] as any;\n for (let item of _data[\"roomObjects\"])\n this.roomObjects!.push(RoomObjectDTO.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RoomDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n data[\"type\"] = this.type;\n if (Array.isArray(this.roomObjects)) {\n data[\"roomObjects\"] = [];\n for (let item of this.roomObjects)\n data[\"roomObjects\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoomDTO {\n id?: string | undefined;\n name?: string | undefined;\n type?: RoomType;\n roomObjects?: RoomObjectDTO[] | undefined;\n}\n\nexport class RoomObject extends LinkableObject implements IRoomObject {\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n commandOpeningTime?: CommandOpeningTime;\n isAppliedToAllSameTypeCommands?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermo?: ThermoActuactor[] | undefined;\n isTemperatureDisplayed?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n isInterlockSystemEnabled?: boolean;\n isSeasonModeAuto?: boolean;\n isSeasonChangeModifiable?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: Device;\n seasonChangeAutoStartWinterDate?: Date;\n seasonChangeAutoStartSummerDate?: Date;\n isThermo99Zone?: boolean;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n heatingThermalProtection?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n energyMeterAndLoadControlType?: EnergyMeterAndLoadControlType;\n isEnergyMeter?: boolean;\n toroidDirectionType?: ToroidDirection;\n lineType?: Line;\n lineMisurationType?: LineMisuration;\n isAutoCommutation?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n temperatureType?: TemperatureType;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n isInterlockingExcluded?: boolean;\n pumpsDelay?: string;\n thermoUkFanSpeed?: number;\n thermoUkFanSpeed2?: number;\n thermoUkFanSpeed3?: number;\n coloredLightType?: ColoredLightType;\n daliType?: DaliType;\n isColor?: boolean;\n isTemperatureColor?: boolean;\n\n constructor(data?: IRoomObject) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n this.systemType = _data[\"systemType\"];\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.commandOpeningTime = _data[\"commandOpeningTime\"];\n this.isAppliedToAllSameTypeCommands = _data[\"isAppliedToAllSameTypeCommands\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.actuatorModalityType = _data[\"actuatorModalityType\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n if (Array.isArray(_data[\"thermo\"])) {\n this.thermo = [] as any;\n for (let item of _data[\"thermo\"])\n this.thermo!.push(ThermoActuactor.fromJS(item));\n }\n this.isTemperatureDisplayed = _data[\"isTemperatureDisplayed\"];\n this.isWaterCycleEnabled = _data[\"isWaterCycleEnabled\"];\n this.arePumpsOpenedAutomatically = _data[\"arePumpsOpenedAutomatically\"];\n this.minutesToKeepOpen = _data[\"minutesToKeepOpen\"];\n this.openAutomaticallyDaysDelay = _data[\"openAutomaticallyDaysDelay\"];\n this.isInterlockSystemEnabled = _data[\"isInterlockSystemEnabled\"];\n this.isSeasonModeAuto = _data[\"isSeasonModeAuto\"];\n this.isSeasonChangeModifiable = _data[\"isSeasonChangeModifiable\"];\n this.seasonChangeAutoType = _data[\"seasonChangeAutoType\"];\n this.selected3477Device = _data[\"selected3477Device\"] ? Device.fromJS(_data[\"selected3477Device\"]) : undefined;\n this.seasonChangeAutoStartWinterDate = _data[\"seasonChangeAutoStartWinterDate\"] ? new Date(_data[\"seasonChangeAutoStartWinterDate\"].toString()) : undefined;\n this.seasonChangeAutoStartSummerDate = _data[\"seasonChangeAutoStartSummerDate\"] ? new Date(_data[\"seasonChangeAutoStartSummerDate\"].toString()) : undefined;\n this.isThermo99Zone = _data[\"isThermo99Zone\"];\n this.thermo99SelectedZone = _data[\"thermo99SelectedZone\"];\n this.thermo99HasFancoil = _data[\"thermo99HasFancoil\"];\n this.heatingSetpointLow = _data[\"heatingSetpointLow\"];\n this.heatingSetpointHigh = _data[\"heatingSetpointHigh\"];\n this.heatingAntifreeze = _data[\"heatingAntifreeze\"];\n this.heatingThermalProtection = _data[\"heatingThermalProtection\"];\n this.coolingSetpointLow = _data[\"coolingSetpointLow\"];\n this.coolingSetpointHigh = _data[\"coolingSetpointHigh\"];\n this.coolingThermalProtection = _data[\"coolingThermalProtection\"];\n this.energyMeterAndLoadControlType = _data[\"energyMeterAndLoadControlType\"];\n this.isEnergyMeter = _data[\"isEnergyMeter\"];\n this.toroidDirectionType = _data[\"toroidDirectionType\"];\n this.lineType = _data[\"lineType\"];\n this.lineMisurationType = _data[\"lineMisurationType\"];\n this.isAutoCommutation = _data[\"isAutoCommutation\"];\n this.delayHeatingPumps = _data[\"delayHeatingPumps\"];\n this.delayCoolingPumps = _data[\"delayCoolingPumps\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.areButtonsEnabled = _data[\"areButtonsEnabled\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isBacklightEnabled = _data[\"isBacklightEnabled\"];\n this.backlightLevel = _data[\"backlightLevel\"];\n this.isManualHeatingOverrideEnabled = _data[\"isManualHeatingOverrideEnabled\"];\n this.heatingRegulationBand = _data[\"heatingRegulationBand\"];\n this.fanSpeed2ForHeating = _data[\"fanSpeed2ForHeating\"];\n this.fanSpeed3ForHeating = _data[\"fanSpeed3ForHeating\"];\n this.valvesTimeForHeatingFanCoil = _data[\"valvesTimeForHeatingFanCoil\"];\n this.isManualCoolingOverrideEnabled = _data[\"isManualCoolingOverrideEnabled\"];\n this.coolingRegulationBand = _data[\"coolingRegulationBand\"];\n this.fanSpeed2ForCooling = _data[\"fanSpeed2ForCooling\"];\n this.fanSpeed3ForCooling = _data[\"fanSpeed3ForCooling\"];\n this.valvesTimeForCoolingFanCoil = _data[\"valvesTimeForCoolingFanCoil\"];\n this.isIconAlwaysOff = _data[\"isIconAlwaysOff\"];\n this.isLocalContactNumberEnabled = _data[\"isLocalContactNumberEnabled\"];\n this.numberOfWindowsContact = _data[\"numberOfWindowsContact\"];\n this.openingContactTypeHeating = _data[\"openingContactTypeHeating\"];\n this.openingContactTempHeating = _data[\"openingContactTempHeating\"];\n this.openingContactDelayHeating = _data[\"openingContactDelayHeating\"];\n this.timeoutOpeningHeating = _data[\"timeoutOpeningHeating\"];\n this.closingContactTypeHeating = _data[\"closingContactTypeHeating\"];\n this.closingContactTempHeating = _data[\"closingContactTempHeating\"];\n this.closingContactDelayHeating = _data[\"closingContactDelayHeating\"];\n this.timeoutClosingHeating = _data[\"timeoutClosingHeating\"];\n this.openingContactTypeCooling = _data[\"openingContactTypeCooling\"];\n this.openingContactTempCooling = _data[\"openingContactTempCooling\"];\n this.openingContactDelayCooling = _data[\"openingContactDelayCooling\"];\n this.timeoutOpeningCooling = _data[\"timeoutOpeningCooling\"];\n this.closingContactTypeCooling = _data[\"closingContactTypeCooling\"];\n this.closingContactTempCooling = _data[\"closingContactTempCooling\"];\n this.closingContactDelayCooling = _data[\"closingContactDelayCooling\"];\n this.timeoutClosingCooling = _data[\"timeoutClosingCooling\"];\n this.isCoolingVentilationEnabled = _data[\"isCoolingVentilationEnabled\"];\n this.isHeatingVentilationEnabled = _data[\"isHeatingVentilationEnabled\"];\n this.timeoutCoolingVentilation = _data[\"timeoutCoolingVentilation\"];\n this.timeoutHeatingVentilation = _data[\"timeoutHeatingVentilation\"];\n this.isInterlockingExcluded = _data[\"isInterlockingExcluded\"];\n this.pumpsDelay = _data[\"pumpsDelay\"];\n this.thermoUkFanSpeed = _data[\"thermoUkFanSpeed\"];\n this.thermoUkFanSpeed2 = _data[\"thermoUkFanSpeed2\"];\n this.thermoUkFanSpeed3 = _data[\"thermoUkFanSpeed3\"];\n this.coloredLightType = _data[\"coloredLightType\"];\n this.daliType = _data[\"daliType\"];\n this.isColor = _data[\"isColor\"];\n this.isTemperatureColor = _data[\"isTemperatureColor\"];\n }\n }\n\n static fromJS(data: any): RoomObject {\n data = typeof data === 'object' ? data : {};\n let result = new RoomObject();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"systemType\"] = this.systemType;\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"commandOpeningTime\"] = this.commandOpeningTime;\n data[\"isAppliedToAllSameTypeCommands\"] = this.isAppliedToAllSameTypeCommands;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"actuatorModalityType\"] = this.actuatorModalityType;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n if (Array.isArray(this.thermo)) {\n data[\"thermo\"] = [];\n for (let item of this.thermo)\n data[\"thermo\"].push(item.toJSON());\n }\n data[\"isTemperatureDisplayed\"] = this.isTemperatureDisplayed;\n data[\"isWaterCycleEnabled\"] = this.isWaterCycleEnabled;\n data[\"arePumpsOpenedAutomatically\"] = this.arePumpsOpenedAutomatically;\n data[\"minutesToKeepOpen\"] = this.minutesToKeepOpen;\n data[\"openAutomaticallyDaysDelay\"] = this.openAutomaticallyDaysDelay;\n data[\"isInterlockSystemEnabled\"] = this.isInterlockSystemEnabled;\n data[\"isSeasonModeAuto\"] = this.isSeasonModeAuto;\n data[\"isSeasonChangeModifiable\"] = this.isSeasonChangeModifiable;\n data[\"seasonChangeAutoType\"] = this.seasonChangeAutoType;\n data[\"selected3477Device\"] = this.selected3477Device ? this.selected3477Device.toJSON() : undefined;\n data[\"seasonChangeAutoStartWinterDate\"] = this.seasonChangeAutoStartWinterDate ? this.seasonChangeAutoStartWinterDate.toISOString() : undefined;\n data[\"seasonChangeAutoStartSummerDate\"] = this.seasonChangeAutoStartSummerDate ? this.seasonChangeAutoStartSummerDate.toISOString() : undefined;\n data[\"isThermo99Zone\"] = this.isThermo99Zone;\n data[\"thermo99SelectedZone\"] = this.thermo99SelectedZone;\n data[\"thermo99HasFancoil\"] = this.thermo99HasFancoil;\n data[\"heatingSetpointLow\"] = this.heatingSetpointLow;\n data[\"heatingSetpointHigh\"] = this.heatingSetpointHigh;\n data[\"heatingAntifreeze\"] = this.heatingAntifreeze;\n data[\"heatingThermalProtection\"] = this.heatingThermalProtection;\n data[\"coolingSetpointLow\"] = this.coolingSetpointLow;\n data[\"coolingSetpointHigh\"] = this.coolingSetpointHigh;\n data[\"coolingThermalProtection\"] = this.coolingThermalProtection;\n data[\"energyMeterAndLoadControlType\"] = this.energyMeterAndLoadControlType;\n data[\"isEnergyMeter\"] = this.isEnergyMeter;\n data[\"toroidDirectionType\"] = this.toroidDirectionType;\n data[\"lineType\"] = this.lineType;\n data[\"lineMisurationType\"] = this.lineMisurationType;\n data[\"isAutoCommutation\"] = this.isAutoCommutation;\n data[\"delayHeatingPumps\"] = this.delayHeatingPumps;\n data[\"delayCoolingPumps\"] = this.delayCoolingPumps;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"areButtonsEnabled\"] = this.areButtonsEnabled;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isBacklightEnabled\"] = this.isBacklightEnabled;\n data[\"backlightLevel\"] = this.backlightLevel;\n data[\"isManualHeatingOverrideEnabled\"] = this.isManualHeatingOverrideEnabled;\n data[\"heatingRegulationBand\"] = this.heatingRegulationBand;\n data[\"fanSpeed2ForHeating\"] = this.fanSpeed2ForHeating;\n data[\"fanSpeed3ForHeating\"] = this.fanSpeed3ForHeating;\n data[\"valvesTimeForHeatingFanCoil\"] = this.valvesTimeForHeatingFanCoil;\n data[\"isManualCoolingOverrideEnabled\"] = this.isManualCoolingOverrideEnabled;\n data[\"coolingRegulationBand\"] = this.coolingRegulationBand;\n data[\"fanSpeed2ForCooling\"] = this.fanSpeed2ForCooling;\n data[\"fanSpeed3ForCooling\"] = this.fanSpeed3ForCooling;\n data[\"valvesTimeForCoolingFanCoil\"] = this.valvesTimeForCoolingFanCoil;\n data[\"isIconAlwaysOff\"] = this.isIconAlwaysOff;\n data[\"isLocalContactNumberEnabled\"] = this.isLocalContactNumberEnabled;\n data[\"numberOfWindowsContact\"] = this.numberOfWindowsContact;\n data[\"openingContactTypeHeating\"] = this.openingContactTypeHeating;\n data[\"openingContactTempHeating\"] = this.openingContactTempHeating;\n data[\"openingContactDelayHeating\"] = this.openingContactDelayHeating;\n data[\"timeoutOpeningHeating\"] = this.timeoutOpeningHeating;\n data[\"closingContactTypeHeating\"] = this.closingContactTypeHeating;\n data[\"closingContactTempHeating\"] = this.closingContactTempHeating;\n data[\"closingContactDelayHeating\"] = this.closingContactDelayHeating;\n data[\"timeoutClosingHeating\"] = this.timeoutClosingHeating;\n data[\"openingContactTypeCooling\"] = this.openingContactTypeCooling;\n data[\"openingContactTempCooling\"] = this.openingContactTempCooling;\n data[\"openingContactDelayCooling\"] = this.openingContactDelayCooling;\n data[\"timeoutOpeningCooling\"] = this.timeoutOpeningCooling;\n data[\"closingContactTypeCooling\"] = this.closingContactTypeCooling;\n data[\"closingContactTempCooling\"] = this.closingContactTempCooling;\n data[\"closingContactDelayCooling\"] = this.closingContactDelayCooling;\n data[\"timeoutClosingCooling\"] = this.timeoutClosingCooling;\n data[\"isCoolingVentilationEnabled\"] = this.isCoolingVentilationEnabled;\n data[\"isHeatingVentilationEnabled\"] = this.isHeatingVentilationEnabled;\n data[\"timeoutCoolingVentilation\"] = this.timeoutCoolingVentilation;\n data[\"timeoutHeatingVentilation\"] = this.timeoutHeatingVentilation;\n data[\"isInterlockingExcluded\"] = this.isInterlockingExcluded;\n data[\"pumpsDelay\"] = this.pumpsDelay;\n data[\"thermoUkFanSpeed\"] = this.thermoUkFanSpeed;\n data[\"thermoUkFanSpeed2\"] = this.thermoUkFanSpeed2;\n data[\"thermoUkFanSpeed3\"] = this.thermoUkFanSpeed3;\n data[\"coloredLightType\"] = this.coloredLightType;\n data[\"daliType\"] = this.daliType;\n data[\"isColor\"] = this.isColor;\n data[\"isTemperatureColor\"] = this.isTemperatureColor;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IRoomObject extends ILinkableObject {\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n commandOpeningTime?: CommandOpeningTime;\n isAppliedToAllSameTypeCommands?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n coolingSystemControlType?: SystemControlType;\n heatingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n thermo?: ThermoActuactor[] | undefined;\n isTemperatureDisplayed?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n isInterlockSystemEnabled?: boolean;\n isSeasonModeAuto?: boolean;\n isSeasonChangeModifiable?: boolean;\n seasonChangeAutoType?: SeasonChangeAutoType;\n selected3477Device?: Device;\n seasonChangeAutoStartWinterDate?: Date;\n seasonChangeAutoStartSummerDate?: Date;\n isThermo99Zone?: boolean;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n heatingThermalProtection?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n energyMeterAndLoadControlType?: EnergyMeterAndLoadControlType;\n isEnergyMeter?: boolean;\n toroidDirectionType?: ToroidDirection;\n lineType?: Line;\n lineMisurationType?: LineMisuration;\n isAutoCommutation?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n temperatureType?: TemperatureType;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n isInterlockingExcluded?: boolean;\n pumpsDelay?: string;\n thermoUkFanSpeed?: number;\n thermoUkFanSpeed2?: number;\n thermoUkFanSpeed3?: number;\n coloredLightType?: ColoredLightType;\n daliType?: DaliType;\n isColor?: boolean;\n isTemperatureColor?: boolean;\n}\n\nexport class RoomObjectDTO implements IRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n hasConfigurationToEnd?: boolean;\n extDevices?: ExtDevice[] | undefined;\n\n constructor(data?: IRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.systemType = _data[\"systemType\"];\n this.isHidden = _data[\"isHidden\"];\n this.lightType = _data[\"lightType\"];\n this.isManagePosition = _data[\"isManagePosition\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.thermo99SelectedZone = _data[\"thermo99SelectedZone\"];\n this.thermo99HasFancoil = _data[\"thermo99HasFancoil\"];\n this.hasConfigurationToEnd = _data[\"hasConfigurationToEnd\"];\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): RoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new RoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"systemType\"] = this.systemType;\n data[\"isHidden\"] = this.isHidden;\n data[\"lightType\"] = this.lightType;\n data[\"isManagePosition\"] = this.isManagePosition;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"thermo99SelectedZone\"] = this.thermo99SelectedZone;\n data[\"thermo99HasFancoil\"] = this.thermo99HasFancoil;\n data[\"hasConfigurationToEnd\"] = this.hasConfigurationToEnd;\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n systemType?: SystemType;\n isHidden?: boolean;\n lightType?: LightType;\n isManagePosition?: boolean;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n thermo99SelectedZone?: string | undefined;\n thermo99HasFancoil?: boolean;\n hasConfigurationToEnd?: boolean;\n extDevices?: ExtDevice[] | undefined;\n}\n\n/** 0 = Light 1 = Shutter 2 = Socket 3 = Lock 4 = Thermostat 5 = Fancoil 6 = TowelWarmer 7 = WirelessCommand 8 = Blind 9 = Player 10 = Xmeter 11 = Alarm 12 = ColoredLight 13 = ScheduledScenarioPlus 14 = None 15 = Contact 16 = AlarmSensor 17 = Thermostat99zones 18 = DimmerDmx 19 = DimmerDali 20 = Actuactor */\nexport enum RoomObjectType {\n Light = 0,\n Shutter = 1,\n Socket = 2,\n Lock = 3,\n Thermostat = 4,\n Fancoil = 5,\n TowelWarmer = 6,\n WirelessCommand = 7,\n Blind = 8,\n Player = 9,\n Xmeter = 10,\n Alarm = 11,\n ColoredLight = 12,\n ScheduledScenarioPlus = 13,\n None = 14,\n Contact = 15,\n AlarmSensor = 16,\n Thermostat99zones = 17,\n DimmerDmx = 18,\n DimmerDali = 19,\n Actuactor = 20,\n}\n\n/** 0 = Livingroom 1 = Bathroom 2 = Kitchen 3 = Bedroom 4 = Dining_room 5 = Toilets 6 = Lobby 7 = Corridor 8 = Garage 9 = Outdoor 10 = Home_office 11 = Stairs 12 = Electrical_cabinet 13 = Custom */\nexport enum RoomType {\n Livingroom = 0,\n Bathroom = 1,\n Kitchen = 2,\n Bedroom = 3,\n Dining_room = 4,\n Toilets = 5,\n Lobby = 6,\n Corridor = 7,\n Garage = 8,\n Outdoor = 9,\n Home_office = 10,\n Stairs = 11,\n Electrical_cabinet = 12,\n Custom = 13,\n}\n\nexport class Scene extends LinkableObject implements IScene {\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n isSceneFromServer?: boolean;\n actions?: Action[] | undefined;\n triggers?: Trigger[] | undefined;\n conditions?: Condition[] | undefined;\n room_id?: string | undefined;\n share?: boolean;\n user?: string | undefined;\n category?: string | undefined;\n preconditionSelected?: SceneThermostatModalityState;\n\n constructor(data?: IScene) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.type = _data[\"type\"];\n this.isDisabled = _data[\"isDisabled\"];\n this.isHidden = _data[\"isHidden\"];\n this.isEditable = _data[\"isEditable\"];\n this.isSceneFromServer = _data[\"isSceneFromServer\"];\n if (Array.isArray(_data[\"actions\"])) {\n this.actions = [] as any;\n for (let item of _data[\"actions\"])\n this.actions!.push(Action.fromJS(item));\n }\n if (Array.isArray(_data[\"triggers\"])) {\n this.triggers = [] as any;\n for (let item of _data[\"triggers\"])\n this.triggers!.push(Trigger.fromJS(item));\n }\n if (Array.isArray(_data[\"conditions\"])) {\n this.conditions = [] as any;\n for (let item of _data[\"conditions\"])\n this.conditions!.push(Condition.fromJS(item));\n }\n this.room_id = _data[\"room_id\"];\n this.share = _data[\"share\"];\n this.user = _data[\"user\"];\n this.category = _data[\"category\"];\n this.preconditionSelected = _data[\"preconditionSelected\"];\n }\n }\n\n static fromJS(data: any): Scene {\n data = typeof data === 'object' ? data : {};\n let result = new Scene();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"type\"] = this.type;\n data[\"isDisabled\"] = this.isDisabled;\n data[\"isHidden\"] = this.isHidden;\n data[\"isEditable\"] = this.isEditable;\n data[\"isSceneFromServer\"] = this.isSceneFromServer;\n if (Array.isArray(this.actions)) {\n data[\"actions\"] = [];\n for (let item of this.actions)\n data[\"actions\"].push(item.toJSON());\n }\n if (Array.isArray(this.triggers)) {\n data[\"triggers\"] = [];\n for (let item of this.triggers)\n data[\"triggers\"].push(item.toJSON());\n }\n if (Array.isArray(this.conditions)) {\n data[\"conditions\"] = [];\n for (let item of this.conditions)\n data[\"conditions\"].push(item.toJSON());\n }\n data[\"room_id\"] = this.room_id;\n data[\"share\"] = this.share;\n data[\"user\"] = this.user;\n data[\"category\"] = this.category;\n data[\"preconditionSelected\"] = this.preconditionSelected;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IScene extends ILinkableObject {\n type?: SceneType;\n isDisabled?: boolean;\n isHidden?: boolean;\n isEditable?: boolean;\n isSceneFromServer?: boolean;\n actions?: Action[] | undefined;\n triggers?: Trigger[] | undefined;\n conditions?: Condition[] | undefined;\n room_id?: string | undefined;\n share?: boolean;\n user?: string | undefined;\n category?: string | undefined;\n preconditionSelected?: SceneThermostatModalityState;\n}\n\n/** 0 = None 1 = Open 2 = Close */\nexport enum SceneBlindState {\n None = 0,\n Open = 1,\n Close = 2,\n}\n\n/** 0 = Blue 1 = LightPurple 2 = Magenta 3 = Fuchsia 4 = Red 5 = Orange 6 = Yellow 7 = Lime 8 = Green 9 = AcquaGreen 10 = LightBlue 11 = LightBlueSky */\nexport enum SceneColoredLightsColor {\n Blue = 0,\n LightPurple = 1,\n Magenta = 2,\n Fuchsia = 3,\n Red = 4,\n Orange = 5,\n Yellow = 6,\n Lime = 7,\n Green = 8,\n AcquaGreen = 9,\n LightBlue = 10,\n LightBlueSky = 11,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneColoredLightsState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneDimmerPowerState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Dimmer 2 = Power */\nexport enum SceneDimmerState {\n None = 0,\n Dimmer = 1,\n Power = 2,\n}\n\n/** 0 = None 1 = One 2 = Two 3 = Three */\nexport enum SceneFancoilSpeedState {\n None = 0,\n One = 1,\n Two = 2,\n Three = 3,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneFancoilState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneLightState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = On */\nexport enum SceneLockState {\n None = 0,\n On = 1,\n}\n\n/** 0 = None 1 = Stop 2 = Play 3 = Pause */\nexport enum ScenePlayerState {\n None = 0,\n Stop = 1,\n Play = 2,\n Pause = 3,\n}\n\n/** 0 = None 1 = Power 2 = Volume */\nexport enum ScenePlayerTriggerMode {\n None = 0,\n Power = 1,\n Volume = 2,\n}\n\n/** 0 = None 1 = Movement 2 = Position */\nexport enum SceneShutterModality {\n None = 0,\n Movement = 1,\n Position = 2,\n}\n\n/** 0 = None 1 = Up 2 = Stop 3 = Down */\nexport enum SceneShutterState {\n None = 0,\n Up = 1,\n Stop = 2,\n Down = 3,\n}\n\n/** 0 = None 1 = On 2 = Off */\nexport enum SceneSocketState {\n None = 0,\n On = 1,\n Off = 2,\n}\n\n/** 0 = None 1 = Equal 2 = Different 3 = Higher 4 = Lower 5 = Any */\nexport enum SceneStateComparer {\n None = 0,\n Equal = 1,\n Different = 2,\n Higher = 3,\n Lower = 4,\n Any = 5,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneThermostatConditionState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\n/** 0 = None 1 = Heating 2 = Cooling 3 = Auto 5 = Off */\nexport enum SceneThermostatModalityState {\n None = 0,\n Heating = 1,\n Cooling = 2,\n Auto = 3,\n Off = 5,\n}\n\n/** 0 = None 1 = Modality 2 = Temperature 3 = DesiredTemperature 4 = Condition 5 = Humidity */\nexport enum SceneThermostatState {\n None = 0,\n Modality = 1,\n Temperature = 2,\n DesiredTemperature = 3,\n Condition = 4,\n Humidity = 5,\n}\n\n/** 0 = Off 1 = On 2 = None */\nexport enum SceneTowelWarmerState {\n Off = 0,\n On = 1,\n None = 2,\n}\n\n/** 0 = Wake_Up 1 = BedTime 2 = Home 3 = Away 4 = Custom */\nexport enum SceneType {\n Wake_Up = 0,\n BedTime = 1,\n Home = 2,\n Away = 3,\n Custom = 4,\n}\n\n/** 0 = None 1 = Sunrise 2 = Sunset */\nexport enum SceneWeatherCrepuscular {\n None = 0,\n Sunrise = 1,\n Sunset = 2,\n}\n\n/** 0 = None 1 = Sunny 2 = Rain 3 = Storm 4 = Cloudy 5 = Snow 6 = Foggy */\nexport enum SceneWeatherForecastState {\n None = 0,\n Sunny = 1,\n Rain = 2,\n Storm = 3,\n Cloudy = 4,\n Snow = 5,\n Foggy = 6,\n}\n\n/** 0 = None 1 = Temperature 2 = Wind 3 = Humidity 4 = WeatherForecast 5 = Crepuscular */\nexport enum SceneWeatherModality {\n None = 0,\n Temperature = 1,\n Wind = 2,\n Humidity = 3,\n WeatherForecast = 4,\n Crepuscular = 5,\n}\n\n/** 0 = None 1 = WithDate 2 = WithDevice 3 = WithTemperature */\nexport enum SeasonChangeAutoType {\n None = 0,\n WithDate = 1,\n WithDevice = 2,\n WithTemperature = 3,\n}\n\nexport class SelectColorAction extends Action implements ISelectColorAction {\n hasTemperature?: boolean;\n hasColor?: boolean;\n name?: string | undefined;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n\n constructor(data?: ISelectColorAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.hasTemperature = _data[\"hasTemperature\"];\n this.hasColor = _data[\"hasColor\"];\n this.name = _data[\"name\"];\n this.selectedColor = _data[\"selectedColor\"] ? Color.fromJS(_data[\"selectedColor\"]) : undefined;\n this.workingMode = _data[\"workingMode\"];\n }\n }\n\n static fromJS(data: any): SelectColorAction {\n data = typeof data === 'object' ? data : {};\n let result = new SelectColorAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasTemperature\"] = this.hasTemperature;\n data[\"hasColor\"] = this.hasColor;\n data[\"name\"] = this.name;\n data[\"selectedColor\"] = this.selectedColor ? this.selectedColor.toJSON() : undefined;\n data[\"workingMode\"] = this.workingMode;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ISelectColorAction extends IAction {\n hasTemperature?: boolean;\n hasColor?: boolean;\n name?: string | undefined;\n selectedColor?: Color;\n workingMode?: DimmerWorkingMode;\n}\n\nexport class ShutterActuatorSettings extends ActuatorSettings implements IShutterActuatorSettings {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n\n constructor(data?: IShutterActuatorSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.hasPUL = _data[\"hasPUL\"];\n this.shutterMotorType = _data[\"shutterMotorType\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.stopPulseDuration = _data[\"stopPulseDuration\"];\n this.upDownPulseDuration = _data[\"upDownPulseDuration\"];\n this.stopTime = _data[\"stopTime\"];\n this.delayBetweenDoorsTime = _data[\"delayBetweenDoorsTime\"];\n }\n }\n\n static fromJS(data: any): ShutterActuatorSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterActuatorSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasPUL\"] = this.hasPUL;\n data[\"shutterMotorType\"] = this.shutterMotorType;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"stopPulseDuration\"] = this.stopPulseDuration;\n data[\"upDownPulseDuration\"] = this.upDownPulseDuration;\n data[\"stopTime\"] = this.stopTime;\n data[\"delayBetweenDoorsTime\"] = this.delayBetweenDoorsTime;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShutterActuatorSettings extends IActuatorSettings {\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n}\n\nexport class ShutterCommandItemSettingsDTO implements IShutterCommandItemSettingsDTO {\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n presetValue?: number;\n shutterMode?: ShutterMode;\n commandDirection?: CommandDirection;\n hasPreset?: boolean;\n isManagedPosition?: boolean;\n saveTo?: number[] | undefined;\n showBistableAndBladesControl?: boolean;\n showMonostableAndBistable?: boolean;\n showBladesControlAndBistable?: boolean;\n showPreset?: boolean;\n showCommandDirection?: boolean;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n\n constructor(data?: IShutterCommandItemSettingsDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.hasMoreThanOneSlotSettings = _data[\"hasMoreThanOneSlotSettings\"];\n if (Array.isArray(_data[\"indexes\"])) {\n this.indexes = [] as any;\n for (let item of _data[\"indexes\"])\n this.indexes!.push(item);\n }\n this.presetValue = _data[\"presetValue\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.commandDirection = _data[\"commandDirection\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.isManagedPosition = _data[\"isManagedPosition\"];\n if (Array.isArray(_data[\"saveTo\"])) {\n this.saveTo = [] as any;\n for (let item of _data[\"saveTo\"])\n this.saveTo!.push(item);\n }\n this.showBistableAndBladesControl = _data[\"showBistableAndBladesControl\"];\n this.showMonostableAndBistable = _data[\"showMonostableAndBistable\"];\n this.showBladesControlAndBistable = _data[\"showBladesControlAndBistable\"];\n this.showPreset = _data[\"showPreset\"];\n this.showCommandDirection = _data[\"showCommandDirection\"];\n this.isContactTypeVisibile = _data[\"isContactTypeVisibile\"];\n this.conctactType = _data[\"conctactType\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n this.hasChanges = _data[\"hasChanges\"];\n }\n }\n\n static fromJS(data: any): ShutterCommandItemSettingsDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandItemSettingsDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"hasMoreThanOneSlotSettings\"] = this.hasMoreThanOneSlotSettings;\n if (Array.isArray(this.indexes)) {\n data[\"indexes\"] = [];\n for (let item of this.indexes)\n data[\"indexes\"].push(item);\n }\n data[\"presetValue\"] = this.presetValue;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"commandDirection\"] = this.commandDirection;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"isManagedPosition\"] = this.isManagedPosition;\n if (Array.isArray(this.saveTo)) {\n data[\"saveTo\"] = [];\n for (let item of this.saveTo)\n data[\"saveTo\"].push(item);\n }\n data[\"showBistableAndBladesControl\"] = this.showBistableAndBladesControl;\n data[\"showMonostableAndBistable\"] = this.showMonostableAndBistable;\n data[\"showBladesControlAndBistable\"] = this.showBladesControlAndBistable;\n data[\"showPreset\"] = this.showPreset;\n data[\"showCommandDirection\"] = this.showCommandDirection;\n data[\"isContactTypeVisibile\"] = this.isContactTypeVisibile;\n data[\"conctactType\"] = this.conctactType;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n data[\"hasChanges\"] = this.hasChanges;\n return data; \n }\n}\n\nexport interface IShutterCommandItemSettingsDTO {\n hasMoreThanOneSlotSettings?: boolean;\n indexes?: number[] | undefined;\n presetValue?: number;\n shutterMode?: ShutterMode;\n commandDirection?: CommandDirection;\n hasPreset?: boolean;\n isManagedPosition?: boolean;\n saveTo?: number[] | undefined;\n showBistableAndBladesControl?: boolean;\n showMonostableAndBistable?: boolean;\n showBladesControlAndBistable?: boolean;\n showPreset?: boolean;\n showCommandDirection?: boolean;\n isContactTypeVisibile?: boolean;\n conctactType?: ConctactType;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n hasChanges?: boolean;\n}\n\nexport class ShutterCommandSettings extends CommandSettings implements IShutterCommandSettings {\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n commandDirection?: CommandDirection;\n typeofContact?: ConctactType;\n\n constructor(data?: IShutterCommandSettings) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.commandDirection = _data[\"commandDirection\"];\n this.typeofContact = _data[\"typeofContact\"];\n }\n }\n\n static fromJS(data: any): ShutterCommandSettings {\n data = typeof data === 'object' ? data : {};\n let result = new ShutterCommandSettings();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"commandDirection\"] = this.commandDirection;\n data[\"typeofContact\"] = this.typeofContact;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShutterCommandSettings extends ICommandSettings {\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n commandDirection?: CommandDirection;\n typeofContact?: ConctactType;\n}\n\n/** 0 = Monostable 1 = Bistable 2 = BistableWithBladesControl 3 = BladesAndBistable 4 = MonostableBistable */\nexport enum ShutterMode {\n Monostable = 0,\n Bistable = 1,\n BistableWithBladesControl = 2,\n BladesAndBistable = 3,\n MonostableBistable = 4,\n}\n\n/** 0 = StandardAutomatic 1 = Standard 2 = Pulse */\nexport enum ShutterMotorType {\n StandardAutomatic = 0,\n Standard = 1,\n Pulse = 2,\n}\n\nexport class ShuttersActuatorSettingsObjectParam implements IShuttersActuatorSettingsObjectParam {\n isManagedPosition?: boolean;\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n isGroupPULVisible?: boolean;\n isGroupMotorTypeVisible?: boolean;\n canHaveStandardAutomaticMotorType?: boolean;\n isGroupModeVisible?: boolean;\n isGroupPresetVisible?: boolean;\n isGroupStopTimeTypeVisible?: boolean;\n isGroupDelayBetweenDoorsVisible?: boolean;\n stopPulseDurationPickerValues?: DelayValue[] | undefined;\n upDownPulseDurationPickerValues?: DelayValue[] | undefined;\n stopTimePickerValues?: DelayValue[] | undefined;\n delayBetweenDoorsTimePickerValues?: DelayValue[] | undefined;\n\n constructor(data?: IShuttersActuatorSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isManagedPosition = _data[\"isManagedPosition\"];\n this.hasPUL = _data[\"hasPUL\"];\n this.shutterMotorType = _data[\"shutterMotorType\"];\n this.stopPulseDuration = _data[\"stopPulseDuration\"];\n this.upDownPulseDuration = _data[\"upDownPulseDuration\"];\n this.shutterMode = _data[\"shutterMode\"];\n this.hasPreset = _data[\"hasPreset\"];\n this.presetValue = _data[\"presetValue\"];\n this.stopTime = _data[\"stopTime\"];\n this.delayBetweenDoorsTime = _data[\"delayBetweenDoorsTime\"];\n this.isGroupPULVisible = _data[\"isGroupPULVisible\"];\n this.isGroupMotorTypeVisible = _data[\"isGroupMotorTypeVisible\"];\n this.canHaveStandardAutomaticMotorType = _data[\"canHaveStandardAutomaticMotorType\"];\n this.isGroupModeVisible = _data[\"isGroupModeVisible\"];\n this.isGroupPresetVisible = _data[\"isGroupPresetVisible\"];\n this.isGroupStopTimeTypeVisible = _data[\"isGroupStopTimeTypeVisible\"];\n this.isGroupDelayBetweenDoorsVisible = _data[\"isGroupDelayBetweenDoorsVisible\"];\n if (Array.isArray(_data[\"stopPulseDurationPickerValues\"])) {\n this.stopPulseDurationPickerValues = [] as any;\n for (let item of _data[\"stopPulseDurationPickerValues\"])\n this.stopPulseDurationPickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"upDownPulseDurationPickerValues\"])) {\n this.upDownPulseDurationPickerValues = [] as any;\n for (let item of _data[\"upDownPulseDurationPickerValues\"])\n this.upDownPulseDurationPickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"stopTimePickerValues\"])) {\n this.stopTimePickerValues = [] as any;\n for (let item of _data[\"stopTimePickerValues\"])\n this.stopTimePickerValues!.push(DelayValue.fromJS(item));\n }\n if (Array.isArray(_data[\"delayBetweenDoorsTimePickerValues\"])) {\n this.delayBetweenDoorsTimePickerValues = [] as any;\n for (let item of _data[\"delayBetweenDoorsTimePickerValues\"])\n this.delayBetweenDoorsTimePickerValues!.push(DelayValue.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ShuttersActuatorSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new ShuttersActuatorSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isManagedPosition\"] = this.isManagedPosition;\n data[\"hasPUL\"] = this.hasPUL;\n data[\"shutterMotorType\"] = this.shutterMotorType;\n data[\"stopPulseDuration\"] = this.stopPulseDuration;\n data[\"upDownPulseDuration\"] = this.upDownPulseDuration;\n data[\"shutterMode\"] = this.shutterMode;\n data[\"hasPreset\"] = this.hasPreset;\n data[\"presetValue\"] = this.presetValue;\n data[\"stopTime\"] = this.stopTime;\n data[\"delayBetweenDoorsTime\"] = this.delayBetweenDoorsTime;\n data[\"isGroupPULVisible\"] = this.isGroupPULVisible;\n data[\"isGroupMotorTypeVisible\"] = this.isGroupMotorTypeVisible;\n data[\"canHaveStandardAutomaticMotorType\"] = this.canHaveStandardAutomaticMotorType;\n data[\"isGroupModeVisible\"] = this.isGroupModeVisible;\n data[\"isGroupPresetVisible\"] = this.isGroupPresetVisible;\n data[\"isGroupStopTimeTypeVisible\"] = this.isGroupStopTimeTypeVisible;\n data[\"isGroupDelayBetweenDoorsVisible\"] = this.isGroupDelayBetweenDoorsVisible;\n if (Array.isArray(this.stopPulseDurationPickerValues)) {\n data[\"stopPulseDurationPickerValues\"] = [];\n for (let item of this.stopPulseDurationPickerValues)\n data[\"stopPulseDurationPickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.upDownPulseDurationPickerValues)) {\n data[\"upDownPulseDurationPickerValues\"] = [];\n for (let item of this.upDownPulseDurationPickerValues)\n data[\"upDownPulseDurationPickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.stopTimePickerValues)) {\n data[\"stopTimePickerValues\"] = [];\n for (let item of this.stopTimePickerValues)\n data[\"stopTimePickerValues\"].push(item.toJSON());\n }\n if (Array.isArray(this.delayBetweenDoorsTimePickerValues)) {\n data[\"delayBetweenDoorsTimePickerValues\"] = [];\n for (let item of this.delayBetweenDoorsTimePickerValues)\n data[\"delayBetweenDoorsTimePickerValues\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IShuttersActuatorSettingsObjectParam {\n isManagedPosition?: boolean;\n hasPUL?: boolean;\n shutterMotorType?: ShutterMotorType;\n stopPulseDuration?: number;\n upDownPulseDuration?: number;\n shutterMode?: ShutterMode;\n hasPreset?: boolean;\n presetValue?: number;\n stopTime?: number;\n delayBetweenDoorsTime?: number;\n isGroupPULVisible?: boolean;\n isGroupMotorTypeVisible?: boolean;\n canHaveStandardAutomaticMotorType?: boolean;\n isGroupModeVisible?: boolean;\n isGroupPresetVisible?: boolean;\n isGroupStopTimeTypeVisible?: boolean;\n isGroupDelayBetweenDoorsVisible?: boolean;\n stopPulseDurationPickerValues?: DelayValue[] | undefined;\n upDownPulseDurationPickerValues?: DelayValue[] | undefined;\n stopTimePickerValues?: DelayValue[] | undefined;\n delayBetweenDoorsTimePickerValues?: DelayValue[] | undefined;\n}\n\nexport class ShuttersCommandSettingsObjectDTO extends BaseShuttersCommandSettingsObjectDTO implements IShuttersCommandSettingsObjectDTO {\n slots?: ShutterCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n\n constructor(data?: IShuttersCommandSettingsObjectDTO) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n if (Array.isArray(_data[\"slots\"])) {\n this.slots = [] as any;\n for (let item of _data[\"slots\"])\n this.slots!.push(ShutterCommandItemSettingsDTO.fromJS(item));\n }\n this.hasBrightness = _data[\"hasBrightness\"];\n this.hasProximity = _data[\"hasProximity\"];\n this.hasStandby = _data[\"hasStandby\"];\n this.hasLedIntentisy = _data[\"hasLedIntentisy\"];\n this.hasLedModality = _data[\"hasLedModality\"];\n this.hasRefreshFeedback = _data[\"hasRefreshFeedback\"];\n this.hasSettings = _data[\"hasSettings\"];\n this.deviceBrightness = _data[\"deviceBrightness\"];\n this.showLedsInStandby = _data[\"showLedsInStandby\"];\n this.isProximityEnabled = _data[\"isProximityEnabled\"];\n this.deviceProximity = _data[\"deviceProximity\"];\n this.ledIntensity = _data[\"ledIntensity\"];\n this.ledModality = _data[\"ledModality\"];\n this.deviceIconsVisibility = _data[\"deviceIconsVisibility\"];\n }\n }\n\n static fromJS(data: any): ShuttersCommandSettingsObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ShuttersCommandSettingsObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n if (Array.isArray(this.slots)) {\n data[\"slots\"] = [];\n for (let item of this.slots)\n data[\"slots\"].push(item.toJSON());\n }\n data[\"hasBrightness\"] = this.hasBrightness;\n data[\"hasProximity\"] = this.hasProximity;\n data[\"hasStandby\"] = this.hasStandby;\n data[\"hasLedIntentisy\"] = this.hasLedIntentisy;\n data[\"hasLedModality\"] = this.hasLedModality;\n data[\"hasRefreshFeedback\"] = this.hasRefreshFeedback;\n data[\"hasSettings\"] = this.hasSettings;\n data[\"deviceBrightness\"] = this.deviceBrightness;\n data[\"showLedsInStandby\"] = this.showLedsInStandby;\n data[\"isProximityEnabled\"] = this.isProximityEnabled;\n data[\"deviceProximity\"] = this.deviceProximity;\n data[\"ledIntensity\"] = this.ledIntensity;\n data[\"ledModality\"] = this.ledModality;\n data[\"deviceIconsVisibility\"] = this.deviceIconsVisibility;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IShuttersCommandSettingsObjectDTO extends IBaseShuttersCommandSettingsObjectDTO {\n slots?: ShutterCommandItemSettingsDTO[] | undefined;\n hasBrightness?: boolean;\n hasProximity?: boolean;\n hasStandby?: boolean;\n hasLedIntentisy?: boolean;\n hasLedModality?: boolean;\n hasRefreshFeedback?: boolean;\n hasSettings?: boolean;\n deviceBrightness?: DeviceBrightness;\n showLedsInStandby?: boolean;\n isProximityEnabled?: boolean;\n deviceProximity?: DeviceProximity;\n ledIntensity?: number;\n ledModality?: DeviceLedModality;\n deviceIconsVisibility?: DeviceIconsVisibility;\n}\n\nexport class SimpleIntPickerValue implements ISimpleIntPickerValue {\n value?: number;\n readonly description?: string | undefined;\n\n constructor(data?: ISimpleIntPickerValue) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.value = _data[\"value\"];\n (this).description = _data[\"description\"];\n }\n }\n\n static fromJS(data: any): SimpleIntPickerValue {\n data = typeof data === 'object' ? data : {};\n let result = new SimpleIntPickerValue();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"value\"] = this.value;\n data[\"description\"] = this.description;\n return data; \n }\n}\n\nexport interface ISimpleIntPickerValue {\n value?: number;\n description?: string | undefined;\n}\n\nexport class Slot implements ISlot {\n configured?: boolean;\n id?: string | undefined;\n keyObject?: number;\n links_id?: string[] | undefined;\n groups_id?: string[] | undefined;\n index?: number;\n address?: string | undefined;\n status?: SlotStatus;\n linkedObjects?: LinkableObject[] | undefined;\n configurationType?: ConfigurationType;\n modalityTypeConfiguration?: ActuatorModalityType;\n thermoActuatorTypes?: { [key: string]: ThermoActuatorType; } | undefined;\n assignedComponentType?: ComponentType;\n isSetting?: boolean;\n commandIcon?: CommandIcon;\n paramsKo?: ParamCreateLinkModule[] | undefined;\n scenes_id?: ParamsScenesId[] | undefined;\n commandSettings?: CommandSettings | undefined;\n probeSettings?: ProbeSettings;\n actuatorSettings?: ActuatorSettings | undefined;\n isShutterSelfCommandActuatorSlot?: boolean;\n mX_Id_ThermoCU?: string | undefined;\n\n constructor(data?: ISlot) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.configured = _data[\"configured\"];\n this.id = _data[\"id\"];\n this.keyObject = _data[\"keyObject\"];\n if (Array.isArray(_data[\"links_id\"])) {\n this.links_id = [] as any;\n for (let item of _data[\"links_id\"])\n this.links_id!.push(item);\n }\n if (Array.isArray(_data[\"groups_id\"])) {\n this.groups_id = [] as any;\n for (let item of _data[\"groups_id\"])\n this.groups_id!.push(item);\n }\n this.index = _data[\"index\"];\n this.address = _data[\"address\"];\n this.status = _data[\"status\"];\n if (Array.isArray(_data[\"linkedObjects\"])) {\n this.linkedObjects = [] as any;\n for (let item of _data[\"linkedObjects\"])\n this.linkedObjects!.push(LinkableObject.fromJS(item));\n }\n this.configurationType = _data[\"configurationType\"];\n this.modalityTypeConfiguration = _data[\"modalityTypeConfiguration\"];\n if (_data[\"thermoActuatorTypes\"]) {\n this.thermoActuatorTypes = {} as any;\n for (let key in _data[\"thermoActuatorTypes\"]) {\n if (_data[\"thermoActuatorTypes\"].hasOwnProperty(key))\n (this.thermoActuatorTypes)![key] = _data[\"thermoActuatorTypes\"][key];\n }\n }\n this.assignedComponentType = _data[\"assignedComponentType\"];\n this.isSetting = _data[\"isSetting\"];\n this.commandIcon = _data[\"commandIcon\"];\n if (Array.isArray(_data[\"paramsKo\"])) {\n this.paramsKo = [] as any;\n for (let item of _data[\"paramsKo\"])\n this.paramsKo!.push(ParamCreateLinkModule.fromJS(item));\n }\n if (Array.isArray(_data[\"scenes_id\"])) {\n this.scenes_id = [] as any;\n for (let item of _data[\"scenes_id\"])\n this.scenes_id!.push(ParamsScenesId.fromJS(item));\n }\n this.commandSettings = _data[\"commandSettings\"] ? CommandSettings.fromJS(_data[\"commandSettings\"]) : undefined;\n this.probeSettings = _data[\"probeSettings\"] ? ProbeSettings.fromJS(_data[\"probeSettings\"]) : undefined;\n this.actuatorSettings = _data[\"actuatorSettings\"] ? ActuatorSettings.fromJS(_data[\"actuatorSettings\"]) : undefined;\n this.isShutterSelfCommandActuatorSlot = _data[\"isShutterSelfCommandActuatorSlot\"];\n this.mX_Id_ThermoCU = _data[\"mX_Id_ThermoCU\"];\n }\n }\n\n static fromJS(data: any): Slot {\n data = typeof data === 'object' ? data : {};\n let result = new Slot();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"configured\"] = this.configured;\n data[\"id\"] = this.id;\n data[\"keyObject\"] = this.keyObject;\n if (Array.isArray(this.links_id)) {\n data[\"links_id\"] = [];\n for (let item of this.links_id)\n data[\"links_id\"].push(item);\n }\n if (Array.isArray(this.groups_id)) {\n data[\"groups_id\"] = [];\n for (let item of this.groups_id)\n data[\"groups_id\"].push(item);\n }\n data[\"index\"] = this.index;\n data[\"address\"] = this.address;\n data[\"status\"] = this.status;\n if (Array.isArray(this.linkedObjects)) {\n data[\"linkedObjects\"] = [];\n for (let item of this.linkedObjects)\n data[\"linkedObjects\"].push(item.toJSON());\n }\n data[\"configurationType\"] = this.configurationType;\n data[\"modalityTypeConfiguration\"] = this.modalityTypeConfiguration;\n if (this.thermoActuatorTypes) {\n data[\"thermoActuatorTypes\"] = {};\n for (let key in this.thermoActuatorTypes) {\n if (this.thermoActuatorTypes.hasOwnProperty(key))\n (data[\"thermoActuatorTypes\"])[key] = this.thermoActuatorTypes[key];\n }\n }\n data[\"assignedComponentType\"] = this.assignedComponentType;\n data[\"isSetting\"] = this.isSetting;\n data[\"commandIcon\"] = this.commandIcon;\n if (Array.isArray(this.paramsKo)) {\n data[\"paramsKo\"] = [];\n for (let item of this.paramsKo)\n data[\"paramsKo\"].push(item.toJSON());\n }\n if (Array.isArray(this.scenes_id)) {\n data[\"scenes_id\"] = [];\n for (let item of this.scenes_id)\n data[\"scenes_id\"].push(item.toJSON());\n }\n data[\"commandSettings\"] = this.commandSettings ? this.commandSettings.toJSON() : undefined;\n data[\"probeSettings\"] = this.probeSettings ? this.probeSettings.toJSON() : undefined;\n data[\"actuatorSettings\"] = this.actuatorSettings ? this.actuatorSettings.toJSON() : undefined;\n data[\"isShutterSelfCommandActuatorSlot\"] = this.isShutterSelfCommandActuatorSlot;\n data[\"mX_Id_ThermoCU\"] = this.mX_Id_ThermoCU;\n return data; \n }\n}\n\nexport interface ISlot {\n configured?: boolean;\n id?: string | undefined;\n keyObject?: number;\n links_id?: string[] | undefined;\n groups_id?: string[] | undefined;\n index?: number;\n address?: string | undefined;\n status?: SlotStatus;\n linkedObjects?: LinkableObject[] | undefined;\n configurationType?: ConfigurationType;\n modalityTypeConfiguration?: ActuatorModalityType;\n thermoActuatorTypes?: { [key: string]: ThermoActuatorType; } | undefined;\n assignedComponentType?: ComponentType;\n isSetting?: boolean;\n commandIcon?: CommandIcon;\n paramsKo?: ParamCreateLinkModule[] | undefined;\n scenes_id?: ParamsScenesId[] | undefined;\n commandSettings?: CommandSettings | undefined;\n probeSettings?: ProbeSettings;\n actuatorSettings?: ActuatorSettings | undefined;\n isShutterSelfCommandActuatorSlot?: boolean;\n mX_Id_ThermoCU?: string | undefined;\n}\n\n/** 0 = Configured 1 = NotConfigured 2 = NotUsed 3 = MarkedForLinking 4 = MarkedAdjacent 5 = NoLoad 6 = NoCompatible */\nexport enum SlotStatus {\n Configured = 0,\n NotConfigured = 1,\n NotUsed = 2,\n MarkedForLinking = 3,\n MarkedAdjacent = 4,\n NoLoad = 5,\n NoCompatible = 6,\n}\n\n/** 0 = None 1 = OneOnOffValve 2 = OneOpenCloseValve 3 = OneProportionalValve 4 = TwoTubesOnOffValve 5 = TwoTubesProportionalValve 6 = TwoTubesProportionalSpeedControlValve 7 = FourTubesOnOffValve 8 = FourTubesProportionalValve 9 = FourTubesProportionalSpeedControlValve 10 = GatewayMode 11 = Pump */\nexport enum SystemControlType {\n None = 0,\n OneOnOffValve = 1,\n OneOpenCloseValve = 2,\n OneProportionalValve = 3,\n TwoTubesOnOffValve = 4,\n TwoTubesProportionalValve = 5,\n TwoTubesProportionalSpeedControlValve = 6,\n FourTubesOnOffValve = 7,\n FourTubesProportionalValve = 8,\n FourTubesProportionalSpeedControlValve = 9,\n GatewayMode = 10,\n Pump = 11,\n}\n\n/** 0 = Scs 1 = Zigbee */\nexport enum SystemType {\n Scs = 0,\n Zigbee = 1,\n}\n\n/** 0 = Celsius 1 = Fahrenheit */\nexport enum TemperatureType {\n Celsius = 0,\n Fahrenheit = 1,\n}\n\nexport class ThermoActuactor implements IThermoActuactor {\n number?: number;\n function?: ThermoActuatorType;\n valve?: boolean;\n id?: string[] | undefined;\n\n constructor(data?: IThermoActuactor) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.number = _data[\"number\"];\n this.function = _data[\"function\"];\n this.valve = _data[\"valve\"];\n if (Array.isArray(_data[\"id\"])) {\n this.id = [] as any;\n for (let item of _data[\"id\"])\n this.id!.push(item);\n }\n }\n }\n\n static fromJS(data: any): ThermoActuactor {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoActuactor();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"number\"] = this.number;\n data[\"function\"] = this.function;\n data[\"valve\"] = this.valve;\n if (Array.isArray(this.id)) {\n data[\"id\"] = [];\n for (let item of this.id)\n data[\"id\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IThermoActuactor {\n number?: number;\n function?: ThermoActuatorType;\n valve?: boolean;\n id?: string[] | undefined;\n}\n\n/** 0 = None 1 = HeatingValve 2 = HeatingPump 3 = CoolingValve 4 = CoolingPump 5 = SharedValve 6 = SharedPump 7 = HeatingAndCoolingPump 8 = HeatingAndCoolingValve */\nexport enum ThermoActuatorType {\n None = 0,\n HeatingValve = 1,\n HeatingPump = 2,\n CoolingValve = 3,\n CoolingPump = 4,\n SharedValve = 5,\n SharedPump = 6,\n HeatingAndCoolingPump = 7,\n HeatingAndCoolingValve = 8,\n}\n\n/** 0 = None 1 = Yes 2 = No */\nexport enum ThermoAssociatedPump {\n None = 0,\n Yes = 1,\n No = 2,\n}\n\nexport class ThermoOldInformation implements IThermoOldInformation {\n address?: string | undefined;\n links_id?: string[] | undefined;\n\n constructor(data?: IThermoOldInformation) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.address = _data[\"address\"];\n if (Array.isArray(_data[\"links_id\"])) {\n this.links_id = [] as any;\n for (let item of _data[\"links_id\"])\n this.links_id!.push(item);\n }\n }\n }\n\n static fromJS(data: any): ThermoOldInformation {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoOldInformation();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n if (Array.isArray(this.links_id)) {\n data[\"links_id\"] = [];\n for (let item of this.links_id)\n data[\"links_id\"].push(item);\n }\n return data; \n }\n}\n\nexport interface IThermoOldInformation {\n address?: string | undefined;\n links_id?: string[] | undefined;\n}\n\nexport class ThermoProbeSettingsObjectParam implements IThermoProbeSettingsObjectParam {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n isLedmanagedVisible?: boolean;\n isExternalSensorTypeVisible?: boolean;\n\n constructor(data?: IThermoProbeSettingsObjectParam) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.isLedmanaged = _data[\"isLedmanaged\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isLedmanagedVisible = _data[\"isLedmanagedVisible\"];\n this.isExternalSensorTypeVisible = _data[\"isExternalSensorTypeVisible\"];\n }\n }\n\n static fromJS(data: any): ThermoProbeSettingsObjectParam {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoProbeSettingsObjectParam();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"isLedmanaged\"] = this.isLedmanaged;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isLedmanagedVisible\"] = this.isLedmanagedVisible;\n data[\"isExternalSensorTypeVisible\"] = this.isExternalSensorTypeVisible;\n return data; \n }\n}\n\nexport interface IThermoProbeSettingsObjectParam {\n isLedmanaged?: boolean;\n externalSensorType?: ExternalSensorType;\n isLedmanagedVisible?: boolean;\n isExternalSensorTypeVisible?: boolean;\n}\n\nexport class ThermoRoomObjectDTO implements IThermoRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n heatingSystemControlType?: SystemControlType;\n coolingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n configurationSteps?: number;\n nextStep?: number;\n objectDuplication?: ObjectDuplication;\n resetType?: ResetType;\n isApplyAllTemperatureRange?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n isAutoCommutation?: boolean;\n isApplyAllCirculationPumpDelay?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n isApplyAllCelsiusFahrenheit?: boolean;\n temperatureType?: TemperatureType;\n isApplyAllButtonsManagement?: boolean;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isApplyAllBacklight?: boolean;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isApplyAllWindowsContact?: boolean;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isInterlockingExcluded?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n pumpsDelay?: string;\n thermoUKFanSpeed?: number;\n thermoUKFanSpeed2?: number;\n thermoUKFanSpeed3?: number;\n plantId?: string | undefined;\n roomId?: string | undefined;\n extDevices?: ExtDevice[] | undefined;\n roomObjectType?: RoomObjectType;\n isNotFullyConfigured?: boolean;\n isEdit?: boolean;\n isApplyAllTemperatureVisualization?: boolean;\n isTemperatureDisplayed?: boolean;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n thermoOldInformation?: ThermoOldInformation;\n thermo?: ThermoActuactor[] | undefined;\n tempAddressPumps?: AddressPumps[] | undefined;\n\n constructor(data?: IThermoRoomObjectDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.id = _data[\"id\"];\n this.name = _data[\"name\"];\n if (Array.isArray(_data[\"devices\"])) {\n this.devices = [] as any;\n for (let item of _data[\"devices\"])\n this.devices!.push(DeviceDTO.fromJS(item));\n }\n this.type = _data[\"type\"];\n this.thermoTypeOfObject = _data[\"thermoTypeOfObject\"];\n this.thermoAssociatedPump = _data[\"thermoAssociatedPump\"];\n this.actuatorModalityType = _data[\"actuatorModalityType\"];\n this.heatingSystemControlType = _data[\"heatingSystemControlType\"];\n this.coolingSystemControlType = _data[\"coolingSystemControlType\"];\n this.sharedSystemControlType = _data[\"sharedSystemControlType\"];\n this.configurationSteps = _data[\"configurationSteps\"];\n this.nextStep = _data[\"nextStep\"];\n this.objectDuplication = _data[\"objectDuplication\"];\n this.resetType = _data[\"resetType\"];\n this.isApplyAllTemperatureRange = _data[\"isApplyAllTemperatureRange\"];\n this.heatingSetpointLow = _data[\"heatingSetpointLow\"];\n this.heatingSetpointHigh = _data[\"heatingSetpointHigh\"];\n this.heatingAntifreeze = _data[\"heatingAntifreeze\"];\n this.coolingSetpointLow = _data[\"coolingSetpointLow\"];\n this.coolingSetpointHigh = _data[\"coolingSetpointHigh\"];\n this.coolingThermalProtection = _data[\"coolingThermalProtection\"];\n this.isAutoCommutation = _data[\"isAutoCommutation\"];\n this.isApplyAllCirculationPumpDelay = _data[\"isApplyAllCirculationPumpDelay\"];\n this.delayHeatingPumps = _data[\"delayHeatingPumps\"];\n this.delayCoolingPumps = _data[\"delayCoolingPumps\"];\n this.isApplyAllCelsiusFahrenheit = _data[\"isApplyAllCelsiusFahrenheit\"];\n this.temperatureType = _data[\"temperatureType\"];\n this.isApplyAllButtonsManagement = _data[\"isApplyAllButtonsManagement\"];\n this.areButtonsEnabled = _data[\"areButtonsEnabled\"];\n this.externalSensorType = _data[\"externalSensorType\"];\n this.isApplyAllBacklight = _data[\"isApplyAllBacklight\"];\n this.isBacklightEnabled = _data[\"isBacklightEnabled\"];\n this.backlightLevel = _data[\"backlightLevel\"];\n this.isManualHeatingOverrideEnabled = _data[\"isManualHeatingOverrideEnabled\"];\n this.heatingRegulationBand = _data[\"heatingRegulationBand\"];\n this.fanSpeed2ForHeating = _data[\"fanSpeed2ForHeating\"];\n this.fanSpeed3ForHeating = _data[\"fanSpeed3ForHeating\"];\n this.valvesTimeForHeatingFanCoil = _data[\"valvesTimeForHeatingFanCoil\"];\n this.isManualCoolingOverrideEnabled = _data[\"isManualCoolingOverrideEnabled\"];\n this.coolingRegulationBand = _data[\"coolingRegulationBand\"];\n this.fanSpeed2ForCooling = _data[\"fanSpeed2ForCooling\"];\n this.fanSpeed3ForCooling = _data[\"fanSpeed3ForCooling\"];\n this.valvesTimeForCoolingFanCoil = _data[\"valvesTimeForCoolingFanCoil\"];\n this.isApplyAllWindowsContact = _data[\"isApplyAllWindowsContact\"];\n this.isIconAlwaysOff = _data[\"isIconAlwaysOff\"];\n this.isLocalContactNumberEnabled = _data[\"isLocalContactNumberEnabled\"];\n this.numberOfWindowsContact = _data[\"numberOfWindowsContact\"];\n this.openingContactTypeHeating = _data[\"openingContactTypeHeating\"];\n this.openingContactTempHeating = _data[\"openingContactTempHeating\"];\n this.openingContactDelayHeating = _data[\"openingContactDelayHeating\"];\n this.timeoutOpeningHeating = _data[\"timeoutOpeningHeating\"];\n this.closingContactTypeHeating = _data[\"closingContactTypeHeating\"];\n this.closingContactTempHeating = _data[\"closingContactTempHeating\"];\n this.closingContactDelayHeating = _data[\"closingContactDelayHeating\"];\n this.timeoutClosingHeating = _data[\"timeoutClosingHeating\"];\n this.openingContactTypeCooling = _data[\"openingContactTypeCooling\"];\n this.openingContactTempCooling = _data[\"openingContactTempCooling\"];\n this.openingContactDelayCooling = _data[\"openingContactDelayCooling\"];\n this.timeoutOpeningCooling = _data[\"timeoutOpeningCooling\"];\n this.closingContactTypeCooling = _data[\"closingContactTypeCooling\"];\n this.closingContactTempCooling = _data[\"closingContactTempCooling\"];\n this.closingContactDelayCooling = _data[\"closingContactDelayCooling\"];\n this.timeoutClosingCooling = _data[\"timeoutClosingCooling\"];\n this.isInterlockingExcluded = _data[\"isInterlockingExcluded\"];\n this.isWaterCycleEnabled = _data[\"isWaterCycleEnabled\"];\n this.arePumpsOpenedAutomatically = _data[\"arePumpsOpenedAutomatically\"];\n this.minutesToKeepOpen = _data[\"minutesToKeepOpen\"];\n this.openAutomaticallyDaysDelay = _data[\"openAutomaticallyDaysDelay\"];\n this.pumpsDelay = _data[\"pumpsDelay\"];\n this.thermoUKFanSpeed = _data[\"thermoUKFanSpeed\"];\n this.thermoUKFanSpeed2 = _data[\"thermoUKFanSpeed2\"];\n this.thermoUKFanSpeed3 = _data[\"thermoUKFanSpeed3\"];\n this.plantId = _data[\"plantId\"];\n this.roomId = _data[\"roomId\"];\n if (Array.isArray(_data[\"extDevices\"])) {\n this.extDevices = [] as any;\n for (let item of _data[\"extDevices\"])\n this.extDevices!.push(ExtDevice.fromJS(item));\n }\n this.roomObjectType = _data[\"roomObjectType\"];\n this.isNotFullyConfigured = _data[\"isNotFullyConfigured\"];\n this.isEdit = _data[\"isEdit\"];\n this.isApplyAllTemperatureVisualization = _data[\"isApplyAllTemperatureVisualization\"];\n this.isTemperatureDisplayed = _data[\"isTemperatureDisplayed\"];\n this.isCoolingVentilationEnabled = _data[\"isCoolingVentilationEnabled\"];\n this.isHeatingVentilationEnabled = _data[\"isHeatingVentilationEnabled\"];\n this.timeoutCoolingVentilation = _data[\"timeoutCoolingVentilation\"];\n this.timeoutHeatingVentilation = _data[\"timeoutHeatingVentilation\"];\n this.thermoOldInformation = _data[\"thermoOldInformation\"] ? ThermoOldInformation.fromJS(_data[\"thermoOldInformation\"]) : undefined;\n if (Array.isArray(_data[\"thermo\"])) {\n this.thermo = [] as any;\n for (let item of _data[\"thermo\"])\n this.thermo!.push(ThermoActuactor.fromJS(item));\n }\n if (Array.isArray(_data[\"tempAddressPumps\"])) {\n this.tempAddressPumps = [] as any;\n for (let item of _data[\"tempAddressPumps\"])\n this.tempAddressPumps!.push(AddressPumps.fromJS(item));\n }\n }\n }\n\n static fromJS(data: any): ThermoRoomObjectDTO {\n data = typeof data === 'object' ? data : {};\n let result = new ThermoRoomObjectDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"id\"] = this.id;\n data[\"name\"] = this.name;\n if (Array.isArray(this.devices)) {\n data[\"devices\"] = [];\n for (let item of this.devices)\n data[\"devices\"].push(item.toJSON());\n }\n data[\"type\"] = this.type;\n data[\"thermoTypeOfObject\"] = this.thermoTypeOfObject;\n data[\"thermoAssociatedPump\"] = this.thermoAssociatedPump;\n data[\"actuatorModalityType\"] = this.actuatorModalityType;\n data[\"heatingSystemControlType\"] = this.heatingSystemControlType;\n data[\"coolingSystemControlType\"] = this.coolingSystemControlType;\n data[\"sharedSystemControlType\"] = this.sharedSystemControlType;\n data[\"configurationSteps\"] = this.configurationSteps;\n data[\"nextStep\"] = this.nextStep;\n data[\"objectDuplication\"] = this.objectDuplication;\n data[\"resetType\"] = this.resetType;\n data[\"isApplyAllTemperatureRange\"] = this.isApplyAllTemperatureRange;\n data[\"heatingSetpointLow\"] = this.heatingSetpointLow;\n data[\"heatingSetpointHigh\"] = this.heatingSetpointHigh;\n data[\"heatingAntifreeze\"] = this.heatingAntifreeze;\n data[\"coolingSetpointLow\"] = this.coolingSetpointLow;\n data[\"coolingSetpointHigh\"] = this.coolingSetpointHigh;\n data[\"coolingThermalProtection\"] = this.coolingThermalProtection;\n data[\"isAutoCommutation\"] = this.isAutoCommutation;\n data[\"isApplyAllCirculationPumpDelay\"] = this.isApplyAllCirculationPumpDelay;\n data[\"delayHeatingPumps\"] = this.delayHeatingPumps;\n data[\"delayCoolingPumps\"] = this.delayCoolingPumps;\n data[\"isApplyAllCelsiusFahrenheit\"] = this.isApplyAllCelsiusFahrenheit;\n data[\"temperatureType\"] = this.temperatureType;\n data[\"isApplyAllButtonsManagement\"] = this.isApplyAllButtonsManagement;\n data[\"areButtonsEnabled\"] = this.areButtonsEnabled;\n data[\"externalSensorType\"] = this.externalSensorType;\n data[\"isApplyAllBacklight\"] = this.isApplyAllBacklight;\n data[\"isBacklightEnabled\"] = this.isBacklightEnabled;\n data[\"backlightLevel\"] = this.backlightLevel;\n data[\"isManualHeatingOverrideEnabled\"] = this.isManualHeatingOverrideEnabled;\n data[\"heatingRegulationBand\"] = this.heatingRegulationBand;\n data[\"fanSpeed2ForHeating\"] = this.fanSpeed2ForHeating;\n data[\"fanSpeed3ForHeating\"] = this.fanSpeed3ForHeating;\n data[\"valvesTimeForHeatingFanCoil\"] = this.valvesTimeForHeatingFanCoil;\n data[\"isManualCoolingOverrideEnabled\"] = this.isManualCoolingOverrideEnabled;\n data[\"coolingRegulationBand\"] = this.coolingRegulationBand;\n data[\"fanSpeed2ForCooling\"] = this.fanSpeed2ForCooling;\n data[\"fanSpeed3ForCooling\"] = this.fanSpeed3ForCooling;\n data[\"valvesTimeForCoolingFanCoil\"] = this.valvesTimeForCoolingFanCoil;\n data[\"isApplyAllWindowsContact\"] = this.isApplyAllWindowsContact;\n data[\"isIconAlwaysOff\"] = this.isIconAlwaysOff;\n data[\"isLocalContactNumberEnabled\"] = this.isLocalContactNumberEnabled;\n data[\"numberOfWindowsContact\"] = this.numberOfWindowsContact;\n data[\"openingContactTypeHeating\"] = this.openingContactTypeHeating;\n data[\"openingContactTempHeating\"] = this.openingContactTempHeating;\n data[\"openingContactDelayHeating\"] = this.openingContactDelayHeating;\n data[\"timeoutOpeningHeating\"] = this.timeoutOpeningHeating;\n data[\"closingContactTypeHeating\"] = this.closingContactTypeHeating;\n data[\"closingContactTempHeating\"] = this.closingContactTempHeating;\n data[\"closingContactDelayHeating\"] = this.closingContactDelayHeating;\n data[\"timeoutClosingHeating\"] = this.timeoutClosingHeating;\n data[\"openingContactTypeCooling\"] = this.openingContactTypeCooling;\n data[\"openingContactTempCooling\"] = this.openingContactTempCooling;\n data[\"openingContactDelayCooling\"] = this.openingContactDelayCooling;\n data[\"timeoutOpeningCooling\"] = this.timeoutOpeningCooling;\n data[\"closingContactTypeCooling\"] = this.closingContactTypeCooling;\n data[\"closingContactTempCooling\"] = this.closingContactTempCooling;\n data[\"closingContactDelayCooling\"] = this.closingContactDelayCooling;\n data[\"timeoutClosingCooling\"] = this.timeoutClosingCooling;\n data[\"isInterlockingExcluded\"] = this.isInterlockingExcluded;\n data[\"isWaterCycleEnabled\"] = this.isWaterCycleEnabled;\n data[\"arePumpsOpenedAutomatically\"] = this.arePumpsOpenedAutomatically;\n data[\"minutesToKeepOpen\"] = this.minutesToKeepOpen;\n data[\"openAutomaticallyDaysDelay\"] = this.openAutomaticallyDaysDelay;\n data[\"pumpsDelay\"] = this.pumpsDelay;\n data[\"thermoUKFanSpeed\"] = this.thermoUKFanSpeed;\n data[\"thermoUKFanSpeed2\"] = this.thermoUKFanSpeed2;\n data[\"thermoUKFanSpeed3\"] = this.thermoUKFanSpeed3;\n data[\"plantId\"] = this.plantId;\n data[\"roomId\"] = this.roomId;\n if (Array.isArray(this.extDevices)) {\n data[\"extDevices\"] = [];\n for (let item of this.extDevices)\n data[\"extDevices\"].push(item.toJSON());\n }\n data[\"roomObjectType\"] = this.roomObjectType;\n data[\"isNotFullyConfigured\"] = this.isNotFullyConfigured;\n data[\"isEdit\"] = this.isEdit;\n data[\"isApplyAllTemperatureVisualization\"] = this.isApplyAllTemperatureVisualization;\n data[\"isTemperatureDisplayed\"] = this.isTemperatureDisplayed;\n data[\"isCoolingVentilationEnabled\"] = this.isCoolingVentilationEnabled;\n data[\"isHeatingVentilationEnabled\"] = this.isHeatingVentilationEnabled;\n data[\"timeoutCoolingVentilation\"] = this.timeoutCoolingVentilation;\n data[\"timeoutHeatingVentilation\"] = this.timeoutHeatingVentilation;\n data[\"thermoOldInformation\"] = this.thermoOldInformation ? this.thermoOldInformation.toJSON() : undefined;\n if (Array.isArray(this.thermo)) {\n data[\"thermo\"] = [];\n for (let item of this.thermo)\n data[\"thermo\"].push(item.toJSON());\n }\n if (Array.isArray(this.tempAddressPumps)) {\n data[\"tempAddressPumps\"] = [];\n for (let item of this.tempAddressPumps)\n data[\"tempAddressPumps\"].push(item.toJSON());\n }\n return data; \n }\n}\n\nexport interface IThermoRoomObjectDTO {\n id?: string | undefined;\n name?: string | undefined;\n devices?: DeviceDTO[] | undefined;\n type?: RoomObjectType;\n thermoTypeOfObject?: ThermoTypeOfObject;\n thermoAssociatedPump?: ThermoAssociatedPump;\n actuatorModalityType?: ActuatorModalityType;\n heatingSystemControlType?: SystemControlType;\n coolingSystemControlType?: SystemControlType;\n sharedSystemControlType?: SystemControlType;\n configurationSteps?: number;\n nextStep?: number;\n objectDuplication?: ObjectDuplication;\n resetType?: ResetType;\n isApplyAllTemperatureRange?: boolean;\n heatingSetpointLow?: number;\n heatingSetpointHigh?: number;\n heatingAntifreeze?: number;\n coolingSetpointLow?: number;\n coolingSetpointHigh?: number;\n coolingThermalProtection?: number;\n isAutoCommutation?: boolean;\n isApplyAllCirculationPumpDelay?: boolean;\n delayHeatingPumps?: string;\n delayCoolingPumps?: string;\n isApplyAllCelsiusFahrenheit?: boolean;\n temperatureType?: TemperatureType;\n isApplyAllButtonsManagement?: boolean;\n areButtonsEnabled?: boolean;\n externalSensorType?: ExternalSensorType;\n isApplyAllBacklight?: boolean;\n isBacklightEnabled?: boolean;\n backlightLevel?: number;\n isManualHeatingOverrideEnabled?: boolean;\n heatingRegulationBand?: number;\n fanSpeed2ForHeating?: number;\n fanSpeed3ForHeating?: number;\n valvesTimeForHeatingFanCoil?: string;\n isManualCoolingOverrideEnabled?: boolean;\n coolingRegulationBand?: number;\n fanSpeed2ForCooling?: number;\n fanSpeed3ForCooling?: number;\n valvesTimeForCoolingFanCoil?: string;\n isApplyAllWindowsContact?: boolean;\n isIconAlwaysOff?: boolean;\n isLocalContactNumberEnabled?: boolean;\n numberOfWindowsContact?: number;\n openingContactTypeHeating?: ContactType;\n openingContactTempHeating?: number;\n openingContactDelayHeating?: string;\n timeoutOpeningHeating?: string;\n closingContactTypeHeating?: ContactType;\n closingContactTempHeating?: number;\n closingContactDelayHeating?: string;\n timeoutClosingHeating?: string;\n openingContactTypeCooling?: ContactType;\n openingContactTempCooling?: number;\n openingContactDelayCooling?: string;\n timeoutOpeningCooling?: string;\n closingContactTypeCooling?: ContactType;\n closingContactTempCooling?: number;\n closingContactDelayCooling?: string;\n timeoutClosingCooling?: string;\n isInterlockingExcluded?: boolean;\n isWaterCycleEnabled?: boolean;\n arePumpsOpenedAutomatically?: boolean;\n minutesToKeepOpen?: string;\n openAutomaticallyDaysDelay?: number;\n pumpsDelay?: string;\n thermoUKFanSpeed?: number;\n thermoUKFanSpeed2?: number;\n thermoUKFanSpeed3?: number;\n plantId?: string | undefined;\n roomId?: string | undefined;\n extDevices?: ExtDevice[] | undefined;\n roomObjectType?: RoomObjectType;\n isNotFullyConfigured?: boolean;\n isEdit?: boolean;\n isApplyAllTemperatureVisualization?: boolean;\n isTemperatureDisplayed?: boolean;\n isCoolingVentilationEnabled?: boolean;\n isHeatingVentilationEnabled?: boolean;\n timeoutCoolingVentilation?: string;\n timeoutHeatingVentilation?: string;\n thermoOldInformation?: ThermoOldInformation;\n thermo?: ThermoActuactor[] | undefined;\n tempAddressPumps?: AddressPumps[] | undefined;\n}\n\n/** 0 = None 1 = Heating 2 = Cooling 3 = HeatingAndCooling */\nexport enum ThermoTypeOfObject {\n None = 0,\n Heating = 1,\n Cooling = 2,\n HeatingAndCooling = 3,\n}\n\n/** 0 = Off 1 = Heat 2 = Cool 3 = Auto 4 = None */\nexport enum ThermostatStatus {\n Off = 0,\n Heat = 1,\n Cool = 2,\n Auto = 3,\n None = 4,\n}\n\nexport class TimeCondition extends Condition implements ITimeCondition {\n startTime?: string;\n endTime?: string;\n weekDays?: WeekDay[] | undefined;\n\n constructor(data?: ITimeCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.startTime = _data[\"startTime\"];\n this.endTime = _data[\"endTime\"];\n if (Array.isArray(_data[\"weekDays\"])) {\n this.weekDays = [] as any;\n for (let item of _data[\"weekDays\"])\n this.weekDays!.push(item);\n }\n }\n }\n\n static fromJS(data: any): TimeCondition {\n data = typeof data === 'object' ? data : {};\n let result = new TimeCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"startTime\"] = this.startTime;\n data[\"endTime\"] = this.endTime;\n if (Array.isArray(this.weekDays)) {\n data[\"weekDays\"] = [];\n for (let item of this.weekDays)\n data[\"weekDays\"].push(item);\n }\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface ITimeCondition extends ICondition {\n startTime?: string;\n endTime?: string;\n weekDays?: WeekDay[] | undefined;\n}\n\n/** 0 = None 1 = Onedirection 2 = Boththedirections */\nexport enum ToroidDirection {\n None = 0,\n Onedirection = 1,\n Boththedirections = 2,\n}\n\nexport class Version implements IVersion {\n readonly major?: number;\n readonly minor?: number;\n readonly build?: number;\n readonly revision?: number;\n readonly majorRevision?: number;\n readonly minorRevision?: number;\n\n constructor(data?: IVersion) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n (this).major = _data[\"major\"];\n (this).minor = _data[\"minor\"];\n (this).build = _data[\"build\"];\n (this).revision = _data[\"revision\"];\n (this).majorRevision = _data[\"majorRevision\"];\n (this).minorRevision = _data[\"minorRevision\"];\n }\n }\n\n static fromJS(data: any): Version {\n data = typeof data === 'object' ? data : {};\n let result = new Version();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"major\"] = this.major;\n data[\"minor\"] = this.minor;\n data[\"build\"] = this.build;\n data[\"revision\"] = this.revision;\n data[\"majorRevision\"] = this.majorRevision;\n data[\"minorRevision\"] = this.minorRevision;\n return data; \n }\n}\n\nexport interface IVersion {\n major?: number;\n minor?: number;\n build?: number;\n revision?: number;\n majorRevision?: number;\n minorRevision?: number;\n}\n\nexport class WaitTimeAction extends Action implements IWaitTimeAction {\n waitTime?: string;\n\n constructor(data?: IWaitTimeAction) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.waitTime = _data[\"waitTime\"];\n }\n }\n\n static fromJS(data: any): WaitTimeAction {\n data = typeof data === 'object' ? data : {};\n let result = new WaitTimeAction();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"waitTime\"] = this.waitTime;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWaitTimeAction extends IAction {\n waitTime?: string;\n}\n\nexport class WeatherCondition extends Condition implements IWeatherCondition {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n\n constructor(data?: IWeatherCondition) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.weatherStateComparer = _data[\"weatherStateComparer\"];\n this.weatherTemperature = _data[\"weatherTemperature\"];\n this.sceneWeatherModality = _data[\"sceneWeatherModality\"];\n this.weatherWindSpeed = _data[\"weatherWindSpeed\"];\n this.humidityPercentage = _data[\"humidityPercentage\"];\n this.sceneWeatherForecastState = _data[\"sceneWeatherForecastState\"];\n this.sceneWeatherCrepuscular = _data[\"sceneWeatherCrepuscular\"];\n }\n }\n\n static fromJS(data: any): WeatherCondition {\n data = typeof data === 'object' ? data : {};\n let result = new WeatherCondition();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"weatherStateComparer\"] = this.weatherStateComparer;\n data[\"weatherTemperature\"] = this.weatherTemperature;\n data[\"sceneWeatherModality\"] = this.sceneWeatherModality;\n data[\"weatherWindSpeed\"] = this.weatherWindSpeed;\n data[\"humidityPercentage\"] = this.humidityPercentage;\n data[\"sceneWeatherForecastState\"] = this.sceneWeatherForecastState;\n data[\"sceneWeatherCrepuscular\"] = this.sceneWeatherCrepuscular;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWeatherCondition extends ICondition {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n}\n\nexport class WeatherTrigger extends Trigger implements IWeatherTrigger {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n\n constructor(data?: IWeatherTrigger) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n this.weatherStateComparer = _data[\"weatherStateComparer\"];\n this.weatherTemperature = _data[\"weatherTemperature\"];\n this.sceneWeatherModality = _data[\"sceneWeatherModality\"];\n this.weatherWindSpeed = _data[\"weatherWindSpeed\"];\n this.humidityPercentage = _data[\"humidityPercentage\"];\n this.sceneWeatherForecastState = _data[\"sceneWeatherForecastState\"];\n this.sceneWeatherCrepuscular = _data[\"sceneWeatherCrepuscular\"];\n }\n }\n\n static fromJS(data: any): WeatherTrigger {\n data = typeof data === 'object' ? data : {};\n let result = new WeatherTrigger();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"weatherStateComparer\"] = this.weatherStateComparer;\n data[\"weatherTemperature\"] = this.weatherTemperature;\n data[\"sceneWeatherModality\"] = this.sceneWeatherModality;\n data[\"weatherWindSpeed\"] = this.weatherWindSpeed;\n data[\"humidityPercentage\"] = this.humidityPercentage;\n data[\"sceneWeatherForecastState\"] = this.sceneWeatherForecastState;\n data[\"sceneWeatherCrepuscular\"] = this.sceneWeatherCrepuscular;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IWeatherTrigger extends ITrigger {\n weatherStateComparer?: SceneStateComparer;\n weatherTemperature?: number;\n sceneWeatherModality?: SceneWeatherModality;\n weatherWindSpeed?: number;\n humidityPercentage?: number;\n sceneWeatherForecastState?: SceneWeatherForecastState;\n sceneWeatherCrepuscular?: SceneWeatherCrepuscular;\n}\n\n/** 0 = Monday 1 = Tuesday 2 = Wednesday 3 = Thursday 4 = Friday 5 = Saturday 6 = Sunday */\nexport enum WeekDay {\n Monday = 0,\n Tuesday = 1,\n Wednesday = 2,\n Thursday = 3,\n Friday = 4,\n Saturday = 5,\n Sunday = 6,\n}\n\nexport class XmeterExtDevice extends ExtDevice implements IXmeterExtDevice {\n readonly address?: string | undefined;\n\n constructor(data?: IXmeterExtDevice) {\n super(data);\n }\n\n init(_data?: any) {\n super.init(_data);\n if (_data) {\n (this).address = _data[\"address\"];\n }\n }\n\n static fromJS(data: any): XmeterExtDevice {\n data = typeof data === 'object' ? data : {};\n let result = new XmeterExtDevice();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"address\"] = this.address;\n super.toJSON(data);\n return data; \n }\n}\n\nexport interface IXmeterExtDevice extends IExtDevice {\n address?: string | undefined;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n if (result !== null && result !== undefined)\n throw result;\n else\n throw new ApiException(message, status, response, headers, null);\n}\n\nfunction isAxiosError(obj: any | undefined): obj is AxiosError {\n return obj && obj.isAxiosError === true;\n}","module.exports = __webpack_public_path__ + \"img/apt-2@3x.8d09eb74.jpg\";","module.exports = __webpack_public_path__ + \"img/apt-1.0233ee25.jpg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./TheSidebar.scss?vue&type=style&index=0&lang=scss\"","import { resolveComponent as _resolveComponent, createVNode as _createVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"layout-main__container\" }\nconst _hoisted_2 = { class: \"layout-main__content\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_TheHeader = _resolveComponent(\"TheHeader\")\n const _component_router_view = _resolveComponent(\"router-view\")\n const _component_ElScrollbar = _resolveComponent(\"ElScrollbar\")\n const _component_TheSidebar = _resolveComponent(\"TheSidebar\")\n const _component_Toast = _resolveComponent(\"Toast\")\n\n return (_openBlock(), _createBlock(\"div\", {\n class: [\"layout-main\", [_ctx.routeName, _ctx.showSidebar ? 'has--sidebar' : null]]\n }, [\n _createVNode(_component_TheHeader, { class: \"layout-main__header\" }),\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(_component_ElScrollbar, null, {\n default: _withCtx(() => [\n _createVNode(\"main\", _hoisted_2, [\n _createVNode(_component_router_view)\n ])\n ]),\n _: 1\n }),\n (_ctx.showSidebar)\n ? (_openBlock(), _createBlock(_component_TheSidebar, {\n key: 0,\n class: \"layout-main__nav\"\n }))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_Toast, {\n position: \"top-center\",\n class: \"layout-main__toasts\"\n })\n ])\n ], 2))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, withModifiers as _withModifiers, vShow as _vShow, withDirectives as _withDirectives, mergeProps as _mergeProps, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"fs-12 text-gray ml-2\" }\nconst _hoisted_2 = { class: \"navbar-nav ml-auto\" }\nconst _hoisted_3 = { class: \"nav-item\" }\nconst _hoisted_4 = { class: \"nav-link__icon bt-icon\" }\nconst _hoisted_5 = { class: \"nav-link__label\" }\nconst _hoisted_6 = { class: \"nav-item\" }\nconst _hoisted_7 = {\n class: \"nav-link\",\n to: \"\"\n}\nconst _hoisted_8 = { class: \"nav-link__icon bt-icon\" }\nconst _hoisted_9 = { class: \"nav-link__label\" }\nconst _hoisted_10 = { class: \"bt-icon bt-icon--sm mr-3 text-gray\" }\nconst _hoisted_11 = { class: \"nav-item\" }\nconst _hoisted_12 = { class: \"nav-link\" }\nconst _hoisted_13 = { class: \"nav-link__icon bt-icon\" }\nconst _hoisted_14 = { class: \"nav-link__label\" }\nconst _hoisted_15 = { class: \"btn-stripped\" }\nconst _hoisted_16 = { class: \"btn-stripped\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_router_link = _resolveComponent(\"router-link\")\n const _component_ElDropdownItem = _resolveComponent(\"ElDropdownItem\")\n const _component_ElDropdownMenu = _resolveComponent(\"ElDropdownMenu\")\n const _component_ElDropdown = _resolveComponent(\"ElDropdown\")\n const _component_DialogReportProblem = _resolveComponent(\"DialogReportProblem\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n _createVNode(\"header\", _mergeProps(_ctx.$attrs, { class: \"navbar navbar--main navbar-expand-lg\" }), [\n _createVNode(_component_router_link, {\n class: \"navbar-brand text-uppercase\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/logo.svg`),\n class: \"mr-2\"\n }, null, 8, [\"src\"]),\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/logo-text-min.svg`)\n }, null, 8, [\"src\"]),\n _createVNode(\"small\", _hoisted_1, _toDisplayString(_ctx.version), 1)\n ]),\n _: 1\n }),\n _createVNode(\"ul\", _hoisted_2, [\n _createVNode(\"li\", _hoisted_3, [\n _createVNode(_component_router_link, {\n class: \"nav-link\",\n to: { name: 'page-plants-list' }\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_4, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-plants.svg`)\n ,\n \"aria-label\": \"icon-plants\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\"AppResource.Plants\")), 1)\n ]),\n _: 1\n })\n ]),\n _createVNode(\"li\", _hoisted_6, [\n _createVNode(_component_ElDropdown, {\n trigger: \"click\",\n placement: \"bottom-end\",\n \"popper-class\": \"el-dropdown__popper el-dropdown--context\"\n }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, { style: {\"width\":\"240px\"} }, {\n default: _withCtx(() => [\n _createVNode(_component_ElDropdownItem, null, {\n default: _withCtx(() => [\n _createVNode(\"button\", {\n class: \"btn-stripped d-flex align-items-center\",\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.toggleReportProblemDialog && _ctx.toggleReportProblemDialog(...args)))\n }, [\n _createVNode(\"span\", _hoisted_10, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require('@/assets/images/icons/icon-mail.svg')\n ,\n \"aria-label\": \"icon-report_a_problem\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", null, _toDisplayString(_ctx.$t(\"AppResource.ReportaProblem\")), 1)\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"span\", _hoisted_8, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-setting.svg`)\n ,\n \"aria-label\": \"icon-setting\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t(\"AppResource.Settings\")), 1)\n ])\n ]),\n _: 1\n })\n ]),\n _createVNode(\"li\", _hoisted_11, [\n _createVNode(_component_ElDropdown, { trigger: \"click\" }, {\n dropdown: _withCtx(() => [\n _createVNode(_component_ElDropdownMenu, null, {\n default: _withCtx(() => [\n _withDirectives(_createVNode(_component_ElDropdownItem, {\n onClick: _withModifiers(_ctx.toggleDialogProfile, [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t(\"AppResource.Profile\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]), [\n [_vShow, _ctx.profilePageEnabled]\n ]),\n _createVNode(_component_ElDropdownItem, {\n onClick: _withModifiers(_ctx.logout, [\"stop\"])\n }, {\n default: _withCtx(() => [\n _createVNode(\"button\", _hoisted_16, _toDisplayString(_ctx.$t(\"AppResource.SignOut\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ]),\n _: 1\n })\n ]),\n default: _withCtx(() => [\n _createVNode(\"div\", _hoisted_12, [\n _createVNode(\"span\", _hoisted_13, [\n _createVNode(_component_InlineSvgScoped, {\n src: \n require(`@/assets/images/icons/icon-profile.svg`)\n \n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t(\"AppResource.Profile\")), 1)\n ])\n ]),\n _: 1\n })\n ])\n ])\n ], 16),\n _createVNode(_component_DialogReportProblem, {\n \"is-visible\": _ctx.isVisibleDialogReportProblem,\n onHideDialog: _ctx.toggleReportProblemDialog\n }, null, 8, [\"is-visible\", \"onHideDialog\"]),\n _createVNode(_component_Dialog, {\n visible: _ctx.isVisibleDialogProfile,\n \"onUpdate:visible\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.isVisibleDialogProfile = $event)),\n header: _ctx.$t('AppResource.Profile'),\n modal: \"\"\n }, {\n default: _withCtx(() => [\n _createVNode(\"iframe\", {\n height: \"800\",\n width: \"800\",\n src: _ctx.iframeProfileSrc\n }, null, 8, [\"src\"])\n ]),\n _: 1\n }, 8, [\"visible\", \"header\"])\n ], 64))\n}","import { resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bt-icon text-primary\" }\nconst _hoisted_2 = { class: \"dialog-confirm__title\" }\nconst _hoisted_3 = { class: \"dialog-confirm__message\" }\nconst _hoisted_4 = { class: \"w-100 mb-4\" }\nconst _hoisted_5 = { class: \"p-field\" }\nconst _hoisted_6 = {\n class: \"p-field-label fs-12 text-gray\",\n for: \"problem-message\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createVNode(\"hr\", null, null, -1)\nconst _hoisted_8 = { class: \"dialog-confirm__footer\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSvgScoped = _resolveComponent(\"InlineSvgScoped\")\n const _component_Textarea = _resolveComponent(\"Textarea\")\n const _component_Button = _resolveComponent(\"Button\")\n const _component_Dialog = _resolveComponent(\"Dialog\")\n\n return (_openBlock(), _createBlock(_component_Dialog, {\n visible: _ctx.isDialogVisible,\n \"onUpdate:visible\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.isDialogVisible = $event)),\n onHide: _ctx.doHideDialog,\n modal: true,\n showHeader: false,\n closable: false,\n class: \"dialog-confirm\",\n style: {\"width\":\"450px\"}\n }, {\n default: _withCtx(() => [\n _createVNode(\"span\", _hoisted_1, [\n _createVNode(_component_InlineSvgScoped, {\n src: require(`@/assets/images/icons/icon-mail.svg`),\n \"aria-label\": \"icon-mail\"\n }, null, 8, [\"src\"])\n ]),\n _createVNode(\"h5\", _hoisted_2, _toDisplayString(_ctx.$t(\"AppResource.ReportaProblem\")), 1),\n _createVNode(\"p\", _hoisted_3, _toDisplayString(_ctx.$t(\"AppResource.ReportInfo\")), 1),\n _createVNode(\"form\", _hoisted_4, [\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", _hoisted_6, _toDisplayString(_ctx.$t(\"AppResource.DescribeTheProblem\")), 1),\n _createVNode(_component_Textarea, {\n id: \"problem-message\",\n class: \"w-100 text-dark\",\n rows: \"5\",\n modelValue: _ctx.theMessage,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => (_ctx.theMessage = $event))\n }, null, 8, [\"modelValue\"])\n ])\n ]),\n _hoisted_7,\n _createVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Button, {\n class: \"p-button-text p-button-secondary text-uppercase mr-2\",\n onClick: _ctx.handleHideDialog\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.Cancel\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"]),\n _createVNode(_component_Button, {\n class: \"p-button-rounded p-button--m\",\n onClick: _ctx.sendMessage\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(\"AppResource.SendUpper\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])\n ])\n ]),\n _: 1\n }, 8, [\"visible\", \"onHide\"]))\n}","/* tslint:disable */\n/* eslint-disable */\n//----------------------\n// \n// Generated using the NSwag toolchain v13.13.2.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\n// \n//----------------------\n// ReSharper disable InconsistentNaming\n\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelToken } from 'axios';\n\nexport class Client {\n private instance: AxiosInstance;\n private baseUrl: string;\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\n\n constructor(baseUrl?: string, instance?: AxiosInstance) {\n this.instance = instance ? instance : axios.create();\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"\";\n }\n\n /**\n * (Auth)\n * @param body (optional) \n * @return Success\n */\n log(body: GraylogMessageDTO | undefined , cancelToken?: CancelToken | undefined): Promise {\n let url_ = this.baseUrl + \"/graylog/log\";\n url_ = url_.replace(/[?&]$/, \"\");\n\n const content_ = JSON.stringify(body);\n\n let options_ = {\n data: content_,\n method: \"POST\",\n url: url_,\n headers: {\n \"Content-Type\": \"application/json-patch+json\",\n },\n cancelToken\n };\n\n return this.instance.request(options_).catch((_error: any) => {\n if (isAxiosError(_error) && _error.response) {\n return _error.response;\n } else {\n throw _error;\n }\n }).then((_response: AxiosResponse) => {\n return this.processLog(_response);\n });\n }\n\n protected processLog(response: AxiosResponse): Promise {\n const status = response.status;\n let _headers: any = {};\n if (response.headers && typeof response.headers === \"object\") {\n for (let k in response.headers) {\n if (response.headers.hasOwnProperty(k)) {\n _headers[k] = response.headers[k];\n }\n }\n }\n if (status === 200) {\n const _responseText = response.data;\n return Promise.resolve(null);\n } else if (status === 401) {\n const _responseText = response.data;\n return throwException(\"Unauthorized\", status, _responseText, _headers);\n } else if (status === 403) {\n const _responseText = response.data;\n return throwException(\"Forbidden\", status, _responseText, _headers);\n } else if (status !== 200 && status !== 204) {\n const _responseText = response.data;\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\n }\n return Promise.resolve(null);\n }\n}\n\nexport class GraylogMessageDTO implements IGraylogMessageDTO {\n userMessage?: string | undefined;\n logs?: string[] | undefined;\n frontendVersion?: string | undefined;\n\n constructor(data?: IGraylogMessageDTO) {\n if (data) {\n for (var property in data) {\n if (data.hasOwnProperty(property))\n (this)[property] = (data)[property];\n }\n }\n }\n\n init(_data?: any) {\n if (_data) {\n this.userMessage = _data[\"userMessage\"];\n if (Array.isArray(_data[\"logs\"])) {\n this.logs = [] as any;\n for (let item of _data[\"logs\"])\n this.logs!.push(item);\n }\n this.frontendVersion = _data[\"frontendVersion\"];\n }\n }\n\n static fromJS(data: any): GraylogMessageDTO {\n data = typeof data === 'object' ? data : {};\n let result = new GraylogMessageDTO();\n result.init(data);\n return result;\n }\n\n toJSON(data?: any) {\n data = typeof data === 'object' ? data : {};\n data[\"userMessage\"] = this.userMessage;\n if (Array.isArray(this.logs)) {\n data[\"logs\"] = [];\n for (let item of this.logs)\n data[\"logs\"].push(item);\n }\n data[\"frontendVersion\"] = this.frontendVersion;\n return data; \n }\n}\n\nexport interface IGraylogMessageDTO {\n userMessage?: string | undefined;\n logs?: string[] | undefined;\n frontendVersion?: string | undefined;\n}\n\nexport class ApiException extends Error {\n message: string;\n status: number;\n response: string;\n headers: { [key: string]: any; };\n result: any;\n\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\n super();\n\n this.message = message;\n this.status = status;\n this.response = response;\n this.headers = headers;\n this.result = result;\n }\n\n protected isApiException = true;\n\n static isApiException(obj: any): obj is ApiException {\n return obj.isApiException === true;\n }\n}\n\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\n if (result !== null && result !== undefined)\n throw result;\n else\n throw new ApiException(message, status, response, headers, null);\n}\n\nfunction isAxiosError(obj: any | undefined): obj is AxiosError {\n return obj && obj.isAxiosError === true;\n}","import { Client } from '@/../client-generator/generated-clients/graylog';\nimport axios from 'axios';\n\nconst graylogClient = new Client('', axios);\n\nexport default graylogClient;\n","import graylogClient from '@/core/services/graylog-service';\nimport globalErrors from '@/core/utils/global-errors';\nimport { GraylogMessageDTO } from '@/../client-generator/generated-clients/graylog';\nimport { Vue, Options } from 'vue-class-component';\nimport { SET_APP_LOADING } from '@/core/store/action-types';\n\n@Options({\n name: 'DialogReportProblem',\n props: {\n isVisible: {\n type: Boolean,\n required: true,\n },\n },\n watch: {\n isVisible: function (newValue) {\n this.isDialogVisible = newValue;\n this.theMessage = '';\n },\n },\n emits: ['hide-dialog'],\n})\nexport default class DialogReportProblem extends Vue {\n isVisible!: boolean;\n isDialogVisible = false;\n theMessage = '';\n\n mounted() {\n this.isDialogVisible = this.isVisible;\n }\n\n handleHideDialog() {\n this.isDialogVisible = false;\n }\n\n doHideDialog() {\n this.$emit('hide-dialog');\n }\n\n async sendMessage() {\n const logs = [...globalErrors.getBuffer()];\n\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n await graylogClient.log(\n new GraylogMessageDTO({\n userMessage: this.theMessage,\n logs,\n frontendVersion: this.$config.FRONTEND_VERSION,\n })\n );\n this.handleHideDialog();\n } catch (error) {\n console.log(error);\n } finally {\n this.$store.dispatch(SET_APP_LOADING, false);\n }\n }\n}\n","import { render } from \"./DialogReportProblem.vue?vue&type=template&id=f93a3e82&ts=true\"\nimport script from \"./DialogReportProblem.ts?vue&type=script&lang=ts\"\nexport * from \"./DialogReportProblem.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Vue, Options } from 'vue-class-component';\nimport { SET_ACCOUNT, SET_APP_LOADING } from '@/core/store/action-types';\n\nimport DialogReportProblem from './DialogReportProblem/DialogReportProblem.vue';\nimport { mapGetters } from 'vuex';\n\n@Options({\n name: 'TheHeader',\n components: {\n DialogReportProblem,\n },\n computed: {\n ...mapGetters('UI', ['profilePageEnabled']),\n },\n})\nexport default class TheHeader extends Vue {\n isVisibleDialogReportProblem = false;\n isVisibleDialogProfile = false\n \n get version() {\n return this.$config.FRONTEND_VERSION;\n }\n\n get iframeProfileSrc () {\n return this.$config.PROFILE_URL;\n }\n\n changePassword() {\n alert('TBD');\n }\n\n async logout() {\n this.$store.dispatch(SET_APP_LOADING, true);\n try {\n this.$store.dispatch(SET_ACCOUNT, null);\n\n import(/* webpackChunkName: \"auth-service\" */ '@/core/services/auth.service')\n .then(async (authService: any) => {\n await authService.default.logout();\n });\n } catch (error) {\n console.log(error);\n } finally {\n this.$store.dispatch(SET_APP_LOADING, true);\n }\n }\n\n toggleReportProblemDialog() {\n this.isVisibleDialogReportProblem = !this.isVisibleDialogReportProblem;\n }\n\n toggleDialogProfile() {\n this.isVisibleDialogProfile = !this.isVisibleDialogProfile\n }\n}\n","import { render } from \"./TheHeader.vue?vue&type=template&id=7e452b8e&ts=true\"\nimport script from \"./TheHeader.ts?vue&type=script&lang=ts\"\nexport * from \"./TheHeader.ts?vue&type=script&lang=ts\"\n\nimport \"./TheHeader.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_MegaMenu = _resolveComponent(\"MegaMenu\")\n\n return (_openBlock(), _createBlock(\"nav\", {\n id: \"sidebarMenu\",\n class: [\"sidebar-main\", { 'is--expanded': _ctx.isSidebarExpanded }]\n }, [\n _createVNode(_component_MegaMenu, {\n model: _ctx.menuItemsContextual,\n orientation: \"vertical\",\n class: \"sidebar-main__menu-contextual\"\n }, null, 8, [\"model\"])\n ], 2))\n}","import { Vue, Options } from 'vue-class-component';\nimport Menu from 'primevue/menu';\nimport MegaMenu from 'primevue/megamenu';\nimport { mapState } from 'vuex';\nimport { SET_SIDEBAR_EXPANDED } from '@/core/store/action-types';\n\n@Options({\n name: 'TheSidebar',\n components: {\n Menu,\n MegaMenu,\n },\n computed: {\n ...mapState(['menuItemsContextual', 'isSidebarExpanded']),\n },\n})\nexport default class TheSidebar extends Vue {\n isSidebarExpanded!: boolean;\n\n toggleSidebarExpand(doShow: boolean) {\n this.$store.dispatch(SET_SIDEBAR_EXPANDED, doShow);\n }\n}\n","import { render } from \"./TheSidebar.vue?vue&type=template&id=16333a97&ts=true\"\nimport script from \"./TheSidebar.ts?vue&type=script&lang=ts\"\nexport * from \"./TheSidebar.ts?vue&type=script&lang=ts\"\n\nimport \"./TheSidebar.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { Vue, Options } from 'vue-class-component';\nimport Toast from 'primevue/toast';\n\nimport TheHeader from '../TheHeader/TheHeader.vue';\nimport TheSidebar from '../TheSidebar/TheSidebar.vue';\n\n@Options({\n name: 'MainContainer',\n components: {\n TheHeader,\n TheSidebar,\n Toast,\n },\n})\nexport default class MainContainer extends Vue {\n get routeName() {\n return this.$route.name;\n }\n\n get showSidebar() {\n const currentRoute: string = this.routeName?.toString() ?? '';\n return !currentRoute?.includes('plants');\n }\n}\n","import { render } from \"./MainContainer.vue?vue&type=template&id=628bcec3&ts=true\"\nimport script from \"./MainContainer.ts?vue&type=script&lang=ts\"\nexport * from \"./MainContainer.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import MainContainer from '@/views/containers/MainContainer/MainContainer.vue';\nimport { RouteRecordRaw } from 'vue-router';\n\nconst APP_TITLE = 'MX';\n\nconst PlantsHub = () =>\n import(\n /* webpackChunkName: \"page-plants-hub\" */ '@/views/pages/PlantsHub/PlantsHub.vue'\n );\nconst PlantsListPage = () =>\n import(\n /* webpackChunkName: \"page-plants-list\" */ '@/views/pages/PlantsHub/PlantsList/PlantsList.vue'\n );\nconst PlantDetailHub = () =>\n import(\n /* webpackChunkName: \"page-plant-detail\" */ '@/views/pages/PlantDetail/PlantDetail.vue'\n );\nconst PlantDashboardPage = () =>\n import(\n /* webpackChunkName: \"page-plant-dashboard\" */ '@/views/pages/PlantDetail/PlantDashboard/PlantDashboard.vue'\n );\nconst PlantDevicesPage = () =>\n import(\n /* webpackChunkName: \"page-plant-devices\" */ '@/views/pages/PlantDetail/PlantDevices/PlantDevices.vue'\n );\nconst PlantSettingsPage = () =>\n import(\n /* webpackChunkName: \"page-plant-c300eos-settings\" */ '@/views/pages/PlantDetail/PlantC300EOSSettings/PlantC300EOSSettings.vue'\n );\nconst PlantRoomPage = () =>\n import(\n /* webpackChunkName: \"page-plant-room\" */ '@/views/pages/PlantDetail/PlantRoom/PlantRoom.vue'\n );\nconst AutomationWizardPage = () =>\n import(\n /* webpackChunkName: \"page-assign-room-object\" */ '@/views/pages/PlantDetail/PlantRoom/AutomationWizard/AutomationWizard.vue'\n );\nconst ThermoWizardPage = () =>\n import(\n /* webpackChunkName: \"page-assign-thermo-room-object\" */ '@/views/pages/PlantDetail/PlantRoom/ThermoWizard/ThermoWizard.vue'\n );\nconst LoggedOutPage = () =>\n import(\n /* webpackChunkName: \"page-logged-out\" */ '@/views/pages/LoggedOut/LoggedOut.vue'\n );\nconst UserNotAllowedPage = () =>\n import(\n /* webpackChunkName: \"page-user-not-allowed\" */ '@/views/pages/UserNotAllowed/UserNotAllowed.vue'\n );\nconst CommandsGroupsPage = () =>\n import(\n /* webpackChunkName: \"page-commands-groups\" */ '@/views/pages/PlantDetail/CommandsGroups/CommandsGroups.vue'\n );\nconst CommandWizard = () =>\n import(\n /* webpackChunkName: \"page-wizard-command\" */ '@/views/pages/PlantDetail/CommandsGroups/CommandWizard/CommandWizard.vue'\n );\nconst PlantScenesPage = () =>\n import(\n /* webpackChunkName: \"page-plant-scenes\" */ '@/views/pages/PlantDetail/PlantScenes/PlantScenes.vue'\n );\nconst SceneWizard = () =>\n import(\n /* webpackChunkName: \"page-wizard-scene\" */ '@/views/pages/PlantDetail/PlantScenes/SceneWizard/SceneWizard.vue'\n );\nconst PlantAlarmSystem = () =>\n import(\n /* webpackChunkName: \"page-plant-alarmsystem\" */ '@/views/pages/PlantDetail/PlantAlarmSystem/PlantAlarmSystem.vue'\n );\nconst EntrancePlantDetailHub = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-detail\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantDetail.vue'\n );\nconst EntrancePlantDashboardPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-dashboard\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantDashboard/EntrancePlantDashboard.vue'\n );\nconst EntrancePlantGatePage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-gate\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantGate/EntrancePlantGate.vue'\n );\nconst EntrancePlantStructurePage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-structure\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantStructure/EntrancePlantStructure.vue'\n );\n// const EntrancePlantSettingsPage = () =>\n// import(\n// /* webpackChunkName: \"page-entranceplant-settings\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantSettings/EntrancePlantSettings.vue'\n// );\nconst EntrancePlantResidentsPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-reisdents\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantResidents/EntrancePlantResidents.vue'\n );\nconst EntrancePlantGuestsPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-guests\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantGuests/EntrancePlantGuests.vue'\n );\n// const EntrancePlantMessagesPage = () =>\n// import(\n// /* webpackChunkName: \"page-entranceplant-messages\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantMessages/EntrancePlantMessages.vue'\n// );\nconst EntrancePlantBadgesPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-badges\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantBadges/EntrancePlantBadges.vue'\n );\nconst EntrancePlantSwitchboardsPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-switchboards\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantSwitchboards/EntrancePlantSwitchboards.vue'\n );\nconst EntrancePlantStructureBuildingPage = () =>\n import(\n /* webpackChunkName: \"page-entranceplant-structure-building\" */ '@/views/pages/EntrancePlantDetail/EntrancePlantStructure/EntrancePlantStructureBuilding/EntrancePlantStructureBuilding.vue'\n );\n\nconst routes: RouteRecordRaw[] = [\n {\n path: '/',\n name: 'main-container',\n redirect: { name: 'page-plants-hub' },\n component: MainContainer,\n beforeEnter: () => {},\n children: [\n {\n path: '/plants',\n name: 'page-plants-hub',\n component: PlantsHub,\n redirect: '/plants/list',\n meta: {\n title: `${APP_TITLE} - Plant list`,\n },\n children: [\n {\n path: 'list',\n name: 'page-plants-list',\n component: PlantsListPage,\n },\n {\n path: 'favourites',\n name: 'page-plants-favourites',\n component: PlantsListPage,\n },\n {\n path: 'staff',\n name: 'page-plants-staff',\n component: PlantsListPage,\n },\n {\n path: 'users',\n name: 'page-plants-users',\n component: PlantsListPage,\n },\n {\n path: 'edit',\n name: 'page-plants-edit',\n component: PlantsListPage,\n },\n ],\n },\n {\n path: '/plant/:plantId',\n name: 'page-plant-detail',\n component: PlantDetailHub,\n redirect: (to) => {\n return {\n name: 'page-plant-dashboard',\n params: to.params,\n };\n },\n meta: {\n requiresPlant: true,\n title: `${APP_TITLE} - Plant detail`,\n },\n children: [\n {\n path: 'dashboard',\n name: 'page-plant-dashboard',\n component: PlantDashboardPage,\n },\n {\n path: 'room/:roomId',\n name: 'page-plant-room',\n component: PlantRoomPage,\n },\n {\n path: 'devices',\n name: 'page-plant-devices',\n component: PlantDevicesPage,\n },\n {\n path: 'settings',\n name: 'page-plant-settings',\n component: PlantSettingsPage,\n },\n {\n path: 'rooms/:roomId/room-objects/:roomObjectId',\n name: 'page-assign-room-object',\n component: AutomationWizardPage,\n },\n {\n path: 'rooms/:roomId/room-objects/thermo/:roomObjectId',\n name: 'page-assign-thermo-room-object',\n component: ThermoWizardPage,\n },\n {\n path: 'commands-groups',\n name: 'page-commands-groups',\n component: CommandsGroupsPage,\n },\n {\n path: 'commands-groups/command-wizard/:id?',\n name: 'page-command-wizard',\n component: CommandWizard,\n },\n {\n path: 'scenes',\n name: 'page-plant-scenes',\n component: PlantScenesPage,\n },\n {\n path: 'scenes/wizard/:id?',\n name: 'page-scene-wizard',\n component: SceneWizard,\n },\n {\n path: 'alarmsystem',\n name: 'page-plant-alarmsystem',\n component: PlantAlarmSystem,\n },\n ],\n },\n {\n path: '/entranceplant/:plantId',\n name: 'page-entranceplant-detail',\n component: EntrancePlantDetailHub,\n redirect: (to) => {\n return {\n name: 'page-entranceplant-dashboard',\n params: to.params,\n };\n },\n meta: {\n requiresPlant: true,\n title: `${APP_TITLE} - Plant detail`,\n },\n children: [\n {\n path: 'dashboard',\n name: 'page-entranceplant-dashboard',\n component: EntrancePlantDashboardPage,\n },\n {\n path: 'gate/:gateId',\n name: 'page-entranceplant-gate',\n component: EntrancePlantGatePage,\n },\n {\n path: 'structure',\n name: 'page-entranceplant-structure',\n component: EntrancePlantStructurePage,\n },\n {\n path: 'structure/:buildingId',\n name: 'page-entranceplant-structure-building',\n component: EntrancePlantStructureBuildingPage,\n },\n // {\n // path: 'settings',\n // name: 'page-entranceplant-settings',\n // component: EntrancePlantSettingsPage,\n // },\n {\n path: 'residents',\n name: 'page-entranceplant-residents',\n component: EntrancePlantResidentsPage,\n },\n {\n path: 'guests',\n name: 'page-entranceplant-guests',\n component: EntrancePlantGuestsPage,\n },\n // {\n // path: 'messages',\n // name: 'page-entranceplant-messages',\n // component: EntrancePlantMessagesPage,\n // },\n {\n path: 'badges',\n name: 'page-entranceplant-badges',\n component: EntrancePlantBadgesPage,\n },\n {\n path: 'switchboards',\n name: 'page-entranceplant-switchboards',\n component: EntrancePlantSwitchboardsPage,\n },\n ],\n },\n ],\n },\n {\n path: '/logged-out',\n name: 'page-logged-out',\n component: LoggedOutPage,\n meta: {\n title: `${APP_TITLE} - logout`,\n },\n },\n {\n path: '/user-not-allowed',\n name: 'page-user-not-allowed',\n component: UserNotAllowedPage,\n meta: {\n title: `${APP_TITLE} - User not allowed`,\n },\n },\n];\n\nexport default routes;\n","import { createRouter, createWebHistory } from 'vue-router';\nimport { SET_SIDEBAR_EXPANDED } from '../store/action-types';\nimport store from '../store/store';\nimport routes from './routes';\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nrouter.afterEach(async (to) => {\n store.dispatch(SET_SIDEBAR_EXPANDED, false);\n document.title = to.meta.title as string;\n});\n\nrouter.beforeEach(async (to, from, next) => {\n const requiresPlant = to.matched.some((record) => record.meta.requiresPlant);\n\n if (requiresPlant && !to.params.plantId ) {\n next('/');\n } else {\n next();\n }\n});\n\nexport default router;\n","module.exports = __webpack_public_path__ + \"img/logo-text-min.31203def.svg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_3@3x.4a63ba58.jpg\";","module.exports = __webpack_public_path__ + \"img/house-2@2x.13a2d74a.jpg\";","import { AccountInfo, PublicClientApplication } from '@azure/msal-browser';\nimport store from '../store/store';\nimport { SET_ACCOUNT } from '../store/action-types';\n\nconst LOGOUT_IN_PROGRESS = 'logout_in_progress';\n\nlet $msalInstance: PublicClientApplication | null = null;\nlet $scopes: string[] = [];\n\nconst service = {\n $msalInstance,\n init() {\n const config = (window as any).appConfig;\n $msalInstance = new PublicClientApplication({\n auth: {\n clientId: config.AZUREABB2C_CLIENTID as string,\n authority: config.AZUREADB2C_AUTHORITY,\n knownAuthorities: [config.AZUREADB2C_KNOWN_AUTHORITY],\n },\n cache: {\n cacheLocation: 'localStorage',\n storeAuthStateInCookie: false,\n },\n });\n $scopes = ['openid', 'offline_access', config.AZUREABB2C_FULL_ACCESS_SCOPE];\n },\n async handleRedirectPromise() {\n let outcome: boolean | string = false;\n\n const loggingOut = window.localStorage.getItem(LOGOUT_IN_PROGRESS);\n\n if (loggingOut) {\n window.localStorage.removeItem(LOGOUT_IN_PROGRESS);\n return 'logged_out';\n }\n\n try {\n const result = await $msalInstance?.handleRedirectPromise();\n\n if (result != null) {\n store.dispatch(SET_ACCOUNT, this.getAccount());\n outcome = true;\n } else {\n try {\n await this.getToken();\n outcome = true;\n } catch {\n outcome = false;\n }\n }\n } catch (error) {\n if (error.errorCode == 'invalid_grant') {\n $msalInstance?.acquireTokenRedirect({\n scopes: $scopes as string[],\n redirectUri: this.getHostname(),\n });\n }\n store.dispatch(SET_ACCOUNT, null);\n // Handle redirect error\n console.log(error);\n outcome = false;\n }\n\n return outcome;\n },\n getAccount(): AccountInfo | undefined {\n const accounts = $msalInstance?.getAllAccounts();\n\n if (!accounts || accounts.length === 0) {\n return undefined;\n } else {\n return accounts[0];\n }\n },\n getHostname() {\n return window.location.protocol + '//' + window.location.host;\n },\n getToken() {\n return new Promise((resolve, reject) => {\n let hostname = this.getHostname();\n\n try {\n const account = this.getAccount();\n\n $msalInstance\n ?.acquireTokenSilent({\n scopes: $scopes as string[],\n account,\n forceRefresh: false,\n })\n .then((tokenResponse) => {\n store.dispatch(SET_ACCOUNT, account);\n //TODO: set a timeout to renew token if now api will be called in the while\n resolve(tokenResponse.accessToken);\n })\n .catch(() => {\n hostname = this.getHostname();\n\n $msalInstance?.acquireTokenRedirect({\n scopes: $scopes as string[],\n redirectUri: hostname,\n });\n reject();\n });\n } catch {\n $msalInstance?.acquireTokenRedirect({\n scopes: $scopes as string[],\n redirectUri: hostname,\n });\n reject();\n }\n });\n },\n logout() {\n window.localStorage.setItem(LOGOUT_IN_PROGRESS, Date.now().toString());\n return $msalInstance?.logoutRedirect({\n account: store.state.account as AccountInfo,\n });\n },\n};\n\nexport default service;\n","// @ts-nocheck\n/**\n * A lightweight, fixed-size value buffer.\n */\nexport class NanoBuffer {\n /**\n * Creates a `NanoBuffer` instance.\n *\n * @param {Number} [maxSize=10] - The initial buffer size.\n */\n constructor(maxSize = 10) {\n if (typeof maxSize !== 'number') {\n throw new TypeError('Expected maxSize to be a number');\n }\n\n if (isNaN(maxSize) || maxSize < 0) {\n throw new RangeError('Expected maxSize to be zero or greater');\n }\n\n /**\n * The buffer where the values are stored.\n * @type {Array}\n * @access private\n */\n this._buffer = Array(maxSize | 0);\n\n /**\n * The index of the newest value in the buffer.\n * @type {Number}\n * @access private\n */\n this._head = 0;\n\n /**\n * The maximum number of values to store in the buffer.\n * @type {Number}\n * @access private\n */\n this._maxSize = maxSize;\n\n /**\n * The number of values in the buffer.\n * @type {Number}\n * @access private\n */\n this._size = 0;\n }\n\n /**\n * Returns the index of the newest value in the buffer.\n *\n * @returns {Number}\n * @access public\n */\n get head() {\n return this._head;\n }\n\n /**\n * Returns the maximum number of values in the buffer.\n *\n * @returns {Number}\n * @access public\n */\n get maxSize() {\n return this._maxSize;\n }\n\n /**\n * Changes the maximum number of values allowed in the buffer.\n *\n * @param {Number} newMaxSize - The new max size of the buffer.\n * @access public\n */\n set maxSize(newMaxSize) {\n if (typeof newMaxSize !== 'number') {\n throw new TypeError('Expected new max size to be a number');\n }\n\n if (isNaN(newMaxSize) || newMaxSize < 0) {\n throw new RangeError('Expected new max size to be zero or greater');\n }\n\n if (newMaxSize === this._maxSize) {\n // nothing to do\n return;\n }\n\n // somewhat lazy, but we create a new buffer, then manually copy\n // ourselves into it, then steal back the internal values\n const tmp = new NanoBuffer(newMaxSize);\n for (const value of this) {\n tmp.push(value);\n }\n\n this._buffer = tmp._buffer;\n this._head = tmp._head;\n this._maxSize = tmp._maxSize;\n this._size = tmp._size;\n\n tmp._buffer = null;\n }\n\n /**\n * Returns the number of values in the buffer.\n *\n * @returns {Number}\n * @access public\n */\n get size() {\n return this._size;\n }\n\n /**\n * Inserts a new value into the buffer.\n *\n * @param {*} value - The value to store.\n * @returns {NanoBuffer}\n * @access public\n */\n push(value) {\n if (this._maxSize) {\n if (this._size > 0) {\n this._head++;\n }\n\n if (this._head >= this._maxSize) {\n // we wrapped\n this._head = 0;\n }\n\n this._size = Math.min(this._size + 1, this._maxSize);\n this._buffer[this._head] = value;\n }\n\n return this;\n }\n\n /**\n * Removes all values in the buffer.\n *\n * @returns {NanoBuffer}\n * @access public\n */\n clear() {\n this._buffer = Array(this._maxSize);\n this._head = 0;\n this._size = 0;\n return this;\n }\n\n /**\n * Creates an iterator function for this buffer.\n *\n * @return {Function}\n * @access public\n */\n [Symbol.iterator]() {\n let i = 0;\n\n return {\n next: () => {\n // just in case the size changed\n i = Math.min(i, this._maxSize);\n\n // calculate the index\n let j = this._head + i - (this._size - 1);\n if (j < 0) {\n j += this._maxSize;\n }\n\n // console.log('\\ni=' + i + ' head=' + this._head + ' size=' + this._size + ' maxSize=' + this._maxSize + ' j=' + j);\n\n const done = i++ >= this._size;\n return {\n value: done ? undefined : this._buffer[j],\n done,\n };\n },\n };\n }\n}\n\nexport default NanoBuffer;\n","import NanoBuffer from './nanobuffer';\n\nconst errorBuffer = new NanoBuffer(50);\n\nconst init = () => {\n const defaultConsoleError = console.error.bind(console);\n console.error = function () {\n defaultConsoleError(arguments);\n addError(JSON.stringify(arguments));\n };\n\n window.onerror = function myErrorHandler(msg, url, lineNo, columnNo, error) {\n const message = [\n `Message: ${msg}`,\n `URL: ${url}`,\n `Line: ${lineNo}`,\n `Column: ${columnNo}`,\n `Error object: ${JSON.stringify(error)}`,\n ].join(' - ');\n addError(message);\n return true;\n };\n};\n\nconst addError = (message: any) => {\n errorBuffer.push(message);\n};\n\nconst getBuffer = () => {\n return errorBuffer;\n};\n\nexport default {\n init,\n addError,\n getBuffer,\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./WizardStepper.scss?vue&type=style&index=0&lang=scss\"","module.exports = __webpack_public_path__ + \"img/entrance_plant_5@2x.b9cbd0bf.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_5.ccf6d9df.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_2.da983d95.jpg\";","import store from '../../store/store';\nimport { resolveObjectPath } from '../../utils/utils';\n\ntype AppConfig = {\n API_ENDPOINT: string;\n FRONTEND_VERSION: string;\n AZUREABB2C_CLIENTID: string;\n AZUREADB2C_AUTHORITY: string;\n PLANT_REFRESH_INTERVAL: string;\n AZUREADB2C_KNOWN_AUTHORITY: string;\n AZUREABB2C_FULL_ACCESS_SCOPE: string;\n UI_ENABLED: {\n 'room-edit': object | boolean;\n 'plant-edit': object | boolean;\n 'room-config': object | boolean;\n 'plant-delete': object | boolean;\n 'scenes-actions': object | boolean;\n 'plant-add-room': object | boolean;\n 'plant-list-edit': object | boolean;\n 'scenes-add-scene': object | boolean;\n 'plant-list-delete': object | boolean;\n 'room-object-delete': object | boolean;\n 'plant-inline-rename': object | boolean;\n 'plant-device-settings-edit': object | boolean;\n 'plant-server-use-mhs1-only': object | boolean;\n 'plant-c300-eos-settings-edit': object | boolean;\n 'commands-and-groups-add-group': object | boolean;\n 'commands-and-groups-group-actions': object | boolean;\n 'plant-room-object-settings-edit-dialog': object | boolean;\n 'devices-page-add-device': object | boolean;\n 'devices-page-filter-zigbee': object | boolean;\n 'plant-edit-image-custom': object | boolean;\n 'profile-page': object | boolean;\n };\n};\n\nexport class UIService {\n gateEditEnabled(): boolean {\n // TODO: handle?\n return true;\n }\n\n gateDeleteEnabled(): boolean {\n // TODO: handle?\n return true;\n }\n\n roomEditEnabled(): boolean {\n return this.checkSectionEnabled('room-edit');\n }\n\n plantEditEnabled(): boolean {\n return this.checkSectionEnabled('plant-edit');\n }\n\n roomConfigEnabled(): boolean {\n return this.checkSectionEnabled('room-config');\n }\n\n plantDeleteEnabled(): boolean {\n return this.checkSectionEnabled('plant-delete');\n }\n\n plantAddRoomEnabled(): boolean {\n return this.checkSectionEnabled('plant-add-room');\n }\n\n scenesActionsEnabled(): boolean {\n return this.checkSectionEnabled('scenes-actions');\n }\n\n scenesAddSceneEnabled(): boolean {\n return this.checkSectionEnabled('scenes-add-scene');\n }\n\n plantEditListEnabled(): boolean {\n return this.checkSectionEnabled('plant-list-edit');\n }\n\n plantDeleteListEnabled(): boolean {\n return this.checkSectionEnabled('plant-list-delete');\n }\n\n roomObjectDeleteEnabled(): any {\n return this.checkSectionEnabled('room-object-delete');\n }\n\n plantInlineRenameEnabled(): boolean {\n return this.checkSectionEnabled('plant-inline-rename');\n }\n\n plantDeviceSettingsEditEnabled(): boolean {\n return this.checkSectionEnabled('plant-device-settings-edit');\n }\n\n plantServerUseMHS1Only(): boolean {\n return this.checkSectionEnabled('plant-server-use-mhs1-only');\n }\n\n plantC300EosSettingsEditEnabled(): any {\n return this.checkSectionEnabled('plant-c300-eos-settings-edit');\n }\n\n commandsAndGroupsAddGroupEnabled(): boolean {\n return this.checkSectionEnabled('commands-and-groups-add-group');\n }\n\n commandsAndGroupsGroupActionsEnabled(): boolean {\n return this.checkSectionEnabled('commands-and-groups-group-actions');\n }\n\n plantRoomObjectSettingsEditDialog(): boolean {\n return this.checkSectionEnabled('plant-room-object-settings-edit-dialog');\n }\n\n devicesPageAddDeviceEnabled(): boolean {\n return this.checkSectionEnabled('devices-page-add-device');\n }\n\n devicesPageFilterZigbeeEnabled(): boolean {\n return this.checkSectionEnabled('devices-page-filter-zigbee');\n }\n\n plantEditImageCustomEnabled(): boolean {\n return this.checkSectionEnabled('plant-edit-image-custom');\n }\n\n profilePageEnabled(): boolean {\n return this.checkSectionEnabled('profile-page');\n }\n\n private checkSectionEnabled(\n sectionKey: keyof AppConfig['UI_ENABLED']\n ): boolean {\n const APP_CONFIG = ((window as any).appConfig as AppConfig) ?? {};\n if (\n !APP_CONFIG.UI_ENABLED ||\n APP_CONFIG.UI_ENABLED[sectionKey] === undefined\n )\n return false;\n if (typeof APP_CONFIG.UI_ENABLED[sectionKey] === 'boolean')\n return APP_CONFIG.UI_ENABLED[sectionKey] as boolean;\n\n const results: boolean[] = [];\n Object.keys(APP_CONFIG.UI_ENABLED[sectionKey]).forEach((rule) => {\n const sectionKeyValue = resolveObjectPath(store.state, rule);\n results.push(\n sectionKeyValue === (APP_CONFIG.UI_ENABLED[sectionKey] as any)[rule]\n );\n });\n return results.some((r) => !!r);\n }\n}\n","import { Module } from 'vuex';\nimport { IUIState } from './models/ui-state.model';\nimport { IRootState } from './models/root-state.model';\nimport { UIService } from '../services/ui-service/ui.service';\n\nconst UISvc = new UIService();\nexport const UIStateModule: Module = {\n namespaced: true,\n state: () => ({}),\n getters: {\n gateEditEnabled(state: IUIState) {\n return UISvc.gateEditEnabled();\n },\n\n gateDeleteEnabled(state: IUIState) {\n return UISvc.gateDeleteEnabled();\n },\n\n roomEditEnabled(state: IUIState) {\n return UISvc.roomEditEnabled();\n },\n\n plantEditEnabled(state: IUIState) {\n return UISvc.plantEditEnabled();\n },\n\n roomConfigEnabled(state: IUIState) {\n return UISvc.roomConfigEnabled();\n },\n\n plantDeleteEnabled(state: IUIState) {\n return UISvc.plantDeleteEnabled();\n },\n\n plantAddRoomEnabled(state: IUIState) {\n return UISvc.plantAddRoomEnabled();\n },\n\n scenesActionsEnabled(state: IUIState) {\n return UISvc.scenesActionsEnabled();\n },\n\n plantEditListEnabled(state: IUIState) {\n return UISvc.plantEditListEnabled();\n },\n\n scenesAddSceneEnabled(state: IUIState) {\n return UISvc.scenesAddSceneEnabled();\n },\n\n plantDeleteListEnabled(state: IUIState) {\n return UISvc.plantDeleteListEnabled();\n },\n\n roomObjectDeleteEnabled(state: IUIState) {\n return UISvc.roomObjectDeleteEnabled();\n },\n\n plantInlineRenameEnabled(state: IUIState) {\n return UISvc.plantInlineRenameEnabled();\n },\n\n plantDeviceSettingsEditEnabled(state: IUIState) {\n return UISvc.plantDeviceSettingsEditEnabled();\n },\n\n plantServerUseMHS1Only(): boolean {\n return UISvc.plantServerUseMHS1Only();\n },\n\n plantC300EosSettingsEditEnabled(state: IUIState) {\n return UISvc.plantC300EosSettingsEditEnabled();\n },\n\n commandsAndGroupsAddGroupEnabled(state: IUIState) {\n return UISvc.commandsAndGroupsAddGroupEnabled();\n },\n\n commandsAndGroupsGroupActionsEnabled(state: IUIState) {\n return UISvc.commandsAndGroupsGroupActionsEnabled();\n },\n\n plantRoomObjectSettingsEditDialog(state: IUIState) {\n return UISvc.plantRoomObjectSettingsEditDialog();\n },\n\n devicesPageAddDeviceEnabled() {\n return UISvc.devicesPageAddDeviceEnabled();\n },\n\n devicesPageFilterZigbeeEnabled(): boolean {\n return UISvc.devicesPageFilterZigbeeEnabled();\n },\n\n plantEditImageCustomEnabled(): boolean {\n return UISvc.plantEditImageCustomEnabled();\n },\n\n profilePageEnabled(): boolean {\n return UISvc.profilePageEnabled();\n },\n },\n};\n","import { Module } from 'vuex';\nimport * as Actions from './action-types';\nimport MegaMenuItem from '../models/menu-items';\nimport { AccountInfo } from '@azure/msal-common';\nimport { IRootState } from './models/root-state.model';\nimport {\n PlantDetailDTO,\n EntrancePlantDetailDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport { UIStateModule } from './ui-state.store.module';\n\nexport const RootStateModule: Module = {\n modules: {\n UI: UIStateModule,\n },\n state: {\n account: null,\n isLoading: false,\n currentPlant: null,\n selectedPlantId: null,\n menuItemsContextual: [],\n isSidebarExpanded: false,\n\n // TODO: remove this comment if we keep the state refactor\n currentEntrancePlant: null,\n selectedEntrancePlantId: null,\n },\n mutations: {\n [Actions.SET_ACCOUNT](state, account: AccountInfo) {\n state.account = account;\n },\n\n [Actions.SET_APP_LOADING](state, isLoading: boolean) {\n state.isLoading = isLoading;\n },\n\n [Actions.SET_SIDEBAR_EXPANDED](state, isExpanded: boolean) {\n state.isSidebarExpanded = isExpanded;\n },\n\n [Actions.SET_SELECTED_PLANT_ID](state, plantId: number | null) {\n state.selectedPlantId = plantId;\n },\n\n // TODO: remove this comment if we keep the state refactor\n [Actions.SET_SELECTED_ENTRANCE_PLANT_ID](state, plantId: number | null) {\n state.selectedEntrancePlantId = plantId;\n },\n\n [Actions.SET_SELECTED_PLANT](state, plant: PlantDetailDTO | null) {\n state.currentPlant = plant;\n },\n\n // TODO: remove this comment if we keep the state refactor\n [Actions.SET_SELECTED_ENTRANCE_PLANT](\n state,\n plant: EntrancePlantDetailDTO | null\n ) {\n state.currentEntrancePlant = plant;\n },\n\n [Actions.SET_CONTEXTUAL_MENU_ITEMS](state, menuItems: MegaMenuItem[]) {\n state.menuItemsContextual = menuItems;\n },\n },\n actions: {\n [Actions.SET_ACCOUNT]({ commit }, account: AccountInfo[]) {\n commit(Actions.SET_ACCOUNT, account);\n },\n\n [Actions.SET_APP_LOADING]({ commit }, isLoading: boolean) {\n commit(Actions.SET_APP_LOADING, isLoading);\n },\n\n [Actions.SET_SIDEBAR_EXPANDED]({ commit }, isExpanded: boolean) {\n commit(Actions.SET_SIDEBAR_EXPANDED, isExpanded);\n },\n\n [Actions.SET_SELECTED_PLANT]({ commit }, plant: PlantDetailDTO | null) {\n commit(Actions.SET_SELECTED_PLANT, plant);\n },\n\n // TODO: remove this comment if we keep the state refactor\n [Actions.SET_SELECTED_ENTRANCE_PLANT](\n { commit },\n plant: EntrancePlantDetailDTO | null\n ) {\n commit(Actions.SET_SELECTED_ENTRANCE_PLANT, plant);\n },\n\n [Actions.SET_SELECTED_PLANT_ID]({ commit }, plantId: number | null) {\n commit(Actions.SET_SELECTED_PLANT_ID, plantId);\n },\n\n // TODO: remove this comment if we keep the state refactor\n [Actions.SET_SELECTED_ENTRANCE_PLANT_ID](\n { commit },\n plantId: number | null\n ) {\n commit(Actions.SET_SELECTED_ENTRANCE_PLANT_ID, plantId);\n },\n\n [Actions.SET_CONTEXTUAL_MENU_ITEMS]({ commit }, menuItems: MegaMenuItem[]) {\n commit(Actions.SET_CONTEXTUAL_MENU_ITEMS, menuItems);\n },\n },\n};\n","import { createStore } from 'vuex';\nimport { IRootState } from './models/root-state.model';\nimport { RootStateModule } from './root-state.store.module';\n\nconst store = createStore(RootStateModule);\nexport default store;\n","module.exports = __webpack_public_path__ + \"img/house-1@2x.dcfef707.jpg\";","module.exports = __webpack_public_path__ + \"img/icon-mail.c9854b95.svg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_1@2x.a0146ce1.jpg\";","module.exports = __webpack_public_path__ + \"img/smart-home@3x.354cb155.jpg\";","module.exports = __webpack_public_path__ + \"img/house-1.9e424e43.jpg\";","module.exports = __webpack_public_path__ + \"img/house-3.48bc17bc.jpg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_2@2x.47907e5a.jpg\";","var map = {\n\t\"./add-your-image-here.jpg\": \"6fd1\",\n\t\"./apt-1.jpg\": \"823b\",\n\t\"./apt-1@2x.jpg\": \"52a3\",\n\t\"./apt-1@3x.jpg\": \"4842\",\n\t\"./apt-2.jpg\": \"c5cb\",\n\t\"./apt-2@2x.jpg\": \"33e0\",\n\t\"./apt-2@3x.jpg\": \"8230\",\n\t\"./entrance_plant_1.jpg\": \"3dbc\",\n\t\"./entrance_plant_1@2x.jpg\": \"ad88\",\n\t\"./entrance_plant_1@3x.jpg\": \"19ee\",\n\t\"./entrance_plant_2.jpg\": \"a109\",\n\t\"./entrance_plant_2@2x.jpg\": \"c287\",\n\t\"./entrance_plant_2@3x.jpg\": \"eadf\",\n\t\"./entrance_plant_3.jpg\": \"5b28\",\n\t\"./entrance_plant_3@2x.jpg\": \"39d1\",\n\t\"./entrance_plant_3@3x.jpg\": \"8e0a\",\n\t\"./entrance_plant_4.jpg\": \"e0ba\",\n\t\"./entrance_plant_4@2x.jpg\": \"345e\",\n\t\"./entrance_plant_4@3x.jpg\": \"25320\",\n\t\"./entrance_plant_5.jpg\": \"9a8b\",\n\t\"./entrance_plant_5@2x.jpg\": \"9876\",\n\t\"./entrance_plant_5@3x.jpg\": \"1905\",\n\t\"./house-1.jpg\": \"bd3a\",\n\t\"./house-1@2x.jpg\": \"aa0c\",\n\t\"./house-1@3x.jpg\": \"e63c\",\n\t\"./house-2.jpg\": \"17a7\",\n\t\"./house-2@2x.jpg\": \"8ee2\",\n\t\"./house-2@3x.jpg\": \"0203\",\n\t\"./house-3.jpg\": \"be20\",\n\t\"./house-3@2x.jpg\": \"7381\",\n\t\"./house-3@3x.jpg\": \"0a98\",\n\t\"./plantType/smart-home.jpg\": \"3626\",\n\t\"./plantType/smart-home@2x.jpg\": \"4cb8\",\n\t\"./plantType/smart-home@3x.jpg\": \"b5e2\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c361\";","module.exports = __webpack_public_path__ + \"img/apt-2.c2387584.jpg\";","var map = {\n\t\"./apt-1@2x.jpg\": \"52a3\",\n\t\"./apt-2@2x.jpg\": \"33e0\",\n\t\"./entrance_plant_1@2x.jpg\": \"ad88\",\n\t\"./entrance_plant_2@2x.jpg\": \"c287\",\n\t\"./entrance_plant_3@2x.jpg\": \"39d1\",\n\t\"./entrance_plant_4@2x.jpg\": \"345e\",\n\t\"./entrance_plant_5@2x.jpg\": \"9876\",\n\t\"./house-1@2x.jpg\": \"aa0c\",\n\t\"./house-2@2x.jpg\": \"8ee2\",\n\t\"./house-3@2x.jpg\": \"7381\",\n\t\"./plantType/smart-home@2x.jpg\": \"4cb8\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c72e\";","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"app-loader\"\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_ProgressSpinner = _resolveComponent(\"ProgressSpinner\")\n const _component_router_view = _resolveComponent(\"router-view\")\n\n return (_openBlock(), _createBlock(_Fragment, null, [\n (_ctx.isLoading)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(_component_ProgressSpinner)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.isAuthenticated)\n ? (_openBlock(), _createBlock(_component_router_view, { key: 1 }))\n : _createCommentVNode(\"\", true)\n ], 64))\n}","import { Options, Vue } from 'vue-class-component';\nimport { mapState } from 'vuex';\n\n// import authService from '@/core/services/auth.service';\nimport { SET_APP_LOADING } from './core/store/action-types';\nimport { MANAGE_ELIOT_PARSE_EXCEPTION } from './core/utils/emitter-events';\n\n@Options({\n name: 'App',\n computed: {\n ...mapState(['isLoading']),\n },\n})\nexport default class App extends Vue {\n isAuthenticated: any = false;\n\n created() {\n this.$store.dispatch(SET_APP_LOADING, true);\n this.$emitter.on(\n MANAGE_ELIOT_PARSE_EXCEPTION,\n this.manageEliotParseException\n );\n }\n\n async mounted() {\n import(\n /* webpackChunkName: \"auth-service\" */ '@/core/services/auth.service'\n ).then(async (authService: any) => {\n this.isAuthenticated = await authService.default.handleRedirectPromise();\n\n if (this.isAuthenticated === 'logged_out') {\n this.$router.push({\n name: 'page-logged-out',\n });\n }\n\n this.$store.dispatch(SET_APP_LOADING, false);\n });\n }\n\n beforeUnmount() {\n this.$emitter.off(\n MANAGE_ELIOT_PARSE_EXCEPTION,\n this.manageEliotParseException\n );\n }\n\n manageEliotParseException() {\n this.$toast.add({\n severity: 'error',\n summary: this.$t('eliotParseException'),\n life: 3000,\n });\n // this.$router.push({\n // name: 'page-plants-hub',\n // });\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=b51da03a&ts=true\"\nimport script from \"./App.ts?vue&type=script&lang=ts\"\nexport * from \"./App.ts?vue&type=script&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=b51da03a&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { App } from 'vue';\nimport Dialog from 'primevue/dialog';\nimport Button from 'primevue/button';\nimport Dropdown from 'primevue/dropdown';\nimport Tooltip from 'primevue/tooltip';\nimport InputText from 'primevue/inputtext';\nimport InputNumber from 'primevue/inputnumber';\nimport Divider from 'primevue/divider';\nimport Card from 'primevue/card';\nimport SelectButton from 'primevue/selectbutton';\nimport RadioButton from 'primevue/radiobutton';\nimport ToggleButton from 'primevue/togglebutton';\nimport Accordion from 'primevue/accordion';\nimport AccordionTab from 'primevue/accordiontab';\nimport Checkbox from 'primevue/checkbox';\nimport Carousel from 'primevue/carousel';\nimport TabView from 'primevue/tabview';\nimport TabPanel from 'primevue/tabpanel';\nimport ToastService from 'primevue/toastservice';\nimport Textarea from 'primevue/textarea';\nimport ProgressSpinner from 'primevue/progressspinner';\nimport InputSwitch from 'primevue/inputswitch';\nimport Slider from 'primevue/slider';\nimport Message from 'primevue/message';\nimport Calendar from 'primevue/calendar';\nimport Locale from 'primevue/config';\nimport Password from 'primevue/password';\n\nconst configPrimeVue = (app: App) => {\n app.component('Dialog', Dialog);\n app.component('Button', Button);\n app.component('Dropdown', Dropdown);\n app.component('InputText', InputText);\n app.component('InputNumber', InputNumber);\n app.component('Divider', Divider);\n app.component('Card', Card);\n app.component('SelectButton', SelectButton);\n app.component('RadioButton', RadioButton);\n app.component('ToggleButton', ToggleButton);\n app.component('Accordion', Accordion);\n app.component('AccordionTab', AccordionTab);\n app.component('Checkbox', Checkbox);\n app.component('Carousel', Carousel);\n app.component('TabView', TabView);\n app.component('TabPanel', TabPanel);\n app.component('Textarea', Textarea);\n app.component('ProgressSpinner', ProgressSpinner);\n app.component('InputSwitch', InputSwitch);\n app.component('Slider', Slider);\n app.component('Message', Message);\n app.component('Calendar', Calendar);\n app.component('Password', Password);\n\n app.directive('Tooltip', Tooltip);\n app.use(ToastService);\n app.use(Locale);\n};\n\nexport default configPrimeVue;\n","import { App } from 'vue';\n\nimport {\n ElPopover,\n ElDropdown,\n ElDropdownItem,\n ElDropdownMenu,\n ElScrollbar,\n ElSteps,\n ElStep,\n} from 'element-plus';\n\n// Required for the popper\nimport 'element-plus/packages/theme-chalk/src/popper.scss';\n\nconst configElementPlus = (app: App) => {\n app.component('ElPopover', ElPopover);\n app.component('ElDropdown', ElDropdown);\n app.component('ElDropdownItem', ElDropdownItem);\n app.component('ElDropdownMenu', ElDropdownMenu);\n app.component('ElScrollbar', ElScrollbar);\n app.component('ElSteps', ElSteps);\n app.component('ElStep', ElStep);\n};\n\nexport default configElementPlus;\n","import { renderSlot as _renderSlot, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createBlock(\"div\", {\n class: [\"page-wizard-stepper\", _ctx.disabledClasses]\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2))\n}","import { PropType } from '@vue/runtime-dom';\nimport { Vue, Options } from 'vue-class-component';\n\n@Options({\n name: 'WizardStepper',\n props: {\n disabledSteps: {\n type: Object as PropType,\n required: false,\n },\n },\n})\nexport default class WizardStepper extends Vue {\n disabledSteps?: number[];\n\n get disabledClasses() {\n // disabling a step is made through css because element ui stepper doesn't have a prop to show a step disabled\n return this.disabledSteps?.map((x) => `step-${x}-disable`).join(' ');\n }\n}\n","import { render } from \"./WizardStepper.vue?vue&type=template&id=077659aa&ts=true\"\nimport script from \"./WizardStepper.ts?vue&type=script&lang=ts\"\nexport * from \"./WizardStepper.ts?vue&type=script&lang=ts\"\n\nimport \"./WizardStepper.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_InlineSVG = _resolveComponent(\"InlineSVG\")\n\n return (_openBlock(), _createBlock(_component_InlineSVG, {\n width: _ctx.width,\n height: _ctx.height,\n src: _ctx.src,\n \"aria-label\": _ctx.ariaLabel,\n transformSource: _ctx.transform\n }, null, 8, [\"width\", \"height\", \"src\", \"aria-label\", \"transformSource\"]))\n}","import { Vue, Options } from 'vue-class-component';\nimport { v4 as uuidv4 } from 'uuid';\n\n@Options({\n name: 'InlineSvgScoped',\n props: {\n src: {\n required: true,\n type: String,\n },\n width: {\n type: Number,\n },\n height: {\n type: Number,\n },\n fill: {\n type: String,\n },\n ariaLabel: {\n type: String,\n },\n },\n})\nexport default class InlineSvgScoped extends Vue {\n private nameMap = {} as any;\n private static readonly attributesToReplace = [\n 'fill',\n 'filter',\n 'mask',\n 'clip-path',\n ];\n\n transform(svg: SVGSVGElement) {\n this.makeIdsUnique(svg.children);\n return svg;\n }\n\n makeIdsUnique(elements: HTMLCollection) {\n if (!elements) return;\n for (const item of elements) {\n if (item.id) {\n //generate a new id for each icon\n const newName = item.id + uuidv4();\n this.nameMap[`#${item.id}`] = `#${newName}`;\n item.id = newName;\n }\n //search for generated ids and substite them in xlink:href (used for example in use tag)\n const xhref = item.getAttributeNS('http://www.w3.org/1999/xlink', 'href');\n if (xhref) {\n const newHrefId = this.nameMap[xhref];\n if (newHrefId) {\n item.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n 'xlink:href',\n newHrefId\n );\n }\n }\n\n //search for generated ids and substite them in attributes with the form url(#id)\n const attrs = item.attributes;\n for (let i = attrs.length - 1; i >= 0; i--) {\n this.setAttributeId(item, attrs[i].name, attrs[i].value);\n }\n\n this.makeIdsUnique(item.children);\n }\n }\n\n setAttributeId(item: Element, attributeName: string, attributeValue: string) {\n if (!InlineSvgScoped.attributesToReplace.includes(attributeName)) return;\n if (attributeValue) {\n const regex = /url\\((#[^)]*)/gm;\n const match = attributeValue.matchAll(regex).next();\n if (!match?.value) return;\n const originalMaskName = match.value[1];\n const newMaskName = this.nameMap[originalMaskName];\n\n if (newMaskName)\n item.setAttribute(\n attributeName,\n attributeValue.replace(regex, `url(${newMaskName}`)\n );\n }\n }\n}\n","import { render } from \"./InlineSvgScoped.vue?vue&type=template&id=3d0c3662&ts=true\"\nimport script from \"./InlineSvgScoped.ts?vue&type=script&lang=ts\"\nexport * from \"./InlineSvgScoped.ts?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Frontend/node_modules/@vue/cli-service/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import axios from 'axios';\nimport { createApp } from 'vue';\nimport InlineSvg from 'vue-inline-svg';\n\nimport App from './App.vue';\nimport store from './core/store/store';\nimport router from './core/router/index';\nimport i18n from './core/translations/i18n';\n\nimport emitter from './core/config/emitter';\nimport configPrimeVue from './core/config/config-primevue';\nimport configElementPlus from './core/config/config-elementplus';\nimport WizardStepper from './views/components/WizardStepper/WizardStepper.vue';\nimport InlineSvgScoped from './views/components/InlineSvgScoped/InlineSvgScoped.vue';\nimport {\n ApplicationInsights,\n DistributedTracingModes,\n} from '@microsoft/applicationinsights-web';\nimport globalErrors from './core/utils/global-errors';\nimport authService from './core/services/auth.service';\n\nglobalErrors.init();\n\nasync function fetchDefaultClientSettings() {\n try {\n const r = await axios.get('/desktool-client/default-settings');\n if (r.status >= 300) {\n console.error(\n `Could not fetch default settings. HTTP[${r.status}] error.`\n );\n console.error(r);\n throw new Error(\n `Could not fetch default settings. HTTP[${r.status}] error.`\n );\n }\n \n return {\n UI_ENABLED: r.data.uiSettings,\n AZUREABB2C_CLIENTID: r.data.azureAdb2CClientId,\n AZUREADB2C_AUTHORITY: r.data.azureAdb2CAuthority,\n PLANT_REFRESH_INTERVAL: r.data.plantRefreshInterval,\n AZUREADB2C_KNOWN_AUTHORITY: r.data.azureAdb2CKnownAuthority,\n AZUREABB2C_FULL_ACCESS_SCOPE: r.data.azureAdb2CFullAccessScope,\n INSTRUMENTATION_KEY : r.data.instrumentationKey,\n PROFILE_URL: r.data.profileUrl,\n ENTRANCE_PLANT_ENABLED: r.data.entrancePlantEnabled\n };\n } catch (e) {\n console.error(\n `[X] There was an error trying to fetch the default settings`\n );\n console.error(e);\n throw new Error(e as any);\n }\n}\n\nfunction applyDefaultClientSettings(settings: any) {\n (window as any).appConfig = { ...(window as any).appConfig, ...settings };\n authService.init();\n}\n\nconst loco = window.location;\nconst appRootUrl = `${loco.protocol}//${loco.host}${process.env.BASE_URL}`;\nconst configUrl = `${appRootUrl}/config.json`;\n\naxios.get(configUrl).then(async (r) => {\n axios.defaults.baseURL = r.data.API_ENDPOINT;\n (window as any).appConfig = r.data;\n\n const settings = await fetchDefaultClientSettings();\n applyDefaultClientSettings(settings);\n\n const app = createApp(App).use(router).use(store).use(i18n);\n app.config.globalProperties.$config = (window as any).appConfig;\n app.config.globalProperties.$emitter = emitter;\n\n const appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: settings.INSTRUMENTATION_KEY,\n enableAutoRouteTracking: true,\n disableFetchTracking: false,\n enableCorsCorrelation: true,\n enableRequestHeaderTracking: true,\n enableResponseHeaderTracking: true,\n distributedTracingMode: DistributedTracingModes.W3C,\n },\n });\n appInsights.loadAppInsights();\n app.config.globalProperties.$appInsight = appInsights;\n configPrimeVue(app);\n configElementPlus(app);\n app.component('InlineSVG', InlineSvg);\n app.component('InlineSvgScoped', InlineSvgScoped);\n app.component('WizardStepper', WizardStepper);\n\n app.mount('#app');\n});\n","const stringsIT = {\n 'general.loggingIn': 'Accesso in corso...',\n 'general.invalidPassword': 'Password non valida, riprova',\n 'general.goToLogin': \"Vai all'accesso\",\n 'general.loggedOutText': 'Sei stato scollegato',\n 'general.changePassword': 'Modifica password',\n 'general.modified': 'Modificato',\n 'general.mobile': 'Mobile',\n 'general.desktop': 'Desktop',\n 'general.backTo': 'Torna a',\n 'general.synced': 'Sincronizzato',\n 'general.assigned': 'assegnato',\n 'general.notAssigned': 'non assegnato',\n 'menuLabel.notesAndDocuments': 'Note e documenti',\n 'plants.filterByTag': 'Filtra per tag',\n 'plants.recentlyModified': 'ordina per modifica recente',\n 'plants.plantName': 'ordina per nome impianto',\n 'newPlantDialog.insertGroup': '+ aggiungi un nuovo gruppo e premi Invio',\n 'plantDetail.addDevice': 'Aggiungi dispositivo',\n 'plantDetail.addObjects': 'Aggiungi oggetti',\n 'plants.noPlantsHint':\n 'Clicca sul pulsante \"Nuovo impianto\" per creare un nuovo impianto',\n 'plantDetail.newUpdates': 'Nuovi aggiornamenti',\n 'plantDetail.willRefreshToReflectChanges':\n 'Questo elemento è stato aggiornato. La pagina sarà ricaricata per mostrare i cambiamenti.',\n 'plantDetail.addGroup': 'Aggiungi gruppo',\n 'plantDetail.addScene': 'Aggiungi scenario',\n 'plantC300EOSSettings.GeneralSettings': 'Impostazioni generali',\n 'plantC300EOSSettings.DoorEntryParametrs': 'PARAMETRI VIDEOCITOFONIA',\n 'plantC300EOSSettings.descPage':\n \"Non tutti i parametri sono modificabili da questa sezione: dovrai farlo sull'impianto con l'app connessa\",\n 'general.favourites': 'Favoriti',\n 'general.select': 'Seleziona',\n 'general.operationError': \"Errore nell'operazione\",\n 'plantDetail.lastScan': 'Ultima scansione: {date} alle {time}',\n 'general.assignIcon': \"Assegna l'icona\",\n 'general.assignedIcon': 'Icona assegnata',\n 'newPlantDialog.modified': 'Impianto modificato',\n 'plantDetail.deletePlantConfirm':\n 'Sei sicuro di volr cancellare {plantName}? Tutti i dati saranno persi. Per cancellare inserisci il codice {code} e conferma',\n 'plantDetail.objectsCreated': 'Oggetti creati con successo',\n 'plantDetail.selectDevice':\n 'Seleziona un dispositivo per vedere i suoi moduli',\n 'plantDetail.typeNameGroup': 'Tipo e nome del gruppo',\n 'plantDetail.disableScene': 'Disabilita scenario',\n 'plantDetail.disableSceneConfirm':\n 'Sei sicuro di voler disabilitare lo scenario \"{sceneName}\"?',\n 'plantC300EOSSettings.SetAsPrimaryEntryUnitDESC':\n \"Il posto esterno primario è l'unico che trasferisce la chiamata dall'app e gestisce la segreteria\",\n 'plantC300EOSSettings.ProfessionalStudioDESC':\n \"Quando abilitato dall'utente, studio prefessionale apre automaticamente la serratura ogni volta che qualcuno suona\",\n 'scenes.trigger': 'condizione di avvio',\n 'uniqueNaming.validationError': 'Il nome non è valido',\n 'uniqueNaming.unavailableName': 'Nome non disponibile',\n 'uniqueNaming.roomInlineNamingError': 'Non è possibile aggiornare il nome',\n 'uniqueNaming.roomInlineNamingSuccess': 'Nome della stanza aggiornato',\n 'uniqueNaming.nameResetDisclaimer':\n 'Il nome sarà riportato a quello iniziale',\n 'uniqueNaming.validationErrorWithSuggestion':\n 'Il nome non è valido, puoi provare con: \"{suggestedName}\"',\n 'plantsList.duplicateDialog.inputLabel':\n 'Puoi correggere i nomi degli impianti qui',\n 'plantDialogDuplicate.howManyCopies': 'Quante copie',\n 'plantDialogDuplicate.success': 'Impianto duplicato',\n 'general.actuatorAdded': 'Attuatore aggiunto',\n 'general.commandAdded': 'Comando aggiunto',\n isEditingPlant: 'sta modificando la configurazione',\n eliotParseException:\n \"Problema nella lettura della configurazione d'impianto dal cloud.\", // assignObject: {\n // selectFromLastScan: 'Select from last scan',\n // selectFromCatalogue: 'Select from catalogue',\n // },\n // assignThermo: {\n // selectOnlyOneDescription:\n // 'TEMP STRING You should select one and only one device.',\n // thermostatAdded: 'Thermostat added',\n // heatingActuatorAdded: 'Heating actuator added',\n // coolingActuatorAdded: 'Cooling actuator added',\n // sharedActuatorAdded: 'Shared actuator added',\n // heatingPumpAdded: 'Heating pump added',\n // coolingPumpAdded: 'Cooling pump added',\n // sharedPumpAdded: 'Shared pump added',\n // probeAdded: 'Probe added',\n // },\n 'saveAndContinue': 'Salva e continua'\n};\nexport default stringsIT;\n","const stringsEN = {\n 'general.loggingIn': 'Logging you in...',\n 'general.invalidPassword': 'Password is invalid, try again',\n 'general.goToLogin': 'Go to login',\n 'general.loggedOutText': 'You have been logged out',\n 'general.changePassword': 'Change password',\n 'general.modified': 'Modified',\n 'general.mobile': 'Mobile',\n 'general.desktop': 'Desktop',\n 'general.backTo': 'Back to',\n 'general.synced': 'Syncronized',\n 'general.assigned': 'assigned',\n 'general.notAssigned': 'not assigned',\n 'menuLabel.notesAndDocuments': 'Notes and documents',\n 'plants.filterByTag': 'Filter by tag',\n 'plants.recentlyModified': 'sort by recently modified',\n 'plants.plantName': 'sort by plant name',\n 'newPlantDialog.insertGroup': '+ add a new group and press Enter',\n 'plantDetail.addDevice': 'Add device',\n 'plantDetail.addObjects': 'Add objects',\n 'plants.noPlantsHint':\n 'Click on the \"New plant\" button to create a new plant',\n 'plantDetail.newUpdates': 'New updates',\n 'plantDetail.willRefreshToReflectChanges':\n 'This element has been updated. The page will refresh to reflect the changes.',\n 'plantDetail.addGroup': 'Add group',\n 'plantDetail.addScene': 'Add scene',\n 'plantC300EOSSettings.GeneralSettings': 'General Settings',\n 'plantC300EOSSettings.DoorEntryParametrs': 'DOOR ENTRY PARAMETERS',\n 'plantC300EOSSettings.descPage':\n 'Not all parameters are editable from this section: you will have to do it on site with the connected app',\n 'general.favourites': 'Favourites',\n 'general.select': 'Select',\n 'general.operationError': 'Operation error',\n 'plantDetail.lastScan': 'Last scan: {date} at {time}',\n 'general.assignIcon': 'Assign the icon',\n 'general.assignedIcon': 'Assigned icon',\n 'newPlantDialog.modified': 'Plant modified',\n 'plantDetail.deletePlantConfirm':\n 'Are you sure you want to delete {plantName}? All data will be lost. To delete insert the code {code} and confirm',\n 'plantDetail.objectsCreated': 'Objects successfully created',\n 'plantDetail.selectDevice': 'Select a device to view its modules',\n 'plantDetail.typeNameGroup': 'Type and name of group',\n 'plantDetail.disableScene': 'Disable scene',\n 'plantDetail.disableSceneConfirm':\n 'Are you sure you want to disable scene \"{sceneName}\"?',\n 'plantC300EOSSettings.SetAsPrimaryEntryUnitDESC':\n 'The primary door entry unit is the only one which transfers the call from the app and manages the answering machine',\n 'plantC300EOSSettings.ProfessionalStudioDESC':\n 'When enabled by user, professional studio auto opens door lock each time someone rings',\n 'scenes.trigger': 'trigger',\n 'uniqueNaming.validationError': 'Name is invalid',\n 'uniqueNaming.unavailableName': 'Unavailable name',\n 'uniqueNaming.roomInlineNamingError': 'Could not update the name',\n 'uniqueNaming.roomInlineNamingSuccess': 'Room name updated',\n 'uniqueNaming.nameResetDisclaimer':\n 'The name will be reset to the initial one',\n 'uniqueNaming.validationErrorWithSuggestion':\n 'Name is invalid, you can try with: \"{suggestedName}\"',\n 'plantsList.duplicateDialog.inputLabel': 'You can adjust plants names here',\n 'plantDialogDuplicate.howManyCopies': 'How many copies',\n 'plantDialogDuplicate.success': 'Plant duplicated',\n 'general.actuatorAdded': 'Actuator added',\n 'general.commandAdded': 'Command added',\n 'entrancePlant.addGate': 'Add gate',\n 'entrancePlant.addDevice': 'Add device',\n 'entrancePlant.noSwitchboard': 'No switchboard',\n 'entrancePlant.hintNewSwitchboard':\n 'Click on Add Switchboard to create a new one',\n 'entrancePlant.deleteSwitchboard': 'Delete switchboard',\n 'entrancePlant.deleteSwitchboardQuestion':\n 'Are you sure to delete the switchboard?',\n 'entrancePlant.editedSwitchboard': 'Switchboard edited',\n 'entrancePlant.gates.detail.noDevices': 'NO DEVICES',\n 'entrancePlant.NoBadges': 'No badges',\n 'entrancePlant.hintNewBadge': 'Click on Add Badge to create a new one',\n 'entrancePlant.BadgeAddCodeManuallyOrScan': 'Type the code or scan it ',\n 'entrancePlant.BadgeAddedList': 'Added badges',\n 'entrancePlant.BadgeAddedListEmpty': 'No badges added yet',\n 'general.alreadyExisting': 'Already existing',\n 'entrancePlant.addGuest': 'New guest',\n 'entrancePlant.noGuests': 'No guests',\n 'entrancePlant.hintNewGuest': 'Click on NEW GUEST to create a new one',\n 'entrancePlant.permissionsData': 'Data',\n 'entrancePlant.permissionsTimeRanges': 'Time ranges',\n 'entrancePlant.associatedBadges': 'Associated badges',\n 'entrancePlant.gateGuestBannerCreated': 'Guest created',\n 'entrancePlant.gateGuestBannerUpdated': 'Guest edited',\n 'entrancePlant.codeLenghtOrNotNumbers':\n 'Code should be a {keypadCodeLength} digit number',\n 'entrancePlant.newBuilding': 'New building',\n 'entrancePlant.editedBuilding': 'Building edited',\n 'entrancePlant.buildingBannerCreated': 'Building added',\n 'entrancePlant.editedApartment': 'Apartment edited',\n entrancePlant: {\n noUserInvitedYet: 'No user invited yet',\n apartmentsBannerCreated: 'Apartments created',\n noInformationsAdded: 'No informations added',\n },\n\n isEditingPlant: 'is editing the configuration',\n eliotParseException: 'Problem reading the plant configuration from cloud.',\n\n assignObject: {\n selectFromLastScan: 'Select from last scan',\n selectFromCatalogue: 'Select from catalogue',\n },\n assignThermo: {\n selectOnlyOneDescription:\n 'TEMP STRING You should select one and only one device.',\n thermostatAdded: 'Thermostat added',\n heatingActuatorAdded: 'Heating actuator added',\n coolingActuatorAdded: 'Cooling actuator added',\n sharedActuatorAdded: 'Shared actuator added',\n heatingPumpAdded: 'Heating pump added',\n coolingPumpAdded: 'Cooling pump added',\n sharedPumpAdded: 'Shared pump added',\n probeAdded: 'Probe added',\n },\n 'alarm.alarmsensor': 'Alarm sensor',\n saveAndContinue: 'Save and continue',\n SetupRisersTitle:\n 'Set up the risers, floors and apartments of {buildingName}',\n SelectDevicesInGate: 'Select the devices present in the gate',\n TheyManage: 'They manage',\n BuildingNameOnly: '{buildingName} only',\n SaveChanges: 'Save changes',\n};\n\nexport default stringsEN;\n","const stringsDE = {\n 'general.loggingIn': 'Einloggen...',\n 'general.invalidPassword': 'Passwort ungültig, versuchen Sie es erneut',\n 'general.goToLogin': 'Zur Anmeldung',\n 'general.loggedOutText': 'Sie haben sich abgemeldet',\n 'general.changePassword': 'Passwort ändern',\n 'general.modified': 'Geändert',\n 'general.mobile': 'Mobiltelefon',\n 'general.desktop': 'Startseite',\n 'general.backTo': 'Zurück zu',\n 'general.synced': 'Synchronisiert',\n 'general.assigned': 'zugewiesen',\n 'general.notAssigned': 'nicht zugewiesen',\n 'menuLabel.notesAndDocuments': 'Anmerkungen und Dokumente',\n 'plants.filterByTag': 'Nach Stichwort filtern',\n 'plants.recentlyModified': 'Sortieren nach Kürzlich geändert',\n 'plants.plantName': 'Sortieren nach Anlagenname',\n 'newPlantDialog.insertGroup':\n '+ fügen Sie eine neue Gruppe hinzu und drücken Sie Eingabe',\n 'plantDetail.addDevice': 'Gerät hinzufügen',\n 'plantDetail.addObjects': 'Objekte hinzufügen',\n 'plants.noPlantsHint':\n 'Klicken Sie auf \"Neue Anlage\", um eine neue Anlage zu erstellen',\n 'plantDetail.newUpdates': 'Neue Updates',\n 'plantDetail.willRefreshToReflectChanges':\n 'Dieses Element wurde überarbeitet. Die Seite wird aktualisiert, um die Änderungen anzuzeigen.',\n 'plantDetail.addGroup': 'Gruppe hinzufügen',\n 'plantDetail.addScene': 'Szenario hinzufügen',\n 'plantC300EOSSettings.GeneralSettings': 'Allgemeine Einstellungen',\n 'plantC300EOSSettings.DoorEntryParametrs': 'SPRECHANLAGEN-PARAMETER',\n 'plantC300EOSSettings.descPage':\n 'Nicht alle Parameter können in diesem Abschnitt bearbeitet werden: Sie müssen dies vor Ort mit der verbundenen App tun',\n 'general.favourites': 'Favoriten',\n 'general.select': 'Auswählen',\n 'general.operationError': 'Bedienungsfehler',\n 'plantDetail.lastScan': 'Letzter Scan: {date} um {time}',\n 'general.assignIcon': 'Symbol zuweisen',\n 'general.assignedIcon': 'Symbol zugewiesen',\n 'newPlantDialog.modified': 'Anlage wurde geändert',\n 'plantDetail.deletePlantConfirm':\n 'Sind Sie sicher, dass Sie {plantName} löschen möchten? Alle Daten gehen dann verloren. Zum Löschen geben Sie den Code {code} ein und bestätigen Sie',\n 'plantDetail.objectsCreated': 'Objekte erfolgreich erstellt',\n 'plantDetail.selectDevice':\n 'Wählen Sie ein Gerät aus, um seine Module anzuzeigen',\n 'plantDetail.typeNameGroup': 'Gruppentyp und -name',\n 'plantDetail.disableScene': 'Szenario deaktivieren',\n 'plantDetail.disableSceneConfirm':\n 'Sind Sie sicher, dass Sie das Szenario \"{sceneName}\" deaktivieren möchten?',\n 'plantC300EOSSettings.SetAsPrimaryEntryUnitDESC':\n 'Die Haupt-Innensprechstelle ist die einzige, die den Anruf von der App weiterleitet und den Anrufbeantworter verwaltet',\n 'plantC300EOSSettings.ProfessionalStudioDESC':\n 'Wenn vom Benutzer aktiviert, öffnet die Arztschaltung das Türschloss, wenn jemand anläutet',\n 'scenes.trigger': 'Trigger',\n 'uniqueNaming.validationError': 'Name ungültig',\n 'uniqueNaming.unavailableName': 'Name nicht verfügbar',\n 'uniqueNaming.roomInlineNamingError': 'Name konnte nicht aktualisiert werden',\n 'uniqueNaming.roomInlineNamingSuccess': 'Raumname aktualisiert',\n 'uniqueNaming.nameResetDisclaimer':\n 'Der Name wird auf den ursprünglichen Namen zurückgesetzt',\n 'uniqueNaming.validationErrorWithSuggestion':\n 'Name ist ungültig, Sie können es versuchen mit: \"{suggestedName}\"',\n 'plantsList.duplicateDialog.inputLabel':\n 'Sie können die Namen der Anlagen hier anpassen',\n 'plantDialogDuplicate.howManyCopies': 'Wie viele Kopien',\n 'plantDialogDuplicate.success': 'Anlage dupliziert',\n 'general.actuatorAdded': 'Aktor hinzugefügt',\n 'general.commandAdded': 'Befehl hinzugefügt',\n isEditingPlant: 'bearbeitet die Konfiguration',\n eliotParseException:\n 'Problem beim Lesen der Anlagenkonfiguration aus der Cloud.', // assignObject: {\n // selectFromLastScan: 'Select from last scan',\n // selectFromCatalogue: 'Select from catalogue',\n // },\n // assignThermo: {\n // selectOnlyOneDescription:\n // 'TEMP STRING You should select one and only one device.',\n // thermostatAdded: 'Thermostat added',\n // heatingActuatorAdded: 'Heating actuator added',\n // coolingActuatorAdded: 'Cooling actuator added',\n // sharedActuatorAdded: 'Shared actuator added',\n // heatingPumpAdded: 'Heating pump added',\n // coolingPumpAdded: 'Cooling pump added',\n // sharedPumpAdded: 'Shared pump added',\n // probeAdded: 'Probe added',\n // },\n};\nexport default stringsDE;\n","const stringsES = {\n 'general.loggingIn': 'Iniciando sesión...',\n 'general.invalidPassword': 'Contraseña no válida, intenta otra vez',\n 'general.goToLogin': 'Ir a \"iniciar sesión\"',\n 'general.loggedOutText': 'Has sido desconectado',\n 'general.changePassword': 'Cambiar contraseña',\n 'general.modified': 'Modificado',\n 'general.mobile': 'Móvil',\n 'general.desktop': 'Escritorio',\n 'general.backTo': 'Volver',\n 'general.synced': 'Sincronizado',\n 'general.assigned': 'asignado',\n 'general.notAssigned': 'no asignado',\n 'menuLabel.notesAndDocuments': 'Notas y documentos',\n 'plants.filterByTag': 'Filtrar por tag',\n 'plants.recentlyModified': 'ordenar por modificaciones recientes',\n 'plants.plantName': 'ordenar por nombre de instalación',\n 'newPlantDialog.insertGroup': '+ añadir un nuevo grupo y presionar Intro',\n 'plantDetail.addDevice': 'Añadir dispositivo',\n 'plantDetail.addObjects': 'Añadir objetos',\n 'plants.noPlantsHint':\n 'Pincha en \"Nueva instalación\" para crear una nueva instalación',\n 'plantDetail.newUpdates': 'Nuevas actualizaciones',\n 'plantDetail.willRefreshToReflectChanges':\n 'Este elemento ha sido actualizado. La página se actualizará para reflejar los cambios.',\n 'plantDetail.addGroup': 'Añadir grupo',\n 'plantDetail.addScene': 'Añadir escenario',\n 'plantC300EOSSettings.GeneralSettings': 'Ajustes generales',\n 'plantC300EOSSettings.DoorEntryParametrs': 'PARÁMETROS DE VIDEOPORTERO',\n 'plantC300EOSSettings.descPage':\n 'No se puede modificar todos los parámetros para esta sección: tienes que hacerlo in-situ desde la aplicación conectada',\n 'general.favourites': 'Favoritos',\n 'general.select': 'Seleccionar',\n 'general.operationError': 'Error en la operación',\n 'plantDetail.lastScan': 'Último escaneo: {date} a las {time}',\n 'general.assignIcon': 'Asignar el icono',\n 'general.assignedIcon': 'Icono asignado',\n 'newPlantDialog.modified': 'Instalación modificada',\n 'plantDetail.deletePlantConfirm':\n '¿Estás seguro que quieres suprimir {plantName}? Se perderán todos los datos. Para suprimir, insertar el código {code} y confirmar',\n 'plantDetail.objectsCreated': 'Objetos creados con éxito',\n 'plantDetail.selectDevice': 'Selecciona un dispositivo para ver sus módulos',\n 'plantDetail.typeNameGroup': 'Tipo y nombre del grupo',\n 'plantDetail.disableScene': 'Deshabilitar escenario',\n 'plantDetail.disableSceneConfirm':\n '¿Estás seguro que quieres deshabilitar el escenario \"{sceneName}\"?',\n 'plantC300EOSSettings.SetAsPrimaryEntryUnitDESC':\n 'La unidad externa principal es la única que transfiere la llamada desde la app y gestiona el contestador',\n 'plantC300EOSSettings.ProfessionalStudioDESC':\n 'Cuando lo habilita el usuario, el estudio profesional abre automáticamente la cerradura de la puerta cada vez que alguien llama',\n 'scenes.trigger': 'disparador',\n 'uniqueNaming.validationError': 'Nombre no válido',\n 'uniqueNaming.unavailableName': 'Nombre no disponible',\n 'uniqueNaming.roomInlineNamingError':\n 'No ha sido posible actualizar el nombre',\n 'uniqueNaming.roomInlineNamingSuccess': 'Nombre de la habitación actualizado',\n 'uniqueNaming.nameResetDisclaimer': 'El nombre se reiniciará al inicial',\n 'uniqueNaming.validationErrorWithSuggestion':\n 'Nombre no válido, puedes intentar con: \"{suggestedName}\"',\n 'plantsList.duplicateDialog.inputLabel':\n 'Puedes ajustar los nombres de las instalaciones aquí',\n 'plantDialogDuplicate.howManyCopies': 'Cuántas copias',\n 'plantDialogDuplicate.success': 'Instalación duplicada',\n 'general.actuatorAdded': 'Actuador añadido',\n 'general.commandAdded': 'Comando añadido',\n isEditingPlant: 'está modificando la configuración',\n eliotParseException:\n 'Problema en la lectura de la configuración de la instalación desde cloud.', // assignObject: {\n // selectFromLastScan: 'Select from last scan',\n // selectFromCatalogue: 'Select from catalogue',\n // },\n // assignThermo: {\n // selectOnlyOneDescription:\n // 'TEMP STRING You should select one and only one device.',\n // thermostatAdded: 'Thermostat added',\n // heatingActuatorAdded: 'Heating actuator added',\n // coolingActuatorAdded: 'Cooling actuator added',\n // sharedActuatorAdded: 'Shared actuator added',\n // heatingPumpAdded: 'Heating pump added',\n // coolingPumpAdded: 'Cooling pump added',\n // sharedPumpAdded: 'Shared pump added',\n // probeAdded: 'Probe added',\n // },\n};\nexport default stringsES;\n","const stringsFR = {\n \n};\n\nexport default stringsFR;\n","const stringsNL = {\n 'general.loggingIn': 'Inloggen...',\n 'general.invalidPassword': 'Het wachtwoord is ongeldig, probeer opnieuw',\n 'general.goToLogin': 'Ga naar login',\n 'general.loggedOutText': 'U bent uitgelogd',\n 'general.changePassword': 'Wachtwoord wijzigen',\n 'general.modified': 'Aangepast',\n 'general.mobile': 'Mobiel',\n 'general.desktop': 'Desktop',\n 'general.backTo': 'Terug naar',\n 'general.synced': 'Gesynchroniseerd',\n 'general.assigned': 'toegewezen',\n 'general.notAssigned': 'niet toegewezen',\n 'menuLabel.notesAndDocuments': \"Nota's en documenten\",\n 'plants.filterByTag': 'Filter per tag',\n 'plants.recentlyModified': 'sorteer volgens laatst aangepast',\n 'plants.plantName': 'sorteer volgens installatienaam',\n 'newPlantDialog.insertGroup': '+ voeg een nieuwe groep toe en druk op Enter',\n 'plantDetail.addDevice': 'Toestel toevoegen',\n 'plantDetail.addObjects': 'Functie toevoegen',\n 'plants.noPlantsHint':\n 'Klik op de « Nieuwe installatie » toets om een nieuwe installatie aan te maken  ',\n 'plantDetail.newUpdates': 'Nieuwe updates',\n 'plantDetail.willRefreshToReflectChanges':\n 'Dit element werd geupdatet. De pagina wordt vernieuwd om de aanpassingen te tonen.',\n 'plantDetail.addGroup': 'Groep toevoegen',\n 'plantDetail.addScene': 'Scenario toevoegen',\n 'plantC300EOSSettings.GeneralSettings': 'Algemene instellingen',\n 'plantC300EOSSettings.DoorEntryParametrs': 'DEURCOMMUNICATIE PARAMETERS',\n 'plantC300EOSSettings.descPage':\n 'Niet alle parameters kunnen vanuit deze sectie worden gewijzigd: u zult dit ter plaatse moeten doen met de aangesloten app',\n 'general.favourites': 'Favorieten',\n 'general.select': 'Selecteer',\n 'general.operationError': 'Error',\n 'plantDetail.lastScan': 'Laatste scan: {date} om {time}',\n 'general.assignIcon': 'Icoon toewijzen',\n 'general.assignedIcon': 'Toegewezen icoon',\n 'newPlantDialog.modified': 'Installatie aangepast',\n 'plantDetail.deletePlantConfirm':\n 'Wil u {plantName} verwijderen? Alle data zal verloren gaan. Geef de code {code} om te verwijderen en bevestig',\n 'plantDetail.objectsCreated': 'Objecten succesvol aangemaakt',\n 'plantDetail.selectDevice': 'Selecteer een apparaat om zijn modules te zien',\n 'plantDetail.typeNameGroup': 'Type en naam van de groep',\n 'plantDetail.disableScene': \"Scenario's deactiveren\",\n 'plantDetail.disableSceneConfirm':\n 'Bent u zeker dat u scenario \"{sceneName}\" wil deactiveren?',\n 'plantC300EOSSettings.SetAsPrimaryEntryUnitDESC':\n 'De primaire binnenpost is de enige met antwoordapparaat en doorschakeling van de oproep naar Smartphone',\n 'plantC300EOSSettings.ProfessionalStudioDESC':\n 'Bij de instelling \"automatisch deurslot\" wordt het deurslot geopend telkens iemand aanbelt',\n 'scenes.trigger': 'trigger',\n 'uniqueNaming.validationError': 'De naam is ongeldig',\n 'uniqueNaming.unavailableName': 'Onbeschikbare naam',\n 'uniqueNaming.roomInlineNamingError': 'De naam kan niet geupdatet worden',\n 'uniqueNaming.roomInlineNamingSuccess': 'Ruimtenaam geupdatet',\n 'uniqueNaming.nameResetDisclaimer':\n 'The naam wordt gereset naar de oorspronkelijke naam',\n 'uniqueNaming.validationErrorWithSuggestion':\n 'De naam is ongeldig, je kan proberen met: \"{suggestedName}\"',\n 'plantsList.duplicateDialog.inputLabel':\n 'Je kan de namen van de installaties hier aanpassen',\n 'plantDialogDuplicate.howManyCopies': 'Hoeveel copies',\n 'plantDialogDuplicate.success': 'Installatie gedupliceerd',\n 'general.actuatorAdded': 'Actuator toegevoegd',\n 'general.commandAdded': 'Bediening toegevoegd',\n isEditingPlant: 'is bezig met de configuratie aan te passen',\n eliotParseException:\n 'Probleem met het lezen van de configuratie in de Cloud.', // assignObject: {\n // selectFromLastScan: 'Select from last scan',\n // selectFromCatalogue: 'Select from catalogue',\n // },\n // assignThermo: {\n // selectOnlyOneDescription:\n // 'TEMP STRING You should select one and only one device.',\n // thermostatAdded: 'Thermostat added',\n // heatingActuatorAdded: 'Heating actuator added',\n // coolingActuatorAdded: 'Cooling actuator added',\n // sharedActuatorAdded: 'Shared actuator added',\n // heatingPumpAdded: 'Heating pump added',\n // coolingPumpAdded: 'Cooling pump added',\n // sharedPumpAdded: 'Shared pump added',\n // probeAdded: 'Probe added',\n // },\n};\nexport default stringsNL;\n","const stringsSK = {\n \n};\n\nexport default stringsSK;\n","import stringsIT from './strings-it';\nimport stringsEN from './strings-en';\nimport stringsDE from './strings-de';\nimport stringsES from './strings-es';\nimport stringsFR from './strings-fr';\nimport stringsNL from './strings-nl';\nimport stringsSK from './strings-sk';\n\nimport stringsXamarinEN from '@/../xamarin-translations/json/en-US.json';\nimport stringsXamarinIT from '@/../xamarin-translations/json/it.json';\nimport stringsXamarinDE from '@/../xamarin-translations/json/de.json';\nimport stringsXamarinES from '@/../xamarin-translations/json/es.json';\nimport stringsXamarinFR from '@/../xamarin-translations/json/fr.json';\nimport stringsXamarinNL from '@/../xamarin-translations/json/nl.json';\nimport stringsXamarinSK from '@/../xamarin-translations/json/sk.json';\n\nconst strings = {\n it: { ...stringsIT, ...stringsXamarinIT },\n en: { ...stringsEN, ...stringsXamarinEN },\n de: { ...stringsDE, ...stringsXamarinDE },\n es: { ...stringsES, ...stringsXamarinES },\n fr: { ...stringsFR, ...stringsXamarinFR },\n nl: { ...stringsNL, ...stringsXamarinNL },\n sk: { ...stringsSK, ...stringsXamarinSK },\n};\n\nexport default strings;\n","import { createI18n } from 'vue-i18n';\nimport messages from './strings/index';\n\n// Escape pipes\nconst msgs = JSON.parse(JSON.stringify(messages).replaceAll('|', \"{'|'}\"))\n\n// A bit nasty as approach, but it works.\n// Standard approach would be to keep the i18n\n// files named like the various locales (en-US, en-GB, it-IT, de-DE, fr-FR...).\n// By doing so the user can load his specific culture locale.\n// Right now we are referring to the general culture, and no specificity\n// of the language is considered.\nconst browserLang = navigator.language.split('-')[0];\n\n// call with I18n option\nconst i18n = createI18n({\n locale: browserLang, // set locale\n fallbackLocale: 'en',\n messages: msgs, // set locale messages\n fallbackWarn: false,\n missingWarn: false,\n silentTranslationWarn: true\n});\n\nexport default i18n;\n","module.exports = __webpack_public_path__ + \"img/entrance_plant_4.170497a8.jpg\";","module.exports = __webpack_public_path__ + \"img/logo.878a8198.svg\";","module.exports = __webpack_public_path__ + \"img/house-1@3x.9eeab388.jpg\";","module.exports = __webpack_public_path__ + \"img/icon-setting.05930d6b.svg\";","module.exports = __webpack_public_path__ + \"img/entrance_plant_2@3x.a128d8fd.jpg\";","var map = {\n\t\"./apt-1@3x.jpg\": \"4842\",\n\t\"./apt-2@3x.jpg\": \"8230\",\n\t\"./entrance_plant_1@3x.jpg\": \"19ee\",\n\t\"./entrance_plant_2@3x.jpg\": \"eadf\",\n\t\"./entrance_plant_3@3x.jpg\": \"8e0a\",\n\t\"./entrance_plant_4@3x.jpg\": \"25320\",\n\t\"./entrance_plant_5@3x.jpg\": \"1905\",\n\t\"./house-1@3x.jpg\": \"e63c\",\n\t\"./house-2@3x.jpg\": \"0203\",\n\t\"./house-3@3x.jpg\": \"0a98\",\n\t\"./plantType/smart-home@3x.jpg\": \"b5e2\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"ed5a\";","import i18n from '../translations/i18n';\nimport {\n UserDTO,\n PlantDTO,\n SceneDTO,\n DeviceDTO,\n IDeviceDTO,\n ServerModel,\n RoomObjectDTO,\n PlantDetailDTO,\n PlantSharingDTO,\n PlantMxServerDTO,\n ExtDevice,\n ExtComponentType,\n PlayerExtDevice,\n PlayerSystem,\n ColoredLightExtDevice,\n Slot,\n SlotStatus,\n CommandIcon,\n PlantIconEnum,\n ThermoTypeOfObject,\n ThermoAssociatedPump,\n RoomType,\n LightType,\n SceneType,\n RoomObjectType,\n SceneObjectType,\n ThermoActuatorType,\n AggregateCommandType,\n ColoredLightType,\n XmeterExtDevice,\n PlantType,\nLanguage,\nEntrancePlantDetailDTO,\nApartmentInvitationDTO,\n} from '@/../client-generator/generated-clients/plants';\nimport {\n ComponentType,\n IDefaultDevicesSettingsDTO,\n RoomObject,\n} from '@/../client-generator/generated-clients/device-settings';\nimport { SlotRuleServiceType } from '../services/slots-assign-rules-service/slots-assign-rules-interfaces';\n\nconst $t = i18n.global.t;\n\nconst cloneObject = (object: T): T => {\n return JSON.parse(JSON.stringify(object));\n};\n\nconst getUserInitials = (usersName: string) => {\n const names = usersName.split(' ');\n\n if (names.length === 1) {\n return names[0][0];\n }\n\n return `${names[0][0]}${names[1][0]}`;\n};\n\nconst roomObjectTypeIconMapping: Record = {\n [RoomObjectType.None]: 'icon-none',\n [RoomObjectType.Lock]: 'icon-lock',\n [RoomObjectType.Light]: 'icon-light',\n [RoomObjectType.Blind]: 'icon-blind',\n [RoomObjectType.Alarm]: 'icon-security',\n [RoomObjectType.Xmeter]: 'icon-xmeter',\n [RoomObjectType.Socket]: 'icon-socket',\n [RoomObjectType.Player]: 'icon-player',\n [RoomObjectType.Shutter]: 'icon-shutter',\n [RoomObjectType.Fancoil]: 'icon-fancoil',\n [RoomObjectType.WirelessCommand]: 'icon-wifi',\n [RoomObjectType.Thermostat]: 'icon-thermostat',\n [RoomObjectType.Thermostat99zones]: 'icon-thermostat',\n [RoomObjectType.TowelWarmer]: 'icon-towel-rail',\n [RoomObjectType.ColoredLight]: 'icon-colored-light',\n [RoomObjectType.AlarmSensor]: 'icon-security',\n [RoomObjectType.DimmerDmx]: 'icon-dimmer-dmx',\n [RoomObjectType.ScheduledScenarioPlus]: '',\n [RoomObjectType.Contact]: '',\n [RoomObjectType.DimmerDali]: '',\n [RoomObjectType.Actuactor]: '',\n};\n\nconst roomObjectTypeLabelMapping: Record = {\n [RoomObjectType.None]: '',\n [RoomObjectType.Lock]: $t('AppResource.Lock'),\n [RoomObjectType.Light]: $t('AppResource.Light'),\n [RoomObjectType.Blind]: $t('AppResource.Blind'),\n [RoomObjectType.Alarm]: $t('AppResource.Alarm'),\n [RoomObjectType.Xmeter]: $t('AppResource.Xmeter'),\n [RoomObjectType.Socket]: $t('AppResource.Socket'),\n [RoomObjectType.Player]: $t('AppResource.Player'),\n [RoomObjectType.Shutter]: $t('AppResource.Shutter'),\n [RoomObjectType.Fancoil]: $t('AppResource.Fancoil'),\n [RoomObjectType.WirelessCommand]: $t('AppResource.WirelessCommand'),\n [RoomObjectType.Thermostat]: $t('AppResource.Thermostat'),\n [RoomObjectType.Thermostat99zones]: $t('AppResource.Thermostat99zones'),\n [RoomObjectType.TowelWarmer]: $t('AppResource.TowelWarmer'),\n [RoomObjectType.ColoredLight]: $t('AppResource.ColoredLight'),\n [RoomObjectType.AlarmSensor]: $t('AppResource.AlarmSensor'),\n [RoomObjectType.DimmerDmx]: $t('AppResource.DimmerDmx'),\n [RoomObjectType.ScheduledScenarioPlus]: '',\n [RoomObjectType.Contact]: '',\n [RoomObjectType.DimmerDali]: '',\n [RoomObjectType.Actuactor]: '',\n};\n\nconst extDeviceTypeIconMapping: Record = {\n [ExtComponentType.Player]: 'icon-music-player',\n [ExtComponentType.ColoredLight]: 'icon-network',\n [ExtComponentType.Xmeter]: 'icon-network',\n [ExtComponentType.AlarmSensor]: 'icon-security',\n [ExtComponentType.AlarmCentralUnit]: 'icon-security',\n [ExtComponentType.DimmerDmx]: 'icon-dimmer-dmx',\n};\n\nconst sceneObjectTypeIconMapping: Record = {\n [SceneObjectType.None]: '',\n [SceneObjectType.Lock]: 'icon-lock',\n [SceneObjectType.Light]: 'icon-light',\n [SceneObjectType.Blind]: 'icon-blind',\n [SceneObjectType.Email]: 'icon-email',\n [SceneObjectType.Dimmer]: 'icon-light',\n [SceneObjectType.Xmeter]: 'icon-xmeter',\n [SceneObjectType.Player]: 'icon-player',\n [SceneObjectType.Socket]: 'icon-socket',\n [SceneObjectType.Fancoil]: 'icon-fancoil',\n [SceneObjectType.Shutter]: 'icon-shutter',\n [SceneObjectType.Command]: 'icon-command',\n [SceneObjectType.Weather]: 'icon-weather',\n [SceneObjectType.DateTime]: 'icon-datetime',\n [SceneObjectType.Thermostat]: 'icon-thermostat',\n [SceneObjectType.TowelWarmer]: 'icon-towel-rail',\n [SceneObjectType.GroupOfShutters]: 'icon-shutter',\n [SceneObjectType.GroupOfLights]: 'icon-group-lights',\n [SceneObjectType.ColoredLights]: 'icon-colored-light',\n [SceneObjectType.GeneralCommandsLights]: 'icon-light',\n [SceneObjectType.GeneralCommandsShutters]: 'icon-shutter',\n [SceneObjectType.PushNotificationAction]: 'icon-push-notification',\n [SceneObjectType.Alarm]: 'icon-security',\n [SceneObjectType.AlarmSensor]: 'icon-security',\n [SceneObjectType.DimmerDmx]: 'icon-dimmer-dmx',\n [SceneObjectType.Dali]: ''\n};\n\nexport interface ObjectTypes {\n name: string;\n icon: string;\n type: RoomObjectType;\n}\n\nconst objectTypes: ObjectTypes[] = [\n {\n name: $t('AppResource.Light'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Light],\n type: RoomObjectType.Light,\n },\n {\n name: $t('AppResource.ColoredLight'),\n icon: roomObjectTypeIconMapping[RoomObjectType.ColoredLight],\n type: RoomObjectType.ColoredLight,\n },\n {\n name: $t('AppResource.DimmerDmx'),\n icon: roomObjectTypeIconMapping[RoomObjectType.DimmerDmx],\n type: RoomObjectType.DimmerDmx,\n },\n {\n name: $t('AppResource.Shutter'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Shutter],\n type: RoomObjectType.Shutter,\n },\n {\n name: $t('AppResource.Socket'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Socket],\n type: RoomObjectType.Socket,\n },\n {\n name: $t('AppResource.Lock'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Lock],\n type: RoomObjectType.Lock,\n },\n {\n name: $t('AppResource.Thermostat'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Thermostat],\n type: RoomObjectType.Thermostat,\n },\n {\n name: $t('AppResource.Thermostat'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Thermostat99zones],\n type: RoomObjectType.Thermostat99zones,\n },\n {\n name: $t('AppResource.Fancoil'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Fancoil],\n type: RoomObjectType.Fancoil,\n },\n {\n name: $t('AppResource.TowelWarmer'),\n icon: roomObjectTypeIconMapping[RoomObjectType.TowelWarmer],\n type: RoomObjectType.TowelWarmer,\n },\n {\n name: 'Wireless',\n icon: roomObjectTypeIconMapping[RoomObjectType.WirelessCommand],\n type: RoomObjectType.WirelessCommand,\n },\n {\n name: $t('AppResource.Blind'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Blind],\n type: RoomObjectType.Blind,\n },\n {\n name: $t('AppResource.Xmeter'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Xmeter],\n type: RoomObjectType.Xmeter,\n },\n {\n name: $t('AppResource.Player'),\n icon: roomObjectTypeIconMapping[RoomObjectType.Player],\n type: RoomObjectType.Player,\n },\n {\n name: $t('alarm.alarmsensor'),\n icon: roomObjectTypeIconMapping[RoomObjectType.AlarmSensor],\n type: RoomObjectType.AlarmSensor,\n },\n];\n\nconst defaultNewPlant = new PlantDTO({\n tags: [],\n name: '',\n address: '',\n country: 'IT',\n roomsCounts: [],\n icon: PlantIconEnum.ICON_1,\n mxServer: new PlantMxServerDTO({ model: undefined }),\n plantType: PlantType.AUTOMATION_PLANT,\n});\n\nconst defaultNewEntrancePlant = new EntrancePlantDetailDTO({\n tags: [],\n name: '',\n address: '',\n country: 'IT',\n icon: PlantIconEnum.ICON_1,\n plantType: PlantType.ENTRANCE_PLANT,\n});\n\nconst getRoomIconFromType = (roomType: RoomType) => {\n let iconName = '';\n\n switch (roomType) {\n case RoomType.Livingroom:\n iconName = 'icon-livingroom';\n break;\n case RoomType.Bathroom:\n iconName = 'icon-bathroom';\n break;\n case RoomType.Kitchen:\n iconName = 'icon-kitchen';\n break;\n case RoomType.Bedroom:\n iconName = 'icon-bedroom';\n break;\n case RoomType.Lobby:\n iconName = 'icon-entrance';\n break;\n case RoomType.Corridor:\n iconName = 'icon-corridor';\n break;\n case RoomType.Garage:\n iconName = 'icon-garage';\n break;\n case RoomType.Outdoor:\n iconName = 'icon-outdoor';\n break;\n case RoomType.Stairs:\n iconName = 'icon-staircase';\n break;\n case RoomType.Dining_room:\n iconName = 'icon-diningroom';\n break;\n case RoomType.Toilets:\n iconName = 'icon-toilets';\n break;\n case RoomType.Home_office:\n iconName = 'icon-office';\n break;\n case RoomType.Custom:\n iconName = 'icon-blueprint';\n break;\n case RoomType.Electrical_cabinet:\n iconName = 'icon-electrical-cabinet';\n break;\n }\n\n return iconName;\n};\n\nconst getObjectIconFromType = (objectType: RoomObjectType) => {\n return roomObjectTypeIconMapping[objectType];\n};\n\nconst getObjectLabelFromType = (objectType: RoomObjectType) => {\n return roomObjectTypeLabelMapping[objectType];\n};\n\nconst getExtDeviceIconFromType = (extDeviceType: ExtComponentType) => {\n return extDeviceTypeIconMapping[extDeviceType];\n};\n\nconst getObjectDescLabel = (object: RoomObjectDTO) => {\n let label = '';\n\n switch (object.type) {\n case RoomObjectType.ColoredLight:\n label = $t('AppResource.ColoredLight');\n break;\n case RoomObjectType.Player:\n label = $t('AppResource.MusicPlayer');\n break;\n case RoomObjectType.Xmeter:\n label = $t('AppResource.Xmeter');\n break;\n case RoomObjectType.Lock:\n label = $t('AppResource.Lock');\n break;\n case RoomObjectType.Shutter:\n label = $t('AppResource.ShutterObject');\n break;\n case RoomObjectType.Blind:\n label = $t('AppResource.Blind');\n break;\n case RoomObjectType.Socket:\n label = $t('AppResource.ControlledSocket');\n break;\n case RoomObjectType.Fancoil:\n label = `${\n object.thermoTypeOfObject == ThermoTypeOfObject.Heating\n ? $t('AppResource.Heating')\n : $t('AppResource.Cooling')\n } ${$t('AppResource.FancoilLower')}`;\n break;\n case RoomObjectType.TowelWarmer:\n label = $t('AppResource.TowelWarmer');\n break;\n case RoomObjectType.WirelessCommand:\n label = '';\n break;\n case RoomObjectType.Thermostat:\n if (object.thermoTypeOfObject === ThermoTypeOfObject.Cooling)\n label = $t('AppResource.Cooling');\n else if (object.thermoTypeOfObject === ThermoTypeOfObject.Heating)\n label = $t('AppResource.Heating');\n else if (\n object.thermoTypeOfObject === ThermoTypeOfObject.HeatingAndCooling\n )\n label = $t('AppResource.HeatingAndCooling');\n if (object.thermoAssociatedPump === ThermoAssociatedPump.Yes)\n label += ' plant with associated pump';\n else label += ' plant without associated pump';\n break;\n case RoomObjectType.Light:\n label = `${\n object.lightType === LightType.Dimmer\n ? $t('AppResource.Dimmer')\n : $t('AppResource.OnOffLight')\n } ${$t('AppResource.Object')}`;\n break;\n case RoomObjectType.DimmerDmx:\n label = $t('AppResource.DimmerDmx');\n break;\n }\n\n return label;\n};\n\nconst getDeviceIconName = (commandIcon?: CommandIcon) => {\n if (!commandIcon) return '';\n return ` | icon ${CommandIcon[commandIcon]}`;\n};\n\nconst getThermo99Description = (roomObject: RoomObject) => {\n return `${roomObject.thermo99SelectedZone} - ${$t(\n `AppResource.${\n roomObject.thermo99HasFancoil ? 'WithLower' : 'WithoutLower'\n }`\n )} ${$t('AppResource.FancoilLower')}`;\n};\n\nconst getPlantIconImages = () => {\n return [\n {\n imageName: 'house-3',\n value: PlantIconEnum.ICON_1,\n },\n {\n imageName: 'house-2',\n value: PlantIconEnum.ICON_2,\n },\n {\n imageName: 'house-1',\n value: PlantIconEnum.ICON_3,\n },\n {\n imageName: 'apt-1',\n value: PlantIconEnum.ICON_4,\n },\n {\n imageName: 'apt-2',\n value: PlantIconEnum.ICON_5,\n },\n ];\n};\n\nconst getEpPlantIconImages = () => {\n return [\n {\n imageName: 'entrance_plant_1',\n value: PlantIconEnum.ICON_1,\n },\n {\n imageName: 'entrance_plant_2',\n value: PlantIconEnum.ICON_2,\n },\n {\n imageName: 'entrance_plant_3',\n value: PlantIconEnum.ICON_3,\n },\n {\n imageName: 'entrance_plant_4',\n value: PlantIconEnum.ICON_4,\n },\n {\n imageName: 'entrance_plant_5',\n value: PlantIconEnum.ICON_5,\n },\n ];\n};\n\nconst getPlantIconImageUrls = ({ imageName }: { imageName: string }) => {\n return [\n require(`@/assets/images/plants/${imageName}.jpg`),\n require(`@/assets/images/plants/${imageName}@2x.jpg`),\n require(`@/assets/images/plants/${imageName}@3x.jpg`),\n ];\n};\n\nconst getEpPlantIconImageUrls = ({ imageName }: { imageName: string }) => {\n return [\n require(`@/assets/images/plants/${imageName}.jpg`),\n require(`@/assets/images/plants/${imageName}@2x.jpg`),\n require(`@/assets/images/plants/${imageName}@3x.jpg`),\n ];\n};\n\nconst getPlantIconImageUrlsByType = (\n plantTypeIcon?: PlantIconEnum,\n plantCustomIconUrl?: string,\n plantType?: PlantType\n) => {\n if (plantTypeIcon == PlantIconEnum.ICON_CUSTOM) return [plantCustomIconUrl];\n if (plantType == PlantType.ENTRANCE_PLANT){\n const image = getEpPlantIconImages().find((x) => x.value === plantTypeIcon);\n return image ? getEpPlantIconImageUrls(image) : [];\n }\n const image = getPlantIconImages().find((x) => x.value === plantTypeIcon);\n return image ? getPlantIconImageUrls(image) : [];\n};\n\nconst getDeviceIcon = (device: IDeviceDTO) => {\n let iconName = '';\n\n if (device.selectedComponentType === ComponentType.Command)\n iconName = 'icon-command';\n else iconName = 'icon-network';\n return iconName;\n};\n\nconst getExtDeviceIdentifier = (extDevice: ExtDevice) => {\n switch (extDevice.componentType) {\n case ExtComponentType.Player: {\n const player = extDevice as PlayerExtDevice;\n return `${\n player.playerSystem == PlayerSystem.Nuvo ? 'NuVo Zone' : 'Sonos'\n } ${player.macAddress}`;\n }\n case ExtComponentType.ColoredLight: {\n const coloredLight = extDevice as ColoredLightExtDevice;\n switch (coloredLight.coloredLightType) {\n case ColoredLightType.Dmx:\n return $t('AppResource.DmxEnttecOde');\n case ColoredLightType.Lifx:\n return $t('AppResource.Lifx');\n case ColoredLightType.PhilipsHue:\n return $t('AppResource.PhilipsHue');\n }\n break;\n }\n case ExtComponentType.Xmeter: {\n const xmDevice = extDevice as XmeterExtDevice;\n return `${$t('AppResource.Address')} ${xmDevice.address}`;\n }\n }\n};\n\nconst getExtDeviceActiveLink = (extDevice: ExtDevice) => {\n if (extDevice.componentType == ExtComponentType.ColoredLight) {\n const coloredLight = extDevice as ColoredLightExtDevice;\n switch (coloredLight.coloredLightType) {\n case ColoredLightType.PhilipsHue:\n return `Bridge ${coloredLight.philipsHueBridge} - ${coloredLight.philipsHueLampName}`;\n case ColoredLightType.Lifx:\n return `Ampoule Lifx ${coloredLight.lifxLamp}`;\n case ColoredLightType.Dmx:\n return `DMX ${coloredLight.dmxMacAddress} - Node ${coloredLight.dmxNode}`;\n }\n } else {\n return '';\n }\n};\n\nconst getDeviceIconFromSettings = (device: IDefaultDevicesSettingsDTO) => {\n let iconName = '';\n if (!device.isAggregateRoomObject) {\n if (device.selectedComponentType == ComponentType.Command)\n iconName = 'icon-command';\n else iconName = 'icon-network';\n } else {\n iconName = getRoomIconFromType(device.roomType ?? RoomType.Custom);\n }\n return iconName;\n};\n\nconst getConfiguredChannelsOrModulesSettings = (device: DeviceDTO) => {\n return device.defaultSettings?.find(\n (x) => x.selectedComponentType == device.selectedComponentType\n );\n};\n\nconst getPlantLastModifyByIcon = (lastModifyByDesktop: boolean | undefined) => {\n if (lastModifyByDesktop) return 'icon-desktop';\n return 'icon-mobile-device';\n};\n\nconst getPlantLastModifyByLabel = (\n lastModifyByDesktop: boolean | undefined\n) => {\n if (lastModifyByDesktop) return $t('general.desktop');\n return $t('general.mobile');\n};\n\nconst getUserInitialsForBubble = (user?: PlantSharingDTO | UserDTO | ApartmentInvitationDTO) => {\n if (!user) return '- -';\n let initials = '';\n const email =\n user.email ?? (() => ('invitedEmail' in user ? user.invitedEmail : ''))();\n if (email) {\n const emailParts = email.split('@');\n const firstEmailPart = emailParts[0];\n const usernameParts = firstEmailPart.split('.');\n if (usernameParts.length > 1)\n initials = `${usernameParts[0][0]}${usernameParts[1][0]}`;\n else initials = `${emailParts[0][0]}${emailParts[0][1]}`;\n } else {\n initials = '- -';\n }\n return initials.toUpperCase();\n};\n\nconst getSlotClass = (slot: Slot) => {\n let className = '';\n\n switch (slot.status) {\n case SlotStatus.Configured:\n className = 'configured';\n break;\n case SlotStatus.NotConfigured:\n className = 'not-configured';\n break;\n case SlotStatus.NotUsed:\n className = 'not-used';\n break;\n }\n\n return className;\n};\n\nconst secondsToFormattedTime = (seconds: number) => {\n const theDate = new Date(0);\n theDate.setSeconds(seconds);\n\n const secondsToFormattedTime =\n theDate.getUTCHours().toString().padStart(2, '0') +\n ':' +\n theDate.getUTCMinutes().toString().padStart(2, '0') +\n ':' +\n theDate.getUTCSeconds().toString().padStart(2, '0');\n\n return secondsToFormattedTime;\n};\n\nconst formattedTimeToSeconds = (formattedTime: string) => {\n const [hours, minutes, seconds] = formattedTime.split(':');\n\n const secondsFinal =\n parseInt(hours, 10) * 3600 +\n parseInt(minutes, 10) * 60 +\n parseInt(seconds, 10);\n\n return secondsFinal;\n};\n\nconst getCurrentThermoActuatorType = (\n thermoActuatorTypes: { [key: string]: ThermoActuatorType } | undefined,\n roomObjectId: string | undefined\n): ThermoActuatorType => {\n var tmp =\n thermoActuatorTypes && roomObjectId\n ? thermoActuatorTypes[roomObjectId]\n : undefined;\n return tmp ?? ThermoActuatorType.None;\n};\n\nconst convertThermoRuleServiceTypeToThermoActuatorType = (\n ruleServiceType: SlotRuleServiceType,\n logMappingError: boolean = false\n) => {\n switch (ruleServiceType) {\n case SlotRuleServiceType.THERMO_HEATING_ACTUATORS:\n return ThermoActuatorType.HeatingValve;\n case SlotRuleServiceType.THERMO_COOLING_ACTUATORS:\n return ThermoActuatorType.CoolingValve;\n case SlotRuleServiceType.THERMO_HEATING_PUMPS:\n return ThermoActuatorType.HeatingPump;\n case SlotRuleServiceType.THERMO_COOLING_PUMPS:\n return ThermoActuatorType.CoolingPump;\n case SlotRuleServiceType.THERMO_SHARED_ACTUATORS:\n return ThermoActuatorType.SharedValve;\n case SlotRuleServiceType.THERMO_SHARED_PUMPS:\n return ThermoActuatorType.SharedPump;\n default:\n if (logMappingError)\n console.error('TO DEFINE MAPPING of current assign actuator step type');\n return ThermoActuatorType.None;\n }\n};\n\nconst defaultSceneTypes = [\n SceneType.Wake_Up,\n SceneType.BedTime,\n SceneType.Home,\n SceneType.Away,\n];\n\nconst isDefaultScene = (s: SceneDTO | null) => {\n if (!s) return false;\n return defaultSceneTypes.includes(s.type as SceneType);\n};\n\nconst getGeneralGroupIconFromType = (\n groupType: AggregateCommandType,\n roomObjectType: RoomObjectType\n) => {\n switch (roomObjectType) {\n case RoomObjectType.Light:\n return groupType === AggregateCommandType.General\n ? roomObjectTypeIconMapping[RoomObjectType.Light]\n : sceneObjectTypeIconMapping[SceneObjectType.GroupOfLights];\n\n case RoomObjectType.Shutter:\n return roomObjectTypeIconMapping[RoomObjectType.Shutter];\n }\n};\n\nconst getSceneObjectIconFromType = (sceneObjectType: SceneObjectType) => {\n return sceneObjectTypeIconMapping[sceneObjectType];\n};\n\nconst isValidEnum = (value: any) => {\n return value !== null && value !== undefined && !isNaN(Number(value));\n};\n\nasync function sleep(timeMs: number): Promise {\n return new Promise((r) => setTimeout(() => r(), timeMs));\n}\n\nfunction getRandomInt(min: number, max: number, returnString = false) {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nconst NAME_VALIDATION_DEBOUNCE_TIME = 500;\n\nfunction resolveObjectPath(obj: any, path: string) {\n return path.split('.').reduce(function (prev, curr) {\n return prev ? prev[curr] : null;\n }, obj || self);\n}\n\nconst hasDeviceSettingsButtonVisible = (setting: IDefaultDevicesSettingsDTO) =>\n setting?.shuttersActuatorSettings != null ||\n setting?.shuttersCommandSettings != null ||\n setting?.lightsActuatorSettings != null ||\n setting?.lightsCommandSettings != null ||\n setting?.lockCommandSettings != null ||\n setting?.lockActuatorSettings != null ||\n setting?.thermoProbeSettings != null;\n\nconst hasDeviceCommandIconButtonVisible = (\n setting: IDefaultDevicesSettingsDTO\n) => setting?.hasChangeIconButtonVisible;\n\nconst parseShutterActuatorSettings = (\n defaultSettings: IDefaultDevicesSettingsDTO\n) => {\n if (!defaultSettings.shuttersActuatorSettings) return;\n defaultSettings.shuttersActuatorSettings.stopPulseDuration =\n defaultSettings.shuttersActuatorSettings.stopPulseDuration! * 100;\n defaultSettings.shuttersActuatorSettings.upDownPulseDuration =\n defaultSettings.shuttersActuatorSettings.upDownPulseDuration! * 100;\n defaultSettings.shuttersActuatorSettings.presetValue =\n defaultSettings.shuttersActuatorSettings.presetValue! * 10;\n defaultSettings.shuttersActuatorSettings.delayBetweenDoorsTime =\n defaultSettings.shuttersActuatorSettings.delayBetweenDoorsTime! * 1000;\n defaultSettings.shuttersActuatorSettings.stopTime = getStopTime(\n defaultSettings.shuttersActuatorSettings.stopTime!\n );\n};\n\nconst getStopTime = (initialStopTime: number) => {\n let quotient = Math.floor(initialStopTime / 60);\n let remainder = initialStopTime % 60;\n\n if (quotient > 0) {\n if (remainder == 0) {\n return 60000;\n } else {\n return remainder * 60000;\n }\n } else {\n return remainder * 1000;\n }\n};\n\nconst getMxServerSettingsLabel = (currentPlant?: PlantDetailDTO) => {\n return i18n.global.t(\n currentPlant?.mxServer?.model == ServerModel.Classe300EOS\n ? 'AppResource.ServerAndSettings'\n : 'AppResource.ServerAndSettingsMHS1'\n );\n};\n\nconst validLanguages = Object.keys(Language).reduce((t: any, k: any) => {\n if (!isNaN(+k)) {\n t.push({\n name: Language[k],\n code: +k,\n });\n }\n return t;\n }, []);\n\n export {\n sleep,\n objectTypes,\n cloneObject,\n isValidEnum,\n getSlotClass,\n getRandomInt,\n getDeviceIcon,\n isDefaultScene,\n validLanguages,\n getUserInitials,\n defaultNewPlant,\n getDeviceIconName,\n resolveObjectPath,\n getObjectDescLabel,\n getPlantIconImages,\n getRoomIconFromType,\n getEpPlantIconImages,\n getObjectIconFromType,\n getPlantIconImageUrls,\n getThermo99Description,\n formattedTimeToSeconds,\n secondsToFormattedTime,\n getExtDeviceActiveLink,\n getExtDeviceIdentifier,\n getObjectLabelFromType,\n getEpPlantIconImageUrls,\n defaultNewEntrancePlant,\n getUserInitialsForBubble,\n getExtDeviceIconFromType,\n getMxServerSettingsLabel,\n getPlantLastModifyByIcon,\n getPlantLastModifyByLabel,\n getDeviceIconFromSettings,\n getSceneObjectIconFromType,\n getPlantIconImageUrlsByType,\n getGeneralGroupIconFromType,\n parseShutterActuatorSettings,\n getCurrentThermoActuatorType,\n NAME_VALIDATION_DEBOUNCE_TIME,\n hasDeviceSettingsButtonVisible,\n hasDeviceCommandIconButtonVisible,\n getConfiguredChannelsOrModulesSettings,\n convertThermoRuleServiceTypeToThermoActuatorType,\n};\n","module.exports = __webpack_public_path__ + \"img/icon-plants.19b765a8.svg\";"],"sourceRoot":""}