{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/ui/assets/images/previews/themeDark/ConsumptionService.png","webpack:///./src/ui/components/components/PreviewImage.vue?55ed","webpack:///./src/ui/assets/images/previews/themeLight/MpcEnergyView.png","webpack:///./src/ui/components/devices/devices/SensorLevel.vue?2a31","webpack:///./src/ui/components/components/Search.vue?52d8","webpack:///./src/ui/components/devices/devices/base/ArrowDownBase.vue?2ae3","webpack:///./src/ui/components/modals/ManageAnomalyDetection/index.vue","webpack:///./src/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue","webpack:///./src/ui/components/modals/components/form/ScalingField.vue","webpack:///./src/ui/components/modals/components/form/ScalingField.vue?31ca","webpack:///./src/ui/components/modals/components/form/ScalingField.vue?b8f0","webpack:///./src/ui/components/modals/components/form/ScalingField.vue?ce1d","webpack:///./src/ui/components/modals/components/RangeDatePicker.vue","webpack:///./src/ui/components/modals/components/RangeDatePicker.vue?9f81","webpack:///./src/ui/components/modals/components/RangeDatePicker.vue?d643","webpack:///./src/ui/components/modals/components/RangeDatePicker.vue?1321","webpack:///./src/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue?7cd9","webpack:///./src/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue?7f01","webpack:///./src/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue?bfe4","webpack:///./src/ui/components/modals/ManageAnomalyDetection/index.vue?8515","webpack:///./src/ui/components/modals/ManageAnomalyDetection/index.vue?f24f","webpack:///./src/ui/components/modals/ManageAnomalyDetection/index.vue?1fee","webpack:///./src/ui/components/components/IconValueFieldWithTooltip.vue?52e4","webpack:///./src/ui/components/devices/previews/devices/LightPushButton.vue?d2d8","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/index.vue","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue?a2a7","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue?aa53","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue?096c","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Chart.vue","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Chart.vue?404b","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Chart.vue?48f0","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Chart.vue?c7c6","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue?edf3","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue?b582","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue?e2a8","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/index.vue?ca6a","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/index.vue?a43d","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/index.vue?a9ab","webpack:///./src/ui/assets/images/weather/13.png","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue?b7c5","webpack:///./src/ui/assets/images/previews/themeDark/TV.png","webpack:///./src/ui/components/devices/components/InputFields/InputFieldExternal.vue","webpack:///./src/ui/components/devices/components/InputFields/InputFieldExternal.vue?4b61","webpack:///./src/ui/components/devices/components/InputFields/InputFieldExternal.vue?8d26","webpack:///./src/ui/components/devices/components/InputFields/InputFieldExternal.vue?62ec","webpack:///./src/ui/components/devices/previews/mpc/EMS/index.vue?cbdc","webpack:///./src/ui/assets/images/previews/themeDark/SensorCO2.png","webpack:///./src/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue?26ff","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue?f17a","webpack:///./src/ui/components/modals/ManageRoom.vue","webpack:///./src/ui/components/modals/ManageRoom.vue?f1bf","webpack:///./src/ui/components/modals/ManageRoom.vue?80d5","webpack:///./src/ui/components/modals/ManageRoom.vue?cf84","webpack:///./src/ui/components/modals/components/form/TextField.vue?0cdf","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue?ac2f","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue?3a5c","webpack:///./src/store/modules/variables/index.ts","webpack:///./src/store/modules/installationWizard/index.ts","webpack:///./src/store/modules/tenantWizard/index.ts","webpack:///./src/store/modules/navigation/index.ts","webpack:///./src/store/modules/projects/index.ts","webpack:///./src/store/modules/devices/settings/devicesTypesFiltered.ts","webpack:///./src/store/modules/devices/settings/index.ts","webpack:///./src/store/modules/devices/index.ts","webpack:///./src/services/MemberService.ts","webpack:///./src/store/modules/members/index.ts","webpack:///./src/store/modules/rooms/index.ts","webpack:///./src/services/MeasurementService.ts","webpack:///./src/store/modules/measurements/index.ts","webpack:///./src/store/modules/charts/index.ts","webpack:///./src/store/modules/anomalyDetection/anomalyDetectionTypes.ts","webpack:///./src/store/modules/anomalyDetection/index.ts","webpack:///./src/store/modules/mpc/mlModelTypes.ts","webpack:///./src/services/ControllerService.ts","webpack:///./src/services/MPCWeatherService.ts","webpack:///./src/services/MPCEnergyService.ts","webpack:///./src/store/modules/mpc/index.ts","webpack:///./src/services/ReportService.ts","webpack:///./src/store/modules/report/index.ts","webpack:///./src/store/modules/router/index.ts","webpack:///./src/services/EventService.ts","webpack:///./src/store/modules/events/index.ts","webpack:///./src/store/modules/mqtt/index.ts","webpack:///./src/store/modules/loggerWizard/index.ts","webpack:///./src/services/PartnerService.ts","webpack:///./src/store/modules/partners/index.ts","webpack:///./src/services/LeadsService.ts","webpack:///./src/store/modules/leads/index.ts","webpack:///./src/services/PartnerWorkspaceService.ts","webpack:///./src/store/modules/partnerWorkspaces/index.ts","webpack:///./src/services/SerialNumberService.ts","webpack:///./src/store/modules/serialNumber/index.ts","webpack:///./src/store/modules/index.ts","webpack:///./src/store/index.ts","webpack:///./src/ui/components/tables/ChartsTable.vue?1d00","webpack:///./src/ui/components/devices/previews/devices/VariableOutputField.vue?9180","webpack:///./src/ui/components/components/LynusPopup.vue","webpack:///./src/ui/components/components/LynusPopup.vue?dd65","webpack:///./src/ui/components/components/LynusPopup.vue?91f5","webpack:///./src/ui/components/components/LynusPopup.vue?d849","webpack:///./src/ui/assets/images/previews/themeDark/HouseConsumption.png","webpack:///./src/ui/components/modals/ManageReport/ZevReport.vue","webpack:///./src/ui/components/modals/ManageReport/TariffSettingsTooltip.vue","webpack:///./src/ui/components/modals/ManageReport/TariffSettingsTooltip.vue?f1ba","webpack:///./src/ui/components/modals/ManageReport/TariffSettingsTooltip.vue?02f0","webpack:///./src/ui/components/modals/ManageReport/TariffSettingsTooltip.vue?1b90","webpack:///./src/ui/components/modals/ManageReport/utils.ts","webpack:///./src/ui/components/modals/ManageReport/ZevReport.vue?6443","webpack:///./src/ui/components/modals/ManageReport/ZevReport.vue?2e88","webpack:///./src/ui/components/modals/ManageReport/ZevReport.vue?6cb1","webpack:///./src/ui/components/devices/devices/base/ArrowUpBase.vue?6632","webpack:///./src/ui/components/modals/actions/EmailAction.vue","webpack:///./src/ui/components/modals/actions/EmailAction.vue?9631","webpack:///./src/ui/components/modals/actions/EmailAction.vue?62e9","webpack:///./src/ui/components/modals/actions/EmailAction.vue?c34e","webpack:///./src/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue","webpack:///./src/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue?9881","webpack:///./src/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue?93ce","webpack:///./src/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue?34b4","webpack:///./src/ui/components/devices/previews/devices/LightSwitch.vue?b157","webpack:///./src/ui/components/devices/previews/devices/VentilatorSwitch.vue?746a","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue?788a","webpack:///./src/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue?9953","webpack:///./src/ui/components/devices/devices/HotWaterMeter.vue?e2db","webpack:///./src/ui/components/devices/devices/LightDimmer.vue?ca9f","webpack:///./src/ui/assets/images/previews/themeLight/VariableTextInputField.png","webpack:///./src/ui/components/devices/previews/components/SwitchMock.vue","webpack:///./src/ui/components/devices/previews/components/SwitchMock.vue?8acf","webpack:///./src/ui/components/devices/previews/components/SwitchMock.vue?32e6","webpack:///./src/ui/components/devices/previews/components/SwitchMock.vue?17fb","webpack:///./src/ui/assets/images/installation wizard/StringInverter.png","webpack:///./src/ui/assets/images/previews/themeDark/VariableTextInputField.png","webpack:///./src/ui/components/components/ModalWindow.vue","webpack:///./src/ui/components/components/ModalWindow.vue?97e1","webpack:///./src/ui/components/components/ModalWindow.vue?181e","webpack:///./src/ui/components/components/ModalWindow.vue?d13d","webpack:///./src/ui/components/devices/previews/devices/ControlShutter.vue?db6c","webpack:///./src/ui/components/devices/devices/MotorWithVFD.vue?81c6","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue?b435","webpack:///./src/services/api.ts","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue?e3b8","webpack:///./src/services/ProjectService.ts","webpack:///./src/ui/components/devices/components/EnergyParts/TimeSlider.vue?977a","webpack:///./src/ui/assets/images/previews/themeDark/ElectronicBoiler.png","webpack:///./src/ui/components/components/ModalWindow.vue?738c","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/index.vue?9c9e","webpack:///./src/ui/components/devices/devices/ElectronicBoiler.vue?3274","webpack:///./src/ui/components/devices/devices/SensorCO2.vue?9779","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue?eb8b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue?d727","webpack:///./src/ui/assets/images/previews/themeLight/Battery.png","webpack:///./src/ui/components/devices/devices/base/SwitchBase.vue?09f8","webpack:///./src/ui/assets/images/previews/themeLight/VentilatorSwitch.png","webpack:///./src/ui/components/devices/previews/devices/RegentLighting.vue?3cc8","webpack:///./src/ui/components/devices/charts/charts/ChartUtils.js","webpack:///./src/utils/utilsFunctions.ts","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue?cbe8","webpack:///./src/ui/components/devices/devices/TV.vue?aaa1","webpack:///./src/ui/assets/images/previews/themeDark/MixingValve.png","webpack:///./src/ui/components/devices/devices/Battery.vue?b6c2","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue?cff3","webpack:///./src/ui/components/devices/devices/SurveyClient.vue?2154","webpack:///./src/ui/components/devices/previews/devices/WeatherStation.vue?30dc","webpack:///./src/ui/components/devices/charts/components/ChartLoader.vue?14ca","webpack:///./src/ui/components/modals/Partner/ManageWorker.vue","webpack:///./src/ui/components/modals/Partner/ManageWorker.vue?46a2","webpack:///./src/ui/components/modals/Partner/ManageWorker.vue?ada6","webpack:///./src/ui/components/modals/Partner/ManageWorker.vue?86f3","webpack:///./src/ui/assets/images/previews/themeDark/MotionSensor.png","webpack:///./src/ui/assets/images/previews/themeLight/EnergyIO.png","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/index.vue?cf60","webpack:///./src/ui/components/devices/components/EnergyParts/BatteryLevel.vue","webpack:///./src/ui/components/devices/components/EnergyParts/BatteryLevel.vue?8d19","webpack:///./src/ui/components/devices/components/EnergyParts/BatteryLevel.vue?6b84","webpack:///./src/ui/components/devices/components/EnergyParts/BatteryLevel.vue?baaa","webpack:///./src/ui/components/devices/devices/ControlShutter.vue?8172","webpack:///./src/ui/components/devices/components/FeedbackProvider.vue","webpack:///./src/ui/components/devices/components/FeedbackProvider.vue?f582","webpack:///./src/ui/components/devices/components/FeedbackProvider.vue?31d1","webpack:///./src/ui/components/devices/components/FeedbackProvider.vue?8d74","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Chart.vue?0c80","webpack:///./src/ui/components/devices/mpc/HeatingProduction/index.vue?7e33","webpack:///./src/ui/components/devices/devices/RegentLighting.vue?1bb1","webpack:///./src/ui/components/modals/components/NavigationTab.vue","webpack:///./src/ui/components/modals/components/NavigationTab.vue?34bd","webpack:///./src/ui/components/modals/components/NavigationTab.vue?d0eb","webpack:///./src/ui/components/modals/components/NavigationTab.vue?278c","webpack:///./src/ui/components/devices/components/MPCLayout.vue","webpack:///./src/ui/components/devices/components/MPCLayout.vue?07b8","webpack:///./src/ui/components/devices/components/MPCLayout.vue?3e8c","webpack:///./src/ui/components/devices/components/MPCLayout.vue?e693","webpack:///./src/ui/components/devices/mpc/base/ShowEventBase.vue?9b49","webpack:///./src/ui/assets/images/previews/themeLight/DropDownInputFieldWithVariable.png","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/utils.ts","webpack:///./src/ui/assets/images/weather/09.png","webpack:///./src/ui/components/devices/previews/devices/SensorLevel.vue?0574","webpack:///./src/ui/components/modals/ManageMLModel/index.vue","webpack:///./src/ui/components/modals/ManageMLModel/schemas/ServicesSchema.vue","webpack:///./src/ui/components/modals/ManageMLModel/schemas/ServicesSchema.vue?3310","webpack:///./src/ui/components/modals/ManageMLModel/schemas/ServicesSchema.vue?87e2","webpack:///./src/ui/components/modals/ManageMLModel/schemas/ServicesSchema.vue?ea8b","webpack:///./src/ui/components/modals/ManageMLModel/schemas/HCOSchema.vue","webpack:///./src/ui/components/modals/ManageMLModel/schemas/HCOSchema.vue?5a21","webpack:///./src/ui/components/modals/ManageMLModel/schemas/HCOSchema.vue?4fd1","webpack:///./src/ui/components/modals/ManageMLModel/schemas/HCOSchema.vue?b330","webpack:///./src/ui/components/modals/ManageMLModel/schemas/DefaultSchema.vue","webpack:///./src/ui/components/modals/ManageMLModel/schemas/DefaultSchema.vue?54ac","webpack:///./src/ui/components/modals/ManageMLModel/schemas/DefaultSchema.vue?c853","webpack:///./src/ui/components/modals/ManageMLModel/schemas/DefaultSchema.vue?411a","webpack:///./src/ui/components/modals/ManageMLModel/index.vue?26b8","webpack:///./src/ui/components/modals/ManageMLModel/index.vue?c9fa","webpack:///./src/ui/components/modals/ManageMLModel/index.vue?a2ca","webpack:///./src/ui/assets/images/previews/themeDark/HppProductionService.png","webpack:///./src/ui/components/modals/ManageReport/NewReport.vue?002b","webpack:///./src/ui/components/partner/workspace/pages/ConnectWithProject.vue?2ba8","webpack:///./src/ui/assets/images/installation wizard/Mieterstrom.png","webpack:///./src/ui/components/devices/previews/devices/Battery.vue?0a39","webpack:///./src/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue?9d99","webpack:///./src/ui/assets/images/previews/themeLight/Temperature.png","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/developmentConfig.ts","webpack:///./src/ui/components/modals/components/form/TextField.vue","webpack:///./src/ui/components/modals/components/form/TextField.vue?a93c","webpack:///./src/ui/components/modals/components/form/TextField.vue?cdcf","webpack:///./src/ui/components/modals/components/form/TextField.vue?010a","webpack:///./src/ui/assets/images/previews/themeLight/ThermostatAnalog.png","webpack:///./src/ui/components/devices/charts/charts/BaseChart.vue?1602","webpack:///./src/ui/assets/images/previews/themeLight/PVMonitoringService.png","webpack:///./src/ui/assets/images/previews/themeDark/VentilatorSwitch.png","webpack:///./src/ui/assets/images/previews/themeLight/TSGLadestationNotAus.png","webpack:///./src/ui/components/components/LynusPopup.vue?26af","webpack:///./src/ui/assets/images/previews/themeLight/MotorWithVFD.png","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue?af63","webpack:///./src/ui/components/components/ManageCollectionsAccessModal.vue","webpack:///./src/ui/components/components/ManageCollectionsAccessModal.vue?95a9","webpack:///./src/ui/components/components/ManageCollectionsAccessModal.vue?91dc","webpack:///./src/ui/components/components/ManageCollectionsAccessModal.vue?0357","webpack:///./src/ui/components/devices/devices/TSGFrischwasser.vue?e294","webpack:///./src/ui/assets/images/previews/themeDark/Temperature.png","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/index.vue?6b44","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue?4fbb","webpack:///./src/ui/components/devices/previews/mpc/EMS/ForecastView.vue?9937","webpack:///./src/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue?846d","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue?e4e6","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue?6de1","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue?00cb","webpack:///./src/ui/components/devices/previews/charts/ColumnChart.vue?c804","webpack:///./src/ui/components/components/PaginationTabs.vue","webpack:///./src/ui/components/components/PaginationTabs.vue?758a","webpack:///./src/ui/components/components/PaginationTabs.vue?f2a3","webpack:///./src/ui/components/components/PaginationTabs.vue?f2e7","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue?2d5a","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/index.vue?eeae","webpack:///./src/ui/assets/images/previews/themeDark/WeatherStation.png","webpack:///./src/ui/assets/images/previews/themeDark/MusicSystem.png","webpack:///./src/ui/components/devices/mpc/EMS/components/SettingsEMS.vue?6849","webpack:///./src/ui/components/devices/previews/devices/BrightnessSensor.vue?0be4","webpack:///./src/ui/components/devices/charts/charts/ChartDevice.vue?7d48","webpack:///./src/ui/components/components/IconList.vue","webpack:///./src/ui/components/components/IconList.vue?e9f7","webpack:///./src/ui/components/components/IconList.vue?bad3","webpack:///./src/ui/components/components/IconList.vue?7727","webpack:///./src/ui/components/devices/previews/components/BatteryBaseMock.vue?9e8c","webpack:///./src/ui/components/devices/components/SettingsView.vue","webpack:///./src/ui/components/devices/components/SettingsView.vue?7a15","webpack:///./src/ui/components/devices/components/SettingsView.vue?3c08","webpack:///./src/ui/components/devices/components/SettingsView.vue?59cc","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue?ed5b","webpack:///./src/ui/components/devices/devices/ControlAwning.vue?1cd9","webpack:///./src/ui/assets/images/previews/themeDark/Generator.png","webpack:///./src/ui/components/devices/devices/Generator.vue?e72a","webpack:///./src/ui/components/devices/previews/devices/Generator.vue?2280","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue?ec34","webpack:///./src/ui/assets/images/previews/themeDark/SocketSwitch.png","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue?c805","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/systemDialog.ts","webpack:///./src/utils/duplicationUtils.ts","webpack:///./src/ui/assets/images/previews/themeDark/ElectricChargingStation.png","webpack:///./src/ui/components/devices/charts/charts/LynusChart.vue?febe","webpack:///./src/ui/assets/images/previews/themeDark/HistoryAnomalyDetection.png","webpack:///./src/ui/components/partner/workspace/pages/PartnerInformation.vue?fa85","webpack:///./src/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue","webpack:///./src/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue?f0f0","webpack:///./src/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue?82dc","webpack:///./src/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue?624f","webpack:///./src/ui/components/devices/charts/components/HourPickerMultiSelect.vue","webpack:///./src/ui/components/devices/charts/components/HourPickerMultiSelect.vue?3764","webpack:///./src/ui/components/devices/charts/components/HourPickerMultiSelect.vue?39be","webpack:///./src/ui/components/devices/charts/components/HourPickerMultiSelect.vue?cf24","webpack:///./src/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue?c0a1","webpack:///./src/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue?70b9","webpack:///./src/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue?1922","webpack:///./src/ui/assets/images/previews/themeLight/MotionSensor.png","webpack:///./src/ui/components/devices/devices/base/InputFieldBase.vue?cfdf","webpack:///./src/ui/assets/images/previews/themeDark/PumpWithVFD.png","webpack:///./src/ui/assets/images/previews/themeDark/PVSystem.png","webpack:///./src/services/IconService.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue?bed7","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue?4bc4","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue?f396","webpack:///./src/ui/components/modals/ManageChart/index.vue?c67a","webpack:///./src/ui/assets/images/previews/themeDark/HotWaterMeter.png","webpack:///./src/ui/components/components/PlaceHolderImage.vue","webpack:///./src/ui/components/components/PlaceHolderImage.vue?f159","webpack:///./src/ui/components/components/PlaceHolderImage.vue?8484","webpack:///./src/ui/components/components/PlaceHolderImage.vue?9e2e","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue?f894","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue?5b82","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue?7ca2","webpack:///./src/ui/assets/images/previews/themeLight/EMSV2.png","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ElectricHeatingTemperatureChart.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ElectricHeatingTemperatureChart.vue?ed71","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ElectricHeatingTemperatureChart.vue?2069","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ElectricHeatingTemperatureChart.vue?2844","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue?9fbc","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue?d805","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue?9c21","webpack:///./src/ui/assets/images/previews/themeLight/StreamAnomalyDetection.png","webpack:///./src/ui/components/components/ProjectItem.vue?1bf8","webpack:///./src/ui/components/devices/devices/EMS/components/SettingsEMS.vue?1851","webpack:///./src/ui/components/devices/actions/DeviceDescription.vue?bca6","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue?99df","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue?a6f0","webpack:///./src/ui/components/devices/mpc/base/ShowEventDotBase.vue?ee63","webpack:///./src/ui/components/devices/devices/EMS/components/charts/index.vue?eda3","webpack:///./src/ui/components/devices/devices/LightRGB.vue?9145","webpack:///./src/ui/components/tables/DevicesTable.vue?1ca7","webpack:///./src/ui/components/devices/charts/charts/DataExportNew.vue","webpack:///./src/ui/components/devices/charts/charts/DataExportNew.vue?ecd0","webpack:///./src/ui/components/devices/charts/charts/DataExportNew.vue?6d21","webpack:///./src/ui/components/devices/charts/charts/DataExportNew.vue?b42a","webpack:///./src/ui/components/devices/components/LabelUnitWrapper.vue","webpack:///./src/ui/components/devices/components/LabelUnitWrapper.vue?44f2","webpack:///./src/ui/components/devices/components/LabelUnitWrapper.vue?a7ba","webpack:///./src/ui/components/devices/components/LabelUnitWrapper.vue?88ec","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue?b13d","webpack:///./src/ui/assets/images/installation wizard/battery_on_2_inputs.png","webpack:///./src/ui/assets/images/previews/themeLight/TSGBrauchwasser.png","webpack:///./src/utils/searchUtils.ts","webpack:///./src/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue?b453","webpack:///./src/ui/components/lists/RoomsList/DuplicateRoomModal.vue?bc0d","webpack:///./src/ui/assets/images/installation wizard sync ^\\.\\/.*\\.png$","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils.ts","webpack:///./src/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue?48b6","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue?309e","webpack:///./src/ui/components/devices/previews/components/SliderMock.vue?cc49","webpack:///./src/ui/components/devices/anomalyDetection/AnomalyDetection.vue?7aa7","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue?0669","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue?a67f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue?6f35","webpack:///./src/ui/views/Project/Settings/EnergyPrice.vue?50d7","webpack:///./src/ui/components/devices/devices/MixingValve.vue?445b","webpack:///./src/ui/components/devices/devices/MotionSensor.vue?e3a8","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue?ea44","webpack:///./src/services/RuleService.ts","webpack:///./src/store/modules/rules/index.ts","webpack:///./src/ui/components/components/MembersWidget.vue?195a","webpack:///./src/ui/components/devices/previews/devices/MixingValve.vue?9733","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue?deaa","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue?fb18","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue?4316","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue?88b0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue?85f5","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue?1019","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue?5c3c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue?aee0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue?c587","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue?83ac","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue?310e","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue?73a3","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue?1621","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue?e352","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue?1122","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue?5661","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue?a3d0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue?8bf4","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue?9721","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue?061f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue?c2e7","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue?12c6","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue?7670","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue?9c93","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingAirControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue?87a4","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue?5fb4","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue?6bcd","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingAirControls.vue?1ee1","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingAirControls.vue?13b5","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingAirControls.vue?5e8d","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingWaterControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingWaterControls.vue?3339","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingWaterControls.vue?24a2","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingWaterControls.vue?1504","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingAirControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingAirControls.vue?d0aa","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingAirControls.vue?26dc","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingAirControls.vue?2f54","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingWaterControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingWaterControls.vue?4aa3","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingWaterControls.vue?9fc2","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingWaterControls.vue?6208","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridAirControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridAirControls.vue?92f2","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridAirControls.vue?9e61","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridAirControls.vue?ca0c","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridWaterControls.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridWaterControls.vue?dd37","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridWaterControls.vue?484c","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridWaterControls.vue?2c73","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue?dd53","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue?3cc7","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue?8e22","webpack:///./src/ui/components/wizards/baseComponents/SideBar.vue?f075","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue?7231","webpack:///./src/ui/components/components/TimezoneChooser.vue","webpack:///./src/ui/components/components/TimezoneChooser.vue?e082","webpack:///./src/ui/components/components/TimezoneChooser.vue?11d9","webpack:///./src/ui/components/components/TimezoneChooser.vue?cca7","webpack:///./src/ui/mixins/validation.ts","webpack:///./src/ui/mixins/formUpdateTracker.ts","webpack:///./src/ui/components/devices/devices/ControlBlinds.vue?ecde","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue?0a37","webpack:///./src/ui/components/devices/charts/components/TotalValuesWindow.vue?b481","webpack:///./src/ui/components/devices/mpc/EnergyView/components/charts/index.vue?77dd","webpack:///./src/ui/components/devices/devices/MusicSystem.vue?ff69","webpack:///./src/ui/views/Project/WizardViews/Tenant.vue?2b46","webpack:///./src/ui/components/devices/devices/Robot.vue?fad8","webpack:///./src/ui/assets/images/weather/04.png","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/mqttVariables.ts","webpack:///./src/ui/components/devices/devices/HeatingMeter.vue?0e45","webpack:///./src/ui/assets/images/previews/themeDark/ElectricChargingStationV2.png","webpack:///./src/ui/assets/images/previews/themeLight/VariableOutputField.png","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue?d45b","webpack:///./src/utils/unit/unitConstants.ts","webpack:///./src/ui/assets/images/previews/themeDark/VariableInputField.png","webpack:///./src/ui/components/devices/devices/LightSwitch.vue?4a98","webpack:///./src/ui/components/devices/previews/components/InputFieldMock.vue?e0cc","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/index.vue?6333","webpack:///./src/ui/assets/images/previews/themeDark/MotorWithVFD.png","webpack:///./src/ui/components/devices/devices/VentilatorSwitch.vue?8603","webpack:///./src/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue?d01b","webpack:///./src/ui/components/devices/devices/ElectricChargingStationV2.vue?56f1","webpack:///./src/ui/components/devices/devices/Temperature.vue?11af","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue?50a8","webpack:///./src/ui/components/devices/previews/mpc/EMS/Settings.vue?6aee","webpack:///./src/ui/assets/images/previews/themeLight/Ventilation.png","webpack:///./src/ui/components/components/LynusIcon.vue","webpack:///./src/ui/components/components/LynusIcon.vue?0417","webpack:///./src/ui/components/components/LynusIcon.vue?a454","webpack:///./src/ui/components/components/LynusIcon.vue?7acf","webpack:///./src/ui/components/devices/devices/WeatherStation.vue?ef4b","webpack:///./src/ui/components/devices/devices/base/ShowEventBase.vue?e779","webpack:///./src/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue","webpack:///./src/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue?dca5","webpack:///./src/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue?0311","webpack:///./src/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue?554a","webpack:///./src/ui/assets/images/previews/themeLight/DropDownOutputFieldWithVariable.png","webpack:///./src/ui/assets/images/previews/themeDark/DropDownInputFieldWithVariable.png","webpack:///./src/ui/assets/images/previews/themeDark/VariableTextOutputField.png","webpack:///./src/ui/assets/images/previews/themeLight/ConsumptionService.png","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue?732e","webpack:///./src/ui/components/modals/ManageReport/TariffSettingsTooltip.vue?81f1","webpack:///./src/ui/assets/images/previews/themeDark/PumpWithoutVFD.png","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLine.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue?90bf","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue?fb62","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue?4b9b","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/LineCross.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/LineCross.vue?96e1","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/LineCross.vue?9dfc","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/LineCross.vue?9977","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLine.vue?d90f","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLine.vue?028d","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLine.vue?414b","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue?e54b","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue?88d0","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue?7632","webpack:///./src/ui/assets/images/previews/themeDark/GeneralSwitchV2.png","webpack:///./src/ui/components/devices/mpc/ConsumptionService/index.vue?66f4","webpack:///./src/ui/assets/images/previews/themeDark/VariableOutputField.png","webpack:///./src/ui/components/components/MapBanner.vue?f55f","webpack:///./src/ui/assets/images/previews/themeDark/PVProductionService.png","webpack:///./src/ui/components/devices/devices/base/ShowEventDotBase.vue","webpack:///./src/ui/components/devices/devices/base/ShowEventDotBase.vue?c956","webpack:///./src/ui/components/devices/devices/base/ShowEventDotBase.vue?c135","webpack:///./src/ui/components/devices/devices/base/ShowEventDotBase.vue?21e5","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue?176b","webpack:///./src/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue?6393","webpack:///./src/ui/assets/images/previews/themeLight/ControlAwning.png","webpack:///./src/ui/components/devices/devices/base/FillLevelDisplayBase.vue?aca8","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue?3458","webpack:///./src/ui/components/components/InputFieldNumber.vue","webpack:///./src/ui/components/components/InputFieldNumber.vue?1532","webpack:///./src/ui/components/components/InputFieldNumber.vue?5d9b","webpack:///./src/ui/components/components/InputFieldNumber.vue?b4f0","webpack:///./src/ui/components/devices/previews/devices/HotWaterMeter.vue?4683","webpack:///./src/ui/assets/images/previews/themeDark/ControlAwning.png","webpack:///./src/ui/assets/images/previews/themeDark/Robot.png","webpack:///./src/ui/assets/images/previews/themeDark/HeatingCircuitOptimization.png","webpack:///./src/ui/components/devices/devices/ThermostatAnalog.vue?7b3f","webpack:///./src/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue?77ce","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue?0a3a","webpack:///./src/ui/components/devices/previews/components/ShowEventDotMock.vue?6ea5","webpack:///./src/ui/assets/images/previews/themeDark/TSGBrauchwasser.png","webpack:///./src/ui/components/devices/devices/base/BatteryBase.vue?e0f0","webpack:///./src/ui/assets/images/weather/50.png","webpack:///./src/ui/assets/images/weather/01.png","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionRightBase.vue?d961","webpack:///./src/ui/components/devices/devices/VariableInputField.vue?eb91","webpack:///./src/ui/assets/images/previews/themeLight/PumpWithVFD.png","webpack:///./src/ui/assets/images/previews/themeLight/EMS.png","webpack:///./src/ui/components/devices/actions/PreviewActions.vue","webpack:///./src/ui/components/devices/actions/PreviewActions.vue?162f","webpack:///./src/ui/components/devices/actions/PreviewActions.vue?cef0","webpack:///./src/ui/components/devices/actions/PreviewActions.vue?5301","webpack:///./src/ui/components/lists/RoomsListFlexGrid/RoomItem.vue?5c00","webpack:///./src/ui/assets/images/previews/themeLight/VariableInputField.png","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue?b8b1","webpack:///./src/ui/components/modals/ManageRule/index.vue?97da","webpack:///./src/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue?3120","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue?afc0","webpack:///./src/ui/components/lists/DevicesListDnD/index.vue?e369","webpack:///./src/store/modules/installationWizard/MQTTFeedbackError.ts","webpack:///./src/ui/assets/images/previews/themeDark/LightDimmer.png","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue?1397","webpack:///./src/ui/components/components/MapBanner.vue","webpack:///./src/ui/components/components/MapBanner.vue?8b4a","webpack:///./src/ui/components/components/MapBanner.vue?c887","webpack:///./src/ui/components/components/MapBanner.vue?3ea6","webpack:///./src/ui/assets/images/installation wizard/master_slave.png","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue?643a","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/index.vue?61fb","webpack:///./src/ui/assets/images/installation wizard/2_batteries_on_2_inputs.png","webpack:///./src/types/wizards/installationWizard.types.ts","webpack:///./src/ui/components/tables/AnomalyDetectionTable.vue?c2b5","webpack:///./src/ui/components/devices/charts/charts/BaseChart.vue","webpack:///./src/ui/components/devices/charts/components/CompareModal.vue","webpack:///./src/ui/components/devices/charts/components/CompareModal.vue?2736","webpack:///./src/ui/components/devices/charts/components/CompareModal.vue?af0a","webpack:///./src/ui/components/devices/charts/components/CompareModal.vue?e3de","webpack:///./src/ui/components/devices/charts/charts/BaseChart.vue?8332","webpack:///./src/ui/components/devices/charts/charts/BaseChart.vue?ecea","webpack:///./src/ui/components/devices/charts/charts/BaseChart.vue?7fa4","webpack:///./src/ui/assets/images/previews/themeDark/AirHumiditySensor.png","webpack:///./src/ui/components/partner/components/DayRangeSelectionModal.vue?9ef2","webpack:///./src/ui/views/Project/Settings/index.vue?9abf","webpack:///./src/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue?5dec","webpack:///./src/ui/assets/images/previews/themeLight/HouseConsumption.png","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue?9983","webpack:///./src/ui/components/devices/devices/base/InputFieldTextBase.vue?26e7","webpack:///./src/ui/components/partner/workspace/pages/SolarCalculator.vue?885d","webpack:///./src/ui/components/components/ToggleThemesButton.vue?641d","webpack:///./src/ui/components/tables/MPCTable.vue?262f","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue?17ae","webpack:///./src/ui/assets/images/weather/03.png","webpack:///./src/ui/components/devices/mpc/PVProductionService/index.vue?899f","webpack:///./src/ui/components/modals/ManageChart/ExpressionTextArea.vue?a7c4","webpack:///./src/services/LocationService.ts","webpack:///./src/ui/assets/images/previews/themeLight/ElectronicBoiler.png","webpack:///./src/ui/components/devices/previews/devices/Temperature.vue?4eab","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/index.vue?71fa","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/wizardLimits.ts","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue?4503","webpack:///./src/ui/components/devices/devices/base/SliderRGBBase.vue?51d3","webpack:///./src/ui/assets/images/previews/themeDark/TSGModulLadestation.png","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue?75fb","webpack:///./src/ui/components/modals/ManageAnomalyDetection/index.vue?61db","webpack:///./src/ui/assets/images/installation wizard/Inverter.png","webpack:///./src/ui/assets/images/previews/themeDark/HeatingMeter.png","webpack:///./src/ui/components/devices/components/EnergyParts/RotatingBacklight.vue?da48","webpack:///./src/ui/assets/images/previews/themeLight/HeatingCircuitOptimization.png","webpack:///./src/ui/components/devices/previews/devices/TV.vue?05d1","webpack:///./src/ui/components/lists/RoomsList/RoomItem.vue?488c","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue?3781","webpack:///./src/ui/components/wizards/installationWizard/installationWizardVariables.ts","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/systemTypes.ts","webpack:///./src/ui/views/SerialNumberManagement.vue?e4f3","webpack:///./src/ui/components/devices/components/DeviceLayout.vue?34a3","webpack:///./src/ui/assets/images/weather/02.png","webpack:///./src/ui/components/devices/previews/devices/ControlAwning.vue?d542","webpack:///./src/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue?b70e","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue?d7f6","webpack:///./src/utils/versionManagementUtils.ts","webpack:///./src/types/energyVisualisation/EnergyLineDisplayData.ts","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue?baed","webpack:///./src/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue?2fe7","webpack:///./src/ui/assets/images/previews/themeLight/ThermostatDigital.png","webpack:///./src/ui/components/devices/previews/charts/components/OfflineChart.vue","webpack:///./src/ui/components/devices/previews/charts/components/ChartVariableData.js","webpack:///./src/ui/components/devices/previews/charts/components/OfflineChart.vue?e0d7","webpack:///./src/ui/components/devices/previews/charts/components/OfflineChart.vue?f68d","webpack:///./src/ui/components/devices/previews/charts/components/OfflineChart.vue?e23a","webpack:///./src/ui/components/devices/devices/base/InputFieldBase.vue","webpack:///./src/ui/components/devices/devices/base/InputFieldBase.vue?5892","webpack:///./src/ui/components/devices/devices/base/InputFieldBase.vue?ad6b","webpack:///./src/ui/components/devices/devices/base/InputFieldBase.vue?118d","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue?af11","webpack:///./src/ui/components/devices/previews/devices/MusicSystem.vue?99c7","webpack:///./src/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue?2846","webpack:///./src/ui/components/components/InfoTooltip.vue?c5fa","webpack:///./src/ui/components/devices/devices/PumpWithVFD.vue?22b4","webpack:///./src/ui/assets/images/installation wizard/acpv_on_load.png","webpack:///./src/ui/components/modals/ManageMLModel/index.vue?97f6","webpack:///./src/ui/views/Project/Measurements.vue?9017","webpack:///./src/ui/components/components/CircleSpinner.vue","webpack:///./src/ui/components/components/CircleSpinner.vue?8877","webpack:///./src/ui/components/components/CircleSpinner.vue?497f","webpack:///./src/ui/components/components/CircleSpinner.vue?7c3f","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue?942f","webpack:///./src/ui/components/devices/devices/MotorWithoutVFD.vue?7bf4","webpack:///./src/ui/components/devices/charts/charts/ChartColors.ts","webpack:///./src/lang/en/index.ts","webpack:///./src/lang/de/index.ts","webpack:///./src/lang/it/index.ts","webpack:///./src/lang/index.ts","webpack:///./src/ui/plugins/i18n.ts","webpack:///./src/ui/components/devices/previews/devices/MotorWithoutVFD.vue?2640","webpack:///./src/ui/assets/images/previews/themeDark/Battery.png","webpack:///./src/ui/assets/images/previews/themeDark/StreamAnomalyDetection.png","webpack:///./src/ui/components/wizards/loggerWizard/wizardSettings/wizardLimits.ts","webpack:///./src/ui/assets/images/installation wizard/Regelung.png","webpack:///./src/ui/components/devices/previews/devices/ElectricChargingStation.vue?4211","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/index.vue?37e7","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue?fcf5","webpack:///./src/ui/assets/images/previews/themeLight/TSGFrischwasser.png","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue?ee1f","webpack:///./src/ui/components/components/CircleSpinner.vue?b047","webpack:///./src/ui/components/devices/previews/components/ArrowButtonMock.vue","webpack:///./src/ui/components/devices/previews/components/ArrowButtonMock.vue?7ba6","webpack:///./src/ui/components/devices/previews/components/ArrowButtonMock.vue?87d9","webpack:///./src/ui/components/devices/previews/components/ArrowButtonMock.vue?50de","webpack:///./src/ui/assets/images/previews sync ^\\.\\/.*\\/.*\\.png$","webpack:///./src/ui/views/Project/Settings/Permissions.vue?393e","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/index.vue?8001","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue?6126","webpack:///./src/ui/components/components/InternetStatusIndicator.vue?5d67","webpack:///./src/ui/components/devices/previews/components/PushButtonMock.vue?90df","webpack:///./src/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue?1766","webpack:///./src/ui/components/devices/previews/devices/ColdWaterMeter.vue?0f20","webpack:///./src/ui/assets/images/previews/themeLight/MusicSystem.png","webpack:///./src/ui/components/devices/previews/devices/ThermostatAnalog.vue?1d4c","webpack:///./src/ui/components/devices/previews/devices/MotionSensor.vue?dd49","webpack:///./src/ui/assets/images/error-page-bg-dark.png","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue?0973","webpack:///./src/ui/components/modals/CreateProject.vue","webpack:///./src/ui/components/modals/CreateProject.vue?cd7d","webpack:///./src/ui/components/modals/CreateProject.vue?c7a9","webpack:///./src/ui/components/modals/CreateProject.vue?4c03","webpack:///./src/ui/components/devices/charts/components/DefaultCalendar.vue","webpack:///./src/ui/components/devices/charts/components/DefaultCalendar.vue?4f81","webpack:///./src/ui/components/devices/charts/components/DefaultCalendar.vue?b238","webpack:///./src/ui/components/devices/charts/components/DefaultCalendar.vue?9188","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue?fa3e","webpack:///./src/ui/assets/images/previews/themeLight/LightPushButton.png","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/LineCross.vue?0cce","webpack:///./src/ui/components/devices/charts/components/TotalValuesWindow.vue","webpack:///./src/ui/components/devices/charts/components/TotalValuesWindow.vue?0399","webpack:///./src/ui/components/devices/charts/components/TotalValuesWindow.vue?6092","webpack:///./src/ui/components/devices/charts/components/TotalValuesWindow.vue?d0de","webpack:///./src/ui/components/wizards/baseComponents/Wizard.vue?c2e1","webpack:///./src/ui/assets/images/previews/themeLight/LightRGB.png","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue?6f76","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue?728a","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue?110e","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue?a308","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue?fe0b","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue?9929","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumerChart.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumerChart.vue?d44e","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumerChart.vue?49da","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumerChart.vue?5e50","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue?4c34","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue?a72b","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue?9b9f","webpack:///./src/ui/components/lists/RoomsList/index.vue?fda3","webpack:///./src/ui/components/devices/devices/base/Switch2VBase.vue?f39c","webpack:///./src/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue","webpack:///./src/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue?d2f1","webpack:///./src/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue?148e","webpack:///./src/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue?62ea","webpack:///./src/ui/components/devices/previews/devices/ControlBlinds.vue?426d","webpack:///./src/ui/assets/images/previews/themeLight/LightSwitch.png","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue?2145","webpack:///./src/ui/assets/images/previews/themeLight/MainsConnection.png","webpack:///./src/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue?b04d","webpack:///./src/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue?a5fa","webpack:///./src/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue?c548","webpack:///./src/ui/components/devices/devices/VariableTextOutputField.vue?9e30","webpack:///./src/ui/components/devices/components/EnergyParts/Preview.vue","webpack:///./src/ui/components/devices/components/EnergyParts/Preview.vue?2f1e","webpack:///./src/ui/components/devices/components/EnergyParts/Preview.vue?09e0","webpack:///./src/ui/components/devices/components/EnergyParts/Preview.vue?4830","webpack:///./src/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue?6fcc","webpack:///./src/ui/components/devices/previews/devices/Ventilation.vue?2cc3","webpack:///./src/ui/components/modals/components/form/SelectField.vue?08e6","webpack:///./src/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue?8f1b","webpack:///./src/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue","webpack:///./src/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue?f53d","webpack:///./src/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue?386a","webpack:///./src/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue?3d3c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue?5767","webpack:///./src/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue?2bb9","webpack:///./src/ui/components/devices/devices/base/DropDown.vue","webpack:///./src/ui/components/devices/devices/base/DropDown.vue?a5af","webpack:///./src/ui/components/devices/devices/base/DropDown.vue?7940","webpack:///./src/ui/components/devices/devices/base/DropDown.vue?502b","webpack:///./src/ui/components/modals/ManageReport/PrintReport.vue","webpack:///./src/ui/components/modals/ManageReport/PrintReport.vue?0f1f","webpack:///./src/ui/components/modals/ManageReport/PrintReport.vue?40b8","webpack:///./src/ui/components/modals/ManageReport/PrintReport.vue?160b","webpack:///./src/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue","webpack:///./src/ui/components/modals/components/DynamicField.vue","webpack:///./src/ui/components/modals/components/DynamicField.vue?becd","webpack:///./src/ui/components/modals/components/DynamicField.vue?cfbf","webpack:///./src/ui/components/modals/components/DynamicField.vue?9ace","webpack:///./src/ui/components/modals/ManageMLModel/components/EMSAdditionalFields.vue","webpack:///./src/ui/components/modals/ManageMLModel/components/EMSAdditionalFields.vue?ff01","webpack:///./src/ui/components/modals/ManageMLModel/components/EMSAdditionalFields.vue?f219","webpack:///./src/ui/components/modals/ManageMLModel/components/EMSAdditionalFields.vue?9391","webpack:///./src/ui/components/modals/ManageMLModel/components/EnergyViewAdditionalFields.vue","webpack:///./src/ui/components/modals/ManageMLModel/components/EnergyViewAdditionalFields.vue?3d84","webpack:///./src/ui/components/modals/ManageMLModel/components/EnergyViewAdditionalFields.vue?8702","webpack:///./src/ui/components/modals/ManageMLModel/components/EnergyViewAdditionalFields.vue?e039","webpack:///./src/ui/components/modals/components/DynamicFieldWithTitle.vue","webpack:///./src/ui/components/modals/components/DynamicFieldWithTitle.vue?d25e","webpack:///./src/ui/components/modals/components/DynamicFieldWithTitle.vue?72ce","webpack:///./src/ui/components/modals/components/DynamicFieldWithTitle.vue?7e77","webpack:///./src/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue","webpack:///./src/ui/components/modals/ManageMLModel/utils.ts","webpack:///./src/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue?bee6","webpack:///./src/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue?1762","webpack:///./src/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue?1fdc","webpack:///./src/utils/typesGuards.ts","webpack:///./src/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue?ad93","webpack:///./src/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue?d733","webpack:///./src/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue?4bd3","webpack:///./src/ui/components/devices/charts/charts/LynusChart.js","webpack:///./src/ui/components/devices/previews/devices/MotorWithVFD.vue?ef4d","webpack:///./src/ui/components/devices/devices/ElectricityMeter.vue?8bd6","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue?2b96","webpack:///./src/ui/components/devices/previews/devices/EMSV2/Settings.vue?8c13","webpack:///./src/ui/components/devices/charts/charts/CalendarNavigation.vue?1ba7","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue?1754","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue?eec3","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue?d0ca","webpack:///./src/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue?cb98","webpack:///./src/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue?5d35","webpack:///./src/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue?5e14","webpack:///./src/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue?5bb6","webpack:///./src/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue?78c9","webpack:///./src/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue?12dc","webpack:///./src/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue?0ff2","webpack:///./src/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue?230e","webpack:///./src/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue?436d","webpack:///./src/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue","webpack:///./src/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue?0de9","webpack:///./src/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue?1376","webpack:///./src/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue?d4b3","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue?f9dc","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue?3f83","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue?bd4f","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue?befd","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue?a94a","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue?5dfa","webpack:///./src/ui/components/modals/CreateSerialNumber.vue?cf1c","webpack:///./src/ui/components/wizards/installationWizard/InstallationWizard.vue?67eb","webpack:///./src/ui/components/devices/charts/charts/CalendarNavigation.vue","webpack:///./src/ui/components/devices/charts/charts/CalendarButtons.vue","webpack:///./src/ui/components/devices/charts/charts/CalendarButtons.vue?d38a","webpack:///./src/ui/components/devices/charts/charts/CalendarButtons.vue?eca0","webpack:///./src/ui/components/devices/charts/charts/CalendarButtons.vue?a9b9","webpack:///./src/ui/components/devices/charts/charts/CalendarNavigation.vue?b0ca","webpack:///./src/ui/components/devices/charts/charts/CalendarNavigation.vue?1521","webpack:///./src/ui/components/devices/charts/charts/CalendarNavigation.vue?1eef","webpack:///./src/utils/constants.ts","webpack:///./src/services/WeatherService.ts","webpack:///./src/services/AssetService.ts","webpack:///./src/store/modules/app/index.ts","webpack:///./src/ui/components/modals/ManageDevice/index.vue","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchema.vue","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchema.vue?4420","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchema.vue?a940","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchema.vue?6d8c","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchemaWithUserSelection.vue","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchemaWithUserSelection.vue?15f3","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchemaWithUserSelection.vue?f1c6","webpack:///./src/ui/components/modals/ManageDevice/schemas/DefaultSchemaWithUserSelection.vue?9592","webpack:///./src/ui/components/modals/ManageDevice/schemas/GaugeSchema.vue","webpack:///./src/ui/components/modals/ManageDevice/schemas/GaugeSchema.vue?7129","webpack:///./src/ui/components/modals/ManageDevice/schemas/GaugeSchema.vue?f59d","webpack:///./src/ui/components/modals/ManageDevice/schemas/GaugeSchema.vue?a6fe","webpack:///./src/ui/components/modals/ManageDevice/schemas/DropDownSchema.vue","webpack:///./src/ui/components/modals/ManageDevice/schemas/DropDownSchema.vue?8bfa","webpack:///./src/ui/components/modals/ManageDevice/schemas/DropDownSchema.vue?ad9f","webpack:///./src/ui/components/modals/ManageDevice/schemas/DropDownSchema.vue?b4fb","webpack:///./src/ui/components/modals/ManageDevice/index.vue?cb4d","webpack:///./src/ui/components/modals/ManageDevice/index.vue?e18b","webpack:///./src/ui/components/modals/ManageDevice/index.vue?1a7c","webpack:///./src/types/energyVisualisation/EnergyCircleType.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue?a542","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue?77bb","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue?5742","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue?2126","webpack:///./src/ui/components/modals/actions/WebhookAction.vue","webpack:///./src/ui/components/modals/actions/WebhookAction.vue?cfb0","webpack:///./src/ui/components/modals/actions/WebhookAction.vue?719c","webpack:///./src/ui/components/modals/actions/WebhookAction.vue?b018","webpack:///./src/ui/assets/images/previews/themeLight/WeatherStation.png","webpack:///./src/ui/assets/images/previews/themeLight/ElectricChargingStation.png","webpack:///./src/ui/components/wizards/loggerWizard/wizardSettings/systemTypes.ts","webpack:///./src/ui/assets/images/previews/themeLight/ElectricChargingStationV2.png","webpack:///./src/ui/components/devices/actions/DeviceActions.vue?7228","webpack:///./src/ui/components/devices/actions/DeviceActions.vue","webpack:///./src/ui/components/devices/actions/DeviceActions.vue?f1c0","webpack:///./src/ui/components/devices/actions/DeviceActions.vue?6660","webpack:///./src/services/UserService.ts","webpack:///./src/ui/components/devices/devices/VariableOutputField.vue?84a7","webpack:///./src/ui/components/devices/previews/components/InputFieldMock.vue","webpack:///./src/ui/components/devices/previews/components/InputFieldMock.vue?49fc","webpack:///./src/ui/components/devices/previews/components/InputFieldMock.vue?9009","webpack:///./src/ui/components/devices/previews/components/InputFieldMock.vue?b028","webpack:///./src/ui/components/components/IconList.vue?653f","webpack:///./src/ui/components/devices/devices/ColdWaterMeter.vue?cd75","webpack:///./default-config.ts","webpack:///./src/utils/env.ts","webpack:///./src/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue?439d","webpack:///./src/ui/views/404.vue?cdc2","webpack:///./src/ui/assets/images/installation wizard/multiple_chp.png","webpack:///./src/ui/components/devices/devices/Gauge.vue?e170","webpack:///./src/ui/assets/images/previews/themeDark/TSGFrischwasser.png","webpack:///./src/ui/components/modals/components/DatePickerCustom.vue","webpack:///./src/ui/components/modals/components/DatePickerCustom.vue?fc28","webpack:///./src/ui/components/modals/components/DatePickerCustom.vue?e0b1","webpack:///./src/ui/components/modals/components/DatePickerCustom.vue?98c6","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue?d926","webpack:///./src/ui/components/core/AppBar.vue?ca83","webpack:///./src/ui/assets/images/previews/themeDark/LightRGB.png","webpack:///./src/ui/components/modals/ManageReport/NormalReport.vue","webpack:///./src/ui/components/modals/ManageReport/NormalReport.vue?0897","webpack:///./src/ui/components/modals/ManageReport/NormalReport.vue?b904","webpack:///./src/ui/components/modals/ManageReport/NormalReport.vue?8b57","webpack:///./src/ui/components/devices/devices/base/SliderRGBCanvas.vue?386f","webpack:///./src/ui/assets/images/previews/themeDark/EnergyIO.png","webpack:///./src/ui/assets/images/previews/themeDark/SurveyClient.png","webpack:///./src/ui/assets/images/installation wizard/logger.png","webpack:///./src/ui/assets/images/previews/themeDark/PVMonitoringService.png","webpack:///./src/ui/components/devices/previews/devices/PVSystem.vue?fd31","webpack:///./src/ui/assets/images/previews/themeDark/ThermostatAnalog.png","webpack:///./src/store/modules/devices/settings/devicesTypes.ts","webpack:///./src/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue?65f3","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue?4ac2","webpack:///./src/ui/components/devices/previews/devices/SurveyClientPreview.vue?82e7","webpack:///./src/services/DeviceService.ts","webpack:///./src/ui/components/wizards/tenantWizard/components/TenantStatistic.vue?ebb1","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue?54fb","webpack:///./src/ui/assets/images/previews/themeDark/SensorLevel.png","webpack:///./src/ui/components/modals/LeaveConfirmationModal.vue","webpack:///./src/ui/components/modals/LeaveConfirmationModal.vue?b01f","webpack:///./src/ui/components/modals/LeaveConfirmationModal.vue?2ef0","webpack:///./src/ui/components/modals/LeaveConfirmationModal.vue?c0a7","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/index.vue","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue?c271","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue?34a7","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue?d4cd","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/index.vue?59be","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/index.vue?44d9","webpack:///./src/ui/components/devices/previews/mpc/PVMonitoringService/index.vue?28ed","webpack:///./src/ui/components/devices/components/MPCLayout.vue?75d1","webpack:///./src/ui/components/devices/previews/mpc/EMS/ForecastView.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/ForecastView.vue?7b47","webpack:///./src/ui/components/devices/previews/mpc/EMS/ForecastView.vue?c4e8","webpack:///./src/ui/components/devices/previews/mpc/EMS/ForecastView.vue?378c","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue?bd17","webpack:///./src/ui/components/devices/charts/components/PeriodSelection.vue","webpack:///./src/ui/components/devices/charts/components/PeriodSelection.vue?1e24","webpack:///./src/ui/components/devices/charts/components/PeriodSelection.vue?c514","webpack:///./src/ui/components/devices/charts/components/PeriodSelection.vue?4d48","webpack:///./src/ui/components/devices/devices/base/ShowEventBase.vue","webpack:///./src/ui/components/devices/devices/base/ShowEventBase.vue?10d2","webpack:///./src/ui/components/devices/devices/base/ShowEventBase.vue?ecb3","webpack:///./src/ui/components/devices/devices/base/ShowEventBase.vue?069c","webpack:///./src/ui/components/devices/previews/devices/SensorCO2.vue?6184","webpack:///./src/ui/components/modals/Partner/UploadFileModal.vue?e958","webpack:///./src/ui/assets/images/weather/11.png","webpack:///./src/utils/unit/valueUnit.ts","webpack:///./src/utils/unit/unit.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue?cd0d","webpack:///./src/ui/components/core/AppDrawer.vue?9573","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue?2616","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue?6cfb","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue?4bcc","webpack:///./src/ui/components/devices/previews/devices/EMSV2/ActualView.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/ActualView.vue?f41c","webpack:///./src/ui/components/devices/previews/devices/EMSV2/ActualView.vue?7e8c","webpack:///./src/ui/components/devices/previews/devices/EMSV2/ActualView.vue?eef7","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue?b8f8","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue?96fa","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue?4a2b","webpack:///./src/ui/components/devices/devices/Ventilation.vue?073d","webpack:///./src/ui/views/Project/Rules.vue?105e","webpack:///./src/ui/components/devices/mpc/components/BaseChart.vue?50ec","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent.ts","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue?4104","webpack:///./src/ui/components/components/StatusIndicator.vue","webpack:///./src/ui/components/components/StatusIndicator.vue?dea0","webpack:///./src/ui/components/components/StatusIndicator.vue?7108","webpack:///./src/ui/components/components/StatusIndicator.vue?fe86","webpack:///./src/ui/components/devices/previews/devices/AirHumiditySensor.vue?7dde","webpack:///./src/ui/views/404.vue","webpack:///./src/ui/views/404.vue?d2d6","webpack:///./src/ui/views/404.vue?dfee","webpack:///./src/ui/views/404.vue?d20b","webpack:///./src/ui/views/Home.vue","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/index.vue","webpack:///./src/ui/components/components/ProjectItem.vue","webpack:///./src/ui/components/lists/ProjectsList/StatusIndicatorLine.vue","webpack:///./src/ui/components/lists/ProjectsList/StatusIndicatorLine.vue?299d","webpack:///./src/ui/components/lists/ProjectsList/StatusIndicatorLine.vue?02d1","webpack:///./src/ui/components/lists/ProjectsList/StatusIndicatorLine.vue?3364","webpack:///./src/ui/components/components/ProjectItem.vue?ecac","webpack:///./src/ui/components/components/ProjectItem.vue?7c66","webpack:///./src/ui/components/components/ProjectItem.vue?fd7b","webpack:///./src/utils/filterUtils.ts","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/index.vue?4ae6","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/index.vue?93fe","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/index.vue?81ae","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/ProjectItemPlaceholder.vue","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/ProjectItemPlaceholder.vue?17c3","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/ProjectItemPlaceholder.vue?6da4","webpack:///./src/ui/components/lists/ProjectsListFlexGrid/ProjectItemPlaceholder.vue?187e","webpack:///./src/ui/views/Home.vue?ed6c","webpack:///./src/ui/views/Home.vue?5e0f","webpack:///./src/ui/views/Home.vue?8321","webpack:///./src/ui/views/Project/Workbench.vue","webpack:///./src/ui/components/tables/DevicesTable.vue","webpack:///./src/ui/components/tables/DevicesTable.vue?31d1","webpack:///./src/ui/components/tables/DevicesTable.vue?cb1d","webpack:///./src/ui/components/tables/DevicesTable.vue?6c6b","webpack:///./src/ui/components/tables/AnomalyDetectionTable.vue","webpack:///./src/ui/components/tables/AnomalyDetectionTable.vue?c213","webpack:///./src/ui/components/tables/AnomalyDetectionTable.vue?d146","webpack:///./src/ui/components/tables/AnomalyDetectionTable.vue?0893","webpack:///./src/ui/components/tables/ChartsTable.vue","webpack:///./src/ui/components/tables/ChartsTable.vue?cb9d","webpack:///./src/ui/components/tables/ChartsTable.vue?f8f3","webpack:///./src/ui/components/tables/ChartsTable.vue?d579","webpack:///./src/ui/components/tables/MPCTable.vue","webpack:///./src/ui/components/tables/MPCTable.vue?de6d","webpack:///./src/ui/components/tables/MPCTable.vue?0400","webpack:///./src/ui/components/tables/MPCTable.vue?66a8","webpack:///./src/ui/views/Project/Workbench.vue?7d73","webpack:///./src/ui/views/Project/Workbench.vue?f687","webpack:///./src/ui/views/Project/Workbench.vue?2a6a","webpack:///./src/ui/views/SerialNumberManagement.vue","webpack:///./src/ui/views/SerialNumberManagement.vue?88ab","webpack:///./src/ui/views/SerialNumberManagement.vue?c39c","webpack:///./src/ui/views/SerialNumberManagement.vue?2aa6","webpack:///./src/ui/views/Project/Favorites.vue","webpack:///./src/ui/components/components/GeneralInfoBanner.vue","webpack:///./src/ui/components/components/GeneralInfoBanner.vue?bf25","webpack:///./src/ui/components/components/GeneralInfoBanner.vue?e484","webpack:///./src/ui/components/components/GeneralInfoBanner.vue?d526","webpack:///./src/ui/components/components/MembersWidget.vue","webpack:///./src/ui/components/components/MembersWidget.vue?462d","webpack:///./src/ui/components/components/MembersWidget.vue?79cd","webpack:///./src/ui/components/components/MembersWidget.vue?6739","webpack:///./src/ui/components/lists/DevicesListFlexGrid/index.vue","webpack:///./src/ui/mixins/devicesSizesFlex.ts","webpack:///./src/ui/components/devices/charts/charts/ChartDevice.vue","webpack:///./src/ui/components/devices/charts/charts/ChartDevice.vue?beef","webpack:///./src/ui/components/devices/charts/charts/ChartDevice.vue?9f7a","webpack:///./src/ui/components/devices/charts/charts/ChartDevice.vue?5934","webpack:///./src/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue","webpack:///./src/ui/components/devices/components/DeviceLayout.vue","webpack:///./src/ui/components/devices/components/DeviceLayout.vue?48d0","webpack:///./src/ui/components/devices/components/DeviceLayout.vue?9fe7","webpack:///./src/ui/components/devices/components/DeviceLayout.vue?5155","webpack:///./src/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue?7843","webpack:///./src/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue?1fc7","webpack:///./src/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue?8c26","webpack:///./src/ui/components/devices/devices/DropDownInputFieldWithVariable.vue","webpack:///./src/ui/components/devices/devices/DropDownInputFieldWithVariable.vue?3182","webpack:///./src/ui/components/devices/devices/DropDownInputFieldWithVariable.vue?e3ea","webpack:///./src/ui/components/devices/devices/DropDownInputFieldWithVariable.vue?af6f","webpack:///./src/ui/components/devices/devices/TSGFrischwasser.vue","webpack:///./src/ui/components/devices/devices/TSGFrischwasser.vue?9d27","webpack:///./src/ui/components/devices/devices/TSGFrischwasser.vue?f01e","webpack:///./src/ui/components/devices/devices/TSGFrischwasser.vue?e87e","webpack:///./src/ui/components/devices/devices/TSGBrauchwasser.vue","webpack:///./src/ui/components/devices/devices/TSGBrauchwasser.vue?2e66","webpack:///./src/ui/components/devices/devices/TSGBrauchwasser.vue?3641","webpack:///./src/ui/components/devices/devices/TSGBrauchwasser.vue?3f65","webpack:///./src/ui/components/devices/devices/Robot.vue","webpack:///./src/ui/components/devices/devices/base/StatusIconBase.vue","webpack:///./src/ui/components/devices/devices/base/StatusIconBase.vue?379d","webpack:///./src/ui/components/devices/devices/base/StatusIconBase.vue?28d5","webpack:///./src/ui/components/devices/devices/base/StatusIconBase.vue?803d","webpack:///./src/ui/components/devices/devices/base/OutputFieldTextBase.vue","webpack:///./src/ui/components/devices/devices/base/OutputFieldTextBase.vue?f21d","webpack:///./src/ui/components/devices/devices/base/OutputFieldTextBase.vue?447e","webpack:///./src/ui/components/devices/devices/base/OutputFieldTextBase.vue?3b16","webpack:///./src/ui/components/devices/devices/base/FillLevelDisplayBase.vue","webpack:///./src/ui/components/devices/devices/base/FillLevelDisplayBase.vue?2e3d","webpack:///./src/ui/components/devices/devices/base/FillLevelDisplayBase.vue?9c75","webpack:///./src/ui/components/devices/devices/base/FillLevelDisplayBase.vue?73bd","webpack:///./src/ui/components/devices/devices/base/DateTimePickerBase.vue","webpack:///./src/ui/components/devices/devices/base/DateTimePickerBase.vue?2347","webpack:///./src/ui/components/devices/devices/base/DateTimePickerBase.vue?64c3","webpack:///./src/ui/components/devices/devices/base/DateTimePickerBase.vue?b844","webpack:///./src/ui/components/devices/devices/Robot.vue?2e63","webpack:///./src/ui/components/devices/devices/Robot.vue?203e","webpack:///./src/ui/components/devices/devices/Robot.vue?9d2b","webpack:///./src/ui/components/devices/devices/SurveyClient.vue","webpack:///./src/ui/components/devices/devices/base/InputFieldTextBase.vue","webpack:///./src/ui/components/devices/devices/base/InputFieldTextBase.vue?f912","webpack:///./src/ui/components/devices/devices/base/InputFieldTextBase.vue?5ac7","webpack:///./src/ui/components/devices/devices/base/InputFieldTextBase.vue?ab9c","webpack:///./src/ui/components/devices/devices/SurveyClient.vue?e821","webpack:///./src/ui/components/devices/devices/SurveyClient.vue?e128","webpack:///./src/ui/components/devices/devices/SurveyClient.vue?f13b","webpack:///./src/ui/components/devices/mpc/PVProductionService/index.vue","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Forecast.vue","webpack:///./src/ui/components/devices/mpc/components/BaseChart.vue","webpack:///./src/ui/components/devices/mpc/components/BaseChart.vue?b641","webpack:///./src/ui/components/devices/mpc/components/BaseChart.vue?4349","webpack:///./src/ui/components/devices/mpc/components/BaseChart.vue?0473","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Forecast.vue?6f42","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Forecast.vue?4aa0","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Forecast.vue?0c3f","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue?a80d","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue?994a","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue?5932","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue?7393","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue?649a","webpack:///./src/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue?dbed","webpack:///./src/ui/components/devices/mpc/PVProductionService/index.vue?ef48","webpack:///./src/ui/components/devices/mpc/PVProductionService/index.vue?d91d","webpack:///./src/ui/components/devices/mpc/PVProductionService/index.vue?a245","webpack:///./src/ui/components/devices/devices/EnergyViewV2/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue?3056","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue?1290","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue?2ca8","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue","webpack:///./src/ui/components/components/IconValueFieldWithTooltip.vue","webpack:///./src/ui/components/components/IconValueFieldWithTooltip.vue?8caa","webpack:///./src/ui/components/components/IconValueFieldWithTooltip.vue?541f","webpack:///./src/ui/components/components/IconValueFieldWithTooltip.vue?5c34","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/EnergyFlowViewSystemDialog.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/EnergyFlowViewSystemDialog.vue?c64a","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/EnergyFlowViewSystemDialog.vue?2283","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/EnergyFlowViewSystemDialog.vue?a4f3","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue?c64d","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue?0ce3","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue?e15d","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue","webpack:///./src/utils/scalingConstants.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/energyChartsUtils.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue?f6bb","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue?2105","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue?67bf","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowProductionChart.vue","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowProductionChart.vue?8445","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowProductionChart.vue?5d16","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowProductionChart.vue?2552","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowConsumptionChart.vue","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowConsumptionChart.vue?9728","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowConsumptionChart.vue?84f0","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowConsumptionChart.vue?99c5","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue?f0ca","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue?15b7","webpack:///./src/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue?e512","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue?fdcc","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue?f444","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue?000f","webpack:///./src/utils/mpcUtils.ts","webpack:///./src/ui/components/devices/devices/EnergyViewV2/index.vue?cb2a","webpack:///./src/ui/components/devices/devices/EnergyViewV2/index.vue?2368","webpack:///./src/ui/components/devices/devices/EnergyViewV2/index.vue?0277","webpack:///./src/ui/components/devices/mpc/EnergyView/index.vue","webpack:///./src/ui/components/devices/mpc/EnergyView/components/charts/index.vue","webpack:///./src/ui/components/devices/mpc/EnergyView/components/charts/index.vue?bae1","webpack:///./src/ui/components/devices/mpc/EnergyView/components/charts/index.vue?5d08","webpack:///./src/ui/components/devices/mpc/EnergyView/components/charts/index.vue?4a6b","webpack:///./src/ui/components/devices/mpc/EnergyView/index.vue?ec84","webpack:///./src/ui/components/devices/mpc/EnergyView/index.vue?1cd1","webpack:///./src/ui/components/devices/mpc/EnergyView/index.vue?40d9","webpack:///./src/ui/components/devices/mpc/ConsumptionService/index.vue","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Forecast.vue","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Forecast.vue?a64f","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Forecast.vue?9f4e","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Forecast.vue?0dbc","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue?011f","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue?87be","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue?a880","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue?92a9","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue?b39b","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue?dc52","webpack:///./src/ui/components/devices/mpc/ConsumptionService/index.vue?6131","webpack:///./src/ui/components/devices/mpc/ConsumptionService/index.vue?1528","webpack:///./src/ui/components/devices/mpc/ConsumptionService/index.vue?f04d","webpack:///./src/ui/components/devices/devices/TSGLadestationNotAus.vue","webpack:///./src/ui/components/devices/devices/TSGLadestationNotAus.vue?bd85","webpack:///./src/ui/components/devices/devices/TSGLadestationNotAus.vue?3915","webpack:///./src/ui/components/devices/devices/TSGLadestationNotAus.vue?a04f","webpack:///./src/ui/components/devices/mpc/EMS/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/InstanceView.vue?0e9a","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/InstanceView.vue?760e","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/InstanceView.vue?8222","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/index.vue?7185","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/index.vue?6f1b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/index.vue?69ba","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/InstanceView.vue?4698","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/InstanceView.vue?69c3","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/InstanceView.vue?5c6a","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/index.vue?a66b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/index.vue?1c3c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/index.vue?962f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/InstanceView.vue?c45f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/InstanceView.vue?9c5f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/InstanceView.vue?5294","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/index.vue?108a","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/index.vue?9484","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/index.vue?a5ea","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/InstanceView.vue?248c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/InstanceView.vue?a7bc","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/InstanceView.vue?c92b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/index.vue?53c0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/index.vue?7c44","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/index.vue?7d69","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/InstanceView.vue?aa86","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/InstanceView.vue?98bc","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/InstanceView.vue?b631","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/index.vue?421b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/index.vue?eb35","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/index.vue?1dd6","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/InstanceView.vue?b139","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/InstanceView.vue?75c6","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/InstanceView.vue?0b91","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/index.vue?793c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/index.vue?a4d4","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/index.vue?60fe","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/InstanceView.vue?8aec","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/InstanceView.vue?5a05","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/InstanceView.vue?4139","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/index.vue?d999","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/index.vue?560f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/index.vue?3ab4","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/InstanceView.vue?b48b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/InstanceView.vue?bfb7","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/InstanceView.vue?7777","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/index.vue?5893","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/index.vue?15ca","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/index.vue?a7b2","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/InstanceView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/InstanceView.vue?fdca","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/InstanceView.vue?be57","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/InstanceView.vue?aee8","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/index.vue?2482","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/index.vue?94e0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/index.vue?73d3","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue?b7e9","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue?1579","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue?f491","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue?4150","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue?aa83","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue?1dc0","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/Forecast/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/Forecast/TimeTable.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/Forecast/TimeTable.vue?4685","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/Forecast/TimeTable.vue?8e2b","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/charts/Forecast/TimeTable.vue?4313","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/Forecast/index.vue?4164","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/Forecast/index.vue?1102","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/Forecast/index.vue?1f82","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/index.vue?1f9a","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/index.vue?60e8","webpack:///./src/ui/components/devices/mpc/EMS/components/charts/index.vue?2c6f","webpack:///./src/ui/components/devices/mpc/EMS/components/SettingsEMS.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue?3061","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue?68bb","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue?1742","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue?b9e0","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue?a68c","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue?c1d5","webpack:///./src/ui/components/devices/mpc/EMS/components/SettingsEMS.vue?2e02","webpack:///./src/ui/components/devices/mpc/EMS/components/SettingsEMS.vue?fac1","webpack:///./src/ui/components/devices/mpc/EMS/components/SettingsEMS.vue?8721","webpack:///./src/ui/components/devices/mpc/EMS/index.vue?d3fb","webpack:///./src/ui/components/devices/mpc/EMS/index.vue?8bc0","webpack:///./src/ui/components/devices/mpc/EMS/index.vue?79e8","webpack:///./src/ui/components/devices/devices/EMS/index.vue","webpack:///./src/ui/components/devices/devices/EMS/components/charts/index.vue","webpack:///./src/ui/components/devices/devices/EMS/components/charts/index.vue?19c1","webpack:///./src/ui/components/devices/devices/EMS/components/charts/index.vue?c7cd","webpack:///./src/ui/components/devices/devices/EMS/components/charts/index.vue?b360","webpack:///./src/ui/components/devices/devices/EMS/components/SettingsEMS.vue","webpack:///./src/ui/components/devices/devices/EMS/components/SettingsEMS.vue?95e2","webpack:///./src/ui/components/devices/devices/EMS/components/SettingsEMS.vue?abcd","webpack:///./src/ui/components/devices/devices/EMS/components/SettingsEMS.vue?ca15","webpack:///./src/ui/components/devices/devices/EMS/index.vue?47a2","webpack:///./src/ui/components/devices/devices/EMS/index.vue?4c8c","webpack:///./src/ui/components/devices/devices/EMS/index.vue?2635","webpack:///./src/ui/components/devices/devices/GeneralSwitchV2.vue","webpack:///./src/ui/components/devices/devices/GeneralSwitchV2.vue?4977","webpack:///./src/ui/components/devices/devices/GeneralSwitchV2.vue?beea","webpack:///./src/ui/components/devices/devices/GeneralSwitchV2.vue?d35a","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/index.vue","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue?9de6","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue?be24","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue?337f","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/index.vue?bba2","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/index.vue?3800","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/index.vue?fd38","webpack:///./src/ui/components/devices/devices/LightDimmer.vue","webpack:///./src/ui/components/devices/devices/base/SwitchBase.vue","webpack:///./src/ui/components/devices/devices/base/SwitchBase.vue?3702","webpack:///./src/ui/components/devices/devices/base/SwitchBase.vue?ce01","webpack:///./src/ui/components/devices/devices/base/SwitchBase.vue?2d9c","webpack:///./src/ui/components/devices/devices/LightDimmer.vue?852c","webpack:///./src/ui/components/devices/devices/LightDimmer.vue?7595","webpack:///./src/ui/components/devices/devices/LightDimmer.vue?7cf1","webpack:///./src/ui/components/devices/devices/LightSwitch.vue","webpack:///./src/ui/components/devices/devices/LightSwitch.vue?e298","webpack:///./src/ui/components/devices/devices/LightSwitch.vue?8df7","webpack:///./src/ui/components/devices/devices/LightSwitch.vue?d7c7","webpack:///./src/ui/components/devices/devices/Temperature.vue","webpack:///./src/ui/components/devices/devices/Temperature.vue?dab2","webpack:///./src/ui/components/devices/devices/Temperature.vue?0284","webpack:///./src/ui/components/devices/devices/Temperature.vue?8524","webpack:///./src/ui/components/devices/devices/VariableInputField.vue","webpack:///./src/ui/components/devices/devices/VariableInputField.vue?45a2","webpack:///./src/ui/components/devices/devices/VariableInputField.vue?90d9","webpack:///./src/ui/components/devices/devices/VariableInputField.vue?104b","webpack:///./src/ui/components/devices/devices/VariableOutputField.vue","webpack:///./src/ui/components/devices/devices/VariableOutputField.vue?511f","webpack:///./src/ui/components/devices/devices/VariableOutputField.vue?12ff","webpack:///./src/ui/components/devices/devices/VariableOutputField.vue?5498","webpack:///./src/ui/components/devices/devices/VariableTextInputField.vue","webpack:///./src/ui/components/devices/devices/VariableTextInputField.vue?12f8","webpack:///./src/ui/components/devices/devices/VariableTextInputField.vue?c62a","webpack:///./src/ui/components/devices/devices/VariableTextInputField.vue?240c","webpack:///./src/ui/components/devices/devices/VariableTextOutputField.vue","webpack:///./src/ui/components/devices/devices/VariableTextOutputField.vue?f329","webpack:///./src/ui/components/devices/devices/VariableTextOutputField.vue?1e04","webpack:///./src/ui/components/devices/devices/VariableTextOutputField.vue?f791","webpack:///./src/ui/components/devices/devices/LightRGB.vue","webpack:///./src/ui/components/devices/devices/base/SliderRGBBase.vue","webpack:///./src/ui/components/devices/devices/base/SliderRGBBase.vue?e230","webpack:///./src/ui/components/devices/devices/base/SliderRGBBase.vue?e4dd","webpack:///./src/ui/components/devices/devices/base/SliderRGBBase.vue?35ba","webpack:///./src/ui/components/devices/devices/base/SliderRGBCanvas.vue","webpack:///./src/ui/components/devices/devices/base/SliderRGBCanvas.vue?9c04","webpack:///./src/ui/components/devices/devices/base/SliderRGBCanvas.vue?3286","webpack:///./src/ui/components/devices/devices/base/SliderRGBCanvas.vue?a937","webpack:///./src/ui/components/devices/devices/LightRGB.vue?3731","webpack:///./src/ui/components/devices/devices/LightRGB.vue?dc41","webpack:///./src/ui/components/devices/devices/LightRGB.vue?cc4a","webpack:///./src/ui/components/devices/devices/SocketSwitch.vue","webpack:///./src/ui/components/devices/devices/SocketSwitch.vue?6d6e","webpack:///./src/ui/components/devices/devices/SocketSwitch.vue?2673","webpack:///./src/ui/components/devices/devices/SocketSwitch.vue?56b9","webpack:///./src/ui/components/devices/devices/LightPushButton.vue","webpack:///./src/ui/components/devices/devices/LightPushButton.vue?2f25","webpack:///./src/ui/components/devices/devices/LightPushButton.vue?3b9b","webpack:///./src/ui/components/devices/devices/LightPushButton.vue?b63d","webpack:///./src/ui/components/devices/devices/ControlBlinds.vue","webpack:///./src/ui/components/devices/devices/base/ArrowDownBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowDownBase.vue?a16f","webpack:///./src/ui/components/devices/devices/base/ArrowDownBase.vue?ab14","webpack:///./src/ui/components/devices/devices/base/ArrowDownBase.vue?10f9","webpack:///./src/ui/components/devices/devices/base/ArrowUpBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowUpBase.vue?0d62","webpack:///./src/ui/components/devices/devices/base/ArrowUpBase.vue?97d1","webpack:///./src/ui/components/devices/devices/base/ArrowUpBase.vue?d264","webpack:///./src/ui/components/devices/devices/ControlBlinds.vue?c67c","webpack:///./src/ui/components/devices/devices/ControlBlinds.vue?9767","webpack:///./src/ui/components/devices/devices/ControlBlinds.vue?832f","webpack:///./src/ui/components/devices/devices/ControlShutter.vue","webpack:///./src/ui/components/devices/devices/ControlShutter.vue?5cdc","webpack:///./src/ui/components/devices/devices/ControlShutter.vue?67ac","webpack:///./src/ui/components/devices/devices/ControlShutter.vue?a694","webpack:///./src/ui/components/devices/devices/ControlAwning.vue","webpack:///./src/ui/components/devices/devices/base/ArrowInBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowInBase.vue?b292","webpack:///./src/ui/components/devices/devices/base/ArrowInBase.vue?da73","webpack:///./src/ui/components/devices/devices/base/ArrowInBase.vue?831b","webpack:///./src/ui/components/devices/devices/base/ArrowOutBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowOutBase.vue?5817","webpack:///./src/ui/components/devices/devices/base/ArrowOutBase.vue?5e79","webpack:///./src/ui/components/devices/devices/base/ArrowOutBase.vue?2d4a","webpack:///./src/ui/components/devices/devices/ControlAwning.vue?ee50","webpack:///./src/ui/components/devices/devices/ControlAwning.vue?e4d2","webpack:///./src/ui/components/devices/devices/ControlAwning.vue?eb23","webpack:///./src/ui/components/devices/devices/ThermostatDigital.vue","webpack:///./src/ui/components/devices/devices/base/MinusBase.vue","webpack:///./src/ui/components/devices/devices/base/MinusBase.vue?794c","webpack:///./src/ui/components/devices/devices/base/MinusBase.vue?8093","webpack:///./src/ui/components/devices/devices/base/MinusBase.vue?8438","webpack:///./src/ui/components/devices/devices/base/PlusBase.vue","webpack:///./src/ui/components/devices/devices/base/PlusBase.vue?b50a","webpack:///./src/ui/components/devices/devices/base/PlusBase.vue?f5b5","webpack:///./src/ui/components/devices/devices/base/PlusBase.vue?fe81","webpack:///./src/ui/components/devices/devices/ThermostatDigital.vue?370b","webpack:///./src/ui/components/devices/devices/ThermostatDigital.vue?96b8","webpack:///./src/ui/components/devices/devices/ThermostatDigital.vue?0a7f","webpack:///./src/ui/components/devices/devices/ThermostatAnalog.vue","webpack:///./src/ui/components/devices/devices/ThermostatAnalog.vue?3e3e","webpack:///./src/ui/components/devices/devices/ThermostatAnalog.vue?9f62","webpack:///./src/ui/components/devices/devices/ThermostatAnalog.vue?7a02","webpack:///./src/ui/components/devices/devices/BrightnessSensor.vue","webpack:///./src/ui/components/devices/devices/BrightnessSensor.vue?6004","webpack:///./src/ui/components/devices/devices/BrightnessSensor.vue?e7d8","webpack:///./src/ui/components/devices/devices/BrightnessSensor.vue?c97e","webpack:///./src/ui/components/devices/devices/AirHumiditySensor.vue","webpack:///./src/ui/components/devices/devices/AirHumiditySensor.vue?3617","webpack:///./src/ui/components/devices/devices/AirHumiditySensor.vue?c968","webpack:///./src/ui/components/devices/devices/AirHumiditySensor.vue?d6f1","webpack:///./src/ui/components/devices/devices/SensorCO2.vue","webpack:///./src/ui/components/devices/devices/SensorCO2.vue?ffe2","webpack:///./src/ui/components/devices/devices/SensorCO2.vue?aa6d","webpack:///./src/ui/components/devices/devices/SensorCO2.vue?8ff2","webpack:///./src/ui/components/devices/devices/SensorLevel.vue","webpack:///./src/ui/components/devices/devices/SensorLevel.vue?5c0d","webpack:///./src/ui/components/devices/devices/SensorLevel.vue?5eae","webpack:///./src/ui/components/devices/devices/SensorLevel.vue?464f","webpack:///./src/ui/components/devices/devices/WeatherStation.vue","webpack:///./src/ui/components/devices/devices/WeatherStation.vue?a8f2","webpack:///./src/ui/components/devices/devices/WeatherStation.vue?aa6b","webpack:///./src/ui/components/devices/devices/WeatherStation.vue?fae9","webpack:///./src/ui/components/devices/devices/HotWaterMeter.vue","webpack:///./src/ui/components/devices/devices/HotWaterMeter.vue?73df","webpack:///./src/ui/components/devices/devices/HotWaterMeter.vue?c0e5","webpack:///./src/ui/components/devices/devices/HotWaterMeter.vue?ca81","webpack:///./src/ui/components/devices/devices/ColdWaterMeter.vue","webpack:///./src/ui/components/devices/devices/ColdWaterMeter.vue?2f69","webpack:///./src/ui/components/devices/devices/ColdWaterMeter.vue?3f6c","webpack:///./src/ui/components/devices/devices/ColdWaterMeter.vue?b963","webpack:///./src/ui/components/devices/devices/ElectricityMeter.vue","webpack:///./src/ui/components/devices/devices/ElectricityMeter.vue?6edf","webpack:///./src/ui/components/devices/devices/ElectricityMeter.vue?6ce5","webpack:///./src/ui/components/devices/devices/ElectricityMeter.vue?e0e5","webpack:///./src/ui/components/devices/devices/HeatingMeter.vue","webpack:///./src/ui/components/devices/devices/HeatingMeter.vue?4f2d","webpack:///./src/ui/components/devices/devices/HeatingMeter.vue?c276","webpack:///./src/ui/components/devices/devices/HeatingMeter.vue?8a5c","webpack:///./src/ui/components/devices/devices/MotionSensor.vue","webpack:///./src/ui/components/devices/devices/MotionSensor.vue?bb44","webpack:///./src/ui/components/devices/devices/MotionSensor.vue?21b5","webpack:///./src/ui/components/devices/devices/MotionSensor.vue?c87d","webpack:///./src/ui/components/devices/devices/Battery.vue","webpack:///./src/ui/components/devices/devices/base/BatteryBase.vue","webpack:///./src/ui/components/devices/devices/base/BatteryBase.vue?ac76","webpack:///./src/ui/components/devices/devices/base/BatteryBase.vue?8b90","webpack:///./src/ui/components/devices/devices/base/BatteryBase.vue?b792","webpack:///./src/ui/components/devices/devices/Battery.vue?3639","webpack:///./src/ui/components/devices/devices/Battery.vue?6a3e","webpack:///./src/ui/components/devices/devices/Battery.vue?a133","webpack:///./src/ui/components/devices/devices/PVSystem.vue","webpack:///./src/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue","webpack:///./src/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue?0dfe","webpack:///./src/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue?faa1","webpack:///./src/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue?3e9c","webpack:///./src/ui/components/devices/devices/PVSystem.vue?e0ae","webpack:///./src/ui/components/devices/devices/PVSystem.vue?d767","webpack:///./src/ui/components/devices/devices/PVSystem.vue?a187","webpack:///./src/ui/components/devices/devices/HouseConsumption.vue","webpack:///./src/ui/components/devices/devices/HouseConsumption.vue?23bc","webpack:///./src/ui/components/devices/devices/HouseConsumption.vue?f85b","webpack:///./src/ui/components/devices/devices/HouseConsumption.vue?3510","webpack:///./src/ui/components/devices/devices/Generator.vue","webpack:///./src/ui/components/devices/devices/Generator.vue?69c9","webpack:///./src/ui/components/devices/devices/Generator.vue?d4a3","webpack:///./src/ui/components/devices/devices/Generator.vue?2afb","webpack:///./src/ui/components/devices/devices/MainsConnection.vue","webpack:///./src/ui/components/devices/devices/MainsConnection.vue?c3c8","webpack:///./src/ui/components/devices/devices/MainsConnection.vue?a9a9","webpack:///./src/ui/components/devices/devices/MainsConnection.vue?9d04","webpack:///./src/ui/components/devices/devices/ElectricChargingStation.vue","webpack:///./src/ui/components/devices/devices/ElectricChargingStation.vue?758c","webpack:///./src/ui/components/devices/devices/ElectricChargingStation.vue?57e0","webpack:///./src/ui/components/devices/devices/ElectricChargingStation.vue?a0d0","webpack:///./src/ui/components/devices/devices/ElectricChargingStationV2.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue?5703","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue?876e","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue?9403","webpack:///./src/ui/components/devices/devices/ElectricChargingStationV2.vue?290e","webpack:///./src/ui/components/devices/devices/ElectricChargingStationV2.vue?93f9","webpack:///./src/ui/components/devices/devices/ElectricChargingStationV2.vue?46eb","webpack:///./src/ui/components/devices/devices/ElectronicBoiler.vue","webpack:///./src/ui/components/devices/devices/ElectronicBoiler.vue?8fd5","webpack:///./src/ui/components/devices/devices/ElectronicBoiler.vue?e5fc","webpack:///./src/ui/components/devices/devices/ElectronicBoiler.vue?803e","webpack:///./src/ui/components/devices/devices/VentilatorSwitch.vue","webpack:///./src/ui/components/devices/devices/VentilatorSwitch.vue?1ee5","webpack:///./src/ui/components/devices/devices/VentilatorSwitch.vue?a126","webpack:///./src/ui/components/devices/devices/VentilatorSwitch.vue?a859","webpack:///./src/ui/components/devices/devices/MusicSystem.vue","webpack:///./src/ui/components/devices/devices/base/PlayBase.vue","webpack:///./src/ui/components/devices/devices/base/PlayBase.vue?8256","webpack:///./src/ui/components/devices/devices/base/PlayBase.vue?308a","webpack:///./src/ui/components/devices/devices/base/PlayBase.vue?372e","webpack:///./src/ui/components/devices/devices/base/StopBase.vue","webpack:///./src/ui/components/devices/devices/base/StopBase.vue?d32f","webpack:///./src/ui/components/devices/devices/base/StopBase.vue?e86f","webpack:///./src/ui/components/devices/devices/base/StopBase.vue?11a8","webpack:///./src/ui/components/devices/devices/base/PauseBase.vue","webpack:///./src/ui/components/devices/devices/base/PauseBase.vue?8f5f","webpack:///./src/ui/components/devices/devices/base/PauseBase.vue?0cfa","webpack:///./src/ui/components/devices/devices/base/PauseBase.vue?7f94","webpack:///./src/ui/components/devices/devices/base/ReverseBase.vue","webpack:///./src/ui/components/devices/devices/base/ReverseBase.vue?bb39","webpack:///./src/ui/components/devices/devices/base/ReverseBase.vue?e6f7","webpack:///./src/ui/components/devices/devices/base/ReverseBase.vue?513b","webpack:///./src/ui/components/devices/devices/base/ForwardBase.vue","webpack:///./src/ui/components/devices/devices/base/ForwardBase.vue?8de8","webpack:///./src/ui/components/devices/devices/base/ForwardBase.vue?df6c","webpack:///./src/ui/components/devices/devices/base/ForwardBase.vue?818c","webpack:///./src/ui/components/devices/devices/MusicSystem.vue?dc91","webpack:///./src/ui/components/devices/devices/MusicSystem.vue?adff","webpack:///./src/ui/components/devices/devices/MusicSystem.vue?bf26","webpack:///./src/ui/components/devices/devices/TV.vue","webpack:///./src/ui/components/devices/devices/TV.vue?9216","webpack:///./src/ui/components/devices/devices/TV.vue?4aae","webpack:///./src/ui/components/devices/devices/TV.vue?a5b3","webpack:///./src/ui/components/devices/devices/MotorWithoutVFD.vue","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue?13b2","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue?77ba","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue?f43d","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionRightBase.vue","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionRightBase.vue?0338","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionRightBase.vue?8579","webpack:///./src/ui/components/devices/devices/base/ArrowDirectionRightBase.vue?5d85","webpack:///./src/ui/components/devices/devices/MotorWithoutVFD.vue?6f1c","webpack:///./src/ui/components/devices/devices/MotorWithoutVFD.vue?bd99","webpack:///./src/ui/components/devices/devices/MotorWithoutVFD.vue?9d13","webpack:///./src/ui/components/devices/devices/PumpWithoutVFD.vue","webpack:///./src/ui/components/devices/devices/PumpWithoutVFD.vue?03e9","webpack:///./src/ui/components/devices/devices/PumpWithoutVFD.vue?ad94","webpack:///./src/ui/components/devices/devices/PumpWithoutVFD.vue?3542","webpack:///./src/ui/components/devices/devices/PumpWithVFD.vue","webpack:///./src/ui/components/devices/devices/PumpWithVFD.vue?c971","webpack:///./src/ui/components/devices/devices/PumpWithVFD.vue?7392","webpack:///./src/ui/components/devices/devices/PumpWithVFD.vue?1577","webpack:///./src/ui/components/devices/devices/MotorWithVFD.vue","webpack:///./src/ui/components/devices/devices/MotorWithVFD.vue?2171","webpack:///./src/ui/components/devices/devices/MotorWithVFD.vue?69e1","webpack:///./src/ui/components/devices/devices/MotorWithVFD.vue?aba5","webpack:///./src/ui/components/devices/devices/MixingValve.vue","webpack:///./src/ui/components/devices/devices/MixingValve.vue?6c07","webpack:///./src/ui/components/devices/devices/MixingValve.vue?1d5f","webpack:///./src/ui/components/devices/devices/MixingValve.vue?975b","webpack:///./src/ui/components/devices/devices/Ventilation.vue","webpack:///./src/ui/components/devices/devices/Ventilation.vue?e6cd","webpack:///./src/ui/components/devices/devices/Ventilation.vue?d980","webpack:///./src/ui/components/devices/devices/Ventilation.vue?3120","webpack:///./src/ui/components/devices/devices/Gauge.vue","webpack:///./src/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue","webpack:///./src/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue?1204","webpack:///./src/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue?bb49","webpack:///./src/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue?9bef","webpack:///./src/ui/components/devices/devices/Gauge.vue?f2d9","webpack:///./src/ui/components/devices/devices/Gauge.vue?4e67","webpack:///./src/ui/components/devices/devices/Gauge.vue?4ad8","webpack:///./src/ui/components/devices/devices/RegentLighting.vue","webpack:///./src/ui/components/devices/devices/RegentLighting.vue?ba41","webpack:///./src/ui/components/devices/devices/RegentLighting.vue?9d6d","webpack:///./src/ui/components/devices/devices/RegentLighting.vue?0368","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue","webpack:///./src/ui/components/devices/mpc/base/MinusBase.vue","webpack:///./src/ui/components/devices/mpc/base/MinusBase.vue?9de3","webpack:///./src/ui/components/devices/mpc/base/MinusBase.vue?e429","webpack:///./src/ui/components/devices/mpc/base/MinusBase.vue?48e2","webpack:///./src/ui/components/devices/mpc/base/PlusBase.vue","webpack:///./src/ui/components/devices/mpc/base/PlusBase.vue?77fd","webpack:///./src/ui/components/devices/mpc/base/PlusBase.vue?6d65","webpack:///./src/ui/components/devices/mpc/base/PlusBase.vue?7312","webpack:///./src/ui/components/devices/mpc/base/ShowEventDotBase.vue","webpack:///./src/ui/components/devices/mpc/base/ShowEventDotBase.vue?3e28","webpack:///./src/ui/components/devices/mpc/base/ShowEventDotBase.vue?4e45","webpack:///./src/ui/components/devices/mpc/base/ShowEventDotBase.vue?f6f9","webpack:///./src/ui/components/devices/mpc/base/OutputFieldBase.vue","webpack:///./src/ui/components/devices/mpc/base/OutputFieldBase.vue?2566","webpack:///./src/ui/components/devices/mpc/base/OutputFieldBase.vue?e5e8","webpack:///./src/ui/components/devices/mpc/base/OutputFieldBase.vue?885e","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue?2105","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue?5570","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue?2d15","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue?d37e","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue?060e","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue?8d22","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue?78c2","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue?4115","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue?b02c","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue?3f73","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue?fd80","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue?1e64","webpack:///./src/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue","webpack:///./src/ui/components/devices/anomalyDetection/AnomalyDetection.vue","webpack:///./src/ui/components/devices/anomalyDetection/AnomalyDetection.vue?ec57","webpack:///./src/ui/components/devices/anomalyDetection/AnomalyDetection.vue?d47a","webpack:///./src/ui/components/devices/anomalyDetection/AnomalyDetection.vue?c917","webpack:///./src/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue?789d","webpack:///./src/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue?50c1","webpack:///./src/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue?e97d","webpack:///./src/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue","webpack:///./src/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue?2c5d","webpack:///./src/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue?fc90","webpack:///./src/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue?37c8","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/index.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SetpointActualView.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SystemDialogSetpointOptimizer.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemForecastView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemForecastView.vue?e5b7","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemForecastView.vue?f416","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemForecastView.vue?7089","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SystemDialogSetpointOptimizer.vue?5d1c","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SystemDialogSetpointOptimizer.vue?c242","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SystemDialogSetpointOptimizer.vue?3525","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SetpointActualView.vue?1b41","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SetpointActualView.vue?1cbb","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/components/SetpointActualView.vue?a7d7","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartControlVariables.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/utils.ts","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartControlVariables.vue?91ea","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartControlVariables.vue?f2c3","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartControlVariables.vue?ee3d","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartsRoomTemperatures.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartsRoomTemperatures.vue?19f9","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartsRoomTemperatures.vue?6396","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/ChartsRoomTemperatures.vue?f41c","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/Forecast.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/Forecast.vue?3882","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/Forecast.vue?7a9b","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/Forecast.vue?d6a8","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue?77fc","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue?91df","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue?762f","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/index.vue?d9c7","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/index.vue?f6fb","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/index.vue?e822","webpack:///./src/ui/components/devices/devices/TSGModulLadestation.vue","webpack:///./src/ui/components/devices/devices/TSGModulLadestation.vue?63fa","webpack:///./src/ui/components/devices/devices/TSGModulLadestation.vue?34c9","webpack:///./src/ui/components/devices/devices/TSGModulLadestation.vue?b3ae","webpack:///./src/ui/components/devices/mpc/HeatingProduction/index.vue","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/index.vue","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Forecast.vue","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Forecast.vue?f156","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Forecast.vue?1cf8","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Forecast.vue?4bf8","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue?816c","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue?628e","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue?22c4","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue?6e84","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue?a7a0","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue?52de","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/index.vue?1e5c","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/index.vue?ce31","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/index.vue?8558","webpack:///./src/ui/components/devices/mpc/HeatingProduction/index.vue?653e","webpack:///./src/ui/components/devices/mpc/HeatingProduction/index.vue?9795","webpack:///./src/ui/components/devices/mpc/HeatingProduction/index.vue?95ec","webpack:///./src/ui/components/devices/devices/EnergyIO/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue?f013","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue?afb9","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue?8be5","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue?e031","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue?5d31","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue?625d","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue?aa99","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue?82c0","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue?e3f1","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewSystemDialogIO.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue?5d17","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue?c145","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue?ea00","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewIOSystemSettingsDialog.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewIOSystemSettingsDialog.vue?d1f2","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewIOSystemSettingsDialog.vue?7fab","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewIOSystemSettingsDialog.vue?bb08","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewSystemDialogIO.vue?1204","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewSystemDialogIO.vue?4ab4","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewSystemDialogIO.vue?4453","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/EnergyIOComponent.ts","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/index.vue?0522","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/index.vue?4764","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/index.vue?814f","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/EnergyIOVisualisationUtils.ts","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/EnergyFlowViewSystemDialogIO.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/EnergyFlowViewSystemDialogIO.vue?72b5","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/EnergyFlowViewSystemDialogIO.vue?70bb","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/EnergyFlowViewSystemDialogIO.vue?b265","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/index.vue?57a8","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/index.vue?9916","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/index.vue?c4ad","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/index.vue","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/SingleIOSystemView.vue","webpack:///./src/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/energyIOChartsUtils.ts","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/SingleIOSystemView.vue?1686","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/SingleIOSystemView.vue?35a3","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/SingleIOSystemView.vue?b5ab","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/index.vue?c658","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/index.vue?9ebc","webpack:///./src/ui/components/devices/devices/EnergyIO/components/charts/index.vue?54f9","webpack:///./src/ui/components/devices/devices/EnergyIO/index.vue?f438","webpack:///./src/ui/components/devices/devices/EnergyIO/index.vue?b475","webpack:///./src/ui/components/devices/devices/EnergyIO/index.vue?e46d","webpack:///./src/ui/components/lists/DevicesListFlexGrid/index.vue?d204","webpack:///./src/ui/components/lists/DevicesListFlexGrid/index.vue?3505","webpack:///./src/ui/components/lists/DevicesListFlexGrid/index.vue?1c19","webpack:///./src/ui/components/lists/DevicesListFavorites/index.vue","webpack:///./src/ui/mixins/dnd.ts","webpack:///./src/ui/components/lists/DevicesListFavorites/index.vue?7c43","webpack:///./src/ui/components/lists/DevicesListFavorites/index.vue?4f94","webpack:///./src/ui/components/lists/DevicesListFavorites/index.vue?69b5","webpack:///./src/ui/components/lists/DevicesList/index.vue","webpack:///./src/ui/components/lists/RoomsList/index.vue","webpack:///./src/ui/components/lists/RoomsList/RoomItem.vue","webpack:///./src/ui/components/lists/RoomsList/DuplicateRoomModal.vue","webpack:///./src/ui/components/lists/RoomsList/DuplicateRoomModal.vue?ef7c","webpack:///./src/ui/components/lists/RoomsList/DuplicateRoomModal.vue?f2b0","webpack:///./src/ui/components/lists/RoomsList/DuplicateRoomModal.vue?0263","webpack:///./src/ui/components/lists/RoomsList/RoomItem.vue?cd0a","webpack:///./src/ui/components/lists/RoomsList/RoomItem.vue?99df","webpack:///./src/ui/components/lists/RoomsList/RoomItem.vue?7ab4","webpack:///./src/ui/components/lists/RoomsList/index.vue?d2ed","webpack:///./src/ui/components/lists/RoomsList/index.vue?39eb","webpack:///./src/ui/components/lists/RoomsList/index.vue?a8e5","webpack:///./src/ui/components/lists/DevicesList/index.vue?5914","webpack:///./src/ui/components/lists/DevicesList/index.vue?2991","webpack:///./src/ui/components/lists/DevicesList/index.vue?0f83","webpack:///./src/ui/views/Project/Favorites.vue?b6a7","webpack:///./src/ui/views/Project/Favorites.vue?4236","webpack:///./src/ui/views/Project/Favorites.vue?f13a","webpack:///./src/ui/views/Project/Rooms.vue","webpack:///./src/ui/components/lists/DevicesListDnD/index.vue","webpack:///./src/ui/components/lists/DevicesListDnD/index.vue?ca2c","webpack:///./src/ui/components/lists/DevicesListDnD/index.vue?36dc","webpack:///./src/ui/components/lists/DevicesListDnD/index.vue?533f","webpack:///./src/ui/components/lists/RoomsListFlexGrid/index.vue","webpack:///./src/ui/components/lists/RoomsListFlexGrid/RoomItem.vue","webpack:///./src/ui/components/lists/RoomsListFlexGrid/RoomItem.vue?4ce1","webpack:///./src/ui/components/lists/RoomsListFlexGrid/RoomItem.vue?5ad0","webpack:///./src/ui/components/lists/RoomsListFlexGrid/RoomItem.vue?d178","webpack:///./src/ui/components/lists/RoomsListFlexGrid/index.vue?edbe","webpack:///./src/ui/components/lists/RoomsListFlexGrid/index.vue?db92","webpack:///./src/ui/components/lists/RoomsListFlexGrid/index.vue?36f0","webpack:///./src/ui/views/Project/Rooms.vue?8293","webpack:///./src/ui/views/Project/Rooms.vue?19b6","webpack:///./src/ui/views/Project/Rooms.vue?20a5","webpack:///./src/ui/views/Project/DevicesLibrary.vue","webpack:///./src/ui/components/devices/previews/components/ChartsView.vue","webpack:///./src/ui/components/devices/previews/charts/ColumnChart.vue","webpack:///./src/ui/components/devices/previews/charts/ColumnChart.vue?d4f0","webpack:///./src/ui/components/devices/previews/charts/ColumnChart.vue?57e6","webpack:///./src/ui/components/devices/previews/charts/ColumnChart.vue?134d","webpack:///./src/ui/components/devices/previews/charts/LineChart.vue","webpack:///./src/ui/components/devices/previews/charts/LineChart.vue?5e8f","webpack:///./src/ui/components/devices/previews/charts/LineChart.vue?c244","webpack:///./src/ui/components/devices/previews/charts/LineChart.vue?2e2b","webpack:///./src/ui/components/devices/previews/charts/AreaChart.vue","webpack:///./src/ui/components/devices/previews/charts/AreaChart.vue?465b","webpack:///./src/ui/components/devices/previews/charts/AreaChart.vue?3d1f","webpack:///./src/ui/components/devices/previews/charts/AreaChart.vue?061d","webpack:///./src/ui/components/devices/previews/components/ChartsView.vue?1801","webpack:///./src/ui/components/devices/previews/components/ChartsView.vue?5f94","webpack:///./src/ui/components/devices/previews/components/ChartsView.vue?dec2","webpack:///./src/ui/components/devices/previews/components/DevicesView.vue","webpack:///./src/ui/components/devices/previews/devices/Temperature.vue","webpack:///./src/ui/components/devices/previews/devices/Temperature.vue?0eec","webpack:///./src/ui/components/devices/previews/devices/Temperature.vue?95c9","webpack:///./src/ui/components/devices/previews/devices/Temperature.vue?25c4","webpack:///./src/ui/components/devices/previews/devices/LightDimmer.vue","webpack:///./src/ui/components/devices/previews/components/SliderMock.vue","webpack:///./src/ui/components/devices/previews/components/SliderMock.vue?3e64","webpack:///./src/ui/components/devices/previews/components/SliderMock.vue?455c","webpack:///./src/ui/components/devices/previews/components/SliderMock.vue?0e94","webpack:///./src/ui/components/devices/previews/devices/LightDimmer.vue?5e2e","webpack:///./src/ui/components/devices/previews/devices/LightDimmer.vue?2bf3","webpack:///./src/ui/components/devices/previews/devices/LightDimmer.vue?a666","webpack:///./src/ui/components/devices/previews/devices/LightSwitch.vue","webpack:///./src/ui/components/devices/previews/devices/LightSwitch.vue?6f1e","webpack:///./src/ui/components/devices/previews/devices/LightSwitch.vue?6a26","webpack:///./src/ui/components/devices/previews/devices/LightSwitch.vue?5e86","webpack:///./src/ui/components/devices/previews/devices/VariableInputField.vue","webpack:///./src/ui/components/devices/previews/devices/VariableInputField.vue?569d","webpack:///./src/ui/components/devices/previews/devices/VariableInputField.vue?9fe1","webpack:///./src/ui/components/devices/previews/devices/VariableInputField.vue?2774","webpack:///./src/ui/components/devices/previews/devices/VariableOutputField.vue","webpack:///./src/ui/components/devices/previews/devices/VariableOutputField.vue?052f","webpack:///./src/ui/components/devices/previews/devices/VariableOutputField.vue?0a26","webpack:///./src/ui/components/devices/previews/devices/VariableOutputField.vue?06fa","webpack:///./src/ui/components/devices/previews/devices/LightPushButton.vue","webpack:///./src/ui/components/devices/previews/components/PushButtonMock.vue","webpack:///./src/ui/components/devices/previews/components/PushButtonMock.vue?f682","webpack:///./src/ui/components/devices/previews/components/PushButtonMock.vue?6d32","webpack:///./src/ui/components/devices/previews/components/PushButtonMock.vue?37ef","webpack:///./src/ui/components/devices/previews/devices/LightPushButton.vue?5075","webpack:///./src/ui/components/devices/previews/devices/LightPushButton.vue?05f6","webpack:///./src/ui/components/devices/previews/devices/LightPushButton.vue?ab24","webpack:///./src/ui/components/devices/previews/devices/SocketSwitch.vue","webpack:///./src/ui/components/devices/previews/devices/SocketSwitch.vue?f8a1","webpack:///./src/ui/components/devices/previews/devices/SocketSwitch.vue?fa76","webpack:///./src/ui/components/devices/previews/devices/SocketSwitch.vue?a695","webpack:///./src/ui/components/devices/previews/devices/LightRGB.vue","webpack:///./src/ui/components/devices/previews/devices/LightRGB.vue?284a","webpack:///./src/ui/components/devices/previews/devices/LightRGB.vue?5b92","webpack:///./src/ui/components/devices/previews/devices/LightRGB.vue?8cb3","webpack:///./src/ui/components/devices/previews/devices/ControlBlinds.vue","webpack:///./src/ui/components/devices/previews/devices/ControlBlinds.vue?51eb","webpack:///./src/ui/components/devices/previews/devices/ControlBlinds.vue?0fa4","webpack:///./src/ui/components/devices/previews/devices/ControlBlinds.vue?9ca5","webpack:///./src/ui/components/devices/previews/devices/ControlShutter.vue","webpack:///./src/ui/components/devices/previews/devices/ControlShutter.vue?4924","webpack:///./src/ui/components/devices/previews/devices/ControlShutter.vue?a30b","webpack:///./src/ui/components/devices/previews/devices/ControlShutter.vue?3cc2","webpack:///./src/ui/components/devices/previews/devices/ControlAwning.vue","webpack:///./src/ui/components/devices/previews/devices/ControlAwning.vue?d605","webpack:///./src/ui/components/devices/previews/devices/ControlAwning.vue?9cd1","webpack:///./src/ui/components/devices/previews/devices/ControlAwning.vue?f8d2","webpack:///./src/ui/components/devices/previews/devices/ThermostatDigital.vue","webpack:///./src/ui/components/devices/previews/devices/ThermostatDigital.vue?2e5a","webpack:///./src/ui/components/devices/previews/devices/ThermostatDigital.vue?a1ef","webpack:///./src/ui/components/devices/previews/devices/ThermostatDigital.vue?69c9","webpack:///./src/ui/components/devices/previews/devices/ThermostatAnalog.vue","webpack:///./src/ui/components/devices/previews/devices/ThermostatAnalog.vue?1b65","webpack:///./src/ui/components/devices/previews/devices/ThermostatAnalog.vue?7f42","webpack:///./src/ui/components/devices/previews/devices/ThermostatAnalog.vue?e786","webpack:///./src/ui/components/devices/previews/devices/AirHumiditySensor.vue","webpack:///./src/ui/components/devices/previews/devices/AirHumiditySensor.vue?62a6","webpack:///./src/ui/components/devices/previews/devices/AirHumiditySensor.vue?e873","webpack:///./src/ui/components/devices/previews/devices/AirHumiditySensor.vue?9e8c","webpack:///./src/ui/components/devices/previews/devices/BrightnessSensor.vue","webpack:///./src/ui/components/devices/previews/devices/BrightnessSensor.vue?d1a1","webpack:///./src/ui/components/devices/previews/devices/BrightnessSensor.vue?34c2","webpack:///./src/ui/components/devices/previews/devices/BrightnessSensor.vue?14f3","webpack:///./src/ui/components/devices/previews/devices/SensorCO2.vue","webpack:///./src/ui/components/devices/previews/devices/SensorCO2.vue?9b8d","webpack:///./src/ui/components/devices/previews/devices/SensorCO2.vue?a55d","webpack:///./src/ui/components/devices/previews/devices/SensorCO2.vue?a9b0","webpack:///./src/ui/components/devices/previews/devices/SensorLevel.vue","webpack:///./src/ui/components/devices/previews/devices/SensorLevel.vue?8be6","webpack:///./src/ui/components/devices/previews/devices/SensorLevel.vue?cb0d","webpack:///./src/ui/components/devices/previews/devices/SensorLevel.vue?19d7","webpack:///./src/ui/components/devices/previews/devices/WeatherStation.vue","webpack:///./src/ui/components/devices/previews/devices/WeatherStation.vue?52a2","webpack:///./src/ui/components/devices/previews/devices/WeatherStation.vue?166a","webpack:///./src/ui/components/devices/previews/devices/WeatherStation.vue?9a55","webpack:///./src/ui/components/devices/previews/devices/HotWaterMeter.vue","webpack:///./src/ui/components/devices/previews/devices/HotWaterMeter.vue?d20b","webpack:///./src/ui/components/devices/previews/devices/HotWaterMeter.vue?fc2c","webpack:///./src/ui/components/devices/previews/devices/HotWaterMeter.vue?921a","webpack:///./src/ui/components/devices/previews/devices/ColdWaterMeter.vue","webpack:///./src/ui/components/devices/previews/devices/ColdWaterMeter.vue?8bde","webpack:///./src/ui/components/devices/previews/devices/ColdWaterMeter.vue?980e","webpack:///./src/ui/components/devices/previews/devices/ColdWaterMeter.vue?6f31","webpack:///./src/ui/components/devices/previews/devices/HeatingMeter.vue","webpack:///./src/ui/components/devices/previews/devices/HeatingMeter.vue?4785","webpack:///./src/ui/components/devices/previews/devices/HeatingMeter.vue?83a2","webpack:///./src/ui/components/devices/previews/devices/HeatingMeter.vue?20d3","webpack:///./src/ui/components/devices/previews/devices/ElectricityMeter.vue","webpack:///./src/ui/components/devices/previews/devices/ElectricityMeter.vue?fce0","webpack:///./src/ui/components/devices/previews/devices/ElectricityMeter.vue?ca7f","webpack:///./src/ui/components/devices/previews/devices/ElectricityMeter.vue?c732","webpack:///./src/ui/components/devices/previews/devices/Gauge.vue","webpack:///./src/ui/components/devices/previews/devices/Gauge.vue?0d4e","webpack:///./src/ui/components/devices/previews/devices/Gauge.vue?ecfd","webpack:///./src/ui/components/devices/previews/devices/Gauge.vue?4b03","webpack:///./src/ui/components/devices/previews/devices/MotionSensor.vue","webpack:///./src/ui/components/devices/previews/devices/MotionSensor.vue?3894","webpack:///./src/ui/components/devices/previews/devices/MotionSensor.vue?d06a","webpack:///./src/ui/components/devices/previews/devices/MotionSensor.vue?31c7","webpack:///./src/ui/components/devices/previews/devices/Battery.vue","webpack:///./src/ui/components/devices/previews/components/BatteryBaseMock.vue","webpack:///./src/ui/components/devices/previews/components/BatteryBaseMock.vue?b8df","webpack:///./src/ui/components/devices/previews/components/BatteryBaseMock.vue?b06b","webpack:///./src/ui/components/devices/previews/components/BatteryBaseMock.vue?d03a","webpack:///./src/ui/components/devices/previews/devices/Battery.vue?5e9c","webpack:///./src/ui/components/devices/previews/devices/Battery.vue?d65c","webpack:///./src/ui/components/devices/previews/devices/Battery.vue?7950","webpack:///./src/ui/components/devices/previews/devices/PVSystem.vue","webpack:///./src/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue","webpack:///./src/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue?0128","webpack:///./src/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue?fdfd","webpack:///./src/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue?2cb9","webpack:///./src/ui/components/devices/previews/devices/PVSystem.vue?3e8d","webpack:///./src/ui/components/devices/previews/devices/PVSystem.vue?6aa6","webpack:///./src/ui/components/devices/previews/devices/PVSystem.vue?d6a5","webpack:///./src/ui/components/devices/previews/devices/HouseConsumption.vue","webpack:///./src/ui/components/devices/previews/devices/HouseConsumption.vue?e803","webpack:///./src/ui/components/devices/previews/devices/HouseConsumption.vue?8ebe","webpack:///./src/ui/components/devices/previews/devices/HouseConsumption.vue?4d9f","webpack:///./src/ui/components/devices/previews/devices/Generator.vue","webpack:///./src/ui/components/devices/previews/devices/Generator.vue?3636","webpack:///./src/ui/components/devices/previews/devices/Generator.vue?6bfa","webpack:///./src/ui/components/devices/previews/devices/Generator.vue?5a78","webpack:///./src/ui/components/devices/previews/devices/MainsConnection.vue","webpack:///./src/ui/components/devices/previews/devices/MainsConnection.vue?4737","webpack:///./src/ui/components/devices/previews/devices/MainsConnection.vue?f1b0","webpack:///./src/ui/components/devices/previews/devices/MainsConnection.vue?105f","webpack:///./src/ui/components/devices/previews/devices/ElectricChargingStation.vue","webpack:///./src/ui/components/devices/previews/devices/ElectricChargingStation.vue?4854","webpack:///./src/ui/components/devices/previews/devices/ElectricChargingStation.vue?1974","webpack:///./src/ui/components/devices/previews/devices/ElectricChargingStation.vue?843c","webpack:///./src/ui/components/devices/previews/devices/VariableTextOutputField.vue","webpack:///./src/ui/components/devices/previews/devices/VariableTextOutputField.vue?ec12","webpack:///./src/ui/components/devices/previews/devices/VariableTextOutputField.vue?e30b","webpack:///./src/ui/components/devices/previews/devices/VariableTextOutputField.vue?3906","webpack:///./src/ui/components/devices/previews/devices/VariableTextInputField.vue","webpack:///./src/ui/components/devices/previews/devices/VariableTextInputField.vue?c7ad","webpack:///./src/ui/components/devices/previews/devices/VariableTextInputField.vue?41a4","webpack:///./src/ui/components/devices/previews/devices/VariableTextInputField.vue?a921","webpack:///./src/ui/components/devices/previews/devices/ElectronicBoiler.vue","webpack:///./src/ui/components/devices/previews/devices/ElectronicBoiler.vue?8c36","webpack:///./src/ui/components/devices/previews/devices/ElectronicBoiler.vue?70ba","webpack:///./src/ui/components/devices/previews/devices/ElectronicBoiler.vue?e3be","webpack:///./src/ui/components/devices/previews/devices/VentilatorSwitch.vue","webpack:///./src/ui/components/devices/previews/devices/VentilatorSwitch.vue?2cd8","webpack:///./src/ui/components/devices/previews/devices/VentilatorSwitch.vue?c24e","webpack:///./src/ui/components/devices/previews/devices/VentilatorSwitch.vue?17d9","webpack:///./src/ui/components/devices/previews/devices/MusicSystem.vue","webpack:///./src/ui/components/devices/previews/components/MultimediaButtonMock.vue","webpack:///./src/ui/components/devices/previews/components/MultimediaButtonMock.vue?0c7f","webpack:///./src/ui/components/devices/previews/components/MultimediaButtonMock.vue?50f8","webpack:///./src/ui/components/devices/previews/components/MultimediaButtonMock.vue?2715","webpack:///./src/ui/components/devices/previews/devices/MusicSystem.vue?6d6d","webpack:///./src/ui/components/devices/previews/devices/MusicSystem.vue?bec3","webpack:///./src/ui/components/devices/previews/devices/MusicSystem.vue?3bed","webpack:///./src/ui/components/devices/previews/devices/TV.vue","webpack:///./src/ui/components/devices/previews/devices/TV.vue?61c0","webpack:///./src/ui/components/devices/previews/devices/TV.vue?da34","webpack:///./src/ui/components/devices/previews/devices/TV.vue?7aa9","webpack:///./src/ui/components/devices/previews/devices/MotorWithoutVFD.vue","webpack:///./src/ui/components/devices/previews/devices/MotorWithoutVFD.vue?34c2","webpack:///./src/ui/components/devices/previews/devices/MotorWithoutVFD.vue?5bec","webpack:///./src/ui/components/devices/previews/devices/MotorWithoutVFD.vue?3a0c","webpack:///./src/ui/components/devices/previews/devices/PumpWithoutVFD.vue","webpack:///./src/ui/components/devices/previews/devices/PumpWithoutVFD.vue?655f","webpack:///./src/ui/components/devices/previews/devices/PumpWithoutVFD.vue?72b7","webpack:///./src/ui/components/devices/previews/devices/PumpWithoutVFD.vue?6752","webpack:///./src/ui/components/devices/previews/devices/MotorWithVFD.vue","webpack:///./src/ui/components/devices/previews/devices/MotorWithVFD.vue?8a0f","webpack:///./src/ui/components/devices/previews/devices/MotorWithVFD.vue?5f1a","webpack:///./src/ui/components/devices/previews/devices/MotorWithVFD.vue?69c5","webpack:///./src/ui/components/devices/previews/devices/PumpWithVFD.vue","webpack:///./src/ui/components/devices/previews/devices/PumpWithVFD.vue?388c","webpack:///./src/ui/components/devices/previews/devices/PumpWithVFD.vue?f39c","webpack:///./src/ui/components/devices/previews/devices/PumpWithVFD.vue?67b6","webpack:///./src/ui/components/devices/previews/devices/MixingValve.vue","webpack:///./src/ui/components/devices/previews/devices/MixingValve.vue?98cd","webpack:///./src/ui/components/devices/previews/devices/MixingValve.vue?d943","webpack:///./src/ui/components/devices/previews/devices/MixingValve.vue?5ae5","webpack:///./src/ui/components/devices/previews/devices/Ventilation.vue","webpack:///./src/ui/components/devices/previews/devices/Ventilation.vue?89e3","webpack:///./src/ui/components/devices/previews/devices/Ventilation.vue?637f","webpack:///./src/ui/components/devices/previews/devices/Ventilation.vue?a91c","webpack:///./src/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue","webpack:///./src/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue?69c9","webpack:///./src/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue?3bd6","webpack:///./src/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue?4b69","webpack:///./src/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue","webpack:///./src/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue?2243","webpack:///./src/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue?526a","webpack:///./src/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue?7cd6","webpack:///./src/ui/components/devices/previews/devices/EnergyViewPreview.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/Settings.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/Settings.vue?9eb7","webpack:///./src/ui/components/devices/previews/devices/EMSV2/Settings.vue?1a7e","webpack:///./src/ui/components/devices/previews/devices/EMSV2/Settings.vue?5079","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/index.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue?b007","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue?8553","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue?6711","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/index.vue?5d10","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/index.vue?e3fb","webpack:///./src/ui/components/devices/previews/devices/EMSV2/charts/index.vue?2cdc","webpack:///./src/ui/components/devices/previews/devices/EMSV2/forecastMockData.ts","webpack:///./src/ui/components/devices/previews/devices/EnergyViewPreview.vue?eae8","webpack:///./src/ui/components/devices/previews/devices/EnergyViewPreview.vue?ecd4","webpack:///./src/ui/components/devices/previews/devices/EnergyViewPreview.vue?1a9a","webpack:///./src/ui/components/devices/previews/devices/GeneralSwitchV2.vue","webpack:///./src/ui/components/devices/previews/devices/GeneralSwitchV2.vue?f698","webpack:///./src/ui/components/devices/previews/devices/GeneralSwitchV2.vue?a3af","webpack:///./src/ui/components/devices/previews/devices/GeneralSwitchV2.vue?41ec","webpack:///./src/ui/components/devices/previews/devices/EMSV2/index.vue","webpack:///./src/ui/components/devices/previews/devices/EMSV2/index.vue?6d75","webpack:///./src/ui/components/devices/previews/devices/EMSV2/index.vue?f58b","webpack:///./src/ui/components/devices/previews/devices/EMSV2/index.vue?3937","webpack:///./src/ui/components/devices/previews/components/DevicesView.vue?1427","webpack:///./src/ui/components/devices/previews/components/DevicesView.vue?4ed8","webpack:///./src/ui/components/devices/previews/components/DevicesView.vue?3520","webpack:///./src/ui/components/devices/previews/components/RegentsView.vue","webpack:///./src/ui/components/devices/previews/devices/RegentLighting.vue","webpack:///./src/ui/components/devices/previews/devices/RegentLighting.vue?b5cb","webpack:///./src/ui/components/devices/previews/devices/RegentLighting.vue?bb5d","webpack:///./src/ui/components/devices/previews/devices/RegentLighting.vue?e529","webpack:///./src/ui/components/devices/previews/components/RegentsView.vue?0ea6","webpack:///./src/ui/components/devices/previews/components/RegentsView.vue?7544","webpack:///./src/ui/components/devices/previews/components/RegentsView.vue?7fb5","webpack:///./src/ui/components/devices/previews/components/TSGView.vue","webpack:///./src/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue","webpack:///./src/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue?8cb2","webpack:///./src/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue?1147","webpack:///./src/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue?d45a","webpack:///./src/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue","webpack:///./src/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue?6fe1","webpack:///./src/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue?bf5b","webpack:///./src/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue?5dea","webpack:///./src/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue","webpack:///./src/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue?162e","webpack:///./src/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue?be5b","webpack:///./src/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue?28f4","webpack:///./src/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue","webpack:///./src/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue?5033","webpack:///./src/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue?7b8d","webpack:///./src/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue?5755","webpack:///./src/ui/components/devices/previews/components/TSGView.vue?5617","webpack:///./src/ui/components/devices/previews/components/TSGView.vue?6a20","webpack:///./src/ui/components/devices/previews/components/TSGView.vue?19c1","webpack:///./src/ui/components/devices/previews/components/RonovatecView.vue","webpack:///./src/ui/components/devices/previews/devices/RobotPreview.vue","webpack:///./src/ui/components/devices/previews/devices/RobotPreview.vue?4773","webpack:///./src/ui/components/devices/previews/devices/RobotPreview.vue?6136","webpack:///./src/ui/components/devices/previews/devices/RobotPreview.vue?d98e","webpack:///./src/ui/components/devices/previews/devices/SurveyClientPreview.vue","webpack:///./src/ui/components/devices/previews/devices/SurveyClientPreview.vue?bbbb","webpack:///./src/ui/components/devices/previews/devices/SurveyClientPreview.vue?824b","webpack:///./src/ui/components/devices/previews/devices/SurveyClientPreview.vue?d85f","webpack:///./src/ui/components/devices/previews/components/RonovatecView.vue?c521","webpack:///./src/ui/components/devices/previews/components/RonovatecView.vue?5327","webpack:///./src/ui/components/devices/previews/components/RonovatecView.vue?0190","webpack:///./src/ui/views/Project/DevicesLibrary.vue?a6ac","webpack:///./src/ui/views/Project/DevicesLibrary.vue?885c","webpack:///./src/ui/views/Project/DevicesLibrary.vue?38d6","webpack:///./src/ui/views/Project/AIML.vue","webpack:///./src/ui/components/devices/previews/components/MPCPreviewsList.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/HybridSettings.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/HybridSettings.vue?8a30","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/HybridSettings.vue?8ea7","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/HybridSettings.vue?9187","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/DefaultSettings.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/DefaultSettings.vue?81ab","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/DefaultSettings.vue?6319","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/DefaultSettings.vue?2362","webpack:///./src/ui/mixins/unitMixin.ts","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue?987e","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue?a5e7","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue?5672","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/forecastMockData.ts","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue?3835","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue?ac0c","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue?6053","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue?add8","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue?2e02","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue?7cd7","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue?70f3","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue?14f8","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue?46e8","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue?9037","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue?44f9","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue?dd8b","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue?f829","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue?16b8","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue?10f6","webpack:///./src/ui/components/devices/previews/components/MPCPreviewsList.vue?37eb","webpack:///./src/ui/components/devices/previews/components/MPCPreviewsList.vue?819f","webpack:///./src/ui/components/devices/previews/components/MPCPreviewsList.vue?0e4c","webpack:///./src/ui/components/devices/previews/components/AnomalyDetectionPreviewsList.vue","webpack:///./src/ui/components/devices/previews/components/AnomalyDetectionPreviewsList.vue?9e1f","webpack:///./src/ui/components/devices/previews/components/AnomalyDetectionPreviewsList.vue?3ff1","webpack:///./src/ui/components/devices/previews/components/AnomalyDetectionPreviewsList.vue?6454","webpack:///./src/ui/views/Project/AIML.vue?014f","webpack:///./src/ui/views/Project/AIML.vue?3860","webpack:///./src/ui/views/Project/AIML.vue?c1f1","webpack:///./src/ui/views/Project/Settings/index.vue","webpack:///./src/ui/views/Project/Settings/index.vue?9894","webpack:///./src/ui/views/Project/Settings/index.vue?78ce","webpack:///./src/ui/views/Project/Settings/index.vue?87ab","webpack:///./src/ui/views/Project/EventList.vue","webpack:///./src/ui/views/Project/EventList.vue?03d8","webpack:///./src/ui/views/Project/EventList.vue?6a1f","webpack:///./src/ui/views/Project/EventList.vue?c951","webpack:///./src/ui/views/Project/Rules.vue","webpack:///./src/ui/views/Project/Rules.vue?4968","webpack:///./src/ui/views/Project/Rules.vue?2ff0","webpack:///./src/ui/views/Project/Rules.vue?8cc8","webpack:///./src/ui/views/Project/Report.vue","webpack:///./src/ui/components/modals/ManageReport/components/ReportsExpansionPanel.vue","webpack:///./src/ui/components/modals/ManageReport/EditReport.vue","webpack:///./src/ui/components/modals/ManageReport/EditReport.vue?5a5d","webpack:///./src/ui/components/modals/ManageReport/EditReport.vue?a933","webpack:///./src/ui/components/modals/ManageReport/EditReport.vue?4652","webpack:///./src/ui/components/modals/ManageReport/components/ReportsExpansionPanel.vue?ee98","webpack:///./src/ui/views/Project/Report.vue?6dcc","webpack:///./src/ui/components/modals/ManageReport/components/ReportsExpansionPanel.vue?edfe","webpack:///./src/ui/components/modals/ManageReport/components/ReportsExpansionPanel.vue?7469","webpack:///./src/ui/views/Project/Report.vue?1577","webpack:///./src/ui/views/Project/Report.vue?5444","webpack:///./src/ui/views/Project/WizardViews/SetupAssistent.vue","webpack:///./src/ui/components/wizards/installationWizard/InstallationWizard.vue","webpack:///./src/ui/components/wizards/baseComponents/Wizard.vue","webpack:///./src/ui/components/wizards/baseComponents/WizardContent.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue","webpack:///./src/ui/components/wizards/baseComponents/WizardContentView.vue","webpack:///./src/ui/components/wizards/baseComponents/Navigation.vue","webpack:///./src/ui/components/wizards/baseComponents/Navigation.vue?8b79","webpack:///./src/ui/components/wizards/baseComponents/Navigation.vue?a884","webpack:///./src/ui/components/wizards/baseComponents/Navigation.vue?26ec","webpack:///./src/ui/components/wizards/index.ts","webpack:///./src/ui/components/components/ProgressBar.vue","webpack:///./src/ui/components/components/ProgressBar.vue?946f","webpack:///./src/ui/components/components/ProgressBar.vue?3a4a","webpack:///./src/ui/components/components/ProgressBar.vue?24df","webpack:///./src/ui/components/wizards/baseComponents/WizardContentView.vue?79fe","webpack:///./src/ui/components/wizards/baseComponents/WizardContentView.vue?d2ff","webpack:///./src/ui/components/wizards/baseComponents/WizardContentView.vue?7dc9","webpack:///./src/ui/components/wizards/baseComponents/WizardComponent.ts","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue?a191","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue?6ab0","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue?f8a4","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue?678a","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue?a54f","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue?214d","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue?53b1","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue?9dbe","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue?4c49","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/wizardConstants.ts","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue?c9cb","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue?0093","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue?e0e4","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue?9068","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue?86a2","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue?8586","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/components/SystemComponent.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/HeatingPumpComponentsSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/HeatingPumpComponentsSettings.vue?f150","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/HeatingPumpComponentsSettings.vue?fe38","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/HeatingPumpComponentsSettings.vue?e272","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/components/SystemComponent.vue?dc60","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/components/SystemComponent.vue?50e8","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/components/SystemComponent.vue?1a14","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue?e2cb","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue?4088","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue?eb86","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue?8c3b","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue?fd12","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue?84b7","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeConsumerComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeConsumerComponentSettings.vue?b336","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeConsumerComponentSettings.vue?f1a3","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeConsumerComponentSettings.vue?0aef","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeProducerComponentSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeProducerComponentSettings.vue?d937","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeProducerComponentSettings.vue?8a05","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeProducerComponentSettings.vue?5372","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue?fb87","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue?3d54","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue?eb46","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BatteryGridSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BatteryGridSettings.vue?8ff5","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BatteryGridSettings.vue?daa9","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BatteryGridSettings.vue?22c5","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChargingStationSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/wizardSettings/defaultMappings.ts","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChargingStationSettings.vue?15e2","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChargingStationSettings.vue?5f7f","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChargingStationSettings.vue?29f5","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingElementSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingElementSettings.vue?935b","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingElementSettings.vue?5ad9","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingElementSettings.vue?54f3","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue?c395","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue?510f","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue?f3b4","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue?83f6","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue","webpack:///./src/utils/tenantWizardUtilsFunctions.ts","webpack:///./src/ui/components/wizards/tenantWizard/wizardSettings/defaultMappings.ts","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue?0116","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue?2a19","webpack:///./src/ui/components/wizards/installationWizard/steps/finalPage/FinalPage.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/finalPage/FinalPage.vue?faec","webpack:///./src/ui/components/wizards/installationWizard/steps/finalPage/FinalPage.vue?e1fe","webpack:///./src/ui/components/wizards/installationWizard/steps/finalPage/FinalPage.vue?cb51","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue?2420","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue?bd55","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue?b672","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue?2192","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue?cc98","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue?366f","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue?e18e","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue?9691","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue?67be","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue?d0f6","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue?efc5","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue?88a0","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue?96ba","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue?211b","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue?0d31","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue?b0f2","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue?0e38","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue?5d6f","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue?63a8","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue?9de6","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue?132a","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChpSettings.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChpSettings.vue?e152","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChpSettings.vue?fb77","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChpSettings.vue?ad43","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue?c718","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue?efb6","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue?df8e","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue?405e","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue?ad5e","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue?dc2e","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ManualsPage.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ManualsPage.vue?5582","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ManualsPage.vue?5fef","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/ManualsPage.vue?30ed","webpack:///./src/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue","webpack:///./src/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue?a33a","webpack:///./src/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue?5400","webpack:///./src/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue?031b","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue?62d6","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue?7a95","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue?f82a","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue?a8df","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue?92dd","webpack:///./src/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue?6e59","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue?e5ef","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue?9589","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue?2747","webpack:///./src/ui/components/wizards/installationWizard/imports.ts","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue?6793","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue?3133","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue?86f1","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/PaymentInformation.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/PaymentInformation.vue?d7e8","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/PaymentInformation.vue?8d75","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/PaymentInformation.vue?df25","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue?b498","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue?7c63","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue?cd21","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsComponents/FlatDetails.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsComponents/FlatDetails.vue?fd55","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsComponents/FlatDetails.vue?05f3","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsComponents/FlatDetails.vue?ba16","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue?667a","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue?f2f4","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue?a65c","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/TariffSettings.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/TariffSettings.vue?66c8","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/TariffSettings.vue?a80d","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/TariffSettings.vue?e772","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue?1ced","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue?eb94","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue?af20","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue","webpack:///./src/ui/components/wizards/tenantWizard/wizardSettings/limits.ts","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue?1433","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue?8700","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue?6f61","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue?c4e9","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue?2697","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue?edc9","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue?09db","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue?a38f","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue?03c5","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue?bf14","webpack:///./src/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue?6ac9","webpack:///./src/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue?b31e","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue?c458","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue?d8d2","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue?161f","webpack:///./src/ui/components/wizards/tenantWizard/steps/ConsumptionComparison/ConsumptionComparison.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/ConsumptionComparison/ConsumptionComparison.vue?5317","webpack:///./src/ui/components/wizards/tenantWizard/steps/ConsumptionComparison/ConsumptionComparison.vue?fd01","webpack:///./src/ui/components/wizards/tenantWizard/steps/ConsumptionComparison/ConsumptionComparison.vue?e8cd","webpack:///./src/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue?35a7","webpack:///./src/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue?75e6","webpack:///./src/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue?3e7e","webpack:///./src/ui/components/wizards/tenantWizard/steps/Final/FinalPage.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/Final/FinalPage.vue?a42a","webpack:///./src/ui/components/wizards/tenantWizard/steps/Final/FinalPage.vue?223b","webpack:///./src/ui/components/wizards/tenantWizard/steps/Final/FinalPage.vue?bcc6","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue?f6fe","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue?4701","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue?07e0","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue?7dd0","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue?b014","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue?46ed","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/SystemInformation.vue","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/SystemInformation.vue?ffda","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/SystemInformation.vue?0692","webpack:///./src/ui/components/wizards/tenantWizard/steps/GeneralInformation/SystemInformation.vue?7478","webpack:///./src/ui/components/wizards/tenantWizard/imports.ts","webpack:///./src/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue?edae","webpack:///./src/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue?0706","webpack:///./src/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue?47d7","webpack:///./src/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue?8d88","webpack:///./src/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue?9ccd","webpack:///./src/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue?d397","webpack:///./src/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue?b1fb","webpack:///./src/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue?c130","webpack:///./src/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue?86c2","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerManualsPage.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerManualsPage.vue?3a05","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerManualsPage.vue?9cf7","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerManualsPage.vue?33d6","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue?5272","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue?2dba","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue?c1ec","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue?626b","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue?21f9","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue?1791","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue","webpack:///./src/ui/components/wizards/loggerWizard/wizardSettings/defaultMappings.ts","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue?13c4","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue?e586","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue?38d4","webpack:///./src/ui/components/wizards/loggerWizard/imports.ts","webpack:///./src/ui/components/wizards/imports.ts","webpack:///./src/ui/components/wizards/baseComponents/WizardContent.vue?713a","webpack:///./src/ui/components/wizards/baseComponents/WizardContent.vue?04a3","webpack:///./src/ui/components/wizards/baseComponents/WizardContent.vue?1b5a","webpack:///./src/ui/components/wizards/baseComponents/SideBar.vue","webpack:///./src/ui/components/wizards/baseComponents/InstallationSteps.vue","webpack:///./src/ui/components/wizards/baseComponents/InstallationSteps.vue?4e8e","webpack:///./src/ui/components/wizards/baseComponents/InstallationSteps.vue?a9f7","webpack:///./src/ui/components/wizards/baseComponents/InstallationSteps.vue?7864","webpack:///./src/ui/components/wizards/baseComponents/UserInformationField.vue","webpack:///./src/ui/components/wizards/baseComponents/UserInformationField.vue?2708","webpack:///./src/ui/components/wizards/baseComponents/UserInformationField.vue?e5a9","webpack:///./src/ui/components/wizards/baseComponents/UserInformationField.vue?8740","webpack:///./src/ui/components/wizards/baseComponents/SideBar.vue?e6cd","webpack:///./src/ui/components/wizards/baseComponents/SideBar.vue?40b9","webpack:///./src/ui/components/wizards/baseComponents/SideBar.vue?3c82","webpack:///./src/ui/components/wizards/baseComponents/Wizard.vue?cce4","webpack:///./src/ui/components/wizards/baseComponents/Wizard.vue?6665","webpack:///./src/ui/components/wizards/baseComponents/Wizard.vue?7ec9","webpack:///./src/ui/components/wizards/installationWizard/InstallationWizard.vue?29cc","webpack:///./src/ui/components/wizards/installationWizard/InstallationWizard.vue?3dbd","webpack:///./src/ui/components/wizards/installationWizard/InstallationWizard.vue?4015","webpack:///./src/ui/components/wizards/loggerWizard/LoggerWizard.vue","webpack:///./src/ui/components/wizards/loggerWizard/LoggerWizard.vue?0d81","webpack:///./src/ui/components/wizards/loggerWizard/LoggerWizard.vue?09e0","webpack:///./src/ui/components/wizards/loggerWizard/LoggerWizard.vue?b80d","webpack:///./src/ui/views/Project/WizardViews/SetupAssistent.vue?d7b3","webpack:///./src/ui/views/Project/WizardViews/SetupAssistent.vue?12a7","webpack:///./src/ui/views/Project/WizardViews/SetupAssistent.vue?d45b","webpack:///./src/ui/views/Project/WizardViews/Tenant.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/index.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/index.vue?3481","webpack:///./src/ui/components/wizards/tenantWizard/components/index.vue?2a2f","webpack:///./src/ui/components/wizards/tenantWizard/components/index.vue?f4b4","webpack:///./src/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/InvoiceHistory.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/TenantStatistic.vue","webpack:///./src/ui/components/wizards/tenantWizard/components/TenantStatistic.vue?e4bb","webpack:///./src/ui/components/wizards/tenantWizard/components/TenantStatistic.vue?bd99","webpack:///./src/ui/components/wizards/tenantWizard/components/TenantStatistic.vue?6ec0","webpack:///./src/ui/components/wizards/tenantWizard/components/InvoiceHistory.vue?f8a2","webpack:///./src/ui/components/wizards/tenantWizard/components/InvoiceHistory.vue?c895","webpack:///./src/ui/components/wizards/tenantWizard/components/InvoiceHistory.vue?480b","webpack:///./src/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue?3ef5","webpack:///./src/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue?4812","webpack:///./src/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue?a8bb","webpack:///./src/ui/views/Project/WizardViews/Tenant.vue?e090","webpack:///./src/ui/views/Project/WizardViews/Tenant.vue?ba87","webpack:///./src/ui/views/Project/WizardViews/Tenant.vue?36c9","webpack:///./src/ui/components/partner/workspace/index.vue","webpack:///./src/ui/components/partner/workspace/pages/SolarCalculator.vue","webpack:///./src/ui/components/partner/workspace/pages/SolarCalculator.vue?de99","webpack:///./src/ui/components/partner/workspace/pages/SolarCalculator.vue?9e0c","webpack:///./src/ui/components/partner/workspace/pages/SolarCalculator.vue?91a0","webpack:///./src/ui/components/partner/workspace/pages/PartnerInformation.vue","webpack:///./src/ui/components/partner/workspace/pages/PartnerInformation.vue?65db","webpack:///./src/ui/components/partner/workspace/pages/PartnerInformation.vue?94b7","webpack:///./src/ui/components/partner/workspace/pages/PartnerInformation.vue?3abb","webpack:///./src/ui/components/partner/workspace/pages/Offer.vue","webpack:///./src/ui/components/modals/Partner/UploadFileModal.vue","webpack:///./src/ui/components/modals/Partner/UploadFileModal.vue?8f14","webpack:///./src/ui/components/modals/Partner/UploadFileModal.vue?cd1e","webpack:///./src/ui/components/modals/Partner/UploadFileModal.vue?3ed0","webpack:///./src/ui/components/partner/workspace/pages/Offer.vue?dfea","webpack:///./src/ui/components/partner/workspace/pages/Offer.vue?29d6","webpack:///./src/ui/components/partner/workspace/pages/Offer.vue?b782","webpack:///./src/ui/components/partner/workspace/pages/Permissions.vue","webpack:///./src/ui/components/partner/workspace/pages/Permissions.vue?ff70","webpack:///./src/ui/components/partner/workspace/pages/Permissions.vue?63b6","webpack:///./src/ui/components/partner/workspace/pages/Permissions.vue?129f","webpack:///./src/ui/components/partner/workspace/pages/ProjectPlan.vue","webpack:///./src/ui/components/modals/Partner/ManageTask.vue","webpack:///./src/ui/components/partner/components/DayRangeSelectionModal.vue","webpack:///./src/ui/components/partner/components/DayRangeSelectionModal.vue?a807","webpack:///./src/ui/components/partner/components/DayRangeSelectionModal.vue?6a33","webpack:///./src/ui/components/partner/components/DayRangeSelectionModal.vue?31c0","webpack:///./src/ui/components/modals/Partner/ManageTask.vue?04cf","webpack:///./src/ui/components/modals/Partner/ManageTask.vue?878a","webpack:///./src/ui/components/modals/Partner/ManageTask.vue?6155","webpack:///./src/ui/components/modals/Partner/TasksTable/index.vue","webpack:///./src/ui/components/modals/Partner/TasksTable/TaskTableRow.vue","webpack:///./src/ui/components/modals/Partner/TasksTable/TaskTableRow.vue?c5c6","webpack:///./src/ui/components/modals/Partner/TasksTable/TaskTableRow.vue?2d63","webpack:///./src/ui/components/modals/Partner/TasksTable/TaskTableRow.vue?9b90","webpack:///./src/ui/components/modals/Partner/TasksTable/index.vue?c99f","webpack:///./src/ui/components/modals/Partner/TasksTable/index.vue?1126","webpack:///./src/ui/components/modals/Partner/TasksTable/index.vue?3715","webpack:///./src/ui/components/partner/workspace/pages/ProjectPlan.vue?0b7c","webpack:///./src/ui/components/partner/workspace/pages/ProjectPlan.vue?042a","webpack:///./src/ui/components/partner/workspace/pages/ProjectPlan.vue?8321","webpack:///./src/ui/components/partner/workspace/pages/Documentation.vue","webpack:///./src/ui/components/partner/workspace/pages/Documentation.vue?be31","webpack:///./src/ui/components/partner/workspace/pages/Documentation.vue?469a","webpack:///./src/ui/components/partner/workspace/pages/Documentation.vue?b99b","webpack:///./src/ui/components/partner/workspace/pages/ConnectWithProject.vue","webpack:///./src/ui/components/partner/workspace/pages/ConnectWithProject.vue?2f87","webpack:///./src/ui/components/partner/workspace/pages/ConnectWithProject.vue?c93d","webpack:///./src/ui/components/partner/workspace/pages/ConnectWithProject.vue?3de9","webpack:///./src/ui/components/partner/workspace/index.vue?8213","webpack:///./src/ui/components/partner/workspace/index.vue?80eb","webpack:///./src/ui/components/partner/workspace/index.vue?b284","webpack:///./src/router/utils.ts","webpack:///./src/router/index.ts","webpack:///./src/ui/components/devices/devices/PumpWithoutVFD.vue?96cb","webpack:///./src/ui/components/lists/DevicesListFavorites/index.vue?cd52","webpack:///./src/services/CollectionService.ts","webpack:///./src/ui/components/modals/Partner/TasksTable/index.vue?27cb","webpack:///./src/ui/assets/images/previews/themeDark/MpcEnergyView.png","webpack:///./src/ui/components/devices/devices/SocketSwitch.vue?3edb","webpack:///./src/ui/components/lists/ProjectsList/StatusIndicatorLine.vue?1ce0","webpack:///./src/ui/components/modals/ManageReport/TriggerActions.vue","webpack:///./src/ui/components/modals/ManageReport/TriggerActions.vue?b889","webpack:///./src/ui/components/modals/ManageReport/TriggerActions.vue?7d00","webpack:///./src/ui/components/modals/ManageReport/TriggerActions.vue?52f3","webpack:///./src/ui/components/devices/devices/DropDownInputFieldWithVariable.vue?216e","webpack:///./src/ui/components/devices/previews/components/ShowEventDotMock.vue","webpack:///./src/ui/components/devices/previews/components/ShowEventDotMock.vue?cbcf","webpack:///./src/ui/components/devices/previews/components/ShowEventDotMock.vue?0e10","webpack:///./src/ui/components/devices/previews/components/ShowEventDotMock.vue?b97d","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue?2088","webpack:///./src/ui/assets/images/previews/themeDark/ControlShutter.png","webpack:///./src/ui/components/devices/charts/charts/ChartMath.js","webpack:///./src/ui/components/wizards/baseComponents/WizardContent.vue?0ee5","webpack:///./src/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue?87f5","webpack:///./src/ui/components/partner/workspace/pages/ProjectPlan.vue?68c7","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue?8e0f","webpack:///./src/ui/components/modals/components/RangeDatePicker.vue?ada1","webpack:///./src/ui/components/devices/previews/charts/components/OfflineChart.vue?4eec","webpack:///./src/ui/components/devices/devices/BrightnessSensor.vue?a13e","webpack:///./src/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue?6168","webpack:///./src/ui/components/devices/charts/charts/BaseChartWrapper.vue","webpack:///./src/ui/components/devices/charts/charts/BaseChartWrapper.vue?eeba","webpack:///./src/ui/components/devices/charts/charts/BaseChartWrapper.vue?cfaa","webpack:///./src/ui/components/devices/charts/charts/BaseChartWrapper.vue?e8c6","webpack:///./src/ui/components/components/ProgressBar.vue?5e27","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue?59b9","webpack:///./src/ui/components/devices/devices/HouseConsumption.vue?e37a","webpack:///./src/ui/assets/images/previews/themeLight/SensorLevel.png","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue?33b1","webpack:///./src/ui/views/Project/Measurements.vue","webpack:///./src/ui/views/Project/Measurements.vue?9cd7","webpack:///./src/ui/views/Project/Measurements.vue?43d0","webpack:///./src/ui/views/Project/Measurements.vue?c4a3","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue?4b03","webpack:///./src/ui/assets/images/previews/themeDark/ControlBlinds.png","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue?340a","webpack:///./src/utils/userRoles.ts","webpack:///./src/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue?33a8","webpack:///./src/ui/components/modals/components/form/ComboboxField.vue","webpack:///./src/ui/components/modals/components/form/ComboboxField.vue?a29e","webpack:///./src/ui/components/modals/components/form/ComboboxField.vue?7f75","webpack:///./src/ui/components/modals/components/form/ComboboxField.vue?95c2","webpack:///./src/ui/components/devices/devices/PVSystem.vue?1a49","webpack:///./src/ui/assets/images/previews/themeDark/LightSwitch.png","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue?05ce","webpack:///./src/ui/components/devices/previews/devices/ElectronicBoiler.vue?e44c","webpack:///./src/ui/components/devices/mpc/colors.ts","webpack:///./src/ui/components/devices/devices/base/ShowEventDotBase.vue?1359","webpack:///./src/ui/assets/images/previews/themeLight/SensorCO2.png","webpack:///./src/ui/components/devices/previews/devices/GeneralSwitchV2.vue?c04c","webpack:///./src/ui/assets/images/previews/themeLight/SocketSwitch.png","webpack:///./src/ui/components/devices/previews/devices/ElectricityMeter.vue?1680","webpack:///./src/ui/assets/images/previews/themeDark/BrightnessSensor.png","webpack:///./src/ui/components/devices/components/FeedbackProvider.vue?16c7","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue?f893","webpack:///./src/ui/assets/images/previews/themeDark/LightPushButton.png","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue?74ef","webpack:///./src/ui/assets/images/installation wizard/Batterie.png","webpack:///./src/ui/components/devices/previews/charts/LineChart.vue?3943","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/index.vue","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue?6c16","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue?d5c9","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue?2886","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue?3b79","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue?20f9","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue?249e","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue?c039","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue?b500","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue?5e63","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/index.vue?dee3","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/index.vue?78a0","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/index.vue?781b","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue?d8fd","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue?9b04","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue?8a0e","webpack:///./src/ui/components/devices/charts/components/DataExport.vue","webpack:///./src/ui/components/devices/charts/components/DataExport.vue?316c","webpack:///./src/ui/components/devices/charts/components/DataExport.vue?bd33","webpack:///./src/ui/components/devices/charts/components/DataExport.vue?e875","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue?ad64","webpack:///./src/ui/components/devices/previews/mpc/ConsumptionService/index.vue?fadb","webpack:///./src/ui/components/devices/devices/VariableTextInputField.vue?4f31","webpack:///./src/ui/components/modals/ManageChart/index.vue","webpack:///./src/ui/components/modals/ManageChart/ManageChartsView.vue","webpack:///./src/ui/components/modals/ManageChart/ManageChartsView.vue?b8ca","webpack:///./src/ui/components/modals/ManageChart/ManageChartsView.vue?30ea","webpack:///./src/ui/components/modals/ManageChart/ManageChartsView.vue?8430","webpack:///./src/ui/components/modals/ManageChart/ManageChartsCalculation.vue","webpack:///./src/ui/components/modals/ManageChart/CalculationAggregationWindow.vue","webpack:///./src/ui/components/modals/ManageChart/CalculationAggregationWindow.vue?afed","webpack:///./src/ui/components/modals/ManageChart/CalculationAggregationWindow.vue?dc54","webpack:///./src/ui/components/modals/ManageChart/CalculationAggregationWindow.vue?960f","webpack:///./src/ui/components/modals/ManageChart/ExpressionTextArea.vue","webpack:///./src/ui/components/modals/ManageChart/ExpressionTextArea.vue?da14","webpack:///./src/ui/components/modals/ManageChart/ExpressionTextArea.vue?3499","webpack:///./src/ui/components/modals/ManageChart/ExpressionTextArea.vue?71fe","webpack:///./src/ui/components/modals/ManageChart/ManageChartsCalculation.vue?3aa3","webpack:///./src/ui/components/modals/ManageChart/ManageChartsCalculation.vue?ea07","webpack:///./src/ui/components/modals/ManageChart/ManageChartsCalculation.vue?c51e","webpack:///./src/ui/components/modals/ManageChart/index.vue?19e5","webpack:///./src/ui/components/modals/ManageChart/index.vue?93ac","webpack:///./src/ui/components/modals/ManageChart/index.vue?5f2d","webpack:///./src/ui/assets/images/previews/themeLight/ColdWaterMeter.png","webpack:///./src/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue?becd","webpack:///./src/ui/views/Project/Rooms.vue?4f55","webpack:///./src/ui/components/modals/ManageDevice/index.vue?3321","webpack:///./src/ui/components/devices/components/SettingsView.vue?552b","webpack:///./src/ui/components/components/ProjectTagsField.vue","webpack:///./src/ui/components/components/ProjectTagsField.vue?f80f","webpack:///./src/ui/components/components/ProjectTagsField.vue?b270","webpack:///./src/ui/components/components/ProjectTagsField.vue?131a","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue?494c","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue?b586","webpack:///./src/ui/assets/images/previews/themeLight/LightDimmer.png","webpack:///./src/ui/assets/images/previews/themeLight/SurveyClient.png","webpack:///./src/ui/components/components/PreviewImage.vue","webpack:///./src/ui/components/components/PreviewImage.vue?de74","webpack:///./src/ui/components/components/PreviewImage.vue?114d","webpack:///./src/ui/components/components/PreviewImage.vue?21a1","webpack:///./src/ui/components/devices/devices/MainsConnection.vue?15ae","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants.ts","webpack:///./src/ui/assets/images/previews/themeDark/EMSV2.png","webpack:///./src/ui/components/devices/actions/DeviceActions.vue?e0bd","webpack:///./src/ui/assets/images/previews/themeLight/EnergyViewV2.png","webpack:///./src/ui/components/devices/devices/base/Switch2VBase.vue","webpack:///./src/ui/components/devices/devices/base/Switch2VBase.vue?75f9","webpack:///./src/ui/components/devices/devices/base/Switch2VBase.vue?cd89","webpack:///./src/ui/components/devices/devices/base/Switch2VBase.vue?411f","webpack:///./src/ui/components/devices/previews/devices/MainsConnection.vue?2784","webpack:///./src/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue?62cd","webpack:///./src/ui/components/devices/components/EnergyParts/BatteryLevel.vue?55e2","webpack:///./src/ui/components/devices/charts/components/HourPicker.vue","webpack:///./src/ui/components/devices/charts/components/HourPicker.vue?fff9","webpack:///./src/ui/components/devices/charts/components/HourPicker.vue?4bad","webpack:///./src/ui/components/devices/charts/components/HourPicker.vue?e702","webpack:///./src/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue?605f","webpack:///./src/ui/components/devices/previews/devices/ThermostatDigital.vue?02e5","webpack:///./src/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue?88b9","webpack:///./src/ui/assets/images/previews/themeLight/ControlShutter.png","webpack:///./src/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue?fb53","webpack:///./src/ui/components/devices/devices/base/ArrowInBase.vue?1efe","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue?926a","webpack:///./src/ui/components/devices/devices/AirHumiditySensor.vue?ea15","webpack:///./src/ui/App.vue","webpack:///./src/ui/components/core/AppBar.vue","webpack:///./src/ui/components/components/Search.vue","webpack:///./src/ui/components/components/Search.vue?a7e0","webpack:///./src/ui/components/components/Search.vue?666a","webpack:///./src/ui/components/components/Search.vue?5a57","webpack:///./src/ui/components/components/UserProfile.vue","webpack:///./src/ui/components/components/UserProfile.vue?7565","webpack:///./src/ui/components/components/UserProfile.vue?228f","webpack:///./src/ui/components/components/UserProfile.vue?522a","webpack:///./src/ui/components/components/Localisation.vue","webpack:///./src/ui/components/components/Localisation.vue?95c4","webpack:///./src/ui/components/components/Localisation.vue?4631","webpack:///./src/ui/components/components/Localisation.vue?d9f5","webpack:///./src/ui/components/components/OfflineTimer.vue","webpack:///./src/ui/mixins/time.ts","webpack:///./src/ui/components/components/OfflineTimer.vue?7abd","webpack:///./src/ui/components/components/OfflineTimer.vue?a333","webpack:///./src/ui/components/components/OfflineTimer.vue?6e58","webpack:///./src/ui/components/modals/ManageReport/NewReport.vue","webpack:///./src/ui/components/modals/ManageReport/NewReport.vue?5519","webpack:///./src/ui/components/modals/ManageReport/NewReport.vue?60f9","webpack:///./src/ui/components/modals/ManageReport/NewReport.vue?2c6b","webpack:///./src/ui/components/modals/Partner/CreatePartnerProject.vue","webpack:///./src/ui/components/modals/Partner/CreatePartnerProject.vue?5ac7","webpack:///./src/ui/components/modals/Partner/CreatePartnerProject.vue?650b","webpack:///./src/ui/components/modals/Partner/CreatePartnerProject.vue?7ba3","webpack:///./src/ui/components/components/ProjectFilterPopup.vue","webpack:///./src/ui/components/components/ProjectFilterPopup.vue?a555","webpack:///./src/ui/components/components/ProjectFilterPopup.vue?3daa","webpack:///./src/ui/components/components/ProjectFilterPopup.vue?aec3","webpack:///./src/ui/components/components/PartnerProjectFilter.vue","webpack:///./src/ui/components/components/PartnerProjectFilter.vue?43ac","webpack:///./src/ui/components/components/PartnerProjectFilter.vue?509e","webpack:///./src/ui/components/components/PartnerProjectFilter.vue?c6ae","webpack:///./src/ui/components/components/ToggleThemesButton.vue","webpack:///./src/ui/components/components/ToggleThemesButton.vue?d49f","webpack:///./src/ui/components/components/ToggleThemesButton.vue?ec72","webpack:///./src/ui/components/components/ToggleThemesButton.vue?10e8","webpack:///./src/ui/components/components/InternetStatusIndicator.vue","webpack:///./src/ui/components/components/InternetStatusIndicator.vue?dafc","webpack:///./src/ui/components/components/InternetStatusIndicator.vue?49a9","webpack:///./src/ui/components/components/InternetStatusIndicator.vue?bb14","webpack:///./src/ui/components/modals/CreateSerialNumber.vue","webpack:///./src/ui/components/modals/CreateSerialNumber.vue?bc9b","webpack:///./src/ui/components/modals/CreateSerialNumber.vue?30da","webpack:///./src/ui/components/modals/CreateSerialNumber.vue?31c0","webpack:///./src/ui/components/core/AppBar.vue?a53d","webpack:///./src/ui/components/core/AppBar.vue?ccc6","webpack:///./src/ui/components/core/AppBar.vue?0096","webpack:///./src/ui/components/core/AppDrawer.vue","webpack:///./src/ui/components/components/IconLights.vue","webpack:///./src/ui/components/components/IconLights.vue?3f64","webpack:///./src/ui/components/components/IconLights.vue?f217","webpack:///./src/ui/components/components/IconLights.vue?daad","webpack:///./src/ui/components/core/AppDrawer.vue?49da","webpack:///./src/ui/components/core/AppDrawer.vue?419e","webpack:///./src/ui/components/core/AppDrawer.vue?b6ac","webpack:///./src/ui/components/core/AppView.vue","webpack:///./src/ui/components/core/AppView.vue?e6e3","webpack:///./src/ui/components/core/AppView.vue?dffe","webpack:///./src/ui/components/core/AppView.vue?7c6e","webpack:///./src/ui/components/components/ReportMessage.vue","webpack:///./src/ui/components/components/ReportMessage.vue?cb49","webpack:///./src/ui/components/components/ReportMessage.vue?16d7","webpack:///./src/ui/components/components/ReportMessage.vue?3563","webpack:///./src/ui/mixins/releasesNotes.ts","webpack:///./src/ui/App.vue?fcb1","webpack:///./src/ui/App.vue?1a5d","webpack:///./src/ui/App.vue?049e","webpack:///./src/ui/plugins/vuetify.ts","webpack:///./src/main.ts","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue?8d73","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue?393b","webpack:///./src/ui/components/devices/devices/LightPushButton.vue?f776","webpack:///./src/ui/assets/images/previews/themeDark/MotorWithoutVFD.png","webpack:///./src/ui/assets/images/previews/themeLight/GeneralSwitchV2.png","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/index.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/SettingsCharts.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue?f3cc","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue?dc8a","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue?66fe","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue?445a","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue?1b94","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue?acdf","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue?580c","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue?d98a","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue?8bd9","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/SettingsCharts.vue?d76f","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/SettingsCharts.vue?bd45","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/SettingsCharts.vue?930f","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/index.vue?33d3","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/index.vue?ba13","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/index.vue?58fa","webpack:///./src/ui/assets/images/previews/themeDark/ColdWaterMeter.png","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLine.vue?93ff","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/index.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue?8469","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue?766f","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue?5448","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecConfirmationDialogButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecConfirmationDialogButton.vue?4182","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecConfirmationDialogButton.vue?4b43","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecConfirmationDialogButton.vue?784c","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecPlayPauseButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecPlayPauseButton.vue?d84f","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecPlayPauseButton.vue?d560","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecPlayPauseButton.vue?64fd","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/StaticIconAndTextButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/StaticIconAndTextButton.vue?aa76","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/StaticIconAndTextButton.vue?dfba","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/StaticIconAndTextButton.vue?f51d","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecUpDownButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecUpDownButton.vue?fbca","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecUpDownButton.vue?910e","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecUpDownButton.vue?782a","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecOverEachOtherButton.vue","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecOverEachOtherButton.vue?3af9","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecOverEachOtherButton.vue?b6d2","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecOverEachOtherButton.vue?e650","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/index.vue?b67a","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/index.vue?b112","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/index.vue?615a","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/DeyeConsumerComponentSettings.vue?6419","webpack:///./src/ui/views/Project/Settings/Permissions.vue","webpack:///./src/ui/views/Project/Settings/Permissions.vue?5d49","webpack:///./src/ui/views/Project/Settings/Permissions.vue?787f","webpack:///./src/ui/views/Project/Settings/Permissions.vue?aba4","webpack:///./src/ui/components/components/GeneralInfoBanner.vue?a567","webpack:///./src/ui/assets/images/previews/themeLight/PVProductionService.png","webpack:///./src/ui/views/Project/Settings/EnergyPrice.vue","webpack:///./src/ui/views/Project/Settings/EnergyPrice.vue?a734","webpack:///./src/ui/views/Project/Settings/EnergyPrice.vue?409b","webpack:///./src/ui/views/Project/Settings/EnergyPrice.vue?4964","webpack:///./src/ui/assets/images/previews/themeLight/HppProductionService.png","webpack:///./src/ui/components/devices/devices/base/SliderBase.vue","webpack:///./src/ui/components/devices/devices/base/SliderBase.vue?57a3","webpack:///./src/ui/components/devices/devices/base/SliderBase.vue?e5c4","webpack:///./src/ui/components/devices/devices/base/SliderBase.vue?7c11","webpack:///./src/ui/assets/images/previews/themeLight/PumpWithoutVFD.png","webpack:///./src/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue?11c5","webpack:///./src/ui/components/devices/devices/base/ForwardBase.vue?f425","webpack:///./src/ui/assets/images/previews/themeLight/TSGModulLadestation.png","webpack:///./src/ui/components/devices/devices/TSGModulLadestation.vue?4522","webpack:///./src/ui/components/components/InputFieldNumber.vue?6c55","webpack:///./src/ui/assets/images/previews/themeDark/Gauge.png","webpack:///./src/ui/components/devices/previews/devices/VariableTextOutputField.vue?88ca","webpack:///./src/ui/components/devices/components/EnergyParts/CentralEndpoint.vue","webpack:///./src/ui/components/devices/components/EnergyParts/CentralEndpoint.vue?dad8","webpack:///./src/ui/components/devices/components/EnergyParts/CentralEndpoint.vue?92c0","webpack:///./src/ui/components/devices/components/EnergyParts/CentralEndpoint.vue?5eb5","webpack:///./src/ui/assets/images/previews/themeDark/EMS.png","webpack:///./src/ui/components/partner/workspace/index.vue?8522","webpack:///./src/utils/batteryTypes.ts","webpack:///./src/ui/components/devices/actions/DeviceDescription.vue","webpack:///./src/ui/components/devices/actions/DeviceDescription.vue?5f40","webpack:///./src/ui/components/devices/actions/DeviceDescription.vue?97ea","webpack:///./src/ui/components/devices/actions/DeviceDescription.vue?8ea4","webpack:///./src/ui/views/Project/Favorites.vue?ff6b","webpack:///./src/ui/assets/logo.svg","webpack:///./src/ui/assets/images/previews/themeLight/TV.png","webpack:///./src/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue?7234","webpack:///./src/ui/components/devices/components/InputFields/InputFieldExternal.vue?1b1c","webpack:///./src/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/EnergyFlowViewSystemDialog.vue?189c","webpack:///./src/ui/components/modals/components/form/ComboboxField.vue?e8d4","webpack:///./src/ui/assets/images/previews/themeLight/BrightnessSensor.png","webpack:///./src/utils/installationWizardUtilsFunctions.ts","webpack:///./src/ui/components/devices/previews/mpc/PVProductionService/index.vue?6ac2","webpack:///./src/ui/components/components/LynusIcon.vue?ec33","webpack:///./src/ui/components/components/InfoTooltip.vue","webpack:///./src/ui/components/components/InfoTooltip.vue?c7d9","webpack:///./src/ui/components/components/InfoTooltip.vue?4da7","webpack:///./src/ui/components/components/InfoTooltip.vue?8a70","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue?1716","webpack:///./src/ui/components/devices/previews/mpc/EMS/index.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/Settings.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/Settings.vue?edb6","webpack:///./src/ui/components/devices/previews/mpc/EMS/Settings.vue?7a7c","webpack:///./src/ui/components/devices/previews/mpc/EMS/Settings.vue?7249","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/index.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue?c645","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue?a1eb","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue?3425","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/TimeTable.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/TimeTable.vue?f49e","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/TimeTable.vue?ee10","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/TimeTable.vue?ae67","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue?cceb","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue?e153","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue?dd9a","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/index.vue?54e8","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/index.vue?2698","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/index.vue?2062","webpack:///./src/ui/components/devices/previews/mpc/EMS/forecastMockData.ts","webpack:///./src/ui/components/devices/previews/mpc/EMS/index.vue?a65e","webpack:///./src/ui/components/devices/previews/mpc/EMS/index.vue?b877","webpack:///./src/ui/components/devices/previews/mpc/EMS/index.vue?ef3d","webpack:///./src/ui/assets/images/previews/themeLight/Robot.png","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue?9c0b","webpack:///./src/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue?4752","webpack:///./src/ui/components/devices/charts/charts/LynusChart.vue","webpack:///./src/ui/components/devices/charts/components/ChartLoader.vue","webpack:///./src/ui/components/devices/charts/components/ChartLoader.vue?ecb6","webpack:///./src/ui/components/devices/charts/components/ChartLoader.vue?8f8d","webpack:///./src/ui/components/devices/charts/components/ChartLoader.vue?769d","webpack:///./src/ui/components/devices/charts/charts/LynusChart.vue?acb4","webpack:///./src/ui/components/devices/charts/charts/LynusChart.vue?1df2","webpack:///./src/ui/components/devices/charts/charts/LynusChart.vue?de5b","webpack:///./src/ui/components/devices/components/EnergyParts/TimeSlider.vue","webpack:///./src/ui/components/devices/components/EnergyParts/TimeSlider.vue?ad72","webpack:///./src/ui/components/devices/components/EnergyParts/TimeSlider.vue?24a9","webpack:///./src/ui/components/devices/components/EnergyParts/TimeSlider.vue?98a1","webpack:///./src/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue?0961","webpack:///./src/ui/assets/images/previews/themeLight/HotWaterMeter.png","webpack:///./src/ui/components/devices/devices/TSGBrauchwasser.vue?e901","webpack:///./src/ui/assets/images/previews/themeDark/EnergyViewV2.png","webpack:///./src/ui/components/devices/previews/devices/LightRGB.vue?44f4","webpack:///./src/ui/components/devices/previews/devices/PumpWithoutVFD.vue?e852","webpack:///./src/ui/components/devices/devices/base/ArrowOutBase.vue?6c94","webpack:///./src/ui/components/wizards/baseComponents/InstallationSteps.vue?91b3","webpack:///./src/ui/components/modals/actions/AlertAction.vue","webpack:///./src/ui/components/modals/actions/AlertAction.vue?0c71","webpack:///./src/ui/components/modals/actions/AlertAction.vue?7c68","webpack:///./src/ui/components/modals/actions/AlertAction.vue?dae3","webpack:///./src/ui/components/devices/devices/base/SliderBase.vue?1b2f","webpack:///./src/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue?f4d6","webpack:///./src/ui/components/components/ReportMessage.vue?7972","webpack:///./src/ui/assets/delete.png","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue","webpack:///./src/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue","webpack:///./src/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue?286d","webpack:///./src/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue?9af3","webpack:///./src/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue?64c4","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue?9edd","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue?6f94","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue?8e3c","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue?c09b","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue?5823","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue?92f8","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue?1beb","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue?b500","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue?83d8","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue?34c1","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue?f277","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue?34ee","webpack:///./src/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue?f4c0","webpack:///./src/ui/components/devices/components/LabelUnitWrapper.vue?741a","webpack:///./src/ui/components/devices/devices/base/PushButtonBase/index.vue?1119","webpack:///./src/ui/components/devices/devices/base/OutputFieldBase.vue","webpack:///./src/ui/components/devices/devices/base/OutputFieldBase.vue?6e1c","webpack:///./src/ui/components/devices/devices/base/OutputFieldBase.vue?4558","webpack:///./src/ui/components/devices/devices/base/OutputFieldBase.vue?b224","webpack:///./src/ui/components/devices/previews/devices/Gauge.vue?abb5","webpack:///./src/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue?f40f","webpack:///./src/ui/components/devices/components/EnergyParts/RotatingBacklight.vue","webpack:///./src/ui/components/devices/components/EnergyParts/RotatingBacklight.vue?5069","webpack:///./src/ui/components/devices/components/EnergyParts/RotatingBacklight.vue?225c","webpack:///./src/ui/components/devices/components/EnergyParts/RotatingBacklight.vue?2771","webpack:///./src/ui/assets/images/previews/themeDark/Ventilation.png","webpack:///./src/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue?7f53","webpack:///./src/ui/components/devices/previews/mockObjects/energyDevicesMockObjects.js","webpack:///./src/ui/assets/images/previews/themeLight/Gauge.png","webpack:///./src/utils/membersUtils.ts","webpack:///./src/ui/assets/images/previews/themeDark/DropDownOutputFieldWithVariable.png","webpack:///./src/ui/components/devices/devices/GeneralSwitchV2.vue?de97","webpack:///./src/ui/components/modals/ManageRule/index.vue?ba3e","webpack:///./src/ui/components/modals/ManageRule/index.vue","webpack:///./src/ui/components/modals/ManageRule/index.vue?04a2","webpack:///./src/ui/components/modals/ManageRule/index.vue?3684","webpack:///./src/ui/components/devices/previews/devices/SocketSwitch.vue?f5df","webpack:///./src/ui/components/components/StatusIndicator.vue?72a3","webpack:///./src/ui/components/devices/devices/ThermostatDigital.vue?6baa","webpack:///./src/ui/assets/images/previews/themeDark/MainsConnection.png","webpack:///./src/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue?2e29","webpack:///./src/ui/assets/images/installation wizard/acpv_on_grid.png","webpack:///./src/ui/assets/images/previews/themeLight/ElectricityMeter.png","webpack:///./src/types/serialNumber.types.ts","webpack:///./src/ui/components/modals/ManageChart/CalculationAggregationWindow.vue?69cf","webpack:///./src/ui/assets/images/previews/themeLight/PVSystem.png","webpack:///./src/ui/components/devices/previews/devices/LightDimmer.vue?2560","webpack:///./src/ui/components/devices/previews/devices/RobotPreview.vue?f413","webpack:///./src/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue?8a40","webpack:///./src/ui/assets/images/previews/themeLight/MotorWithoutVFD.png","webpack:///./src/ui/components/devices/devices/base/DateTimePickerBase.vue?40b7","webpack:///./src/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue?cb84","webpack:///./src/ui/assets/images/previews/themeLight/HistoryAnomalyDetection.png","webpack:///./src/ui/components/devices/charts/components/CompareModal.vue?9ece","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue?7244","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue?7ff4","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue?27bf","webpack:///./src/ui/components/devices/components/EnergyParts/Preview.vue?397e","webpack:///./src/ui/components/wizards/baseComponents/WizardContentView.vue?4a55","webpack:///./src/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue?6587","webpack:///./src/ui/components/devices/devices/ElectricChargingStation.vue?55a1","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue?b61b","webpack:///./src/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue?816a","webpack:///./src/ui/assets/images/previews/themeLight/MixingValve.png","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue?6518","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue?86c8","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue?30b5","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue?b298","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue?2c76","webpack:///./src/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue?5b84","webpack:///./src/ui/assets/images/previews/themeLight/Generator.png","webpack:///./src/ui/components/modals/components/NavigationTab.vue?1d72","webpack:///./src/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue?f646","webpack:///./src/ui/components/devices/previews/devices/HouseConsumption.vue?89ce","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue?aa83","webpack:///./src/ui/components/devices/previews/charts/AreaChart.vue?9d16","webpack:///./src/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue","webpack:///./src/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue?11d7","webpack:///./src/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue?3661","webpack:///./src/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue?13a9","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue?9e22","webpack:///./src/ui/components/devices/devices/TSGLadestationNotAus.vue?4bed","webpack:///./src/ui/assets/images/installation wizard/battery_on_1_input.png","webpack:///./src/ui/components/modals/DeleteModalForm.vue?950d","webpack:///./src/ui/components/devices/devices/BasicControl.ts","webpack:///./src/ui/assets/images/previews/themeDark/ElectricityMeter.png","webpack:///./src/ui/components/devices/previews/components/SwitchMock.vue?29b9","webpack:///./src/ui/components/devices/mpc/base/ShowEventBase.vue","webpack:///./src/ui/components/devices/mpc/base/ShowEventBase.vue?64a3","webpack:///./src/ui/components/devices/mpc/base/ShowEventBase.vue?2c61","webpack:///./src/ui/components/devices/mpc/base/ShowEventBase.vue?9005","webpack:///./src/utils/plcPerformanceLimits.ts","webpack:///./src/ui/assets/regent.jpg","webpack:///./src/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue?6ccf","webpack:///./src/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue?3e81","webpack:///./src/types/project.types.ts","webpack:///./src/ui/components/devices/previews/devices/PumpWithVFD.vue?fb84","webpack:///./src/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue?5429","webpack:///./src/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue?738e","webpack:///./src/ui/components/modals/DeleteModalForm.vue","webpack:///./src/ui/components/modals/DeleteModalForm.vue?5b5e","webpack:///./src/ui/components/modals/DeleteModalForm.vue?e128","webpack:///./src/ui/components/modals/DeleteModalForm.vue?382d","webpack:///./src/ui/components/devices/charts/components/HourPickerMultiSelect.vue?8e29","webpack:///./src/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue?5d34","webpack:///./src/ui/assets/images/previews/themeLight/AirHumiditySensor.png","webpack:///./src/types/energyVisualisation/EnergyCircleDisplayData.ts","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue?bbcf","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue?6661","webpack:///./src/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue?1c79","webpack:///./src/ui/components/modals/ManageReport/mixins/rules.ts","webpack:///./src/ui/assets/images/previews/themeLight/HeatingMeter.png","webpack:///./src/ui/assets/images/previews/themeLight/VariableTextOutputField.png","webpack:///./src/ui/assets/images/error-page-bg-light.png","webpack:///./src/ui/components/modals/components/form/SelectField.vue","webpack:///./src/ui/components/modals/components/form/SelectField.vue?fb06","webpack:///./src/ui/components/modals/components/form/SelectField.vue?4896","webpack:///./src/ui/components/modals/components/form/SelectField.vue?0aca","webpack:///./src/ui/assets/images/previews/themeLight/ControlBlinds.png","webpack:///./src/ui/components/devices/previews/devices/HeatingMeter.vue?d4e3","webpack:///./src/ui/assets/images/previews/themeDark/ThermostatDigital.png","webpack:///./src/ui/assets/images/previews/themeDark/TSGLadestationNotAus.png","webpack:///./src/ui/components/modals/Partner/ManageTask.vue?c012","webpack:///./src/ui/assets/images/weather/10.png"],"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","handleModalWindowStatus","scopedSlots","fn","proxy","staticClass","_c","_vm","attrs","style","deviceType","$t","model","callback","expression","typeValidation","$event","deviceFormView","_s","$vuetify","currentAnomalyDetectionType","manageSchema","anomalyDetectionDataWithType","currentPreviewImage","staticRenderFns","isEditModal","stage","on","tab","directives","rawName","middleFieldIndex","listDefinition","anomalyDetectionMappings","middleField","localDeviceData","_l","outputMappings","outputFieldIndex","class","showOptionalFields","outputField","staticStyle","variableIndex","addVariable","variableFieldIndex","mappingsValidation","anomalyDetectionInstanceWidthItems","render","_setup","scalingType","scalingData","ScalingField","Vue","constructor","title","this","id","handleScalingType","min","max","mounted","__decorate","Prop","default","Component","component","isCalendar","startDate","convertToDate","start","RangeDatePicker","end","onCalendarDialogChange","val","endDate","seconds","day","month","year","Date","toLocaleDateString","split","convertToSeconds","date","UTC","handleStartDate","handleEndDate","acceptDate","$emit","cancelDate","Watch","DefaultSchema","mixins","Validation","FormUpdateTracker","JSON","parse","stringify","deviceData","onStageChange","fetchVariables","$route","params","generalMappingsCheck","requiredFields","mappingsByColumns","middleMappings","filter","el","optional","arr","entries","meta","controllerMappings","some","field","map","variableMappingsCheck","variablesArr","chartOptions","var","startStopDateCheck","isStartStopDateComponent","variables","general","checkThreshold","threshold","collection_id","selectedWidth","anomalyDetectionState","anomalyDetectionTypes","anomalyDetectionSchema","mappings","isStartStopDate","Array","isArray","aggregationMethods","variablesForComboBox","initAnomalyDetectionInstanceMappings","listOfMappings","forEach","mapping","initAnomalyDetectionInstanceVariables","variableMappings","seriesType","variableOptions","removeVariable","idx","clone","errorWarning","rulesList","getDefaultRulesObject","project","res","addRules","project_id","warningRule","errorRule","oldErrorWarningVar","newErrorWarningVar","deleteRule","rule_id","getWarningRule","warningRuleObj","find","rule","getErrorRule","errorRuleObj","handleStartStopDate","copy","addRulesWhenEditDevice","addRulesWhenCreateDevice","created","$set","activeRoomId","chartOptionsLocalCopy","inx","typesToRemove","isAnomalyScoreMappingFilled","anomalyScore","isLastValue","dataSnapshot","hasAnomalyScore","element","State","Getter","Action","components","InputFieldNumber","ComboboxField","TextField","SelectField","NavigationTab","ManageAnomalyDetection","currentSelectedTheme","anomalyDetectionTypesArrayList","isConfirmationDialog","status","created_at","anomalyDetectionTypesWithLocaleNamesList","$store","commit","theme","dark","lastCreatedAnomalyDetectionType","i18n","toString","lastCreatedAnomalyDetection","currentImgPreview","require","log","onFormUnchanged","closeDialog","$refs","ModalWindowInstance","handleControl","device","PreviewImage","StreamAnomalyDetection","HistoryAnomalyDetection","ModalWindow","_self","_setupProxy","previewNameLang","_u","isITLocale","_v","mainViewLang","$$v","tabs","mockChartData","Forecast","currentChartOptions","lang","agg","predictedPower","scaling","unit","predictedEnergy","currentData","selectedStackingOptions","OfflineChart","Chart","settingsViewLang","SettingsCharts","locale","PVProductionServicePreview","series","yAxis","color","opposite","showFirstLabel","showLastLabel","endOnTick","gridLineWidth","lineColor","labels","format","$i18n","chartType","chartWidth","ShowEventDotMock","MPCLayout","ref","isDescriptionShown","descriptionStyles","_t","inputFieldStyles","step","handleKeypress","unitStyles","iconStyles","InputFieldExternal","state","valid","onActualValueChange","toFixed","isIconShown","isUnitShown","validate","form","handleState","isDecimalSymbol","test","isInteger","isDecimal","preventDefault","handleLangChange","actualValue","deep","rules","required","room","radioGroup","ManageRoom","isTooltip","pictureObject","icons","roomData","search","q","IconService","fetchIcons","icon","term","onSelected","iconObject","send","args","cover","coverType","String","Mutation","IconList","getters","variableList","alias","text","variable","variableValuesToFilter","includes","mutations","setVariables","actions","projectId","api","fetch","root","variablesObject","namespaced","defaultWizardState","emsDevice","energyViewDevice","pilotSystemCount","inverterCount","stringInverterCount","includedSystemsTypes","battery","isSelected","count","definition","systems","electric_heating","charge_station","pv","generator","heating_pump_consumer","heating_pump","big_consumer","load_shedding","chp","currentStep","currentPage","pages","view","page","dependencies","path","WizardPath","STRING_INVERTER","TENANT","TENANT_STRING_INVERTER","availableFrom","hybridVersionDate","getTime","pagesMobileBatteryDeye","loadingState","isLoading","loadingCount","loadingTotal","customTimerLoadingState","pilot","ACPV","externalVisualisations","currentPageIndex","isPilotPageDone","wasComponentsPageDone","savedPilotMapping","ctRelationship","lineConfig","disabled","navigationDirection","NavigationDirection","forward","wasInstallationWizardCompleted","producerOptionsEnabled","consumerOptionsEnabled","externallyOccupiedPilotLines","disablePilotDevices","acpvAvailable","acpvOnLoadAvailable","serialNumberCheckDone","wizardBlocked","isHybrid","restartSent","disabledWhileOffline","hybridSettings","useBothBatteryInputs","wizardPath","INSTALLATION","MAX_RETRIES","CHECK_INTERVAL_MS","MAX_CHECKS","defaultFeedbackTimeoutSeconds","setCounts","cloneDeep","keys","wizardPages","_","__","rootGetters","isMobileDeye","plcVersionDate","isDeye","isSolarmax","includesSolarmaxDependency","includesDeyeDependency","pathAllowed","every","dependency","isDeyeDependency","isSolarmaxDependency","negate","orDependencies","orDependency","trim","considerProjectStatus","process","externalVisualisation","generatorsOnGeneratorConnections","shouldSendVariable","___","shouldSendVariableForType","emsLimits","emsLimitsByType","connectedLines","chargeStationExternal","connectWithLine","heatingPumpExternal","heatingPumpConsumerExternal","bigConsumerExternal","consumerLines","pilotCount","restOfPilotLines","getDisablePilotDevices","updateEMSDeviceData","updateEMSDevice","updateEnergyViewDeviceData","updateEnergyViewDevice","setPilotSystemCount","setACPVSystemCount","setACPVSystemSelection","setIncludedSystemsTypes","setCurrentPage","setCurrentStep","setLoadingState","setCustomTimerLoadingState","incrementLoadingSentCount","resetLoadingState","resetChargeStationDefinition","index","defaultDefinition","systemType","noFreeLoading","webastoType","set","addSystemPropertyValues","updateSystemPropertyValues","systemIndex","handleIncludedSystemsTypesSystemSystemsProps","systemName","prop","handleIncludedSystemsTypesSystemDefinitionProps","handleIncludedSystemsTypesSystem","system","setEMSSystemCount","setEnergyViewSystemCount","reset","merge","setPilot","setExternalVisualisation","setIsPilotPageDone","setNavigationDirection","setGeneratorsOnGeneratorConnection","setIsPilotPageNotDone","setInverterCount","resetSystemsPropInIncludedSystemTypes","setWasComponentsPageDone","setProducerOptionsEnabled","setConsumerOptionsEnabled","setExternallyOccupiedPilotLine","removeExternallyOccupiedPilotLine","setDisablePilotDevices","setWizardBlocked","setSerialNumberCheckDone","setRestartSent","setDisabledWhileOffline","handleIncrement","handleDecrement","backward","initDevices","wizardSettings","findByType","energyView","resetEnergyDeviceMappings","controller","batterySystemType","ems","publishVariable","dispatch","variableToCheck","records","v","u","rootState","expectedValue","checks","resolved","interval","setInterval","async","projects","clearInterval","catch","checkVariableMatch","isBoolean","MQTTFeedbackError","oppositeValue","sentVariable","retries","check","IGNORE_FEEDBACK","customTimeout","quickSend","variablesToSend","valueToSend","parseFloat","noFeedback","shouldWaitForFeedback","feedbackVariable","customExpectedValue","installationWizard","tenant","header","image_Id","headerText","providerName","contractCountry","ownerAddress","street","zip","city","country","ownerMobile","ownerMail","ownerRegistrationNumber","ownerName","paymentDetails","currency","tax","coldWaterTax","serviceWaterTax","heatingTax","productionTax","sideCostsTax","coolingTax","isTaxIncluded","bankName","iban","swift","additionalText","billingComponents","electricity","serviceWater","coldWater","heating","cooling","flats","flatCount","flatConfigurations","tariffSettings","lowTariffProduction","highTariffProduction","lowTariffGrid","highTariffGrid","allDayTariffGrid","allDayTariffProduction","residualElectricityComposition","lowTariffTimesProduction","lowTariffTimesGrid","residualElectricityText","water","priceServiceWater","priceColdWater","priceHeating","priceCooling","sideCosts","amount","timeZone","productionCounters","gridCounter","gridProductionCounter","overallCounters","energyCounter","heatingCounter","serviceWaterCounter","coldWaterCounter","coolingCounter","referenceInformation","consumption1PersonHousehold","consumption2PersonHousehold","consumption3PersonHousehold","consumption4PersonHousehold","billingSettings","mail","subject","content","lastMonthUpdate","lastYearUpdate","lastPeriod","wasTenantDone","wasTenantRestarted","isAutoMappingEnabled","hasLynusInverter","overallProductionMeasurement","defaultWizardStatePages","updateTenantObject","setWasTenantDoneState","resetPageStepIndex","setTenant","setIsAutoMappingEnabled","setWasTenantRestarted","setPages","setHasLynusInverter","setOverallProductionMeasurement","serviceWaterConter","coldWaterConter","file","tenantWizard","drawer","isMini","appNavigation","superAdminOnly","partnerOnly","lynusSupportOnly","documentationNavigation","description","appNavigationFiltered","envMainMenuEntries","projectNavigation","route","memberAccess","accepted","animation","filterForMobileBatteryDeye","envProjectMenuEntries","documentationNavigationFiltered","envDocumentationTabs","partnerNavigation","partnerWorkspaces","workspaceId","handleDrawer","payload","handleMiniVariant","navigation","Map","mqttInfo","projectLoader","projectsLoader","projectFilters","projectName","projectStatus","projectTags","projectCreationTimestamp","projectCreationDate","Math","trunc","valueSeq","toJS","startOfTheProject","projectStartedAt","started_at","projectStartedAtNumber","projectTagsLists","tagSet","Set","currentProject","tags","currentTag","add","from","projectsFilteredByTag","projectList","filterTags","projectCurrency","deyeBatteryTypes","BatteryType","SOLARMAX","isLoggerSystem","loggerTypes","MobileBatteryDeye","setProjectId","setProjects","setProject","setProjectFilter","setMqttInfo","info","setProjectLoader","setProjectsLoader","ProjectService","fetchProjects","reduce","acc","cur","createProject","deleteProject","remove","fetchProject","continueWithoutSerialNumber","serialNumbers","serialNumber","serial_number","updateProject","resetQR","disableQR","devicesTypesFiltered","filterList","envDevices","devicesTypes","indexOf","devices","devicesFilter","lastCreatedDevice","devicesSettings","allDevices","deviceTypeSchemaByKey","devicesTypesWithLocaleNamesList","itemType","devicesByRoom","roomId","roomDevicesPositions","device_positions","roomDevicesPositionsMap","convertElementsPositionsToObject","mpc","charts","roomDevices","sortElementsByPosition","elementsList","positions","favoritesDevices","favoritePositions","favorite_positions","favoritePositionsMap","favoriteDevices","devicesIsSettings","isSettingsView","setDevices","setDevicesFilter","setLastCreatedDevice","DeviceService","fetchDevices","fetchEnergyData","device_id","createDevice","warningRuleId","errorRuleId","systemsRules","values","rulesVariablesList","item","concat","deleteDevice","skipReport","updateDevice","deviceId","addToFavorites","currentDevice","favorite","deleteFromFavorites","period","energyResponse","getDevicesByCollectionID","getAllDevicesByCollectionID","transferToRegelenergie","regie","memberId","member","collections","members","currentMember","currentMemberAreasPositions","area_positions","currentMemberDevicesPositions","currentUserRole","userRolesKeys","role","UserRoleName","readOnly","canMemberAccess","permissionCategory","permissionName","canAccess","UserRoleCode","currentMemberFavoriteDevicesPositions","currentMemberFavoriteDevices","favorite_devices","setMembers","setMember","setCurrentMember","roleForCreation","MemberService","createMember","showMessage","owner","updateMember","deleteMember","delete","fetchMembers","fetchMember","updateMemberMeta","collectionsList","updateMemberCollections","rooms","areaPositions","areaPositionsMap","sortedRoomsByName","numbersRegExp","roomsWithNumberInName","roomsWithoutNumbersInName","roomsWithNumberInNameSorted","sort","a","b","aNameArr","match","bNameArr","aNameNum","Number","bNameNum","roomsWithoutNumbersInNameSorted","setRooms","CollectionService","fetchCollections","assetResponse","roomResponse","createCollection","devicesPositions","deleteCollection","mpcControllers","updateCollection","measurements","mqttMeasurements","measurementsKeys","measurementsFilter","measurementsFilterCount","keySeq","setMeasurements","setMqttMeasurements","setMeasurementsKeys","setMeasurement","record","vs","setMeasurementsFilter","setMeasurementsFilterCount","MeasurementService","fetchMeasurements","chartsTypes","variableName","to","chartName","time","items","heartbeat","mpcReady","anomalyDetectionDevices","setLastCreatedAnomalyDetection","anomalyDetection","mlModelTypes","HeatingCircuitOptimization","inputMappings","valveReturnType","vuetifyComponent","flowTemperature","newSetTemperature","returnTemperature","areaTemperature","valvePosition","newValvePosition","newAreaTemperature","settingsMappings","PVProductionService","power","ConsumptionService","HppProductionService","calculatedProduction","calculatedEnergy","EMS","activate_heating_pump","isSystem","calculated_battery_power","state_enable_ems","enable_ems","size_main_fuse","isDynamic","maxRange","minMaxBorders","operation_mode","max_depth","reserve_battery","min_charge_battery","reserve_charge","update_time","allow_charging_button","allow_charging_state","enable_controlling","state_main_fuse","inverter_power","activate_main_fuse","force_charge","forceCharge2","calibration_charge","maintenance_charge","charge_maintenance","groups","producer","producerConsumer","consumer","group","quantity","input","output","titles","initMappings","energy_counter","state_reset","state_generator","enable_soc","disable_soc","switch_enable","switch_reset","state_enable","hour_on","minute_on","hour_off","minute_off","enable_timelock","state_timelock","target_power","soc","size_capacity","capacity","priority","reverse_energy_counter","grid","size","house","isDynamicFields","additionalFields","objects","energyPrice","PVMonitoringService","efficiency","dynamicMappingsMinMax","MpcEnergyView","fetchMPC","controllerId","mpcId","isWeatherServiceActive","lastCreatedModel","replacePossibleEnergyViewType","mpcController","getMPCControllerById","mpcControllersFavorites","mpcList","mlModelDevices","mlModelTypeSchemaByKey","mlModelsTypesWithLocaleNamesList","localModelTypes","envMPCDeviceList","mlModelIsSettings","mlModel","setMPCControllers","updateMPCInstance","oldMPCObject","newMPCObject","setWeatherServiceStatus","setLastCreatedModel","ControllerService","createController","envLoadMPC","mpcPromise","fetchControllersByProject","timeoutPromise","race","mpcControls","fetchController","MPCEnergyService","fetchDay","fetchWeek","fetchMonth","fetchYear","getDate","getMonth","getFullYear","charAt","toUpperCase","deleteController","updateController","updateControllerTiming","MPCWeatherService","fetchStatus","site_active","activate","deactivate","mpc_id","settings","updateControllerSettings","getMpcList","report","reportId","responseType","reportList","reportFilter","getReportFilter","setReports","reports","setReport","updateReport","localReport","deleteReportFromList","setReportFilter","ReportService","fetchReports","reportModel","createReport","report_id","response","deleteReport","payLoad","printReport","triggerReportActions","scrollPosition","x","y","homeDataLoaded","setScrollPosition","setHomeDataLoaded","router","eventId","eventList","numberOfPages","eventListFilter","getEventList","join","toLowerCase","getIsAllAccepted","counterNotAccepted","accepted_at","setEventsList","events","setNumberOfPages","acceptAllEvents","accepted_by","formattedDate","fullName","setEventListFilter","removeEventFromList","clean","acceptedEvent","EventService","acceptEvent","acceptEvents","fetchEvents","bol","client","online","internet","timer","internetTimer","lastHeartbeatMessage","lastInternetHeartbeatMessage","mqttClientInfo","hostname","port","password","username","options","topicPublish","topicSubscribe","isProjectOnline","isProjectConnected","setOnline","setInternet","clearTimer","clearInternetTimer","setLastHeartbeatMessage","setInternetHeartbeatMessage","publish","string","host","$keycloak","token","mqtt","connect","transformWsUrl","subscribe","topic","formatting","fromCharCode","isHeartbeatMessage","isOnlineMessage","isSerialNumberMessage","currentRoute","rec","now","heartbeatOffset","current","$hb","lastHb","$hb2","lastInternetHb","mqttClient","acPV","wasloggerWizardCompleted","loggerInformation","hasGridMeasurement","wasLoggerWizardCompleted","setLoggerInformation","setHasGridMeasurement","resetToZero","allEnergyCircleTypes","loggerWizard","partner","partners","getPartnerById","setPartners","setPartner","user","super_admin","PartnerService","fetchPartners","fetchPartnerNonAdmin","createPartner","fetchPartner","updatePartner","updatePartnerNonAdmin","deletePartner","lead","leads","setLeads","LeadsService","fetchLeads","fetchLeadsNonAdmin","createLead","createLeadNonAdmin","skipFetch","updateLead","updateLeadNonAdmin","deleteLead","fetchWorkspaces","createdWorkspace","workspace","partner_id","updateWorkspace","deleteWorkspace","fetchWorkspaceNonAdmin","createWorkspaceNonAdmin","updateWorkspaceNonAdmin","deleteWorkspaceNonAdmin","workspaces","workspaceFilter","filterByPartner","workspaceById","getFilterByPartner","setWorkspaces","setWorkspace","setWorkspaceId","setWorkspaceFilter","setFilterByPartner","PartnerWorkspaceService","inverters","inverter","inverterId","serialNumbersFromMqtt","inverterFilter","setInverters","setSerialNumber","setInverterFilter","appendInverters","replaceInverter","newInverter","inverterIndex","findIndex","removeInverter","SerialNumberService","fetchInverters","createInverters","inverter2","updateInverter","deleteInverter","checkInverters","success","app","use","Vuex","store","Store","showPopup","LynusPopup","formValid","localReportData","changeOfDaySetting","zev","arrayDaySettingsInternal","timeSettingsRule","unitCostRule","internalTariffValid","clearTariffTimes","toggleSecondTariff","arrayDaySettingsExternal","externalTariffValid","addZevVar","visibility","variableNameRule","meterIDRule","removeZevVar","addAction","action","TariffSettingsTooltip","show","fillUpTariffTimes","currentModel","internalTimes","tariffs","internal","currentInternalDaySettings","mondayInternalSettings","saturdayInternalSettings","internalMonday","internalSaturday","externalTimes","external","currentExternalDaySettings","mondayExternalSettings","saturdayExternalSettings","externalMonday","externalSaturday","convertTimes","currentReport","timeToMinutes","ZevReportNew","ReportFormRules","timezone","moment","tz","guess","address","unit_cost","groupingSelected","innosolv","photovoltaik","consumers","metering_id","producers","internal_to_external","low","high","active","tempWeekDay","tariff","tariffTimeValid","isValid","langPath","customOption","abbr","highOption","lowOption","workDayGrouping","weekendGrouping","mondayOption","tuesdayOption","wednesdayOption","thursdayOption","fridayOption","saturdayOption","sundayOption","reportCopy","onFormValidStatusChange","isInternal","currentSelectedDay","currentDaySettingInternal","currentDaySettingExternal","getAllDaySetting","$nextTick","formValidate","currentTarifs","revertTimeFromApi","tariffsInx","tariffInx","timeInx","minutesToTime","currentDaySetting","newAction","headers","method","url","recipients","body","deleteAction","onTimezoneChange","computed","email","EmailAction","webhook","WebhookAction","TimezoneChooser","PrintReport","TriggerActions","enableNoRecipients","subjectRule","bodyRule","deleteRecipient","addRecipient","stockInit","Highcharts","chart","backgroundColor","currentTheme","deviceBackground","width","exporting","enabled","rangeSelector","navigator","scrollbar","legend","itemStyle","plotOptions","connectNulls","xAxis","plotLines","dashStyle","label","align","$el","clientWidth","highcharts","DeviceDescription","SwitchMock","dialog","persistent","bodyStyle","onConfirmationDialogClose","padding","dialogChange","confirmationModal","confirmAction","LeaveConfirmationModal","API","axios","baseURL","envApi","authorization","handledErrors","envMpcApi","fileId","isView","isCalculation","getAlternativeVariableName","getChartOptions","getHourBounds","hour","getHours","minute","getMinutes","toSeconds","endChart","getDayBounds","getWeekBounds","firstDayOfWeek","getDay","getMonthBounds","getYearBounds","getRoundedDate","minutes","ms","roundedDate","round","checkAllScalingsEqual","allMinScalings","allMaxScalings","allUnits","allEqual","Periods","LIVE","HOUR","DAY","WEEK","MONTH","YEAR","FORECAST6H","FORECAST24H","periodConfigurations","live","intervalInSeconds","tickInterval","tooltipFormat","calendarType","multiSelectFormat","multiSelectTooltipFormat","setHours","week","selectedDay","forecast6h","forecast24h","getDateBoundsByPeriod","inputDate","splitElement","hours","parseInt","calculatePageCount","itemCount","itemsPerPage","formatDate","toSecondsSinceEpoch","floor","timestamp","fromDatePickerString","dateString","toDate","formatDateForPeriod","periodName","dateArray","argMax","array","requestWithTimer","promisesList","reportFn","reportArgs","delay","allSettled","roundNumber","decimal_places","mapMeasurementsList","meas","roundedValue","changeDate","direction","newTimestamp","operator","setDate","setMonth","setFullYear","deviceName","actionsBody","conditions","and_or","condition","getSingleRuleObject","actionsBodyText","conditionTarget","hasSystem","allSystems","formatValue","maximumFractionDigits","Intl","NumberFormat","minMaxValidation","errorMessage","isNil","itemsContainValue","positionA","MAX_VALUE","positionB","valuesAddTo100","objArray","sum","list","buildCommaSeparatedString","minLength","str","nextStr","calculateMinPowerPercent","ampere","maxPower","kw","rounded","clamp","countDecimalPlaces","number","convertNegativeZero","is","formatIsoDate","datePart","convertTimestampToDate","convertBinaryNumberToDecimal","binaryNumber","binaryString","convertDecimalNumberToBinary","decimalNumber","convertArrayToBit","maxNum","bitString","fill","num","convertBitToArray","reversedBitString","reverse","bit","onDialogStatusChange","handleAsEdit","first_name","last_name","_e","CreatePartnerProject","currentWorker","loading","selectedUserObject","wasSelected","isEmailValid","UserService","fetchUserByEmail","clearItems","re","handleSave","worker","methods","boundedBatteryState","batteryState","BatteryLevel","sendingState","FeedbackProvider","feedbackAnimationClass","animationTimer","SendingState","None","handleAnimation","animationType","onFeedbackStart","beforeDestroy","CircleSpinner","deviceIcon","deviceIconSize","showErrorTooltip","errorIcon","switchSettingsView","dialogOpen","localeEnum","en","de","it","setting","fullDeviceData","error_messages","english","currentSelectedLang","measurementsState","errorStatus","SettingsView","DeviceActions","ShowEventBase","PreviewActions","InfoTooltip","getVariableValue","instance","defineInstancesGroups","splitter","filterBy","sortedSystemsArr","aNum","bNum","fromEntries","instancesArr","ceil","instancesArrGrouped","initChartList","defineIoSystemType","IOEnergyCircleType","hybrids","outputs","inputs","getChartSystemInstanceName","getChartSystemIOInstanceName","generateForecastSystems","currentMLModelType","mlModelDataWithType","imageMaxHeight","inputFieldIndex","mlModelMappings","breakpoint","xsOnly","ServicesSchema","mappingValidation","optionalFields","isOptionalFieldsFilled","chartScaling","mlModelSchema","datePickerCustomClearDate","formField","initMappingsForDevice","mappingsSchema","DatePickerCustom","additionalAreas","HCOSchema","additionalAreasKeys","initAdditionalAreasItem","addAdditionalArea","newItem","removeAdditionalArea","VCombobox","inputField","defineStartDate","ManageMLModel","innerHeight","mlModelsTypesArrayList","lastCreatedModelType","PVMonitoringServicePreview","EMSPreview","HeatingCircuitOptimizationPreview","ConsumptionServicePreview","EMSSchema","HppProductionServicePreview","FULL_DEV","IS_PRODUCTION","CHECKS_DISABLED","SEND_MQTT_DISABLED","IGNORE_INVERTER_CHECK","customField","handleItemClick","updateCollections","ManageCollectionsAccessModal","collectionList","selected","useCustomProjectId","updateMemberInModal","projectIdToUse","memberObject","selectedCollections","selections","selectedStatus","initCollectionList","PaginationTabs","pagesCount","totalElements","elementsPerPage","first","last","updateSelectedPage","typingTimer","finally","searchTimeout","change","modalWidth","SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE","SYSTEMS_WHERE_EXTERNAL_ENERGY_MEASUREMENTS_WORKS","SYSTEMS_WHERE_CALCULATE_AS_EXTERNAL_DEVICE_WORKS","EXTERNAL_ENERGY_MEASUREMENTS","EXTERNAL_ENERGY_MEASUREMENTS_FOR_HYBRID_SYSTEMS","externalEnergyMeasurementsSelected","systemInstance","isSystemWithExternalMeasurements","external_energy_measurement","autoRuleIdList","sortRoom","originalElement","newElement","position","updateMemberOrders","newProject","roomOrder","deviceOrder","favoriteOrder","newRoomOrder","newFavoriteOrder","newFavoriteDevices","newDeviceOrder","flatMap","obj","curr","assign","newRoom","newDevicePosition","newPosition","favoriteOrderIDs","gridSortCallback","dev","app_area_order","newAppDeviceOrder","app_area_device_order","positionStatus","copyDevices","devicesList","resultRoom","resultNewProject","localResultObject","generalRulesMPC","newMPC","newDeviceObject","isChart","isDeviceHasErrorWarning","ShowEvent_errorWarningState","selectedUsers","newDevice","copyRoomWithDevices","roomItem","newRoomObject","devicesToCreate","mpcToCreate","fullDeviceList","second","resultDevices","duplicateSingleRoom","mappedDevices","oldMember","originalProject","roomMeta","localCountColumns","localCountLines","currentPeriod","localLinesDisplayData","showDialog","AutarkiegradCircle","reRenderKey","datePickerMax","timePickerMax","formattedDateList","handleRemoval","HourPickerMultiSelect","dateList","disableMoreDates","devBaseBGColor","onDateTimeChange","returnValue","convertTimeToMs","currentValue","returnArray","formatedDateSting","newVal","addCurrentDate","fullDateTime","toISOString","local","isToday","EnergyFlowView","multiSelectLimit","onCircleClick","onCircleClickCallback","showSystemSettingsDialog","canvasSize","canvasCenter","canvasLines","tabsTimer","modularDefaultPeriod","costSavings","emissionReduction","totalConsumption","dataLoaded","changeCurrency","currentExchangeRate","navigationItemsToExclude","calculatedConsumerSystems","calculatedProducerSystems","calculatedBattery","instancesCanvasSize","instancesCanvasCenter","disableNavButton","localCirclesDisplayData","circlesDisplayDataMock","linesDisplayDataMock","circleData","openedSystem","createdAt","customApproximationValue","mpcState","changeDirection","updateData","defaultCostSavings","random","defaultEmissionReduction","defaultTotalConsumption","mulilpicator","periodConfigs","Provide","RotatingBacklight","PeriodSelection","HourPicker","DefaultCalendar","MultiSelectionCalendar","EnergyVisualisation","ActualViewSystemDialog","instanceData","outputFieldActualValue","PVSystemSettings","AnimatedLine","OutputFieldBase","LabelUnitWrapper","fillColor","PlaceHolderImage","circlesDisplayData","updatePage","startIndex","sortedCirclesDisplayData","sortedLinesDisplayData","showChart","chartInformations","generateChartSeriesData","chartConfig","ElectricHeatingTemperatureChart","EnergyComponent","chartSeriesArray","variablesToCheck","electricHeatingComponents","maxOfSystemsVisible","temperature","chartHeight","chartData","BaseChartWrapper","SystemDialogView","onSingleSystemClickCallback","onLineAnimationEnd","onLineAnimationEndCallback","onDialogLineAnimationEnd","onSingleCircleClick","visibleDeviceTypes","linesDisplayData","sortedArray","circleKeys","circleKeysSorted","circlesDisplayDataMap","CirclePosition","top","bottom","lineData","linesDisplayDataMap","updateCircles","Inject","SystemDialog","DataExport","exportData","localDataToExport","dataToExport","localChartData","isThresholdLine","fileName","doc","tableHeader","sumForMultiselect","enableMultiSelect","seriesSuffixes","multiSelectData","optionsItem","chartScores","table","len","numVariables","rowArray","curTime","convertTimestamp","replace","addScoresValues","seriesDataArray","currentChart","singleSeries","seriesLengths","indexLargestArray","timeStampsArray","timeStamp","timeStampIndex","encodeURI","link","click","timestampToConvert","sec","getSeconds","periodTitle","score","isDefaultView","isControlDisabled","isLabel","labelHideTextThatDoesNotFit","isValue","variablesListForCheck","SearchType","webpackContext","req","webpackContextResolve","getDefaultSpinnerColor","EnergyCircleType","energyGreen","isProducer","energyYellow","isConsumer","energyRed","energyGrey","getDefaultSpinnerColorSetpointOptimizer","heatingRed","coolingBlue","getDefaultLineColors","displayData","bottomValue","alternativeValue","additionalDisplayData","forceAnimation","energyConsumerColors","energyProducerColors","energyHybridColors","energyGreyColors","getDefaultLineColorsSetpointOptimizer","energyHeatingColors","energyCoolingColors","getDefaultArrowDirection","ArrowDirection","awayFromCenter","toCenter","none","getDefaultArrowDirectionSetpointOptimizer","switchEnableVariables","switch_activate_cooling","state_activate_cooling","switch2VActivateCooling","switch_activate_heating","state_activate_heating","switch2VActivateHeating","inputFieldActivateSOC","paddingTop","flexGrow","textAlign","inputFieldDeactivateSOC","inputFieldParallelGridMode","inputFieldParallelGridTargetPower","inputFieldBufferStorageCapacity","inputFieldThermalPowerInput","showEventDotStatus","green","operation","showEventDotOperation","flow_temperature","outputFieldFlowTemperature","return_temperature","outputFieldReturnTemperature","buffer_temperature_top","outputFieldBufferTemperatureTop","buffer_temperature_bottom","outputFieldBufferTemperatureBottom","outputFieldTargetPower","outputFieldEnergyCounter","thermal_power_output","outputFieldEnergyCounterThermal","CHPSystemSettings","Switch2V_onOff","Switch2V_state","InputField_targetValue","parallel_grid_mode","parallel_grid_target_power","buffer_storage_capacity","thermal_power_input","ShowEventDot_errorWarningState","OutputField_actualValue","Switch2VBase","InputFieldBase","ShowEventDotBase","ruleId","rulesFilter","findRuleById","rulesLength","setRules","setRule","updateRule","deleteRuleFromList","setRulesFilter","RuleService","fetchRules","createRule","ruleModel","createRules","openedSettingsWidth","circleDataTitle","openedSettings","openedSystemComponent","controls","isHeatingBufferMappingFilled","pushButtonReset","switch_p14a","state_p14a","switchP14A","inputFieldPriorityEMS","inputFieldMaxSizeBatteryCapacity","twoCommas","outputFieldActualBatterySOC","outputFieldActualPower","outputFieldActualBattery","targetPowerCapacityBattery","BatterySystemSettings","PushButtonBase","PreviewMQTTControls","inputFieldSize","GridSystemSettings","switch2VEnable","HouseSystemSettings","switch_manual","state_manual","switch2VManualOn","switch_emergency","state_emergency","switch2VOnEmergencyPowerOff","switch2VEnableChargingStation","slider_target_power","slider_manual","sliderManual","sliderManualIsActive","sliderManualActualValueState","min_power","slider_min_power","inputFieldEnableSoc","inputFieldDisableSOC","inputFieldMaxPower","charging_time","outputFieldChargingTime","car_connected","showEventDotCarConnected","state_charging_station","showEventDotStateCharging","ChargeStationSystemSettings","max_power","ChargeStationMinPowerSelection","DropDownBase","SliderBase","sliderActualValueState","ElectricHeatingSystemSettings","state_electric_heating","target_temp_on","target_temp_off","target_temp_max","switch_time","state_time","switch_disable_protection","state_disable_protection","slider1ActualValueState","slider2ActualValueState","HeatingPumpSystemSettings","state_heating_pump","inlet_temperature","outlet_temperature","boiler_temperature","boiler_water_temperature","Slider_targetValue","manual_power","slider_power","state_time_power","PushButton_onOff","PushButton_state","switchManualOn","switchOnEmergencyPowerOff","switchEnable","sliderMappings","sliderIsActive","inputFieldDisableMaxPower","state_consumer","showEventDotState","BigConsumerSystemSettings","heatingPumpBufferInstance","sendValue","DEFAULT_HEATING_PUMP_BUFFER","HeatingBufferInput","heating_pump_buffer","systemInstanceKey","start_low","end_low","start_high","end_high","price_low","price_high","updateHeatingBufferSettings","outputFieldOutToInFlowTemperature","outputFieldInToOutReturnTemperature","colors","averageOfRoomTemps","AverageRoomTemps","valuesArray","roomTemperatures","controlsObject","room_temperatures","mean","CoolingAirControls","identifier","max_flow_temperature","min_flow_temperature","set_point_temperature","out_in_flow_temperature","in_out_flow_temperature","initTemperatureSettings","systemInstanceId","updateSetpointSystemInstanceTemperatureSettings","SystemsInstanceControlsTemplate","CoolingWaterControls","HeatingAirControls","HeatingWaterControls","HybridAirControls","HybridWaterControls","ActualViewSystemSettingsDialog","systemToSettingsMapping","GeneratorSystemSettings","cooling_air_systems","heating_water_systems","heating_air_systems","cooling_water_systems","hybrid_air_systems","hybrid_water_systems","getSystemComponents","heating_buffer","fieldWidth","localValue","timezones","names","fullSize","onChange","fieldMoreThan","fieldLessThan","notEmptyString","fieldNotValidIban","codeLength","isValidIBAN","fieldTimeInHHMM","threeCommas","pattern","oneComma","onlyNumbersRule","noCommas","noSpace","counter","noEmptyString","timeFormat","requiredNumber","replacedString","isEditModalProp","isEqual","immediate","variablesForBatteryTypes","AZZURRO","DEYE","STANDALONE","emptyUnit","Unit","kiloWattUnit","kiloWattHourUnit","kilogramUnit","celsiusUnit","scaleClass","sizeValue","LynusIcon","scale","noData","systemCount","previewTitle","actualValueMin","actualValueMax","actualValueUnit","unitForValue","arrowDirection","height","stopPropagation","displayDataItem","showCross","AnimatedLineArrow","ctx","reqFunc","oneArrowOnly","lineLength","x1","y1","x2","y2","hypot","currentAngle","radians","atan2","degrees","PI","rotateArrow","context","cx","cy","angle","translate","rotate","movementSpeed","speed","arrowColor","color1","color2","grad","createLinearGradient","addColorStop","strokeStyle","lineWidth","arrowBody","beginPath","moveTo","lineTo","stroke","closePath","drawArrow","mx","my","mx2","my2","mainStep","stepArrow1","stepArrow2","run","clearRect","save","cos","sin","restore","requestAnimationFrame","drawArrowReverse","canvas","arrow","getContext","endPoint","startPoint","colorAtCenter","colorAtCircle","cancelAnimationFrame","xPositionCrossText","yPositionCrossText","LineCross","widthOffGridText","yPosition","xPosition","handleChange","offGridText","drawCross","lineCap","cross","lineBody","drawLine","line","EnergyLines","warningColor","activeMessage","inactiveMessage","BasicControl","mappingsClean","mappingExtension","inactiveColor","fieldRules","isMenuOpen","handle","isCloseOnClick","visible","isSettings","super","showMap","zoom","projectIndex","projectStatusClass","MapBanner","center","latLng","attribution","currentZoom","minZoom","currentCenter","mapOptions","zoomSnap","iconUrl","shadowUrl","iconSize","iconAnchor","popupAnchor","shadowSize","ok","suspend","groupedMarkerArr","projectsState","isInHome","filterProjectByStatus","groupCopy","filteredGroupsByOverallStatus","filteredProjectList","location","filteredProjectsByCoords","projectsCoords","lat","lon","noDot","stats","warnings","errors","uniqueCoords","getStatus","coords","appState","$router","zoomUpdate","centerUpdate","initProjectsGroups","intervalVar","defaultFeedbackTimeoutMilliSeconds","destroyed","LMap","LTileLayer","LMarker","LPopup","LTooltip","LIcon","DEFINITIONS","batteryCapacity","inverterPower","batteryType","occupiedByTwinPoint","modelType","powerSGR1","powerSGR2","maxBatteryPower","powerConsumer1","powerConsumer2","handleCalendar","handleLineOptionsToggle","handleReloadButton","showModal","CompareModal","currentPropInChart","ComparisonCharts","BaseChart","overflow","isStackingButtonActive","differenceSeriesStats","otherSeriesStats","localLegendItems","isInitChartDone","handleChartDataChange","handleChartInitDone","handlePeriodsForAutarkiegrad","optionsList","LynusChartBasicView","initChart","handlePrevNextButtonCalendar","chartBounds","defineSeriesStatsSingleSelection","setupDataForExport","otherSeriesList","ser","diffSeriesList","getValuesOfSeries","totalValue","seriesName","getSeriesNameForStats","avg","minValue","maxValue","avgValue","defineSeriesStatsMultiSelection","getChartObject","seriesElement","seriesIndex","currentChartOptionIndex","allItems","dataElement","yData","handleNavigation","chartLoaded","handleFullScreen","handleStackingOptions","toggleStacking","toggleLineOptionChange","calendarDialog","handlePeriod","fromHandleCalendar","onDataLoaded","loadingError","CalendarNavigation","DataExportNew","TotalValuesWindow","azzurroSystemLimits","defineChargeStationLimit","chargeStationLimit","newChargeStationLimitDate","deyeSystemLimits","isStandalone","emergencyPowerOperation","avPv","solarmaxSystemLimits","limitWebastoChargeStations","limitWaidmullerChargeStations","pvStringLoggerLimit","limitStringInverter","buildVariable","chargeStationVariables","setWebastoNext","setWebastoUnite","setWeidmüller","setSchneider","setMennekesSingleChargePoint","setMennekesDoubleChargePoint","setEnercharge","chargeStationSession","chargeStationEnable","chargeStationFreeCharge","chargeStationEmergencyPowerOff","chargeStationMinPower","chargeStationPriority","chargeStationEnableSOC","chargeStationDisableSOC","chargeStationMaxPower","heatingPumpVariables","setLambda","setSoltop","heatingPumpReset","heatingPumpEnable","heatingPumpOnEmergencyPowerOff","heatingPumpTimeEnabled","heatingPumpTimeEnabledPower","heatingPumpHourOn","heatingPumpHourOff","heatingPumpMinuteOn","heatingPumpMinuteOff","heatingPumpPriority","heatingPumpEnableSOC","heatingPumpDisableSOC","heatingPumpPower","heatingPumpMaxPower1","heatingPumpMaxPower2","installationWizardVariables","componentsPage","disableEMS","enableEMS","setGridMeasurement","maxPowerInverter","acpvOnGrid","acpvOnLoad","isBattery","electricHeatingPower","chargeStationPower","useNotFreeCharge","heatingPump","bigConsumerPower","loadShedding","maxPowerDrop","disableBigConsumer","disableLegionellaProtection","disableHeatingPump","useAsGenerator","useAsBHKW","useAsACPV","isACPV","numberOfBHKW","allBHKWOnOneBattery","powerOfGenerator","parallelControl","batteryInput","oneBatteryInput","pvPowerExt","internalPV","numberOfInverters","numberOfBatteries","enableBattery","enableEM","enableStringInverter","lastVariable","numberOfMeters","disablePilot","pilotPage","enablePilot","deyeInverterSerialNumber","stringInverterSerialNumber","serialNumbersConfirmed","stringInverterSerialNumberConfirmed","batteryGridPage","enableHouse","reserve","switchBackTimeFromEmergencyPower","gridMeasurementViaCHINT","smartMeterType","maximumCharge","updateTime","chargeFromGrid","prioritizedCharging","minimumChargeState","deyeTypes","inverterPowers","BatteryTower","BatteryRackSystem","WecoBatteryStack","WecoSlimStack","chargeStationTypes","ChargeStationType","internalWeidmüller11","versionLimitedChargeStations","weidmueller11kWInternal","internalWeidmüller22","weidmueller22kWInternal","externalWeidmüller11","externalWeidmüller22","internalWeidmüllerMS11","mennekesEnerchargeDate","internalWeidmüllerMS22","Schneider11","Schneider22","AmtronCC11","AmtronPro11","AmtronPro22","AmtronTC22","AmedioPro22","Enercharge50","Enercharge100","electricHeatingTypes","rawValue","heatingPumpTypes","webastoChargeStationTypes","heatingElementModelTypes","getRawValueBySystemTypeElectricHeating","availableExternalMeasurementTypes","availableExternalMeasurementDeyeTypes","getChargeStationNameByValue","foundItem","getChargeStationPower","WebastoNext11","WebastoNext22","WebastoUnite11","WebastoUnite22","getChargeStationTypeInformationBySystemType","isExternal","plcLastUpdate","displayProjectOfflineStatus","showInstallationWizardInfoPopup","legionellaProtectionDate","versionDate22052024","chargingStationV2Feature","tenantUpdateWagoCounters","tenantAcBatteryUpdate","versionDate24102024","paragraph14Date","plcLevelVersionDate","navigationChanged","chartContainerWidth","datePicker","handleWeek","handleYear","getSeriesMockData","generationOptions","seriesArray","seriesWithMockValues","timeDiffForValues","countValues","rangeFactor","seriesCount","timeValue","newValue","previousValue","difference","HSExporting","Highstock","HSExportingData","intervalTimer","disableCalendar","disableCalendarButton","disableStackingButton","objectsDifferenceSeriesStats","objectsOtherSeriesStats","buttonStyle","buttons","contextButton","yearButton","onclick","textPrev","textNext","updateFullscreenButtonText","monthButton","weekButton","dayButton","onLocaleChange","setLocale","buildChart","periodChange","fullscreen","isOpen","update","checkChanges","nextButton","backButton","buttonOptions","fullscreenElement","states","hover","onThemeChange","setIsDarkTheme","setChartColors","chartColors","ChartColors","testIsFullscreen","onFavoriteUpdated","chartClickHandler","updateTheme","openFullscreen","backText","nextText","secondary","updateChartFullscreen","hourButton","liveButton","initNameBack","initNameNext","changeDateFullscreen","mobile","button","newDateObj","strs","newDate","currentTimeStampToControl","dateTimeString","testDate","currentTime","endChartHour","nextHourTimestamp","nextHourTimestampInMilliseconds","countColumnLineLocal","isWideChart","minNumberOfSeriesForWideChart","updateToWideChart","selectedDate","firstDay","firstDayFormated","str1","lastDay","lastDayFormated","substring","str2","handleMonth","updateDatePicker","currentPicker","calendar","activePicker","updateStackingOptions","initThresholdAxis","thresholdAxis","returnedSeries","minValueMockData","maxValueMockData","load","generateObjectsStatsArrays","periodForAutarkiegrad","variableValues","seriesDataLenght","prevValue","getSingleMockValue","liveUpdateAllVariables","switchPeriod","tempSelectedStacking","LynusChart","updateColumnLineCounts","addEventListener","drawThreshold","updated","reflow","stackingOptions","isDisabled","isNaN","targetValue","onSendStart","onSendSuccess","isDarkTheme","baseColors","colorsByTheme","tinycolor","lighten","toHexString","darken","uiComponents","devicesDescriptions","basicControls","mlModelsDescriptions","anomalyDetectionDescriptions","chartsDescription","modals","userManual","validationRules","errorMessages","VueI18n","dateTimeFormats","short","long","weekday","fallbackLocale","messages","solarmanLoggerLimits","LoggerType","SolarmanLogger","loggerLimitByType","hybrid","small","ArrowButtonMock","isCustomLabel","defaultDevice","selectedDevice","defaultDeviceName","createNewProject","CreateProject","projectFilterTags","envAppShowProjectTypeSelection","handleChipsChange","isDNDActive","isAreasMiniView","buyPrice","sellPrice","connectivity","currentUserMail","loadProjects","defaultRoomObject","covertype","defaultRobotObject","Robot","deviceSchema","devicesSchemas","defaultSurveyClientObject","SurveyClient","envProjectOpenSubpage","ProjectTagsField","calendarMax","pickerTypes","onDateChange","dateInSeconds","clickedDateMoment","weekStartString","isoWeekday","weekEndString","titleDateFormat","translatedTitle","translatedText","currentSelectedPeriod","cols","chartRendered","randomNumber","EnergyFlowProductionChart","multiplier","EnergyFlowConsumptionChart","percantage","systemSchema","handleCurrentChart","showCurrentChartData","_b","currentChartData","EnergyFlow","systemsInstancesSplitBy","systemsVars","instances","filteredSystems","mockSystemsMappings","houseConsumptionPowerVariablesList","calculation","aggregations","houseConsumptionPowerVariablesExpression","arr2d","systemsScaling","flat","houseChartOptions","systemsChartOptions","chartTitle","chartWrapperHeight","initFirstSystemByDefault","filtered","SystemsNavigation","EnergyFlowConsumerChart","calendarMin","domProps","dateSelectionLimit","dates","datesInS","hourPicker","windowWidth","SystemModalWindowView","onDialogChange","handleDialog","isCallContentClickEvent","errorWarningLocal","rotatingBacklightColor","showActualValue","highlight","previewIcon","previewIconSize","batterySOCValue","Preview","isDark","secondDirectionValue","highlightValue","transition","highlightColor","textShadow","ShowEventBaseGroup","ChargeModeOptionsKeys","onSelectChange","inputFieldVisible","inputRules","inputUnit","buttonDisabled","onInputClick","selectedKey","inputValue","systemInstanceData","full","sun","minimum","inputMin","inputMax","isInputValueNumber","checkMin","checkMax","dropDownInputSelectOptions","opt","selectedOption","maxPowerVariable","Sending","sendHTTP","minimum_power_selection","onSendError","option","hasComponent","sendMQTT","maxPowerValue","handleValue","onMappingChange","handleTextMappings","textKeys","textMapping","selectedForButtonSend","isStateEqualToOne","enableVariableButtonColor","enableSendButton","isOutput","sendVal","printStartDate","printEndDate","formatOptions","printFormat","downloadReport","printReportLoader","maxDateCalendar","updateMaxDateCalendar","yourDate","currentTimeStamp","timeZoneOffset","getTimezoneOffset","prepareDataStringFileType","dataStr","encodeURIComponent","fileType","Blob","URL","createObjectURL","dateStart","dateEnd","unixStart","unixEnd","buffer","bufferContent","TextDecoder","decode","isNoData","downloadAnchorNode","emsSelectWidth","nativeOn","handleSystemCountCheckbox","systemsForm","ev","getSystemQuantity","refInFor","currentGroupedSystemsListWithGeneralMappings","outputIndex","isOptionalFieldsVisible","currentSystem","isOptional","handleDeleted","showExternalEnergyMappingsCheckbox","showCalculateAsExternalDevice","mlModelAdditionalFields","updatingDeviceProcess","settingsValidation","targetObject","instanceLabelPath","itemsList","DynamicField","addMaxPowerItem","externalCall","externalKey","deleteMaxPowerItem","$delete","_n","consumption","batteryPower","EMSAdditionalFields","pvScaling","conumptionScaling","maxGridSize","EnergyViewAdditionalFields","DynamicFieldWithTitle","cutNumberFromString","ManageSystemsDecreaseModal","amountOfRemovedSystems","systemInstancesKeys","sortSystems","aNumber","bNumber","onSave","onCancel","handleDialogOnDecrease","isObject","DEVICES_WITH_EXTERNAL_MEASUREMENTS","vSelectRerenderKey","copyOfSystemsForValidationError","controllerMainMappingsLocal","isSystemPermitted","hasExternalMeasurements","isExternalEnergyMeasurement","isSystemMappingVisible","systemsExternalEnergyMappingsCheckboxValue","handleAdded","fieldType","oldVal","isGeneralMappings","rulesState","currentSystemsListFiltered","requiredFieldsMainMappings","currentGroupedSystemsList","systemInstances","systemInstancesWithMappings","requiredMappingsList","fieldOptionsOptional","isFieldOptional","isExternalMeasurement","requiredTitleForExternalMeasurements","requiredFieldsKeys","requiredFieldsValues","listOfRequiredFieldsValuesAsBoolean","validateString","allInstances","unFilled","systemsByGroupsValidation","emsGeneralMappingsValidation","systemsValidation","arr2dValues","isFilled","errorVariableValidation","mappingKey","copyOfCurrentWhenGoFromStageOne","old","rulesBySystem","checkIfRulesForSystemWasDeleted","warning","isWarningRuleExist","rulesListIds","isErrorRuleExist","systemOptions","systemsInstances","inst","numA","numB","systemsArr","systemQuantity","initSystemsFormStructure","isOptionalAndNotFilled","requiredField","isExternalMeasurementsEnabled","initAdditionalFields","objectsKeys","props","propsObj","defineMappingsForSystem","groupName","mappingsList","dynamicMappings","initSystemsFormWhenNewDevice","groupOfSystemsList","arrOfSystemsInstances","systemsFormLocal","initMainMappings","initSystemsFormWhenEditDevice","systemsList","systemData","loadMainMappings","emsMappingsList","cancelBaseAction","handleManageSystemsSave","handleManageSystemsCancel","handleSystemCountSelect","currentLength","prevLength","isIncrease","arrOfSystems","numberOfItemsToRemove","range","lastEl","handleCurrentSystem","defineSystemNumber","emsData","warningRulesSystemList","filteredSystemsByErrorWarning","errorRulesSystemList","generalRules","allRulesList","responseRulesList","resRules","oldArr","currentArr","copyOfEMSRules","oldItemsToDelete","oldItem","targ","currentItem","isValueEqual","newItemsToCreate","warningRules","errorRules","allRules","generalRulesWhenUpdateEMS","addSystemRulesWhenUpdateEMS","addRulesWhenCreateEMS","loadRules","VSelect","VCheckbox","defaultChartColors","startedAt","initialBackgroundColor","stackingOP","onMouseMove","countLines","countColumns","loadedVariables","customLoader","authToken","loadChart","isThreshold","addPoint","updateScalingIfDataNotFit","container","allSeriesSameScalings","seriesColor","colorArray","updatedYAxis","updateYAxis","renderTo","redraw","pointer","chartPosition","credits","labelStyle","showInLegend","tooltip","shared","xDateFormat","valueDecimals","marker","area","column","stacking","DateTimeFormat","resolvedOptions","useUTC","onFullScreenChange","eventType","setOptions","weekdays","shortWeekdays","weekdaysShort","months","shortMonths","monthsShort","updateChartTitle","fontSize","setDevice","yAxisArray","initYAxis","formatter","showEmpty","chartBackground","attr","open","setWidth","showLoading","addPlotLine","zIndex","dataMax","dataMin","minVal","maxVal","loadDataAsList","getChartStart","formattedCreatedAt","bounds","chartVariablesList","converted","aggregation","variableNames","getVariableNames","loadDataList","loadSeriesDataList","currentVar","convertedSeries","chartEnd","chartStart","chartRequest","filteredArray","self","variablesSplitInTen","splitArrayIntoChunks","combinedObject","accumulator","currentObject","chunkSize","seriesDataList","firstVariable","scope","getScope","calculate","addAggsToExpression","loadedData","approximationValue","getApproximationValue","units","getDataGroupingUnits","dataGrouping","forced","approximation","init","utc","dateFormat","hasData","point","resizeRerender","isLinesReady","energyLinesDataLive","topCircles","middleLeftCircle","middleRightCircle","bottomCircles","placeholder","isPlaceholder","titlePosition","isBatterySoc","centerContent","energyCircleValueShow","valuePositionClass","errorWarningMode","disableSpinner","p14aActiveInfo","feedInLimitationActive","feedInLimitationActiveInfo","isEmsModeIndicator","showLoadingAnimationHouseCircle","styles","EnergyCircleValue","background","activeSymbols","currentIcon","allSymbols","ChargeIndicator","forceCharge","calibrationCharge","maintenanceCharge","chargeMaintenance","symbol","StatusIndicator","HouseCalculationInfo","EmdModeIndicator","activeEmsMode","iconLeft","iconRight","documentation","EnergyCircle","formattedBottomValue","formattedWithUnit","hideValue","PlaceholderEnergyCircleDisplayData","p14aActive","isGrid","transform","energyCircleOnClick","AdditionalIndicator","EmsModeIndicator","ForceChargeIndicator","energyLinesData","middleLeft","middleRight","reactiveLine","staticLine","onResize","actualViewRef","circles","clientHeight","circle","offsetLeft","offsetWidth","offsetTop","offsetHeight","debouncedResize","debounce","removeEventListener","CentralEndpoint","hidePeriodNavigation","rerenderKey","hideCalendarNavigation","currentCalendar","CalendarButtons","setUTCHours","validation","multiSelectValidation","hourPickerSelectButtonValidation","limit","calendarModalOptions","modalWindowInstance","calendarSelectionButtonsInstance","defaultTimeoutRepotMessages","asset","weatherData","reportBox","shouldShow","workbenchCurrentTab","getReportMessageAndType","getUser","setWeatherData","setUser","setWorkbenchTab","WeatherService","fetchWeather","fetchProjectDocuments","deleteProjectDocument","FormData","append","AssetService","saveAsset","currentDeviceType","deviceDataWithType","deviceMappings","unitSelection","removeIcon","iconTheme","arrayOfMappings","deviceMinMaxBorders","iconSelection","checkIsCoverExist","nameValidation","deviceMappingsList","chargeID","selectableMembers","select","sendForm","DefaultSchemaWithUserSelection","handleGoToStage2","handleDeleteUser","charge_id","scalingValidation","GaugeSchema","dropDownTexts","DropDown_title","addMapTest","DropDownSchema","textMappingSnapshot","isTextMappingEqual","isDeviceDataEqual","mapToObj","k","makeArrayOfJsonObj","convertedArr","DropDown_textmapping","deleteVariable","myJson","ManageDevice","devicesTypesArrayList","deviceObject","lastCreatedDeviceType","EnergyDevicesCircleTypes","allIOEnergyCircleTypes","allEnergyDevicesCircleTypes","positionMappings","getCirclePositionForType","iconMappings","energyCircleIconForType","systemsWithAlternativeValues","isSystemWithAlternativeValue","inputFieldEnableSOCMappings","inputFieldDisableSOCMappings","inputFieldHourOn","inputFieldMinOn","inputFieldHourOff","inputFieldMinOff","showEventDotMappings","removeHeader","disableBody","onHeadersChange","addHeader","batteryOptions","chargeStationMapTypes","heatingPumpMapTypes","defineSystemMap","systemTypes","maximumSystemCount","systemMap","DeviceAction","accessibleActionList","modal","deleteText","removeDevice","DEFAULT_ACTIONS_TYPES_LIST","edit","duplicate","settingsListView","isValidation","editControl","manageModalType","formTitle","editFormTitle","EMSV2","EnergyIO","actionTypesListByDeviceType","currentActions","actionTypesList","isDeviceFavorite","actionsSchemasList","currentActionListAccordingToDeviceFavorites","newList","envUserRolesAccessBlockList","chartsState","mpcApiTypes","isDevice","isAnomalyDetection","mpcValidationLogic","currentMPCTypeSchema","isFieldAreObject","isDynamicField","deviceIdUnderline","fieldVariable","fields","additionalBasicDevices","inputFieldsArray","fieldWithoutNumbers","deviceValidationWithMpcLogic","devicesValidation","mpcValidation","isMPC","deleteMPC","updateMPC","DeleteModalForm","ManageCharts","DuplicateDeviceWindow","ManagePriorities","InputFieldMock","initState","lynusDefaultConfig","TITLE","LOGO_URL_LIGHT","LOGO_URL_DARK","FAVICON_URL","PROJECT_OPEN_SUBPAGE","REALM","KEYCLOAK_URL","CLIENT_ID","MPC_API","LOAD_MPC","MQTT","DEFAULTS_TO_DARKMODE","THEMES","light","primary","sideBarHighlight","sideBarColor","surface","accent","accentLight","lynusText","lynusTextInvert","lynusTextSidebar","projectBackground","secondaryDeviceBackground","dndItemBackground","inactiveItem","activeItem","primaryBorder","overlay","lynusIcon","DEVICES","MPC_Devices_List","SHOW_PROJECT_TYPE_SELECTION","PROJECT_MENU_ENTRIES","PROJECT_SETTINGS_ENTRIES","WORKBENCH_CATEGORIES","WORKBENCH_BUTTONS","DEVICE_LIBRARY_CATEGORIES","AIML_LIBRARY_CATEGORIES","MPC_Library_Tabs","MAIN_MENU_ENTRIES","PARTNER_PROJECT_MENU_ENTRIES","SETTINGS_MAIL_SUPPORT","SETTINGS_DOWNLOAD_LIST","SETTINGS_SHOW_WEATHER_SERVICE","ENABLE_CONTROLLER_SETTINGS","DOCUMENTATION_TABS","SHOW_PROJECT_INFO","SHOW_CREATE_DEVICE_BUTTON_IN_AREA","USER_ROLES_ACCESS_BLOCK_LIST","alternativeConfig","config","getEnv","w","envTitle","envLogoURLLight","envLogoURLDark","envFaviconURL","envKeycloakURL","envRealm","envClientId","envDefaultsToDarkmode","envThemes","envProjectSettingsEnteries","envWorkbenchCategories","envDeviceLibraryCategories","envAimlLibraryCategories","envWorkbenchButtons","envSettingsMailSupport","envSettingsDownloadList","envSettingsShowWeatherService","envShowProjectInfo","envMPCLibraryTabs","envEnableControllerSettings","envPartnerProjectMenuEntries","cancelStartDate","acceptStartDate","currencyOptions","unitRule","NormalReportNew","removeVariableByIndex","LightSwitch","basicDevices","GeneralSwitchV2","LightDimmer","Temperature","VariableOutputField","VariableInputField","VariableTextOutputField","VariableTextInputField","LightRGB","LightPushButton","SocketSwitch","ControlBlinds","ControlAwning","ControlShutter","ThermostatDigital","ThermostatAnalog","AirHumiditySensor","BrightnessSensor","SensorCO2","SensorLevel","WeatherStation","HotWaterMeter","ColdWaterMeter","HeatingMeter","ElectricityMeter","MotionSensor","Battery","PVSystem","HouseConsumption","Generator","MainsConnection","ElectricChargingStation","ElectronicBoiler","VentilatorSwitch","MusicSystem","TV","MotorWithoutVFD","PumpWithoutVFD","MotorWithVFD","PumpWithVFD","MixingValve","Ventilation","Gauge","RegentLighting","DropDownOutputFieldWithVariable","DropDownInputFieldWithVariable","TSGFrischwasser","TSGBrauchwasser","TSGLadestationNotAus","TSGModulLadestation","force_charge_2","feed_in_limitation_active","p14a_active","active_ems_mode","enable_regelenergie","state_enable_regelenergie","enable_control_dynamic_tariff","state_enable_control_dynamic_tariff","energy_counter_thermal","is_on_grid","EnergyViewV2","ElectricChargingStationV2","pageAboutToLeave","handleApprove","next","localTo","localNext","handleRouteChange","sendWizardVariables","sendVariables","handleCancel","marginTop","chartKey","arcLabels","needleValue","needleColor","needleStartValue","hasNeedle","rangeLabel","arcDelimiters","gaugeWidth","arcColors","highchartsMore","solidGauge","MonitorGaugeMock","resizeChart","chartDiv","loadLine","handleSystemModalWindowContent","allGroupSliderStates","systemInstanceIndex","isDataForInstancesAnimatedLineReady","instancesCanvasLines","getCurrentValue","sliders","slider","showTimeSlider","forecastData","pv1","producerConsumers","battery1","groupSliderState","grid1","ForecastView","getCoordsThrottle","throttle","getCoords","getInstancesCoordsThrottle","getInstancesCoords","pv2","generator1","generator2","battery2","house1","house2","charge_station1","charge_station2","electric_heating1","electric_heating2","heating_pump1","heating_pump2","big_consumer1","big_consumer2","sumPV","sumGenerator","sumBattery","sumHouse","sumChargeStation","sumElectricHeating","sumHeatingPump","sumBigConsumer","handleGetCoords","central","centralEndpoint","h","instancesCentralEndpoint","instancesCanvas","arrItem","isContentVisible","sliderState","isPreviewManageModalOpen","TimeSlider","defaultItems","onPeriodChange","updateVisibilityButtons","isLineChart","excludeNotWantedItems","isColumnChart","onItemChange","btn","periodsToExclude","per","warningClass","errorWarningState","ValueUnit","valueFormatted","conversions","thresholdUnit","groupLength","currentGroup","arrayOfSystemInstanceNamesIndex","menuGroup","defineMenuItemName","selectedGroup","isListItemsPlural","defineMenuItemCount","filterFromNotNumber","groupIndex","handleClick","func","energyVisualisationHeight","ActualView","maxWidth","filterPresentExternalMeasurementsSystems","externalMeasurementsSystems","componentsExternalMeasurements","getSystemComponentsWithEnabledExternalMeasurements","componentsCalculateAsExternalMeasurement","getSystemComponentsWithCalculateAsExternalMeasurements","getSumOfSystemInstancesValues","getSystems","getSystem","getSystemKeys","getSystemCount","getTitle","getVariableMappings","isSystemPresent","filterPresentSystems","types","presentSystems","filterComponentsWithEnabledExternalMeasurements","filterComponentsWithCalculateAsExternalMeasurements","calculate_as_external_device","filterComponentsWithEnabledExternalMeasurementsList","getSystemInstancesWithEnabledExternalMeasurements","variableToLookFor","getBatterySocMappings","getErrorWarningMappings","getAlternativeArrowDirection","getAlternativeLineColors","getAlternativeVariableMappings","predictionDataPoints","suffix","prediction","mappedVariable","systemInstanceMappings","measurement","valueNumber","getAverageOfSystemInstancesValues","getSumOfExternalMeasurementsSystemInstancesValues","energyDataByPeriodResponse","instancesWithEnabledExternalMeasurements","energies","getHouseValue","externalMeasurementsSum","calculatedValue","getElectricHeatingValue","hasPower","hasTemperature","isTemperature","Boolean","Page404","currentBg","breakpoints","onCard","extended","image","projectLocationName","onButton","toggleExtension","StatusIndicatorLine","ProjectItem","showProjectInfo","savedMeasurements","itemHeight","displayName","display_name","partsOfName","wizard_completed_at","pvPowerVariable","totalPower","powerVariable","extensionValue","hasWizardDoneDate","extension","openProject","scrollX","scrollY","projectsFilteredByIdAndName","filterName","filterProjectsByStatus","fuctionFilterByControllerInfo","filterProjects","localProjectList","ProjectsListFlexGrid","localStorageKey","handleClose","lastShown","localStorage","getItem","oneWeek","setItem","ProjectItemPlaceholder","registerHooks","Home","onHomeDataLoaded","scrollToSavedPosition","savedPosition","scrollTo","left","behavior","workbenchFiltered","actualDevicesLoaded","filteredBySearch","deleteControlHandle","DevicesTable","excludedDevices","sortable","devicesState","filterByDevices","deviceRoomName","control","AnomalyDetectionTable","ChartsTable","chartsList","loaders","MPCTable","onLoaders","addBlockedAlert","removeBlockedAlert","blockedMessage","Workbench","itemCountPerPage","tabName","localisationPath","workbench","fetchRooms","fetchMPCWeatherStatus","fetchMPCListByProject","sortedItems","deleteSerialNumber","SerialNumberManagement","sortBy","sortDesc","serialNumberType","0","1","2","customSort","modifier","aValue","Infinity","bValue","filteredBySearchItems","filteredItems","fetchSerialNumbers","favoritesDataLoaded","currentDate","weatherIcon","startsWith","GeneralInfoBanner","main","wind","temp","$d","weather","admin","initials","MembersWidget","deviceIndex","defineFlexSizesByDeviceType","DevicesSizesFlex","customSizes","md","sm","xs","LiveAnomalyDetection","SetpointOptimizer","ChartDevice","chartBodyHeight","chartBody","isPreview","deviceSize","showSmallerDeviceActions","deviceModal","settingsModalWidth","DeviceLayout","textMappingError","3","4","textMappingAlarm","5","6","7","8","rulesForInputFields","field999Rule","hourRule","minuteRule","tenThousandRule","onTimeRule","timeToMaxRule","sliderActualValue1","sliderActualValue2","showNumberValue","iconColorErrorWarning","StatusIconBase","iconMapping","tempName","resultCurrentValue","setErrorWarningColorSwitch","errorValue","warningValue","OutputFieldTextBase","returnText","checkFallbackText","FillLevelDisplayBase","alignRight","dateValue","DateTimePickerBase","disableSendButton","valueDatabase","currentDateValue","emitDate","unixTimeStamp","messageBoxObject","ronova_info","ronova_warning","wifiStatusObject","ronova_wifi_no","ronova_wifi_low","ronova_wifi_med","ronova_wifi_full","satelliteCount","ronova_gps_no_fix","ronova_gps_fix","gpsStatus","ronova_lte_no","ronova_lte_low","ronova_lte_med","ronova_lte_full","batteryStatus","ronova_battery_charge","ronova_battery_0","ronova_battery_25","ronova_battery_50","ronova_battery_75","ronova_battery_100","musterMapping","9","10","focValue","speedValue","currentProgressLevel","OutputField8_actualValue","StatusIcon5_currentValue","Slider1_targetValue","Slider2_targetValue","FillLevelDisplay1_actualValue","statusMessageBox","InputFieldTextBase","enableVariabelButtonColor","StatusIcon4_currentValue","errorWarningMqtt","actualPowerMqtt","calculatedPowerMqtt","calculatedEnergyMqtt","readyMqtt","actualPower","calculatedPower","producedEnergy","handleFullScreenChartName","crosshair","seriesStatuses","hc","hideLoading","setTitle","chartsScaling","seriesForecast","yAxisForecast","fetchChartData","fetchMPCData","Charts","mqttChartsVariables","mpcIdMod","OutputField1_actualValue","OutputField2_actualValue","calculatedPowerMainView","OutputField3_actualValue","ShowEventDot1_errorWarningState","ready","showEventGeneralErrorWarning","toggleLoading","loaded","isHybridSystem","displayEnergyFlowHouseInfo","enableMinWidth","devicesWithDynamicBottomValue","previousHouseValue","electricHeatingAnimationBottomValue","skipExternal","systemInstanceArray","getErrorWarningMode","systemInstancesErrorValues","shouldShowCross","variablenameToCheck","producerElements","consumerElements","houseCalculationProducerElementsSum","houseCalculationConsumerElementsSum","houseSystemOriginalValue","sumOfAllEnabledExternalMeasurementsSystemsValues","shownSystems","bottomDynamicValue","additionalContent","houseSystemCount","houseSystemValueHybridSystem","houseSystemValue","electricHeatingValueUnit","feedInLimit","p14CmdIsSet","currentSpinnerColor","spinnerColor","isProjectCurrencyUndefined","calculatedAutarkiegrad","IconValueFieldWithTooltip","systemDialogCircles","systemDialogLines","EnergyFlowViewSystemDialog","onDialogLineAnimationEndCallback","dialogHybridHighlightBottomValue","dialogHybridArrowDirection","dialogHybridLineColors","getSystemInstanceValue","systemInstanceName","systemInstanceFullKey","defineHouseValue","externalMeasurementsSystemsValueList","sumOfExternalMeasurementsSystemsValues","systemComponent","highlightBottomValue","defineHouseBottomValue","calculations","total_consumption","loader","hybridHighlightBottomValue","hybridArrowDirection","hybridLineColors","autoReloadInterval","currentCalendarStartDate","displayDate","co2ReductionUnit","totalConsumptionUnit","fetchEnergyDataFunction","isMpc","fetchDataByPeriodMpc","fetchDataByPeriod","cost_saved","co2_saved","autarchy_score","autarchyScore","mpcDevices","defineHybridSystemsBottomValue","defineSystemsBottomValue","setDisplayDate","replaceAll","systemInstancesFilteredByKey","RegExp","loadCalendarRange","startOfCreatedAtDate","createdAtDate","maxEnd","mpcData","allSystemsData","settingsWrapperHeight","scoresForDataExport","navItemsToExclude","chartRangeChange","showScores","scores","showHouseCalculationTooltip","mixedEnergyChartScaling","singleEnergyChartScaling","singleEnergyChartScalingHybrid","temperatureScaling","getAggregation","externalMeasurementsList","defaultAggregation","getExpression","variableValue","expressionWrapperFn","exp","getCalculation","variableKey","variableArray","systemComponents","getCalculationHouse","finalCalculationExpression","producerVariables","consumerVariables","countOfVariables","DEFAULT_SYSTEMS_VARS","SingleSystemsView","systemsUnits","getSplitter","numberOfSeriesPerChart","getSystemsExpressionWrappers","mappedSystems","externalMeasurementsSystemsVariablesList","showColumnChart","calculationExpression","existingSystemVars","chartInstanceName","isSystemWithMultipleChartValues","energyCounterMapping","externalEnergyCounterMappings","measurementsOfAllEnabledExternalMeasurementsSystems","calculationAggregations","setExpressionAsMax","getSystemTitle","showHouseConsumptionAlways","sys","calculatedHouseChartOptions","energyResponseSystemData","returnVal","houseValWithoutExternalMeasurements","consumerSystemsVars","translation","SelfSufficientScore","Eigenverbrauchsanteil","TotalDirectEnergy","generatorVariables","chpVariables","pvVariables","productionSum","batteryVariableSum","gridVariableSum","batteryPowers","gridPowers","producersPowers","productionGridVariables","batterySocMapping","superAdmin","systemFilterSum","containedString","producerValues","pvProduction","batteryFromProduction","gridFromProduction","directConsumption","batteryProductionSum","gridProductionSum","directConsumptionValue","direct_consumption","hasProducer","TotalConsumption","self_consumption_score","self_sufficient_score","batteryToConsumer","gridToConsumer","batteryConsumerSum","gridConsumerSum","SelfConsumption","shownSystemsEnergyFlowConsumer","excludeHouse","getNumberOfSeriesPerChart","EnergyViewCharts","itemsToRemove","filterInstances","system_type","instancesList","stringExtension","getPredictions","entry","isHybridEnergyDeviceSystem","pvMappings","hasLoggerMapping","hasLynusMapping","houseCount","wasTenantWizardCompleted","rerenderDevice","shownSystemsSingleSystemsChart","EnergyView","calculatedEnergy2","textMappingStatus","textMappingEmergency","DropDown1_targetValue","DropDown2_targetValue","timeSliderInitArray","groupSlider","currentProducerSystems","allSystemsForecastData","batteryPredictedSOC","currentConsumerSystems","allSystemsForecastTargetPower","lineReady","animatedLineActive","animatedLineMovement","sumForecast","sumForecastSOC","instancesTopLine","systemsForecastDataFiltered","systemSlider","instancesBottomLine","timeSliderInitArr","instanceLineReady","instanceCanvasSize","instanceLineData","instanceCanvasCenter","instanceForecastData","previewTitlePosition","socDataRounded","InstanceView","socData","systemsForecastData","sumSystemsForecastDataFiltered","checkEmpty","batteryPredictedSOCValuesArray","showOutputValue","systemForecastTargetPower","defineTabTitle","defineTopLine","isTabContentVisible","defineBottomLine","allSystemsArray","lastPage","isCurrentPageLast","allSystemsCount","navigationState","handleIsMiniChange","BatterySystem","BigConsumerSystem","ChargeStationSystem","ElectricHeatingSystem","GeneratorSystem","GridSystem","HeatingPumpSystem","HouseSystem","ChartProdCons","autarchy","pvSystemComponents","filteredByNeededSystems","allVariables","allVarsFlat","pvActualPower","pvCalculatedPower","consumptionActualPower","consumptionScaling","consumptionCalculatedPower","excludeNavItems","predictedSOC","TimeTable","variablesContainers","controllerMappingsSystems","systemInstanceVariableName","getNameForBattery","getName","seriesColors","serie","yAxisColors","axis","chartVariables","pvInstancesList","pvInstances","pvPredictedEnergy","pvPredictedPower","pvSeriesForecast","pvYAxisForecast","consumptionPredictedEnergy","consumptionPredictedPower","consumptionSeriesForecast","consumptionYAxisForecast","gridInstancesList","gridInstances","sumPredictedPVPower","predictedConsumption","predictedGrid","differenceSeriesForecast","differenceYAxisForecast","pvForecastData","consumptionForecastData","differenceForecastData","sumPredictedPower","predictedMPCPower","timeFactor","loadChartVariables","EMSCharts","settingsWrapperElement","settingsWrapper","sizeMainFuseDialog","limitsForFields","minWidth","outputFieldMaxDepth","outputFieldReserveForEmergency","outputFieldReserveChargingFromGrid","hasBattery","showPlcControllingState","GeneralSettingsEMS","controllermappings","mappingsExist","hasElevatedPrivileges","limits","nonSolarmaxSettings","keysForObject","allOff","selfConsumption","peakLoadCapping","loadManagement","allPrioritiesAtMinimum","allPrioritiesAtMaximum","missingPowerValuesOnDeviceSetup","tooManyFunctionsInThisProject","batteryEnableValue","isSuperAdmin","modeSettingsDisabled","SettingsEMS","tariffMode","energyOptimized","balancedOptimization","tariffOptimized","disabledMode","reg","endLowMinutes","startLowMinutes","startHighMinutes","endHighMinutes","priceLow","priceHigh","initTariffForm","heatingPumpBuffer","newTariff","updateTariffSettings","ModeSettings","energyFlowViewLoading","actual_view","handleLoading","emsScaling","predictedTargetPower","showHouseConsumption","gaugeVariable","dndGridLayoutContainerWidth","powerActualValue","efficiencyActualValue","inputFieldEfficiency","MonitoringGauge","needleUpdateSpeed","resizeChartThrottle","setNeedleValue","inputVariable","optionsConfig","initWidth","dndGridContainerWidth","isElementWidth","settingsVariable","isActive","sliderActualValue","SwitchBase","off","onStateChange","localState","timeoutFn","fn1","fn2","feedBackTimeout","switchOn","switchOff","Switch_state","isActualValueVariableFilled","sliderRGBActualValue","SliderRGBBase","sliderValue","g","sliderValuesStorage","sendingValues","isSliderValueChanging","isSliderValueChangingWithTimeout","onDimmerOff","valueChangingTimer","isNull","onSliderValueChangingWithTimeout","onSliderValueChanging","timer2","snapshot","targetValue_blue","targetValue_green","targetValue_red","SliderRGBCanvas","OutputField4_actualValue","disableButton","ArrowDownBase","down","ArrowUpBase","up","ArrowInBase","in","handleIn","ArrowOutBase","out","handleOut","isPushButtonBehavior","fab","MinusBase","commandMinus","handleMinus","validator","PlusBase","commandPlus","handlePlus","OutputField5_actualValue","OutputField6_actualValue","OutputField7_actualValue","OutputField9_actualValue","Switch_on","Switch_off","filteredValue","fieldFilteredValue","BatteryBase","isActualVoltageVariableFilled","isCurrentFlowVariableFilled","PVSystemCharts","localChartOptions","chartObject","Switch1_on","Switch1_off","Switch1_state","Switch2_on","Switch2_off","Switch2_state","buttonActive","maxHeight","ChargingStationButton","disableButtonForRequest","Success","errorText","reportText","switchStatus","chargeId","userAccess","currentUser","usersInDevice","currentSelectedUsers","switchOnOffStatus","PlayBase","commandPlay","StopBase","commandStop","PauseBase","commandPause","ReverseBase","commandReverse","ForwardBase","commandForward","PushButton1_onOff","PushButton1_state","PushButton2_onOff","PushButton2_state","PushButton3_onOff","PushButton3_state","PushButton4_onOff","PushButton4_state","ArrowDirectionLeftBase","commandLeft","handleLeft","ArrowDirectionRightBase","commandRight","handleRight","paddingRight","ShowEventDot2_errorWarningState","handleRerenderKey","CurrentValueGaugeChartBase","centralLabel","handleThemeChange","handleDeviceChange","defineArcDelimiters","onFilteredValueChange","arcState","chartDivNormal","stockwerk","stockIndex","beacons","stockItem","platz","humidity","brightness","co2eq","tvoc","deskinuse","presence","clc_brightness","clc_co2eq","clc_tvoc","clc_humidity","clc_temperature","clc_deskinuse","clc_presence","loweringModeTabs","hIndex","loweringModeStarts","loweringModeEnds","handleEnergySavingMode","warningState","activeColor","localisation","actualValueState","mod","filteredByMinMax","yAxisTempValve","yAxisWeather","roomTemperatureForecast","optimizedControl","modifyWeatherForecastTime","air_temperature_forecast","global_radiation_horizontal","weather_forecast","diffuse_radiation_horizontal","direct_normal_radiation","global_radiation_inclined","optimized_control","room_temperature_forecast","seriesTempValve","seriesWeather","tempValve","MqttCharts","value_1","deviceIdMod","value_2","isLoweringMode","loweringModeActive","normalMode","loweringMode","energySavingMode","serviceOffTemperature","comfort","balanced","energySaving","minMax","lowMin","normMin","lowHours","normHours","serviceOff","too_warm","lowering_mode_active","timing","high_set_temperature","low_set_temperature","stop_heating","low_set_temperature_start","low_set_temperature_start_min","high_set_temperature_start","high_set_temperature_start_min","energy_type","currentHours","currentMinutes","isLoweringHoursEqual","isLoweringHours","isLoweringMinutes","isStart","isLoweringHoursEqual2","isLoweringHours2","isLoweringMinutes2","isEnd","newTiming","updateMPCTiming","defineLoweringMode","setActualState","initLoweringModeActive","initTimings","ShowEventDotBaseHTTP","OutputFieldBaseHTTP","showAnomalyTooltip","AnomalyDetection","localName","anomalyScoreVariable","predictedSetpoint","showEventDotServiceReady","openedSettingsSystemData","forecastCirclesDisplayData","forecastLinesDisplayData","SystemForeCastView","circleDataWithForecast","lineDataWithForecast","onSingleCircleClickCallback","isSettingsActive","SystemForecastView","SystemDialogSetpointOptimizer","Utils","divisionIntoEqualParts","returnOnlyInstances","targetArr","ChartControlVariables","supply_air_temperature","exhaust_air_temperature","systemsMappings","systemsVarsTranslation","currentSystemInstanceRoomTemperaturesArray","currentRoomTemperatureIndex","ChartsRoomTemperatures","instanceName","currentSystemInstanceRoomTemperatures","defineNameForRoomTemperaturesButton","numberOfItems","handleRoomTemperature","systemsInstancesArrayList","predicted_setpoint","themeChartColors","SetpointOptimizerCharts","allDeviceData","SetpointActualView","actualHeatingMqtt","calculatedProductionMqtt","calculatedProductionMainView","actualEnergyChart","EnergyChart","actualHeating","mappedDeviceData","openedSystemId","middleLeftCircles","middleRightCircles","circleContentStyle","EnergyCircleValueIO","borderRadius","EnergyCircleIO","PlaceholderIOEnergyCircleDisplayData","fontWeight","onIOCircleClick","EnergyVisualisationIO","filteredHybridSystems","systemTitle","IOSystemDialogView","onIOSingleCircleClick","ActualViewIOSystemSettingsDialog","getIoSystemComponents","ActualViewIOSystemDialog","electricHeatingInstancesAnimationStatus","has","actualViewCiclesDisplayData","EnergyIOComponent","filterPresentIoSystems","isIoSystemPresent","getMappedIoSystemComponents","variableInstance","defaultColorByType","hybridColor","ActualViewIO","mappingsCount","sumAllPowers","powers","getColorByType","sumAllPowersByType","mappedComponents","energyOrange","totalDifferenceForAllInputsAndOutputs","circlePosition","firstOutputIndex","energyBlue","ActualViewSystemDialogIO","getDefaultLineColorsIO","getDefaultArrowDirectionIO","EnergyFlowViewSystemDialogIO","EnergyFlowViewIO","sumAllEnergies","counter_variable","SingleIOSystemsView","getIOSystems","getIOSubSystems","subSystems","mappedChartOptions","getAllSystems","DevicesListFlexGrid","disableDevicesWhenOffline","mqttState","dndLayout","chartInstanceWidth","DND","sizesForDnD","componentType","devicesSizesForDnD","GaugeChart","EnergyDevice","DevicesListFavorites","gridLayoutContainerWidth","filteredDevicesWithPositions","finalProjectWithNewPositions","onDevicesChange","initDndDevices","saveDevicesPositions","createMemberMeta","addFavoritesDevicesPositions","actualizationOfDevicesFavoritesList","currentDevicePositions","favoritesDevicesPositions","lastDeviceOnFirstCol","lastPos","lastDeviceOnFirstColSize","startPositionForNewDevice","isFullWidthChart","gridLayoutContainerPadding","layout","isChartOrAnomalyDevices","layoutUpdatedEvent","copy2","GridLayout","VueGridLayout","GridItem","areasHeight","dndStatus","activeRoom","currentHandlers","isMenuOpenMiniView","deleteRoom","editRoom","DuplicateRoomModal","stop","ManageCollectionsModal","RoomItem","isAllowedToDelete","AreaActions","handleRoom","imageId","source","isIcon","updateRoom","deleteRoomState","RoomsList","areasPositions","projectWithActualRoomsPositions","onRoomsChange","newRooms","oldRooms","firstSortedRoomByParams","initDndRooms","filteredByKeys","sorted","sortedPositions","lastPosition","currentRoomPositions","listOfRooms","DevicesList","dndLayoutCharts","dndLayoutDevices","onRoomChange","initDndCharts","devicesByRoomLocal","filteredDevices","allDevicesTypes","sizes","Favorites","handleRoomActiveStatus","currentRoomData","DevicesListDnD","areaDevicesPositions","sortedDevicesLength","sortedList","sortDevicesForRoom","devicesPositionsByCurrentRoom","devicesAtPositionZero","fitDevices","occupiedColumns","columnIndexCount","currentRowCount","newFittedDevice","nextRow","doesFitSpace","columnIndex","deviceWidth","sortedDevices","unSortedDevices","hasDeviceSavedPosition","compareFunction","dateA","dateB","roomIndex","areasMiniView","roomActions","isImageSource","roomActionsList","duplicateRoom","devicesToExclude","RoomsListFlexGrid","Rooms","isRoomsDataLoaded","btnTitle","saveAreasDevicesPositions","addAreasPositions","addAreaDevicesPositions","area_id","areaDevicesPositionsMap","actualAreasIds","handleWorkbenchButton","createMCCInstance","handleOpen","previewsFiltered","chartsLibFiltered","ColumnChartPreview","descriptionTypes","type1","type2","chartDescriptionType","LineChartPreview","AreaChartPreview","ChartsPreviewView","multipleLines","columnViewType","chartsLib","ColumnChart","LineChart","AreaChart","devicesLibFiltered","TemperaturePreview","upTemperature","downTemperature","showValAbove","SliderMock","LightDimmerPreview","LightSwitchPreview","VariableInputFieldPreview","VariableOutputFieldPreview","PushButtonMock","LightPushButtonPreview","SocketSwitchPreview","rgbState","LightRGBPreview","switchState","ControlBlindsPreview","ControlShutterPreview","ControlAwningPreview","ThermostatDigitalPreview","ThermostatAnalogPreview","AirHumiditySensorPreview","BrightnessSensorPreview","SensorCO2Preview","level","SensorLevelPreview","WeatherStationPreview","HotWaterMeterPreview","ColdWaterMeterPreview","HeatingMeterPreview","ElectricityMeterPreview","GaugePreview","hideIfCrossingPoint","MotionSensorPreview","BatteryBaseMock","BatteryPreview","PVSystemPreview","PVSystemChartsPreview","HouseConsumptionPreview","GeneratorPreview","MainsConnectionPreview","ElectricChargingStationPreview","VariableTextOutputFieldPreview","VariableTextInputFieldPreview","ElectronicBoilerPreview","VentilatorSwitchPreview","MultimediaButtonMock","MusicSystemPreview","TVPreview","MotorWithoutVFDPreview","PumpWithoutVFDPreview","MotorWithVFDPreview","PumpWithVFDPreview","MixingValvePreview","VentilationPreview","DropDownInputFieldWithVariablePreview","DropDownOutputFieldWithVariablePreview","localEnergyViewMappingMock","chartsItems","Settings","mockItems","handleNavigationChanged","SingleSystemsChart","selectedSystem","provideColors","ChartTimetableConsumer","SingleSystemsCharts","forecastMockData","energyViewMappingMock","energyFlowContentMinHeight","GeneralSwitchV2Preview","localEmsMappingMock","emsMappingMock","DevicesView","defaultSizes","lg","devicesLib","RegentLightingPreview","RegentsView","TSGFrischwasserPreview","itemsError","itemsAlarm","TSGBrauchwasserPreview","TSGLadestationNotAusPreview","TSGModulLadestationPreview","TSGView","TSG","letAccentColorForCalendar","RobotPreview","statePosition","redColorVar","itemsTypes","stateFieldname","SurveyClientPreview","RonovatecVue","Controls","previews","RonovatecView","ChartsView","heatingGroup","systemsData","systemsSchemas","collingGroup","systemInstanceType","lineMovement","systemColors","animatedLine","reversed","currentPreviewIcon","isForecastView","modalWindowWidth","defaultLineMovement","forecastActualValue","settingsType","HybridSettings","isAdditionalFields","currentShowEventColor","DefaultSettings","red","blue","UnitMixin","SystemInstance","lineMovementSystems","InstancesGridView","System","MainView","heating_air_systems1","heating_water_systems1","cooling_air_systems1","cooling_water_systems1","hybrid_water_systems1","hybrid_air_systems1","schema","MPCPreviewsList","AnomalyDetectionPreviewsList","aimlDevices","AIML","userMail","checkProtocolAccessList","accessListCheckProtocolSettings","defaultSettingsItems","settingsFiltered","handleEvents","_g","typeFromNumberCode","handlePagination","EventList","eventListDataLoaded","notAcceptedEventsPaginationPage","acceptedEventsPaginationPage","membersList","notAcceptedEventsTableHeaders","acceptedEventsTableHeaders","parseDate","eventsState","pad","padStart","getAcceptedByMember","acceptedBy","loadEvents","isUserAdmin","acceptOneEvent","acceptEveryEvent","rulesDataLoaded","openedPanel","filteredRulesList","closePanel","Rules","rulesListSortedByDate","ManageRule","isReportsLoaded","reportsListToShowLength","reportsListToShow","reportType","reportsNames","removeReport","EditReport","isFormValid","translations","normal","heatingReport","coldWaterReport","hotWaterReport","electricityReport","otherReport","CurrentReport","reportDataToSend","showInList","modelForUpdate","modifyReport","newModel","addReport","NormalReport","ZevReport","Report","ReportType","reportsTypesListToShow","reportState","reportListFilteredBySearch","loadReports","ReportExpansionPanel","showInstallationWizard","showLoggerWizard","hasBatteryDefined","failedHybridInverters","failedStringInverters","hasToBeOnline","definedButtons","Navigation","buttonClickThrottle","handleButtonClick","onClick","wizardStores","ProgressBar","percentage","WizardContentView","wizardName","storeName","projectOnline","handleBack","handleNext","notValid","ProcessFailedError","processStatusCheckFailed","WizardComponent","processFailedMessage","prepareVariablesToSend","startSending","processStatus","checkProcessStatus","Information","showAdditionalMessage","handleStart","handleInverterQuantityChange","handleStatusChange","handleAcpvChange","wizardState","handleAcpvOnLoadChange","handleRerender","hasOnlyStringInverter","localExternalVisualisaton","handleSelectPilot","getFaqLink","EnergyVisualisationPreview","enableAnimations","projectBatteryType","doesHover","BatteryComponentSettings","localBatteryTypes","localDeyeTypes","localBatteryCapacity","localInverterPowers","deyeInverterPower","updateValidation","hasMultipleBatteryTypes","getBatteryItems","batteryCapacityItems","getBatteryCapacityItems","capacityElement","batteryItemValue","getInverterPowers","inverterPowersByBatteryType","inverterElement","currentInverterPower","projectMeasurements","batteryTypes","includedSystems","SYSTEM_IP_RANGE_START","big_plc_charge_station","ElectricHeatingSetting","systemTypeElement","system_index","chargeStation","modifiers","ChargeStationComponentsSetting","localConnectWithLineItems","connectWithLineItems","applyOnNextValues","enableApply","debouncedOnIntersect","onIntersect","isObjectValid","initializeApplyProperties","filterConnectWithLine","getFilteredApplyOnNextItems","totalItems","isDualPointStation","getIpAddress","handleDefinitionChange","validateChargeStationObject","chargeStationInformations","heatingPumpArray","chargeStationArray","bigConsumerArray","arrayWebasto","isNewChargeStationPlcVersion","arrayWeidmueller","availableChargeStationTypes","filteredStations","isLastDefinition","isNextStationOccupied","isTwinChargeStation","isLimitOfWeidmuellerStationsReached","isLimitOfWebastoStationsReached","handleClear","currentStation","applyValue","newStation","showChargeStationV2Feature","chargeStationDefinition","updateLineItems","PlcPerformanceCategorie","handleCheckbox","systemLimits","handleQuantitySelect","imageSrc","componentsMapping","filteredHeatingPumps","HeatingPumpComponentsSettings","ComponentsPage","includedSystemsCount","system_name","selectEmsSystem","updateEnergyVisualization","countPvByInverter","newCount","oldCount","currentDefinitions","newObjects","filteredCurrentDefinitions","pvCount","charge_station_consumer","BatteryComponentsSettings","ElectricHeatingSettings","ChargeStationComponentsSettings","InverterComponentSettings","StringInverterComponentSettings","optionsEnabled","handleSelectionChange","selectedConsumer","hasDuplicateValue","handlePilotLineChange","checkIsConsumer","elementIndex","DeyeConsumerComponentSettings","localIncludedSystemTypes","allConsumers","getSelectedSystem","handleConsumerOptionsEnabled","checked","clearSystem","emsConsumer","availableItems","handleSelect","generatorsLimit","generatorPower","isSystemSelected","localCHP","handleChpCountChange","isMultipleChpVersion","DeyeProducerComponentSettings","localGeneratorsOnGeneratorConnection","localACPV","previousSystem","selectProducer","handleGeneratorOptionsEnabled","clearAll","allProducerSystems","systemHasDefinitions","selectSystem","minPower","generatorsOnGeneratorConnection","controllerMappingsCopy","defineGenerators","defineCHP","hasDefinitions","selectedSystemHasDefinitions","previousSystemHasDefinitions","confirmed","chargeStationProcessWasStarted","heatingPumpProcessWasStarted","intervalCS","intervalHP","emptyPilotLines","validationStatusSingleSystems","deyeProducer","deyeConsumer","chargeStationTypeCurrentIndex","webasto","weidmüller","connectedLinesConfig","bitBySystem","isAcPV","isHybridVersion","amountOfInverters","batteryIncludesSystems","countDummies","countComponentsFromTenantWizard","filterDummies","definitionArray","stringInverter","def","countHasLineConnected","handleCheckboxPilot","removeExternalVisualisation","updatePilotCount","lastItem","pop","setVariablesToSend","processStarted","processVariableNotOk","processSucceded","noSystemMapped","allBitsIdentical","chargeStationProcessSucceeded","checkConfiguration","heatingPumpProcessSucceeded","checkIfProcessGetsStarted","prepareStringInverterVariables","disableAllSystemsStringInverterOnly","prepareStringInverterOnlyVariablesToSend","prepareBatteryVariables","prepareElectricHeatingVariables","prepareChargeStationVariables","prepareHeatingPumpVariables","prepareHeatingPumpConsumerVariables","prepareBigConsumerVariables","prepareLoadSheddingVariables","prepareProducerVariables","localProject","prepareAdditionalEnergyVariables","maximumElectricHeatingIndices","variableToSend","prepareOutdatedChargeStationVariables","maximumChargeStationIndices","indexCurrentChargeStation","ind","configureSystemVariables","activeIndices","paramsToSendToChargeStation","activeDoubleChargePointIndices","activeSystemSpecificIndices","isMennekesDoubleChargePoint","calculatedBit","bitAsDecimal","isMennekessChargeStation","checkBitIdentical","setSystemActive","isMennekesEnerchargeVersion","sendChargeStationVariables","typeLimit","enableVariable","systemKey","currentBit","setAmtronTC","setAmedio","variableSingleChargePoint","currentBitSingleChargePoint","setAmtron","isMennekesSingleChargePoint","freeCharge","prepareNewChargeStationVariables","chargeStationMap","lastChargeStation","currentChargeStation","heatingPumpMap","disableNotSelectedSystems","deyeType","selectedHeatingPumps","pvPerInverter","chargeStationSettings","countStringInverters","initIncludedSystems","heatingPumpComponents","onlyDummies","hasAdditionalHeatingPump","initialDefinitions","mappedEmsDeviceMappings","componentKey","componentValue","currentStateEMS","numberOfDummies","numberOfStringInverters","numberOfAcpv","numberOfFullSystems","emsLimit","countForSystem","normalPVs","isNoBatteryPath","customLimit","defineProducerAndConsumer","definePvPerInverter","definitionLength","inverterIndexString","pvPerInverterValue","noBatteryPaths","TENANT_INSTALLATION_NO_BATTERY","allProducers","selectedProducer","getDeyeConsumerInformation","defineBatterySystem","defineElectricHeatingElements","heatingElement","defineHeatingPumpElements","systemTranslation","initialConsumerDefinition","updateConsumerDefinition","consumerKey","mappingCallback","powerMapping","createLineConfigEntry","checkTypeIndexInMeasurements","chargeStationSystemType","WebastoNext","WebastoUnite","Weidmüller","Schneider","MennekesSingleChargePoint","MennekesDoubleChargePoint","Enercharge","bitMap","chargeStationPositionArray","getChargeStationType","isPilot","componentsIndex","additionalInformation","stringInverterPaths","INSTALLATION_TENANT","loadVariablesForChargeStation","noFreeLoadingVariable","defineInverterCount","valueFromMeasurements","defineStringInverterCount","defineChargeStationElements","occupyNextChargeStation","componentDefinition","chargeStationIndex","chargeStationType","previousChargeStation","loadedChargeStation","defineExternalMeasurementDevices","keyArray","currentEmsControllerMappings","measurementsCounter","filterFunction","setExternallyUsedPilotLine","setPilotConfig","disableLine","initSystemRows","initEmsSystems","clearBatteryIncludedSystems","onlyStringInverterCreated","acpvValueFromMeasurements","acpvOnLoadValueFromMeasurements","onBatteryValueFromMeasurements","addPilotVariables","onNext","doesMeasurementExist","definePilotConfig","pilotLines","pilotConfig","SystemComponent","batteryIncludedSystemsVariables","visibleVariables","handleBatteryField","BatteryGridSettings","saved","localExternalMeasurementsTypes","allVariablesMap","variablesList","alwaysLoadVariables","batteryVariables","isBatteryDefinitionEmpty","loadVariablesFromMeasurements","size_in_amps","valueInAmps","overWriteVariableValuesWithMeasurements","convertVariablesListToObject","saveVariablesInStore","uiUpdateTime","gridSizeInAmps","convertAmpsToKiloWatt","saveAmpsValueInEMS","amps","emsCopy","kW","initVariables","includedSystemsChargeStationDefinitions","handleChargeModeSelection","minimumCharge","handleChargeStationField","assignedUsers","pvMappingEMS","additionalRegelenergieConsumerMappings","prefixes","electric_heating_element","other_big_consumer","pvMappingEMSDeye","isAcPv","stringInverterMappingEMS","batteryMappingEMS","isP14Version","defineSystemIndex","componentIndex","multiBatteryMappingEMS","batteryCount","gridMappingEMS","houseMappingEMS","chargeStationMappingEMS","newChargeStationMappingsEMS","electricHeatingMappingEMS","max_power_key","heatingPumpMappingEMS","newHeatingPumpMappingsEMS","otherBigConsumerMappingsEMS","generatorMappingsEMS","chpMappingsEMS","pvMappingEnergyView","pvMappingEnergyViewDeye","generatorMappingEnergyView","batteryMappingEnergyView","multiBatteryMappingEnergyView","newHeatingPumpMappingsEnergyView","newChargeStationMappingEnergyView","gridMappingEnergyView","houseMappingEnergyView","chargeStationMappingEnergyView","electricHeatingMappingEnergyView","chpMappingsEnergyView","dummyComponent","pilotLineIndex","pilotSystemIndex","chargeStationV2Mapping","ChargingStationGridSettings","chargeStationIndices","assignedUsersChange","users","chargeStationByIndex","chargingStations","electricChargingStationV2Devices","chargeStationById","memberNameById","chargeStationComponents","newChargeStationMapping","collectionId","getAllSelectedUsers","collectionIdToCheck","allSelectedUsers","memberById","selectedUserForChargeStation","collectionsForUser","amountOfChargeStationsEMS","amountOfChargeStationsInProject","getFreeChargeStateByIndex","currentOption","selectOptions","replaceValue","chargeStationMapping","chargeStations","includedSystemsChargeStationSystems","systemVariablesList","systemsIndex","updateProjectChargeStations","deleteChargeStationDevices","updateUserAccess","getVariableValuesFromMeasurements","variableFromMeasurements","notDefaultValue","defaultValues","batteryDefinitionEmpty","handleElectricHeatingField","includedSystemsElectricHeatingSystems","HeatingElementSettings","editableSettings","electricHeatings","includedSystemsElectricHeatingDefinitions","isLegionellaProtectionEnabled","selection","legionellaSelection","temperature_on","temperature_off","temperature_max","legionella_protection","timeEnabled","enableSOC","disableSOC","defaultValue","currentMeasurentValue","selectedMode","selectedIndex","HardwareSpecification","sendBatteryVariables","separateBatteryInput","tenantInstallationNoBattery","handleSelection","emsModes","mqttOperationMode","InitiationMode","pilotDevice","lineIndex","deleteInput","amountOfFilledPilotLines","initFlatsAddresses","flatsConfigList","addressList","downloadDocument","downloadTimes","downloadStartTime","donwloadEndTime","zipBlob","hasArrayDuplicateValue","filterNumberFromString","lastChars","combineHouseNumberAndStreet","flatConfigList","houseNumber","batteryMappingEnergyViewTenant","gridMappingEnergyViewTenant","houseMappingEnergyViewTenant","houseMappingEMSTenant","batteryMappingEMSTenant","PilotSpecification","pilotMapping","availableDeviceItems","selectedItems","pilotIndex","selectedFields","item1","item2","installationWizardState","tenantPaths","initPilotMappings","initAlreadySelectedItems","systemInfo","fillPilotMapping","addSelectedItem","hpTranslation","bcTranslation","lineConfigInstance","initOtherSelectionOptions","otherMappings","optionText","clearEnergyDevices","elementsToSkip","pvPerInverterAsNumbers","fillPvMappings","emsMappings","energyViewMappings","maxIndex","inverterIndexStr","pvIndices","savePvPerInverter","gridMappingsEMS","amountOfOtherHeatingPumps","pilotMappingKey","batteries","systemObject","pilotLineConfigs","pilotPowerMapping","pilotCounterMapping","isSecondPointChargeStation","previousIndex","defaultChargeStationEMSMappings","defaultChargeStationEnergyViewMappings","componentName","addDefaultMappingChargeStationEMS","addDefaultMappingChargeStationEV","defaultStationMappingEMS","defaultStationMappingEnergyView","hpSystemName","emsObject","amountOfConsumerHeatingPumps","startIndexOfNormalHeatingPumps","countNormalHeatingPumps","bigConsumerComponents","filterNoneAcPvSystems","projectCopy","newPvCount","inverterWizardPaths","chargeStationTypeIndex","currentIndex","reAddTenantComponents","productionMappings","tenantState","variablesToFilter","containsInternalCounter","elementEnergyView","acBatteryIds","getAcBatteryNumbers","acBatteryIndex","savedValue","fillEnergyDevicesControllerMappings","addExternalVisualisationSystems","skipPilotPage","defineInitiation","skip","alreadyDone","handleModeInitiation","handleAlreadyDone","loadTenant","handleMode","FinalPageInstallationWizard","pathsThatRequireTenant","generalInformations","searchPlaces","fileObject","expert","GeneralInformations","projectDescription","phone","placesArr","getLocationWithDelay","initialProjectName","uploadButtonClicked","isEqualToSaved","LocationService","fetchLocations","place","fillProjectObject","fillExpertProperties","setLocation","resetButtonClickedVariable","lastIndexOf","postAsset","InviteUsersToProject","conModel","isNotificationForSomeMembersEnabled","handleUpdateRules","someUserSelected","handleContinue","getIsMemberInRulesAsRecipient","Permissions","InstallationPage","sent","handleSent","drmVariables","variableData","GridDrmSettings","otherVariables","setVariableValuesWithMeasurements","setMaxSellPowerToGrid","defaultMaxPowerValue","currentMaxPowerValue","handleLockTimeChange","lockTime","disableTimeLockSettings","variablesOptions","hourOptions","minutesOptions","GeneratorSettings","socVariables","socFieldsLimits","lockTimeVariables","timeVariables","enableSocValue","disableSocValue","handleSocChange","formVariables","includedSystemsHeatingPumpSystems","HeatingPumpSettings","maxPowerByHeatingPumpType","backgroundVariables","updateEMSNaming","notConsumer","notDummy","getInstallationWizardVariable","max_power_2","minutesOn","hourOff","minutesOff","hourOn","enable","timeEnabledTargetPower","BigConsumerSettings","formVariablesForCount","backgroundVariablesForCount","includedSystemBigConsumer","fieldInfo","ChpSettings","backgroundVariable","updateVariables","chpIndex","mqttVariableInfo","varibaleName","activateTests","finished","startTests","testsStarted","areAllGirdConverterMappingsAvailable","currentState","duration","errorWarnings","testsComplete","openDialog","started","progress","BatteryStatusBar","percent","textColors","true","false","calculatePercentage","handleDurationChange","calculateProgress","durationPercentage","durationPerState","hasError","SystemTestPage","tests","modeChanged","disable","hasBeenOpened","thrown","testableSystems","obligatoryTests","gridConverterMappings","feedback","ioModulesTest","stateLimit","getColorMappings","resetTests","selectedErrorWarnings","getErrorWarnings","filteredKeys","obligatoryErrorWarnings","optionalErrorWarnings","newEntries","observeBatteryState","stateVariable","stateFeedbackVariable","observeErrorWarnings","setErrorWarning","setTestsStarted","setTimeoutError","setEMSState","string_inverter","previousState","handleError","throwError","defineTests","energyCircleType","questionsAwnsers","answer","subQuestionsIndex","subQuestionsKey","subQuestions","ManualsPage","inverterQuestion","constructionQuestion","startupQuestion","finalQuestionCheck","question","subQuestion","getTypeDependentTranslation","powerConverterQuestion","arePowerConvertersDismantled","openTab","redirectURL","setInitialState","variablesToSetZero","showSubQuestion","currentStoreName","CommonEnergyPriceSettings","EnergyPrice","showLoggerOptions","selectableLoggerTypes","handleLoggerTypeChange","AddStringLoggersPage","logger","updateEnergyDeviceMappings","loggerIndex","loggerMappings","allreadyCreatedCheck","mappingsWithThisVarible","updateProjectMeta","handleYesButtonClicked","handleNoLoggersClicked","addLogger","removeItem","isOneSelected","questionnaireItems","imageItems","Questionnaire","showError","activeIndex","activeItems","getGreyedOut","onQuestionnaireItemsChanged","validateSelection","handleCheckboxChange","selectedItem","defineWizardPath","setWizardSettings","withInverterIndices","loadWizardSettings","resetPathSpecificControllerMappings","neededSystems","nonAvailableSystems","hasGeneratorPort","neededSystemsControllerMappings","savedProducerOptionsEnabled","InverterConfiguration","checkWasSuccessful","noInverters","amountFromMqtt","amountInStore","allUploaded","serialNumberVariables","SerialNumberType","HybridInverter","StringInverter","filteredInverters","activateSerialNumbers","navigationDirectionCheck","sameAmountOfInverters","allInvertersAreConfirmed","checkSerialNumbers","installationWizardImports","ChargingStationSettings","contractCountryItems","BasicBillingInformation","currentImage","ownerValid","customToolbar","triggerValidation","updateTenant","tenantCopy","paymentInformation","PaymentInformation","taxKeys","sideCostObject","selectedCurrency","addSideCost","splitEqual","flatsFullAddress","sideCostPercentage","ExtraCosts","percentageValues","percentagesList","equalValue","lastValue","removeSideCost","updatebuildingAddress","showBuildingAddress","flatsCount","panels","currentFlat","hasEmptyValue","handleInput","FlatDetails","indexChanged","isInitialLoadingDone","buildingAddress","clientName","clientId","hasChargingStation","counters","oldFlatsCount","currentFlatConfig","statusList","updatePanels","showNumberOfFlats","handleClickPanelHeader","defaultFlatConfig","updateValid","allFlatsFilled","handleBuildingAddressChange","oldValue","valueDifference","mapFlatConfigList","tenantFlatsCopy","FlatsInformation","flatsValid","whereFlatsAllreadyDoneOnce","updateFlats","removeNoneSelectedItems","updateFlatsWithBuildingAddress","handleTariffSelectionChange","showAllDayTariffFields","productionTariffsValid","gridTariffsValid","tariffCost","TariffSettings","currentTariffSettings","addResidualElectricityComposition","clearFromResidualElectricityCompositionAt","WelcomePage","overallColdWaterCounterNumberList","removeOverallItem","overallColdWaterCounterIdArray","flatIndex","removeCounterFromFlat","counterLimits","ColdWater","localCounterLimits","valueNotAllowedCheck","otherCounterNumber","flatCounterNumber","noAutomappingVaribles","fillNumbers","addOverallItem","counterIndex","addCounterToFlat","convertNumbersToVariables","overallHeatingCounterNumberList","overallHeatingCounterIdArray","Heating","addItem","overallServiceWaterCounterNumberList","overallServiceWaterCounterIdArray","WarmWater","overallPVCounterNumberList","overallproductionCounterIdArray","overallProductionMeasurementItems","gridCounterNumber","gridCounterId","handleAcBatteryCheckbox","activateAcBattery","variablesForCombobox","variablesForComboboxFlats","selectedChargeStation","AddUserToChargeStationWindow","chargeStationItems","getChargeStationItemByType","getStatusFreeChargeByIndex","onAssignUser","Electricity","overallEnergyCounterIdArray","overallAcBatteryCounterIdArray","chargeStationValidationArray","chargeStationsValid","overallAcBatteryCounterNumberList","flatsFullAddressNumberList","overallEnergyCounterNumberList","electricityCounterAmount","disableCheckbox","flatsConfig","chargeStationMappingTexts","chargeStationSelectItems","showAcBatteryFeature","useFlatMappings","valueToCheck","variableValuesToCheck","decimalValue","binaryValue","supportedChargeStationTypes","indexOfDevice","webastoUniteIndex","numberArray","getInfoText","getMemberIdByMail","memberName","checkIfMemberIsAdmin","getCounterNumber","counterLists","excludeInternalCounters","counterList","variablesToExclude","energyCounterCurrentFlat","filteredCounterList","initAcBatteryField","getOverallProductionMeasurement","acBatteryNumbers","numberGridCounter","fillProductionCounter","updateMeasurements","clearInternalCounters","checkLrProductionCounters","decimal","houseHold","houseIndex","localReferenceInformation","ConsumptionComparison","selectedMonth","isCurrentMemberAdmin","wagoCounterCheckEnabled","BillingAndDocumentOutput","showLoader","download","measurementsUpdatedCorrectly","highestCounter","countOverallMeasurements","countFlatSpecificCounters","productionCountersFiltered","allCounters","counterNumbers","finalBillingSettings","getFirstOfMonth","toDateString","updateEnergyDevices","updateTenantModel","handleUpdateProject","gridNumber","emsDeviceCopy","energyViewDeviceCopy","mappingsEMS","mappingsEnergyView","overallConsumptionCounters","flatEnergyCounters","combinedArray","gridMappings","gridMappingsEnergyView","componentsToCheck","componentKeysToClear","overallMeasurementNumber","checkComponentIsSet","componentMapping","autoMappingEnable","overallCoolingCounterNumberList","overallCoolingCounterIdArray","Cooling","SystemInformation","hasLynusInverterFromProject","tenantWizardImports","FinalPage","AutoMapping","FinalLoggerPage","loggerInformationForBackend","getLoggerInformation","solarmanLoggerInfoObject","solarmanLoggerInfo","selectableLoggerTypesMaster","handleShowProducerChange","DefineLoggerId","Mixins","hasPv","showProducer","amountOfStringLoggers","amountOfHybridLoggers","loggerType","producerOptions","defaultLoggerObject","handleProducerChange","limitKeys","loadDataOnRevsitOfWizard","keysToCheck","currentEnergyView","systemMapping","loggerName","getLoggerNameFromVariable","updateLoggerInformation","pvType","loggerInfo","loggerId","strings","LoggerInformation","localIncludedSystemsTypes","includedSystemsTypesKey","handleBatteryChange","LoggerComponentsPage","localbatteryOptions","generatorPreviewInfo","initSystemRow","fillIncludedSystemTypes","infoElement","fillOnNavigationBackward","fillEnergyViewControllerMappings","houseMapping","gridMapping","loggerOverallType","keysToFill","systemDefinition","currentMappingIndex","loggerWizardImports","DefineLoggerIds","GeneralInformationsLogger","InviteUsersToProjectLogger","LoggerManualsPage","imports","WizardContent","stepsCount","activePage","activeStep","steps","showStep","subSteps","subStepIndex","InstallationSteps","subStep","stepIndex","currentItems","UserInformation","getTranslation","firstStepDescription","SideBar","UserInformationField","Wizard","InstallationWizard","hybridInverterIndices","serialNumberVariable","stringInverterIndices","hasEmsBattery","hasEnergyViewBattery","systemTestPageIndex","reloadPage","reload","createConnection","LoggerWizard","SetupAssistent","resetLoggerWizardWizard","resetDefaultWizard","setDefaultWizardStep","setDefaultWizardPage","setLoggerWizardStep","setLoggerWizardPage","activeDefaultWizardStep","currentDefaultWizardPage","activeLoggerWizardStep","currentLoggerWizardPage","navigationOptions","TenantWizard","tenantLoad","resetWizard","wizard","tariffsValid","handleFlatValidUpdate","areDownloadDatesValid","invoiceHistoryItems","handleDownload","availableTenants","handleTenantChange","currentSelectedTenant","selectionOptionsChart","selectedSeriesOption","tenantCommunicationStatusError","tariffInformation","consumptionStatDate","shouldShowChart","chartDataByType","chartSeriesArrays","overallChartDataByType","chartSeriesArraysOverall","TenantStatistic","errorTimer","showTenantCommunicationStatus","waterCounter","chartSeriesArraysPower","chartSeriesArraysOverallPower","tenantModel","displayOverallChart","displayAllDayTariff","powerMappingLength","flat_0","currentSettings","priceProduction","priceGrid","localConvertTimestampToDate","generateOverallChartOptions","checkTenantCommunicationStatus","startErrorTimer","availableFlats","tenantCounters","counterId","chartOptionByType","overallChartOptionByType","isOverall","InvoiceHistory","showLoadingIndex","fillInvoiceHistoryItems","startMonth","startYear","endMonth","endYear","monthDiff","monthMuliplicator","monthsToAdd","currentMonth","currentMonthModulo","startDateInvoiceItem","endDateInvoiceItem","invoiceHistoryItem","monthNames","dayNumbers","downLoadTenant","BasicTenantModelEditor","BasicTenantView","showLoaderSpecificDownload","tariffForm","deleteTenant","Tenant","currentViewIndex","wasModelUpdated","tenantModelUpdated","lastStep","currentComponent","SolarCalculator","showSolarCalculator","solarCalculationList","newSolarCalculatorId","openResult","solarcalculator_id","messageEvent","newSolarResult","created_by","workspaceCopy","solar_calculation_results","getFormatedDate","phone_number","handleFileUpload","PartnerInformation","logo","workers","tasks","offers","handleDeleteWorker","handleAddWorker","handleEditWorker","ManageWorker","ManageOffers","assetId","fileSelected","handleCreate","file_id","upload_by","Offer","deleteDocument","addDocument","offer","UploadFileModal","tableItems","onRoleChange","loadingText","showNoProjectConnected","showUserNotInProject","userNotAdmin","newMember","handleAddDefaultRooms","connectedProjectId","notification","origin","defaultRoomIdObject","showMembersNotificationCheckbox","membersNotificationMap","hasEmail","deleteRecipientFromRules","rulesWithEmailAction","addMemberToRuleActions","rulesWithNoMailAction","addDefaultRoomToUser","updatedUser","canUserAccessProject","loadProject","periodOptionButtons","tasksForGantt","rerenderSVG","selectedTask","selectedDependencies","DayRangeSelectionModal","showStartDatePicker","switchToEndSelection","emitName","resetVariables","ManageTask","availableDependencies","dateSelected","task","currentList","found","handleDateSelected","objectToEmit","DaySelectionModal","columnName","rowsWithExtraFormatting","valueOfColumn","getLengthOfDependencies","getDependenciesFormatted","DataTableRowHandler","getNameOfDependenciesByTaskId","TasksTable","currentTaskList","editId","onDropCallback","oldIndex","newIndex","movedTask","saveTaskChanges","handleDelete","removeTaskFromDependencies","handleTaskCreated","handleTaskUpdated","updateDependenciesWithNewID","oldId","newId","TaskTableRow","draggable","ProjectPlan","selectedPeriod","gantt","header_height","bar_height","bar_corner_radius","formatTasksForGantt","onTasksChange","refresh","handleManageTasksClosed","initGantt","refreshHeight","changPeriod","change_view_mode","translateHeader","initialLoad","ganttContainer","svg","querySelectorAll","newHeight","currentYear","node","isUpperText","classList","contains","textContent","innerHTML","cleanText","ganttElement","getElementById","Gantt","language","custom_popup_html","Documentation","ConnectWithProject","selectedProjectId","userNotInProject","getProjectNameById","getProjectLocationName","enterProject","PartnerProjectView","MAIN_MENU_ROUTES","DOCUMENTATION_ROUTES","PROJECT_MENU_ROUTES","PROJECT_SETTINGS_ROUTES","PARTNER_PROJECT_MENU_ROUTES","canAccessRoute","routeName","isSettingsEnabled","isRouteEnabled","VueRouter","routes","searchType","addProject","displayChangelog","children","workbenchButtons","dndSwitch","Measurements","advancedTitle","addAreaButton","toggleAreasViewButton","DevicesLibrary","addRuleButton","createReportButton","restartWizardButton","beforeEnter","createPartnerProjectButton","base","beforeEach","routeEnabled","routeAccess","collection","startDateActionTrigger","endDateActionTrigger","isTriggerActionTimesRight","math","limitedEvaluate","evaluate","limitedParse","getVariableCount","exprWithoutNewlines","canBeParsed","newExpression","foundIndex","import","override","isAlpha","cPrev","cNext","measurementsDataLoaded","measurementValue","filteredList","joinedMeasurements","additionalVariablesToFilter","setMeasurementsCount","modifyVariableAlias","yellow","isExternalEnergyMeasurements","houseCircleData","isDay","picker","isColumn","datePeriod","setSeconds","handleDateFormat","toLocaleString","nameTypeValidation","showLoadingSpinner","addButtonVisibility","chartTypes","scalingMethods","optionsValid","chartWidthOptions","handleScaling","onScalingInput","ManageChartsView","setScaling","CalculationAggregationWindow","listItems","ExpressionTextArea","localExpressionVariable","expressionVariable","rulesForExpressionField","checkVariableNames","parenthesisRule","checkParenthesis","allowedCharsRule","checkAllowedChars","variableCountRule","checkVariableCount","generalEpressionRule","checkGeneralExpression","onExpressionVariableChange","setFocusOnField","textArea","focus","checkNotNull","changeErrorHandling","allOk","testCharacters","variablesState","emitChanges","varNames","fullExpression","availableVariables","notAllowedChars","variableCount","Mentionable","ManageChartsCalculation","onExpressionChange","defineAggregations","diff","removeCount","abs","changeOptions","validateSelects","timeOutLength","parseScalings","toNumber","initData","ProjectChips","chips","isInsideAppbar","isInsideSettings","removeChip","onOff","setMinutes","today","subtract","timePicker","selecting","isNavigation","showProjectStatus","handleAreasView","handleDnd","closeRuleDialog","closeReportDialog","Search","partnerWorkspacesState","serialNumbersState","onInput","UserProfile","handleLogout","projectModel","logoutFn","onMenu","onTooltip","languages","handleLocale","Localisation","selectedLanguage","saveLocale","currentLocales","loadLocale","lynusLocales","offlineTimerMessage","offlineTimerMessageTooltip","internetConnected","Time","getDateFromSeconds","delta","days","OfflineTimer","onRouteChange","loadOfflineTimer","onProjectStatusChange","getDateShort","hoursStr","minutesStr","getDateLong","dayStr","lastHB","timeDifference","NewReport","reportsList","selectedPartner","resetToDefault","partnerId","createWorkspace","menu","projectStatusList","selectByProjectStatus","selectedSystemType","selectedBatterySystemType","TagsFilterPopup","projectAmountByStatus","additional","AllBatteryTypes","handleClearSystemTypeFilter","handleProjectsChange","ProjectTags","PartnerProjectFilter","toggleTheme","ToggleThemesButton","saveTheme","opacity","currentLynusTheme","loadTheme","InternetStatusIndicator","internetStatus","showDuplicates","showOnlyFaulty","CreateSerialNumber","serialNumberFormatError","modelTypeFormatError","duplicates","inverterArray","serialNumberTypeItems","ChargeStation","rowStyle","serialNumbersCheck","resetForm","files","readFilesPromises","endsWith","readFile","reader","FileReader","lines","isFirstSheet","workbook","XLSX","SheetNames","sheetName","worksheet","Sheets","sheetLines","sheet_to_csv","separator","mTypeIndex","mSnCodeIndex","systemTypeIndex","systemtype","filename","readAsBinaryString","AppBar","showInternetStatus","handleOfflineTimerMessage","isLoggerProject","RuleModalWindowInstance","createRoom","createRoomState","handleRestartWizard","ProjectFilterPopup","getLogo","handleLogoClick","iconSizes","IconLights","AppDrawer","currentNavigationType","fullNavigationList","navigations","navigationList","isLynusSupport","homeNavigationRoute","isLight","isCustomLib","AppView","ReportMessage","closeReport","ReleasesNotes","sleekScriptTag","initialLoadDone","isLynusLatestReleasesNotesSeen","clear","debouncedLoadSleekplan","display","$sleek","shutdown","sleek","SLEEK_PRODUCT_ID","localVersion","lynusLatestReleasesNotesSeen","getSleekplanId","onSleekClose","loadSleekplan","initSleekplanListeners","App","Vuetify","iconfont","customProperties","themes","productionTip","VueKonva","HighchartsVue","ResizeObserver","VueQrcode","VueCtkDateTimePicker","VueGauge","VueEditor","mixin","projectOpenSubpage","favicon","VueKeyCloak","realm","onLoad","checkLoginIframe","logout","redirectUri","onReady","tokenParsed","sub","given_name","family_name","staff","vuetify","$mount","pushButtonBaseType","trigger","sendSingleValue","sendConfirmed","playPauseUp","mouseLeave","buttonSize","buttonWidth","buttonHeight","iconColor","defaultButtonCurrentState","isStateEqualToCustomButtonDisabledValue","isNotMapped","handleLeave","DefaultButton","buttonComponent","buttonElement","blur","dialogActive","RonovatecConfirmationDialogButton","handleEvent","playPauseIcon","RonovatecPlayPauseButton","StaticIconAndTextButton","RonovatecUpDownButton","RonovatecOverEachOtherButton","sendUpValue","customButtonDisabledValue","buttonTypesToCheck","isSendSingleValue","singleSendValue","checkForMouseLeave","isZero","notificationCheckboxLoading","onOwnerChange","isInWizard","isWizard","currencySelectionItems","handleEnergyPriceChange","handleValidationChange","isLocalOriginEnergyPriceEqual","maxSliderValue","prependIcon","onIsActiveChange","sendingTimeout","leading","handleStateDragging","throttledSendValue","handleStateEnd","allowedValues","fallback","dummyCount","amountOfNonConsumerHeatingPumps","subtractValue","energyDevice","emsSystemsLimits","projectSystemType","indexOfConsumerHeatingPump","hasConsumerHeatingPump","newComponents","countOfLoggers","noLineText","lineText","defaultMap","defaultMapCopy","customOpenDelay","vars","allDays","chartStyles","ChartLoader","isChartInitDone","lineOption","hasStackingOptionsChanged","hasLineOptionChanged","fistSeries","margin","handleFullScreenNavigationButton","switchPeriodAndLoad","livePeriod","updateFullScreenNavigation","currentFullScreenNavigationButtonsList","prevHourButton","nextHourButton","prevDayButton","nextDayButton","prevWeekButton","nextWeekButton","prevMonthButton","nextMonthButton","prevYearButton","nextYearButton","fullScreenNavigationButtonsSchemas","fullScreenNavigationButtons","currentPeriodStart","exportingEnabled","isFullScreenOpen","updateLineData","chartDataUpdated","targetType","chartOption","chartOptionCopy","renderChart","selectedLineOptions","chartDataCopy","sliderMaxLength","langString","toLocaleTimeString","langSettingSting","startValue","endValue","defineTime","SimpleChart","ForecastMock","tempValveYAxis","weatherYAxis","roomTemp","air","globalRadiation","tempValveSeries","weatherSeries","ChartMock","disableMinMaxFilter","borderStyle","borderTop","isPresentInRules","currentRule","ruleEmailActions","isPresentInConnectivityCheck","roomIdObject","1001","1002","devicesInRoom","roomsToAdd","getMailSubject","alertAction","submitChanges","updateConnectivityCheck","mailActionObject","actionIndex","recipient","hasAlertAction","alertActionObject","ruleCopy","timePeriods","deleteCondition","addCondition","localRule","isTimeoutRule","selectedTimeOption","minValueTimeout","maxValueTimeout","secondsTimeoutRule","handleRule","nameRule","variableRule","conditionRule","prevTimeOption","otherTimeoutRule","handleIsTimeoutRuleChange","onTimeOptionsChange","initSelectedTimeOption","actionType","modifyRule","addRule","alert","AlertAction","isLineActive","isMovementReverse","color2Reverse","isReverseMovementDefault","isEnergyFlow","EMSCanvasArrow","publishCallback","setStateAndReset","stateResetTimeout","enteredName","secondsLeft","deletionOnGoing","showAbortDelete","deletionWasAborted","totalSeconds","progressBarWidth","deletedItemName","abortDeletion","resetAll","ErrorWarningMode","nameRules","titleRules","streetRule","cityRule","countryRule","gridRule","usernameRules","customRules"],"mappings":"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CnB5/D,iBAAkB,UAClB6/D,0BAA2B,UAC3BC,kBAAmB,UACnBC,aAAc,UACdC,WAAY,UACZC,cAAe,UACfx1G,MAAO,UACPy1G,QAAS,UACTC,UAAW,UACXt6C,MAAO,YAGXu6C,QAAS,CACP,cACA,kBACA,cACA,cACA,sBACA,qBACA,0BACA,yBACA,WACA,kBACA,eACA,gBACA,gBACA,iBACA,oBACA,mBACA,oBACA,mBACA,YACA,cACA,iBACA,gBACA,iBACA,eACA,mBACA,eACA,UACA,WACA,mBACA,YACA,kBACA,0BACA,mBACA,mBACA,cACA,KACA,kBACA,iBACA,eACA,cACA,cACA,cACA,QACA,kCACA,iCACA,QACA,eACA,4BACA,YAGFC,iBAAkB,CAEhB,sBACA,qBACA,uBACA,MACA,sBACA,oBACA,iBAEFC,6BAA6B,EAC7BC,qBAAsB,CACpB,YACA,QACA,kBACA,YACA,gBACA,YACA,WACA,QACA,aACA,SACA,qBACA,gBAEFC,yBAA0B,CACxB,UACA,cACA,eACA,OACA,cACA,iBAEFC,qBAAsB,CACpB,UACA,SACA,oBACA,OAEFC,kBAAmB,CACjB,eACA,eACA,yBACA,iBAEFC,0BAA2B,CACzB,sBAAuB,CACrB,SACA,SACA,aACA,QACA,UACA,SACA,SACA,UACA,sBACA,UACA,kBACA,cACA,UAEF,OAAU,CACR,OACA,WAGJC,wBAAyB,CACvB,oBACA,OAEFC,iBAAkB,CAChB,SACA,WAEFC,kBAAmB,CACjB,OACA,UACA,gBACA,YACA,oBACA,mBACA,0BAGFC,6BAA8B,CAC5B,sBAEFC,sBAAuB,mBACvBC,uBAAwB,GAGxBC,+BAA+B,EAC/BC,4BAA4B,EAC5BC,mBAAoB,CAClB,aACA,UACA,sBAEFC,mBAAmB,EACnBC,mCAAmC,EACnCC,6BAA8B,CAC5B,SAAY,CACV,aAAgB,CACd,gBACA,aACA,eACA,aACA,eACA,YACA,aACA,gBAGF,cAAiB,CACf,OACA,SACA,aAEF,YAAe,CACb,OACA,UAEF,mBAAsB,CAEpB,kBACA,YACA,gBACA,YACA,QACA,aACA,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AY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,KAC7vD,IAAO,CAAC,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,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AAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,OAC5zD,SAAY,CAAC,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,OAC50D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/3D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OACj4D,kBAAqB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/4D,kBAAqB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/4D,gBAAmB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC74D,gBAAmB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC74D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/3D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OACv3D,OAAU,CAAC,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,SAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KACnwD,OAAU,CAAC,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,SAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,KACrwD,YAAe,CAAC,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,SAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,UAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,QACl8D,WAAc,CAAC,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,SAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,MACrxD,WAAc,CAAC,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,SAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,MAG9qDA,U,aCUf,IAAqB9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UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,SAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,KAC7vD,IAAO,CAAC,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAA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,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,OAC5zD,SAAY,CAAC,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,OAC50D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/3D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OACj4D,kBAAqB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/4D,kBAAqB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/4D,gBAAmB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC74D,gBAAmB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC74D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OAC/3D,cAAiB,CAAC,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,SAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,IAAK,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,UAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,MAAO,CAAC,WAAY,OACv3D,OAAU,CAAC,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,SAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KACnwD,OAAU,CAAC,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,SAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,KACrwD,YAAe,CAAC,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,SAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,UAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,UAAY,KAAM,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,OAAQ,CAAC,WAAY,KAAM,CAAC,WAAY,QACl8D,WAAc,CAAC,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,SAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,GAAI,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,UAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,KAAM,CAAC,WAAY,MACrxD,WAAc,CAAC,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,GAAI,CAAC,SAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,UAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,GAAI,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,UAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,IAAM,CAAC,WAAY,MAG9qDA,UCUf,IAAqB9kG,GAArB,cAAwC9hD,OAAxCC,c,oBAGE,KAAA+rB,gBAAiB,EACjB,KAAA8vG,YAAc,EACd,KAAA1wG,IAAW,KACX,KAAAg/B,UAAiB,KACjB,KAAA7rD,IAAM,KACN,KAAAyoJ,oBAAsBC,GAEtB,KAAAH,2BAA6B,QAE7B,KAAAxtC,aAAestC,GAEf,kBACE,OAAOzmJ,KAAK7C,GAAG,4BAGjB,qBAAkB,YAChB,OAAY,QAAZ,EAAI6C,KAAKirB,WAAG,OAAM,QAAN,EAAR,EAAU31B,YAAI,OAAM,QAAN,EAAd,EAAgBmO,YAAI,OAAQ,QAAR,EAApB,EAAsBynB,cAAM,OAA5B,EAA8B9f,eAAuBpL,KAAKirB,IAAI31B,KAAKmO,KAAKynB,OAAO9f,eACvE,KAGd,qBACE,MAAM9V,EAAY,GAWlB,OAVAS,OAAOyN,QAAQxD,KAAKm5G,cAAc9zG,QAAS8U,IACrCA,EAAO,GAAG1J,SAAS,SAAW0J,EAAO,GAAG1J,SAAS,WACnDnb,EAAK6kB,EAAO,IAAM,CAChBmc,SAAUt2B,KAAK84C,IAAI3+B,EAAO,GAAG/W,OAAQu3H,GAAeA,EAAM,GAAK,IAC/DnkG,SAAUx2B,KAAK84C,IAAI3+B,EAAO,GAAG/W,OAAQu3H,GAAeA,EAAM,GAAK,KAGjErlI,EAAK6kB,EAAO,IAAMna,KAAK84C,IAAI3+B,EAAO,MAG/B7kB,EAGTwjD,IAAIv1C,GACF,IAAIu1C,EAAM,EAIV,OAHAv1C,EAAI8B,QAASs1H,IACX7hF,GAAO6hF,EAAM,KAER7hF,EAGTqE,mBAAmBM,GACjBz9C,KAAK6rB,eAAiB4xB,EAGxB,gBAAgBp6C,GACdjJ,aAAa4F,KAAKiqD,WAClBjqD,KAAKiqD,UAAYtvD,WAAW,KACf,kBAAP0I,GACFrD,KAAKutC,UAAU,KAAK,MACK,QAAtB,EAAAvtC,KAAK8J,MAAMzG,UAAW,OAAtB,EAAwBg4G,qBAG5B,KAGL,uBACEr7G,KAAKirB,IAAM,KAGb,mBAhE0B3qB,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,gDADNmhD,GAAU,gBAf9BlhD,eAAU,CACT2H,WAAY,CACV+1C,sBACAtN,yBACAmN,oBACAlxC,wBACAivG,kBACA8B,kBACApE,oBACAhwD,sBACAw8F,WACArkB,aACA70H,sBAGiB40C,cC/Bqc,MCQtd,I,UAAY,eACd,GACA,EACA3jD,GACA,EACA,KACA,KACA,OAIa,U,8BCnBfxG,EAAOD,QAAU,IAA0B,0B,kCCA3C,W,kCCAA,W,uwBCAA,IAAIiI,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,eAAe,CAAEE,EAAIwyC,MAAMwqD,aAAcj9F,EAAG,eAAeC,EAAIo+C,KAAKr+C,EAAG,MAAM,CAACkQ,IAAI,QAAQ/P,MAAOF,EAAIo8M,YAAan8M,MAAM,CAAC,GAAK,kBAAkBmB,GAAG,CAAC,MAAQpB,EAAI6hF,sBAAsB,IAExS5gF,EAAkB,G,4DCFlBwB,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,gBAAgB,CAACC,EAAG,gBAAgB,CAACE,MAAM,CAAC,MAAQ,YAAYF,EAAG,MAAM,CAACD,YAAY,QAAQ,CAACE,EAAI4N,GAAG,IAAI5N,EAAIW,GAAGX,EAAIo+L,aAAa,QAAQ,IAE5Pn9L,EAAkB,G,YCQtB,IAAqBo7M,EAArB,cAAyCv5M,OAAzCC,c,oBAGE,KAAAq7L,YAA+B,GAE/B9zL,UACErH,KAAK+/B,MAAQplC,WAAW,KACtBqF,KAAKm7L,YAAcn7L,KAAK7C,GAAG,8CAC1B,MAGL0/C,gBACEziD,aAAa4F,KAAK+/B,SAZDq5K,EAAW,gBAL/B34M,eAAU,CACT2H,WAAY,CACV00C,yBAGiBs8J,WCVyb,I,wBCQ1c14M,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,yFCCf,IAAqBiuE,EAArB,cAAiD9uE,OAAjDC,c,oBAcE,KAAAyvC,MAAa,KACb,KAAAogB,eAAsB,KACtB,KAAA2sB,cAAqB,KACrB,KAAAnB,oBAAsB,OACtB,KAAAlN,SAAW,SACX,KAAAorI,iBAAkB,EAClB,KAAAC,WAA0C,UAC1C,KAAAC,2BAA4B,EAC5B,KAAAC,sBAAuB,EAGvBz8B,YAAY77K,GACNA,GACFlB,KAAKiC,MAAM,gBAKforI,kBAAkBnsI,GAAY,YAClB,QAAV,EAAAlB,KAAKuvC,aAAK,OAAV,EAAY+uC,eAAep9E,GAC3B,MAAMu4M,EAAkBz5M,KAAKiuD,UAAU34D,KAAK0O,aAAa,GAEzD,QAA+BtJ,IAA3B++M,EAAWl/G,YAA2B,OACxC,IAAIC,EAAkB,GACtBx6F,KAAKiuD,UAAU34D,KAAK0O,aAAaqB,QAAS2C,IACxCwyF,EAAWpkG,KAAK4R,EAAQuyF,eAE1BC,EAAa/b,OAAY0E,cAAcqX,EAAYt5F,GACzC,QAAV,EAAAlB,KAAKuvC,aAAK,OAAV,EAAYgvC,eAAeic,OACtB,OACK,QAAV,EAAAx6F,KAAKuvC,aAAK,OAAV,EAAYgvC,eAAev+E,KAAKw+E,aAExB,QAAV,EAAAx+E,KAAKuvC,aAAK,OAAV,EAAY8uC,cACmD,QADtC,EAC0B,QAD1B,EACvBr+E,KAAKrC,SAASwL,MAAMsmC,aAAaC,wBAAgB,aAAjD,EAAmDnmC,kBAAU,QAAI,WAGrE,kBACE,OAAOk1E,OAAYpgB,OAAOr+D,KAAKrC,SAASwL,MAAMC,MAGhD,kBACE,MAAO,CACLumC,MAAO3vC,KAAKm7E,oBACZ1X,OAAWzjE,KAAKguD,YAAR,KACR0rJ,OAAQ,UAKZ,kCACE,MAAO,CACL58H,cAAe,CACbjtC,SAAS,GAEXktC,WAAY,CACVzsE,KAAMtQ,KAAK7C,GAAG,qCACd6/E,QAAS//D,gBACDjd,KAAK25M,iCAAiChmK,OAAQM,OAEtD9qC,MAAO,CAAEwmC,MAAO,KAElBytC,YAAa,CACX9sE,KAAMtQ,KAAK7C,GAAG,sCACd6/E,QAAS//D,gBACDjd,KAAK25M,iCAAiChmK,OAAQK,QAEtD7qC,MAAO,CAAEwmC,MAAO,KAElB0tC,WAAY,CACV/sE,KAAMtQ,KAAK7C,GAAG,qCACd6/E,QAAS//D,gBACDjd,KAAK25M,iCAAiChmK,OAAQI,OAEtD5qC,MAAO,CAAEwmC,MAAO,KAElB2tC,UAAW,CACThtE,KAAMtQ,KAAK7C,GAAG,oCACd6/E,QAAS//D,gBACDjd,KAAK25M,iCAAiChmK,OAAQG,MAEtD3qC,MAAO,CAAEwmC,MAAO,KAElBwvC,WAAY,CACV7uE,KAAMtQ,KAAK7C,GAAG,qCACd6/E,QAAS//D,gBACDjd,KAAK25M,iCAAiChmK,OAAQE,OAEtD1qC,MAAO,CAAEwmC,MAAO,KAElByvC,WAAY,CACV9uE,KAAMtQ,KAAK7C,GAAG,qCACd6/E,QAAS//D,UAAW,MAClBE,cAAcnd,KAAKs8E,qBACH,QAAhB,EAAMt8E,KAAKuvC,aAAK,aAAV,EAAYqqK,oBAAoBjmK,OAAQC,KAAM/zC,OAAI7J,UAAUsrC,UAAUC,cACtEvhC,KAAKiC,MAAM,+BAAgC0xC,OAAQC,MACzD5zC,KAAK65M,aACL75M,KAAK85M,2BAA2B95M,KAAK+5M,wCAAwC,IAE/E5wM,MAAO,CAAEwmC,MAAO,KAElBqqK,eAAgB,CACd1pM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElBsqK,eAAgB,CACd3pM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElBuqK,cAAe,CACb5pM,KAAM,WACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,OAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElBwqK,cAAe,CACb7pM,KAAM,WACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,OAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElByqK,eAAgB,CACd9pM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElB0qK,eAAgB,CACd/pM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElB2qK,gBAAiB,CACfhqM,KAAM,aACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,SAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElB4qK,gBAAiB,CACfjqM,KAAM,aACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,SAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElB6qK,eAAgB,CACdlqM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,MAElB8qK,eAAgB,CACdnqM,KAAM,YACN0sE,QAAS//D,UACPjd,KAAK6uE,6BAA6B,OAAQ,QAC1C7uE,KAAKiC,MAAM,+BAAgC0xC,OAAQG,MAErD3qC,MAAO,CAAEwmC,MAAO,OAItB,yCACE,MAAO,CACL0C,KAAM,CAAC,iBAAkB,iBAAkB,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,iBAC/HhxC,IAAK,CAAC,gBAAiB,gBAAiB,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,iBAC5HwzC,KAAM,CAAC,iBAAkB,iBAAkB,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,iBAC/HvzC,MAAO,CAAC,kBAAmB,kBAAmB,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,iBAClIC,KAAM,CAAC,iBAAkB,iBAAkB,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,iBAC/H8yC,KAAM,CAAC,aAAc,aAAc,YAAa,aAAc,cAAe,aAAc,kBAG/F,6CACE,MAAM0E,EAAY,IAAI/4C,KAAK06M,mCAAmC16M,KAAKgoD,gBAAgBnN,UACnF,IAAI30C,EAAM,GAIV,OAHA6yC,EAAK1zC,QAASgoB,IACZnnB,EAAM,IAAKA,EAAK,CAACmnB,GAASrtB,KAAK26M,4BAA4BttL,MAEtDnnB,EAET,mCAAmC+wC,EAAmB+Q,GACpD7qC,cAAcnd,KAAKs8E,eACnB,MAAMs+H,EAAqB56M,KAAKuvC,MAAMu/B,YAAYhuE,MAC5C8+E,EAAU5oC,eAAW4jK,EAAoB3jK,EAAW+Q,GACpD5lB,EAAMqQ,gBAAU,IAAIjxC,MAAO6R,YAC3B,MAAEvS,GAAUm0C,eAAsBxC,eAAUzyC,KAAKw5F,WAAYxxC,GAE5B,MAAnClnD,GAAS8+E,GAAWA,EAAUx9C,SAChB,QAAhB,EAAMpiC,KAAKuvC,aAAK,aAAV,EAAY2kF,kBAAkBt0C,EAAS//E,OAAI7J,UAAUsrC,UAAUC,QAGzE,uCAAuClU,GAAc,QACnDlQ,cAAcnd,KAAKs8E,qBACH,QAAhB,EAAMt8E,KAAKuvC,aAAK,aAAV,EAAYqqK,oBAAoBvsL,EAAQxtB,OAAI7J,UAAUsrC,UAAUC,cAChEvhC,KAAKiC,MAAM,+BAAgCorB,GACjDrtB,KAAK85M,2BAA2B95M,KAAK+5M,wCAAwC,GAC7E/5M,KAAKiC,MAAM,qBAAgC,QAAZ,EAAEjC,KAAKuvC,aAAK,aAAV,EAAYmgB,cAE/C4gB,mBAAgB,MACJ,QAAV,EAAAtwE,KAAKuvC,aAAK,OAAV,EAAY+gC,mBAEdwpI,2BAA2B7zL,EAAiB40L,GAAyB,QAExD,QAAV,EAAA76M,KAAKuvC,aAAK,OAAV,EAAYA,MAAcsuC,OAAO,CAChC53D,WAAY,CACVg4D,cAAe,CACbpuC,SAAS,EACT1mC,MAAO,CACLlM,MAAO,CACLiP,MAAOlM,KAAKrC,SAASwL,MAAMC,KAAO,QAAU,SAE9CqxC,KAAMz6C,KAAKrC,SAASwL,MAAMsmC,aAAaC,iBACvCyuC,OAAQ,CACNC,MAAO,CACL3jC,KAAMz6C,KAAKrC,SAASwL,MAAMC,KAAO,UAAY,WAE/CqxC,KAAMz6C,KAAKrC,SAASwL,MAAMsmC,aAAaC,iBACvCyuC,OAAQ,CACNC,MAAO,CACL3jC,KAAMz6C,KAAKrC,SAASwL,MAAMC,KAAO,UAAY,gBAOzDwmC,UAAW,CACTitC,QAAS,KACThtC,SAAS,KAIF,QAAV,EAAA7vC,KAAKuvC,aAAK,OAAV,EAAYA,MAAcsuC,OAAO,CAChC53D,WAAY,CACVg4D,cAAe,CACbpuC,SAAS,EACT1mC,MAAO,CACLlM,MAAO,CACLiP,MAAOlM,KAAKrC,SAASwL,MAAMC,KAAO,QAAU,SAE9CqxC,KAAMz6C,KAAKrC,SAASwL,MAAMsmC,aAAaC,iBACvCyuC,OAAQ,CACNC,MAAO,CACL3jC,KAAMz6C,KAAKrC,SAASwL,MAAMC,KAAO,UAAY,WAE/CqxC,KAAMz6C,KAAKrC,SAASwL,MAAMsmC,aAAaC,iBACvCyuC,OAAQ,CACNC,MAAO,CACL3jC,KAAMz6C,KAAKrC,SAASwL,MAAMC,KAAO,UAAY,gBAOzDwmC,UAAW,CACTitC,QAAS52D,EACT4pB,QAASgrK,KAIfh/G,qBACO77F,KAAKuvC,MAAcurK,iBAAkB96M,KAAK85M,2BAA2B,MAAM,GAC3E95M,KAAK85M,2BAA2B95M,KAAK+5M,wCAAwC,GAGpFvpI,iBAAc,MACF,QAAV,EAAAxwE,KAAKuvC,aAAK,OAAV,EAAYihC,iBACZxwE,KAAKu5M,2BAA4B,EAMnC,+BACE,OAAQv5M,KAAKs5M,YACX,IAAK,UACHt5M,KAAKs5M,WAAa,OAClB,MACF,IAAK,OACHt5M,KAAKs5M,WAAa,OAClB,MACF,QACEt5M,KAAKs5M,WAAa,UAEtBt5M,KAAKw5M,sBAAuB,EAC5Bx5M,KAAK+6M,iBAGPA,iBACE,IAAIC,EACJ,GAAwB,YAApBh7M,KAAKs5M,WAEP0B,EAAmB,IAAIh7M,KAAKiuD,UAAU34D,KAAK0O,kBACtC,CACL,MAAMi3M,EAAiC,SAApBj7M,KAAKs5M,WAAwB,OAAS,OACzD0B,EAAmBh7M,KAAK2vD,eAAer6D,KAAK0O,aAAaH,IAAKq3M,IAC5D,MAAMC,EAAkBllM,IAAEH,UAAUolM,GAIpC,MAHmC,cAA/BC,EAAgB11M,aAClB01M,EAAgBviN,KAAOqiN,GAElBE,IAKXn7M,KAAKuvC,MAAMA,MAAMvjC,OAAO3G,QAAQ,CAAC2G,EAAaqN,KAC5CrN,EAAO6xE,OAAO,CACZjlF,KAAMoiN,EAAiB3hM,GAAOzgB,SAKpCgmF,oBAAiB,MACL,QAAV,EAAA5+E,KAAKuvC,aAAK,OAAV,EAAYsvC,cAGdg7H,aACE75M,KAAKs8E,cAAgBt/D,YAAY,KAAK,MACpC,MAAM8kE,EAAiB3vC,eAAgBnyC,KAAK2vD,gBAAgB9rD,IAAI,CAACusD,EAAkB/2C,KACjF,GAAgE,cAA5DrZ,KAAK2vD,eAAer6D,KAAK0O,aAAaqV,GAAO5T,WAC/C,OAAO,KACF,GAAIzF,KAAK2vD,eAAer6D,KAAKuP,UAAwE,SAA5D7E,KAAK2vD,eAAer6D,KAAK0O,aAAaqV,GAAO5T,WAAuB,CAGlH,MAAM8K,EAAWvQ,KAAK2vD,eAAer6D,KAAKuP,SACtC9O,OAAO02B,OAAOzsB,KAAK2vD,eAAer6D,KAAKuP,UAAUwU,GACjD+2C,EAAYnsD,IAEhB,OAAOjE,KAAK4xB,aAAarhB,GAGzB,OAAO6uF,eAAUhvC,EAAYq4B,YAAYnrF,WAAY0C,KAAK4xB,gBAGpD,QAAV,EAAA5xB,KAAKuvC,aAAK,OAAV,EAAY2yC,uBAAuBJ,IAClC,KAGLR,oBACE,IAAKthF,KAAK4vD,gBAAiB,OAC3B,MAAM2xB,EAAgB,CAAC,CACrBt9E,IAAK,GACLqH,KAAM,GACN7Q,KAAM,GACN4Q,QAAS,CAAElL,IAAK,EAAGC,IAAK,KACxB+K,IAAK,MACLvS,KAAM,OACN6M,WAAY,cAEbzF,KAAK2vD,eAAer6D,KAAa0O,aAAe,IAAIhE,KAAK2vD,eAAer6D,KAAK0O,gBAAiBu9E,GAGjG1R,iBACE,OAAO7vE,KAAKuvC,MAGd,mBAAmB3tC,GAAY,YACb,QAAhB,EAAM5B,KAAKuvC,aAAK,aAAV,EAAY2kF,kBAAkBtyH,EAAM/B,OAAI7J,UAAUsrC,UAAUC,QAGpE,oBAAiB,kBACC,QAAhB,EAAMvhC,KAAKuvC,aAAK,aAAV,EAAYizC,cAA+C,QAAhC,EAAAxiF,KAAK2vD,eAAer6D,YAAY,aAAhC,EAAkCiP,kBACnD,QAAhB,EAAMvE,KAAKuvC,aAAK,aAAV,EAAYqqK,oBAAoB55M,KAAKgoD,cAAenoD,OAAI7J,UAAUsrC,UAAUC,QAClFvhC,KAAKiC,MAAM,eACXjC,KAAKiC,MAAM,qBAAgC,QAAZ,EAAEjC,KAAKuvC,aAAK,aAAV,EAAYmgB,cAG/C,kBAAe,cACG,QAAhB,EAAM1vD,KAAKuvC,aAAK,aAAV,EAAYiuC,UAAUx9E,KAAK2M,MAAMb,eACvB,QAAhB,EAAM9L,KAAKuvC,aAAK,aAAV,EAAYkuC,WAAWz9E,KAAK8J,MAAMylC,cAClCvvC,KAAKo7M,cAEPp7M,KAAKgoD,gBAAkBrU,OAAQC,MAAM5zC,KAAK65M,aAC9C75M,KAAKiC,MAAM,iBAAiB,GAExBjC,KAAKiuD,UAAU34D,KAAK+lN,sBACtBr7M,KAAKs5M,WAAat5M,KAAKiuD,UAAU34D,KAAK+lN,oBACtCr7M,KAAK+6M,kBAIT1zM,UAAO,QACLrH,KAAK2vD,eAAiB15C,IAAEH,UAAU9V,KAAKiuD,WACvCjuD,KAAKshF,oBACLthF,KAAKuvC,MAAQ,IAAI8yC,OACfriF,KAAK2vD,eACL3vD,KAAK8C,OAAOC,OAAO9C,GACnB0xC,OACA3xC,KAAKrC,SAASwL,MAAMC,KACpBpJ,KAAKw5F,UACwD,QAD/C,EACmC,QADnC,EACdx5F,KAAKrC,SAASwL,MAAMsmC,aAAaC,wBAAgB,aAAjD,EAAmDnmC,kBAAU,QAAI,UACjEvJ,KAAK2vD,eAAer6D,KAAKmW,wBACzB2oC,OACAp0C,KAAKw+E,YACLx+E,KAAKsrD,yBACLtrD,KAAK25F,YACL35F,KAAK6wE,cAGP7wE,KAAK4uE,YACL5uE,KAAKq5M,iBAAkB,EAEzB,sBACE,MAAMiC,EAAgBrlM,IAAEH,UAAU9V,KAAKiuD,WACnCjuD,KAAKu5M,4BAEP+B,EAAchmN,KAAKmW,wBAA0BzL,KAAKuvC,MAAMozC,gBACxD3iF,KAAK+sB,aAAa,CAAE9iB,OAAQqxM,EAAexuL,YAAY,KAErD9sB,KAAKw5M,uBAEP8B,EAAchmN,KAAK+lN,oBAAsBr7M,KAAKs5M,WAC9Ct5M,KAAK+sB,aAAa,CAAE9iB,OAAQqxM,EAAexuL,YAAY,KAGxD9sB,KAAK8J,MAAMylC,MAAcg1D,oBAAoB,mBAAoB,IAAMvkG,KAAK67F,sBAC7E1+E,cAAcnd,KAAKs8E,eAErBzL,aAAav7E,EAAWi6C,EAAYliB,GAClCrtB,KAAKiC,MAAM,eAAgB3M,EAAMi6C,EAAOliB,KArclC/sB,gBAAPC,kBAAM,gCACCD,gBAAPC,kBAAM,iCACuBD,gBAA7BC,eAAK,CAAEC,aAAS9F,KAAY,kCACH4F,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,sCACHF,gBAArBC,eAAK,CAAEC,QAAS,KAAI,oDACKF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,wCACOF,gBAA/BC,eAAK,CAAEC,QAASmzC,OAAQG,OAAM,oCACTxzC,gBAArBC,eAAK,CAAEC,QAAS,KAAI,gCAC8CF,gBAAlEC,eAAK,CAAEC,QAAS,KAAM,CAAGa,IAAK,EAAGwzC,KAAM,EAAGvzC,MAAO,EAAGC,KAAM,OAAO,+CAC1DjB,gBAAPC,kBAAM,kCAC8BD,gBAApC4H,eAAO,8BAA4B,mCACJ5H,gBAA/B6H,eAAO,yBAAuB,mCAa/B7H,gBADC6B,eAAM,qBAAsB,CAAEuM,MAAM,KAAO,gCAQ5CpO,gBADC6B,eAAM,wBAAsB,sCA/BVwsE,EAAmB,gBALvCluE,eAAU,CACT2H,WAAY,CACVgxM,kBAGiBzqI,WCpBwb,ICQzc,G,UAAY,eACd,EACAnvE,EACAxB,GACA,EACA,KACA,WACA,OAIa,S,mrkGCnB6BlB,EAAOwN,W,IAAS7K,EAAM,KAAuB,EAAO3C,EAAG,MAAM,GAACD,EAAY,kBAAa,OAAM,QAAM,CAACA,YAAY,eAAS,CAACE,EAAG,MAAO,CAA4CF,YAAY,SAAqB,CAACC,EAAG,QAAU,EAAC,mCAACE,YAAM,qB,CAAC,SAAW,C,MAAY,CAAG,MAAMD,EAAIw+M,MAAgB,IAAM,EAAG,IAAO,EAAC,gBAAS,OAAkB,eAAwB,eAAc,GAAS,cAAa,UAAK,uBAAG,aAAC,M,GAA0B,CAAiC,kBAAE,4B,YAA2C,KAAU,E,IAAC,c,GAAkB1+M,W,MAA8CqC,SAAY,C,YAAY,kCAAO,aAAIpC,YAAUC,S,CAA8EtC,QAAK,GAAM,wD,WAAS,EAASe,KAAK,OAAsC8B,iBAA6C,uCAAC4B,WAAY,mC,YAAwB,CAAO,aAAmB,aAAIpC,WAAa,UAA2D,EAAC,0DAAU,OAAM,QAA8BC,GAAI4N,EAAG5N,MAAOA,CACniC,qBACGiB,WAAe,EAAK,2B,6BCMxB,IAAqB+9G,EAArB,cAAwCl8G,OAQtC,uBACE,IAAI27M,EAAa,QAMjB,MAL0B,OAAtBx7M,KAAK2M,MAAMb,OACb0vM,EAAa,QACkB,OAAtBx7M,KAAK2M,MAAMb,SACpB0vM,EAAa,SAERA,EAOT,4BAAyB,MACvB,GAAe,QAAX,EAACx7M,KAAKizB,aAAK,QAAV,EAAYn9B,OAAQ,MAAO,UAGhC,MAAM0qC,EAAe,CACnBl/B,MAAO,OACPD,IAAK,UACLgxC,KAAM,UACNE,OAAQ,WAEJx3C,EAAS,IAAIyG,KAAwB,IAAnBxB,KAAKizB,MAAM,GAAG,IACtC,OAAOl4B,EAAE0gN,mBAAmBz7M,KAAK07M,iBAAkBl7K,GAOrD,0BAAuB,MACrB,GAAe,QAAX,EAACxgC,KAAKizB,aAAK,QAAV,EAAYn9B,OAAQ,MAAO,UAGhC,MAAM0qC,EAAe,CACnBl/B,MAAO,OACPD,IAAK,UACLgxC,KAAM,UACNE,OAAQ,WAEJx3C,EAAS,IAAIyG,KAA4C,IAAvCxB,KAAKizB,MAAMjzB,KAAKizB,MAAMn9B,OAAS,GAAG,IAC1D,OAAOiF,EAAE0gN,mBAAmBz7M,KAAK07M,iBAAkBl7K,GAOrD,iCAA8B,MAC5B,GAAe,QAAX,EAACxgC,KAAKizB,aAAK,QAAV,EAAYn9B,OAAQ,MAAO,UAEhC,MAAM0qC,EAAe,CACnB6R,KAAM,UACNE,OAAQ,WAEJopK,EAAa37M,KAAKxE,MAClBogN,EAAW57M,KAAKxE,MAAQ,EACxBqgN,EAAcrgN,GACdwE,KAAKizB,MAAMz3B,GACN,IAAIgG,KAA4B,IAAvBxB,KAAKizB,MAAMz3B,GAAO,IAE3B,KAILsF,EAAa+6M,EAAWF,GACxB36M,EAAW66M,EAAWD,GAC5B,MAAO,CACL96M,MAAOA,EAAM26M,mBAAmB,QAASj7K,GACzCx/B,IAAKA,EAAMA,EAAIy6M,mBAAmB,QAASj7K,GAAWx/B,GAI1D,sBAAmB,MACjB,OAAiB,QAAV,EAAAhB,KAAKizB,aAAK,OAAV,EAAYn9B,OAASkK,KAAKizB,MAAMn9B,OAAS,EAAI,IAnF7BwK,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,4BACDF,gBAAtBC,eAAK,CAAEC,QAAS,MAAK,4BAFHu7G,EAAU,gBAD9Bt7G,QACoBs7G,WCRwb,I,wBCQzcr7G,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,kECnBf,W,mBCAAlJ,EAAOD,QAAU,82H,kCCAjB,W,+JCAAC,EAAOD,QAAU,IAA0B,iC,kCCA3C,W,kCCAA,W,kCCAA,W,qw+BCAA,W,qFCA4DkI,EAAO1C,WAAsB,MAAU,KAAOF,UAAY,GAAc,EAAM,kB,OAACA,QAAY,CAAOqC,YAAY,U,CAAC,QAAQ,CAAO,mBAAE,YAAK,CAAYlC,MAAM,U,CAA+B,SAAW,C,MAA2C,CAAc,0BAAkB,WAAe,uCAAI,SAAQ,GAAS,eAAY,GAAQ,gBAAa,GAAO,eAACI,YAAM,QAAC5B,aAAWuH,Q,MAAyC,CAA8B,MAAC,cAACzF,SAAU,SAAC,GAAa,2BAA2BN,WAAM,kBAA2C,YAAa,C,MAAC,CAAkB,WAAe,2BAAM,SAAQ,GAAS,kBAACI,aAAM,MAAC5B,MAAOuB,U,MAA6C,CAA8B,MAAC,cAACO,SAAU,SAAC,GAAa,2BAC7wB,6BAGD,I,6BCIA,IAAqBoxC,EAArB,cAAyC7uC,OAGvC,wBACE,MAAO,CACL,CAAE6N,MAAO1N,KAAK7C,GAAG,6CAA8CivC,KAAM,GACrE,CAAE1+B,MAAO1N,KAAK7C,GAAG,gDAAiDivC,KAAM,GACxE,CAAE1+B,MAAO1N,KAAK7C,GAAG,8CAA+CivC,KAAM,MANnD9rC,gBAAtBC,eAAK,CAAEC,QAAS,MAAK,6BADHkuC,EAAW,gBAD/BjuC,QACoBiuC,WCRua,I,YCOxbhuC,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,kEClBf,W,kCCAA,W,kCCAA,W,qBCAAlJ,EAAOD,QAAU,IAA0B,2B,+JCA4J,W,IAAC,O,EAAkB,QAAY,GAAM,oB,OAACmF,cAAoB,C,MAAK,CAAcC,eAAa,CAAC,OAAU,gB,KAAWK,8B,cAAkB,E,aAAW,G,YAA0B,OAAK,IAAC,cAAClB,GAAG,WAAoB,MAAC,UAAU,CAAC,MAAQgB,CAAUD,YAAuDA,0B,OAAyEG,G,0CAAyE,UAAG,YAAU,gCAACH,SAAW,CAA4B,YAAYE,sCAA0CC,GAAK,kBAAC,C,MAAC,CAAc,aAAyB,eAAgB,UAAU,8BAAkBH,QAAW,CAAqC,YAAW,4BAACA,SAAW,CAAC,uCAAsB,MAAK,CAAoBG,KAAM,OAAC,eAAO,UAAI,+BAAeH,WAAY,CAAO,YAAaa,qCAA2Db,SAAW,CAAuB,YAAK,uBAAoBG,GAAK,mBAAC,C,MAAC,CAAW,aAAeH,SAAY,CAAO,YAAaa,QAA4Db,QAAY,oDAAsB,YAAK,uBAAoBG,GAAK,mBAAC,C,MAAC,CAAY,KAAO,QAAuB,UAAG,YAAW,QAACH,QAAY,qDAAO,YAAaa,uBAA0D,uBAACd,MAAM,CAAM,UAAK,YAAmB,aAAU,KAAmBC,SAAY,CAAgD,YAAW,QAACA,QAAY,qD,OAA2DG,G,yCAAyE,UAACI,YAAM,iD,CAAC5B,QAAU,C,YAAe,6C,GAAgBuB,OAAO,C,MAAK,CAACO,eAAgB,iCAAIR,aAAYC,I,MAA2S,CAAWM,QAAS,I,SAAuB,SAAI,GAAC,SAAiB,mBAA+BR,UAAW,GAAC,yDAAoC,yLAACqC,OAAa,YAAoB,qBAAM,EAAC,IAAM,GAAc,WAAQ,QAAyB,oBAAE,YAAW,qCAACrC,YAAY,CAAwDC,aAAG,U,CAAyB,S,YAAiC,CAAK,Y,aAAiC,S,CAAM,S,YAA+B,uD,CAAM,EAAC,kB,MAAC,C,oBAAuB,EAAO,OAAC,EAAC,qBAAc,CAAE6yC,SAAO,K,qBAAyC,CAAM,cAAGjzC,cAAgB+N,CAAK3O,MAAI,Q,cAA4C6O,CAA4C,aAAC/N,UAAM,SAAM,mB,YAAkCG,EAAI4N,GAAG5N,EAAuC,IAAC,kBAACH,cAAY,kDAAYD,OAAG,G,KAAoCE,O,GAAmBG,W,MAAO,GAAO,KAAM,mC,OAAY,G,CAAI,IAAC,OAACJ,cAAY,uBAAO,YAAU,OAACC,MAAY,CAA2D,YAAwB,e,OAA8Dk4D,QAAgB,Y,YAA+B,uD,CAAM,EAAC,kB,MAAC,C,oBAAuB,EAAO,OAAC,EAAC,qBAAc,CAAEplB,SAAO,K,qBAAyC,CAAM,cAAGjzC,cAAgB+N,CAAK3O,MAAI,Q,cAA4C6O,CAA4C,aAAC/N,UAAM,SAAM,mB,YAAkCG,EAAI4N,GAAG5N,EAAyC,IAAC,kBAACH,cAAY,kDAAYD,OAAG,G,KAAoCE,O,GAAmBG,W,MAAO,GAAO,KAAM,qC,OAAY,G,CAAI,IAAC,OAACJ,cAAY,uBAAO,YAAU,OAACC,MAAY,CAA2D,YAAwB,e,OAA8Dk4D,QAAgB,Y,YAA+B,uD,CAAM,EAAC,kB,MAAC,C,oBAAuB,EAAO,OAAC,EAAC,qBAAc,CAAEplB,SAAO,K,qBAAyC,CAAM,cAAGjzC,cAAgB+N,CAAK3O,MAAI,Q,cAA4C6O,CAA6C,aAAC/N,UAAM,SAAM,mB,YAAkCG,EAAI4N,GAAG5N,EAAuC,IAAC,kBAACH,cAAY,mDAAYD,OAAG,G,KAAoCE,O,GAAmBG,W,MAAO,GAAO,KAAM,mC,OAAY,G,CAAI,IAAC,OAACJ,cAAY,uBAAO,YAAU,OAACC,MAAY,CAA2D,YAAwB,e,OAA8Dk4D,QAAgB,Y,YAA+B,uD,CAAM,EAAC,kB,MAAC,C,oBAAuB,EAAO,OAAC,EAAC,qBAAc,CAAEplB,SAAO,K,qBAAyC,CAAM,cAAGjzC,cAAgB+N,CAAK3O,MAAI,Q,cAA4C6O,CAA6C,aAAC/N,UAAM,SAAM,mB,YAAkCG,EAAI4N,GAAG5N,EAAyC,IAAC,kBAACH,cAAY,mDAAYD,OAAG,G,KAAoCE,O,GAAmBG,W,MAAO,GAAO,KAAM,qC,OAAY,G,CAAI,IAAC,OAACJ,cAAY,uBAAQ,YAAS,OAAwBC,MAAY,CAAwBqC,KAAY,OAAC,KAAa,UAAkC,OAAO,QAA0B,4BAAE,YAAW,wBAACrC,YAAY,CAAwDC,aAAG,U,CAAyB,S,YAAiC,CAAK,Y,aAA8B,S,CAAU,S,YAA+B,uD,CAAM,EAAC,kB,MAAC,C,oBAAuB,EAAO,SAAE,sBAACJ,MAAW,SAAgCC,qBAAa,CAAC,SAAQI,KAAgGH,cAAM,CAAM,e,YAAkCG,EAAI4N,GAAG,EAAM,IAAC,kBAAC/N,cAAY,iGAAkBC,UAAoEC,CAAqBE,IAAM,OAAC,cAAyB,MAAQ,GAAI,WAAiB,eAAuC,Y,YAAC,uD,GAAuB+3D,iBAAU,C,MAAK,CAAC,oBAAc,E,OAAS,EAAO,gBAAE,sBAACr4D,MAAW,SAAgCC,qBAAa,CAAC,SAAQI,KAAkGH,cAAM,CAAM,e,YAAkCG,EAAI4N,GAAG,EAAM,IAAC,kBAAC/N,cAAY,mGAAkBC,UAAiGC,CAA4GE,IAAM,OAAC,cAAiB,MAAQ,GAAE,WAAkB,eAA2CH,WAAY,CAAwB,YAAW,oFAACA,SAAW,CAAC,KAAM,6EAACqC,OAAa,eAAqB,MAAQ,GAAO,sBAAmBlC,WAAM,mB,YAASD,yB,CAA0B,QAAQ,C,YAAmB,O,YAAS,CAAqB,qBAA6B,MAAQ,U,CAA4B,SAAS,C,MAAC,CAAU,8BAACK,MAAM,QAAC5B,YAAWw1I,QAAkB3zI,aAAS,Q,mBAAoB2zI,UAAoB,MAAC,SAAC1zI,gBAAW,GAAkB,QAAI,KAAQ,IAAsG,MAAK,CAAOT,QAAY,iBAASC,SAAU,SAAC,GAACE,EAAM,oBAAgB,WAAQ,uBAAqB,8BAAE,YAAK,6DAAcA,GAAK,MAAC,C,YAAQ,Q,CAAO,SAAO,C,MAAK,CAAe,aAAI,MAAQ,SAAyBH,QAAY,KAAuC,iBAACD,MAAM,CAAM,YAAG,UACluO,kBAGQ4C,IAAQxB,aAAe,Y,+ICJ0EnB,aAAyD,IAAGC,EAAG,KAAUE,EAAK,EAAC,SAAQ,EAAC,MAAQ,Y,OAAC,S,YAAiC,+CAAgB,WAACI,MAAM,CAAC5B,MAAOuB,SAASM,mBAAmBwN,c,aAAcA,I,MAAKvN,CAAgB,YAAGP,SAAY+N,SAAM,GAAqB,EAAOhO,IAAG,GAAmB,WAAY,QAAmEM,EAAK,GAAC,sB,OAAM,EAAEL,OAAQ,CAACM,O,CAAyBN,EAAIqB,GAAG,IAAI,qCAAC,U,MAACd,CAAgB,YAAGP,SAAY+N,SAAM,GAAqB,EAAOhO,IAAG,GAAwB,WAAU4D,QAA2B,EAAG,GAAE,sBAAE,OAAK,EAAE,QAC3qB,OACG1C,eAAoB,CAExB,IAASwB,e,mBCJiG3C,aAA2B,IAAGC,EAAG,KAAUE,EAAK,EAAC,SAAQ,EAAC,MAAQ,Y,OAAC,S,YAAiC,iB,CAAgB,UAAqB,MAAC,CAACI,MAAM,SAAC5B,mBAAe,cAAC6B,aAAS,G,mBAA2B,I,MAAEC,CAAgB,YAAGP,SAAY+N,SAAM,GAAqB,EAAOhO,IAAG,GAAmB,WAAY,QAAmEM,EAAK,GAAC,sB,OAAM,EAAEL,OAAQ,CAACM,O,CAAyBN,EAAIqB,GAAG,IAAI,qCAAC,U,MAACd,CAAgB,YAAGP,SAAY+N,SAAM,GAAqB,EAAOhO,IAAG,GAAwB,WAAU4D,Q,EAA2B1D,GAAK,EAAC,oB,OAAC,SAAa2vB,C,IAAe,G,CAAqB,IAAO,UAAW,C,IAAC,Y,MAA8B,CAAwB,yBAAI,OAAG,SAAK,MAAI,QACtyB,2BACG3uB,cAAkB,EAAE,U,+BCFiE,EAAU,W,IAAOnB,OAA2B,EAAK,QAAM,GAACA,EAAY,kBAAwB,OAAM,SAAcG,YAAM,gB,CAAC,SAAyB,sCAAG,CAACF,EAAG,aAAY,CAACE,MAAM,CAAC,aAAS,YAAIN,SAAYK,C,MAAa,CAAYJ,OAAG,I,YAAeK,OAAM,IAAE,Y,GAAC,UAAW,G,EAAuBA,M,UAAqB,qB,MAAC,CAA4B,SAAoE,IAAG,2BAAuDkC,QAAY,kDAAuB,CAACpC,EAAG,OAAM,sCAACG,YAAQ,CAA+BH,aAAG,SAAuBG,GAAK,MAAG,CAA+BD,MAAM,4B,CAAC,gB,IAAgC,KAA0B,mCAAG,MAAM,CAClwB,gCACGgB,UAAe,iB,+ECKnBqxC,IAAUC,KAQV,IAAqBwsK,EAArB,cAAyCj8M,OAQvC,mBAAgB,MACd,MAAO,CACL0vC,MAAO,CACLjqB,WAAW,EACXkqB,gBAAkE,QAAnD,EAAExvC,KAAKrC,SAASwL,MAAMsmC,aAAaC,wBAAgB,aAAjD,EAAmDnmC,WACpEomC,MAAO,KACP8zB,OAAQ,KACR5kC,OAAQ,CACN+7D,OAASljG,IACPsI,KAAKiuH,0BAA0Bv2H,MAIrCk4C,UAAW,CACTC,SAAS,GAEXC,cAAe,CACbD,SAAS,GAEXE,UAAW,CACTF,SAAS,GAEXG,UAAW,CACTH,SAAS,GAEX7jC,OAAQhM,KAAKgM,OACbikC,OAAQ,CACNJ,SAAS,EACTK,UAAW,CACThkC,MAAOlM,KAAKrC,SAASwL,MAAMC,KAAO,OAAS,SAG/C+mC,YAAa,CACXnkC,OAAQ,CACNokC,cAAc,IAGlBC,MAAO,GACPpkC,MAAOjM,KAAKiM,OAIhBqkE,mBACE,MAAM,MAAE/gC,GAAUvvC,KAAK8J,MAAMskH,GAC7B7+E,EAAMouC,WAAWof,OAEnBkxB,0BAA0Bv2H,GACxB,MAAM,MAAE63C,GAAUvvC,KAAK8J,MAAMskH,GACxB7+E,EAAMouC,WAAWC,OAGpBruC,EAAM++E,SAAS,CAAEh+G,KAAMtQ,KAAKipF,aAF5B15C,EAAM++E,SAAS,CAAEh+G,KAAM,SAxDnBhQ,gBAAPC,kBAAM,gCACCD,gBAAPC,kBAAM,iCACCD,gBAAPC,kBAAM,6BACCD,gBAAPC,kBAAM,4BACkBD,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,iCACAF,gBAAvBC,eAAK,CAAEC,QAAS,OAAM,kCANJs7M,EAAW,gBAN/Br7M,eAAU,CACT2H,WAAY,CACVwoC,WAAYjlC,WACZ4jD,sBAGiBusJ,WCf2c,I,wBCQ5dp7M,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCVf,IAAqBq7M,EAArB,cAA0Cl8M,OAA1CC,c,oBACE,KAAA1B,IAAW,KACX,KAAAu/E,YAAa,EAEb,KAAAq+H,eAAiB,CACf,CACEj8M,MAAO,KACPoM,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,cAAe,EACfpM,IAAK,EACLC,IAAK,IACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,aACRzP,MAAO,CACLiP,MAAO,aAIb,CACEnM,MAAO,KACPoM,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,cAAe,EACfpM,IAAK,EACLC,IAAK,IACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,UACRzP,MAAO,CACLiP,MAAO,cAKf,KAAA+vM,aAAe,CACb,CACEl8M,MAAO,KACPoM,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,cAAe,EACfpM,KAAM,GACNC,IAAK,GACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,aACRzP,MAAO,CACLiP,MAAO,aAIb,CACEnM,MAAO,KACPoM,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,cAAe,EACfpM,IAAK,EACLC,IAAK,KACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,eACRzP,MAAO,CACLiP,MAAO,cAMf,sBACE,MAAMhB,EAAYlL,KAAK7C,GAAM6C,KAAK4L,iBAAR,0BAC1B,MAAO,CACL,CACEnR,KAAMyQ,EAAK8oB,cACXp7B,KAAM,OACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,QAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,UAAe,IAChB,CAAC,WAAe,MAGpB,CACEmF,KAAMyQ,EAAKgxM,SACXtjN,KAAM,OACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,QAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,UAAe,IAChB,CAAC,WAAe,OAKxB,oBACE,MAAM4V,EAAYlL,KAAK7C,GAAM6C,KAAK4L,iBAAR,wBAC1B,MAAO,CACL,CACEnR,KAAMyQ,EAAKixM,IACXvjN,KAAM,OACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,QAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,UAAe,IAChB,CAAC,WAAe,MAGpB,CACEmF,KAAMyQ,EAAKkxM,gBACXxjN,KAAM,OACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,QAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,WAAe,IAChB,CAAC,UAAe,IAChB,CAAC,WAAe,OAMxB,uBACE,MAAO,kDAGT,WACE,MAAO,CACL,CACEyK,MAAO,aACP+L,OAAW9L,KAAK4L,iBAAR,gBACRlL,UAAW,cACXkM,UAAW,OACXkwI,OAAQ,aACRjwI,WAAY,KACZb,OAAQhM,KAAKq8M,gBACbpwM,MAAOjM,KAAKg8M,gBAEd,CACEj8M,MAAO,UACP+L,OAAW9L,KAAK4L,iBAAR,gBACRlL,UAAW,cACXkM,UAAW,OACXkwI,OAAQ,aACRjwI,WAAY,KACZb,OAAQhM,KAAKs8M,cACbrwM,MAAOjM,KAAKi8M,iBA5KCF,EAAY,gBALhCt7M,eAAU,CACT2H,WAAY,CACV0zM,kBAGiBC,WCTwc,ICQzd,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCnBXv8M,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,oBAAoB,CAACC,EAAG,eAAe,CAACE,MAAM,CAAC,UAAYD,EAAIgO,cAAc,iBAAmB,GAAG,iBAAmB,IAAI,oBAAqB,EAAM,yBAA2B,CAAC,OAAO,OAAO,OAAO,YAAc,QAAQ,IAE9U/M,EAAkB,G,YCOtB,IAAqBu+M,EAArB,cAAuC18M,OAAvCC,c,oBACE,KAAA1B,IAAM,KACN,KAAAu/E,YAAa,EAGb,oBACE,IAAI1yE,EAA2B,GAC/BA,EAAsB,CACpB,CACEE,IAAK,QACL1Q,KAAMuF,KAAK7C,GAAG,8EACdkO,QAAS,CACPjL,IAAK,MACLD,IAAK,KAEPsF,WAAY,OACZ7M,KAAM,OACN0S,KAAM,KACNrH,IAAK,IACJ,CACDkH,IAAK,QACL1Q,KAAMuF,KAAK7C,GAAG,mFACdkO,QAAS,CACPjL,IAAK,MACLD,IAAK,KAEPsF,WAAY,OACZ7M,KAAM,OACN0S,KAAM,KACNrH,IAAK,KAIT,MAAMuH,EAAc,CAClBlW,KAAM,CACJ0O,aAAciH,EACdQ,wBAAyB,SACzBhH,cAAe,OACf7L,KAAM,SAERmQ,WAAY,+BAEd,OAAOyC,IA1CU+wM,EAAS,gBAL7B97M,eAAU,CACT2H,WAAY,CACVsD,wBAGiB6wM,WCTqc,ICQtd,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,QCRf,IAAqB1wM,EAArB,cAA4ChM,OAA5CC,c,oBACE,KAAA1B,IAAW,KAEX,uBACE,MAAO,4DAET,WACE,MAAO,CACL,CACE2B,MAAO,QACP+L,OAAQ9L,KAAK4L,iBACblL,UAAW,aAEb,CACEX,MAAO,WACP+L,OAAQ9L,KAAK4L,iBACblL,UAAW,mBAhBEmL,EAAc,gBANlCpL,eAAU,CACT2H,WAAY,CACV2zM,eACAQ,gBAGiB1wM,WCX8c,ICQ/d,I,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,M,qBCAf,IAAqB+1C,GAArB,cAA+D/hD,OAA/DC,c,oBACE,KAAA1B,IAAW,KACX,KAAA4yI,iBAAmB,EAEnB,4BACE,MAAMv1I,EAASuE,KAAK7C,GAAG,yEACvB,MAAO,CACL,CAAE4C,MAAOtE,EAAEy1I,QAAS11I,MAAO,GAC3B,CAAEuE,MAAOtE,EAAE01I,SAAU31I,MAAO,GAC5B,CAAEuE,MAAOtE,EAAE21I,aAAc51I,MAAO,IAGpC,mBACE,MAAO,8CAET,uBACE,MAAO,kDAET,sBACE,OAAOwE,KAAK7C,GAAG,oDAnBEykD,GAAiC,gBAVrDnhD,eAAU,CACT2H,WAAY,CACV0oC,kBACAhkC,wBACA8gG,sBACA7oB,uBACAl5E,kBACAkB,sBAGiB60C,cCnBqc,MCQtd,I,UAAY,eACd,GACA,EACA5jD,GACA,EACA,KACA,KACA,OAIa,U,2CCnBf,W,kCCAA,W,yDCAA,W,yDCAA,IAAIwB,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACC,EAAI4N,GAAG,IAAI5N,EAAIW,GAAGX,EAAIqyI,cAAc,QAE1IpxI,EAAkB,G,oCCMtB,IAAqB4uD,EAArB,cAA6Cic,OAS3C,kBACE,OAAO7oE,KAAK4xB,aAAax2B,IAAI4E,KAAK8oE,cAAcr6D,aAMlD,UACE,OAAKzO,KAAKsO,YAGEsY,KAAKysB,MAASrzC,KAAKyO,YAAR,OAAd,OAHmBmY,KAAKysB,MAAMrzC,KAAKyO,aAS9C,eACE,OAAOsiB,OAAO1iB,UAAUrO,KAAKsvI,KAAOtvI,KAAKsvI,IAAMtvI,KAAKsvI,IAAIzhI,QAAQ,GAMlE,mBACE,MAAM0hI,EAAmB,IACnBvvI,KAAKG,KAAOH,KAAKopF,SAAiBppF,KAAKG,IACvCH,KAAKI,KAAOJ,KAAKopF,SAAiBppF,KAAKI,IACpCJ,KAAKopF,SAEd,OAAiC,IAA7BppF,KAAKw8M,oBACoB,QAAvBjtE,IACKp3F,KAAKC,aAAa,SAAS1rC,OAAO6iI,KAElC,EAGFvvI,KAAKopF,SAGhB,kBACE,MAA0C,KAAnCppF,KAAK8oE,cAAcr6D,cAjDpBnO,gBAAPC,kBAAM,mCACCD,gBAAPC,kBAAM,qCACCD,gBAAPC,kBAAM,+BACCD,gBAAPC,kBAAM,0BACCD,gBAAPC,kBAAM,0BACmBD,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,gCACCF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,0CAPNosD,EAAe,gBADnCnsD,QACoBmsD,WCR6b,I,YCO9clsD,EAAY,eACd,EACAlB,EACAxB,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,kEClBf,W,kCCAA,W,kCCAA,IAAIlB,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACiC,MAAM,CAAC,qBAAsB,CAAE,8BAA+BhC,EAAIkmE,SAAUhmE,MAAOF,EAAI0/M,eAE7Lz+M,EAAkB,G,wBCKtB,IAAqBiuD,EAArB,cAA+CpsD,OAI7C,kBACE,MAAO,CACL68M,UAAW,aAAa18M,KAAKkM,SALH5L,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,4BACHF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,6BAFNyrD,EAAiB,gBADrCxrD,QACoBwrD,WCP+b,I,wBCQhdvrD,EAAY,eACd,EACAlB,EACAxB,GACA,EACA,KACA,WACA,MAIa,OAAA0C,E,4BCnBflJ,EAAOD,QAAU,k9J,yDCAjB,W,kCCAA,oEAAO,MAAM0zD,EAAyB,CACpC,CACE,GAAM,KACN,aAAgC,GAAhBrkC,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,gBAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,MACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,OAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,YACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,aAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,OACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,mBAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,UACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,MACR,MAAS,GAEX,SAAY,EACZ,YAAe,EACf,aAAgB,UAChB,sBAAyB,CAAEk0F,YAAa,EAAGC,kBAAmB,EAAGC,kBAAmB,EAAGC,kBAAmB,EAAGd,uBAAwB,EAAG4B,WAAY,EAAGT,cAAe,IAExK,CACE,GAAM,QACN,aAAgC,GAAhB37E,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,qBAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,iBACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,6BAEX,SAAY,EACZ,YAAe,EACf,aAAgB,WAElB,CACE,GAAM,mBACN,cAAiB,CACf,KAAQ,OACR,MAAS,4BAEX,SAAY,EACZ,YAAe,EACf,aAAgB,UAChB,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,IAElD,CACE,GAAM,eACN,cAAiB,CACf,KAAQ,OACR,MAAS,oBAEX,SAAY,EACZ,YAAe,EACf,aAAgB,UAChB,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,IAElD,CACE,GAAM,eACN,aAAgC,GAAhB+Y,KAAK+kC,SAAgB,GAAG99C,QAAQ,GAChD,cAAiB,CACf,KAAQ,OACR,MAAS,iBAEX,SAAY,EACZ,YAAe,EACf,aAAgB,YAIPq9C,EAAuB,CAClC,CACE,GAAM,KACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,MACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,YACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,OACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,UACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,QACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,iBACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,mBACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,eACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,YAGrB,CACE,GAAM,eACN,eAAkB,EAClB,OAAU,CACR,cAAiB,UACjB,cAAiB,c,4CChMvB1zD,EAAOD,QAAU,IAA0B,0B,qRCerC,SAAU6+K,EAA8BxoJ,EAAiB7nB,EAAoBgwK,GAEjF,MAAM4mC,EAAmB52M,EAAU4Q,MAAOimM,IACxC,IAAIC,EAAmBD,EAAYhsM,QAAQxN,OAAQimC,GAA2B,UAAhBA,EAAOzwC,MAOrE,OANAikN,EAAmBA,EAAiBh5M,IAAKwlC,IACjCA,EAAOtmC,OAAmCqrC,aAC9C/E,EAAOtmC,OAAOqrC,WAAa,IAEtB/E,IAEFwzK,EAAiBl5M,KAAM0lC,GAAgBA,EAAOtmC,OAAOqrC,WAAW39B,SAASmd,EAAO6gB,UAIzFsnI,EAASnlK,QAAQvL,QAASgkC,IAClBA,EAAOtmC,OAAmCqrC,aAC9C/E,EAAOtmC,OAAOqrC,WAAa,MAI/B,MAAM0uK,EAA+B/mC,EAASnlK,QAAQjN,KAAM0lC,GAAgBA,EAAOtmC,OAAOqrC,WAAW39B,SAASmd,EAAO6gB,QAErH,OAAOkuK,GAAoBG,EAUvB,SAAUlhB,EAAoB5rK,GAClC,MAAM+sL,EAAyC,CAC7CC,KAAM,GACNC,KAAM,IAcR,OAZAjtL,EAAM3qB,QAASwJ,IACb,MAAMquM,EAAgBn1K,OAAM53B,QAAQ,yBAAyBtB,EAAK5O,IAClEi9M,EAAc73M,QAAS4E,IACI,UAArBA,EAAO3U,KAAKsD,MAAyC,QAArBqR,EAAO3U,KAAKsD,MAC9CmkN,EAAa,MAAM3mN,KAAKyY,EAAK5O,IAEN,iBAArBgK,EAAO3U,KAAKsD,MAAgD,eAArBqR,EAAO3U,KAAKsD,OACrDmkN,EAAa,MAAM3mN,KAAKyY,EAAK5O,IAC7B88M,EAAa,MAAM3mN,KAAKyY,EAAK5O,SAI5B88M,EAUF9/L,eAAem/K,EAAqB/tK,EAAoBktK,EAAoBK,EAA+Cx1L,GAEhI,MAAM+2M,EAAavhB,EAAoBvtK,GACvC,IAAIR,EAAc0tK,EAAU1tK,aAAe,GAG3CsvL,EAAW93M,QAASwJ,IACdgf,EAAYpd,SAAS5B,IAGzBgf,EAAYz3B,KAAKyY,KAGnBgf,EAAcA,EAAYzqB,OAAO,CAACupB,EAAMtT,IAAUwU,EAAY3D,QAAQyC,KAAUtT,GAEtD,IAAtB8jM,EAAWrnN,QAEfiyC,OAAMzrB,SAAS,kCAAmC,CAChDlW,aACAwnB,OAAQ2tK,EACRzrK,gBAAiBjC,IAIf,SAAUuvL,EAAet2M,GAC7B,MAAMu2M,EAAmBv2M,EAAK8J,QAAQ/J,KAAMwiC,GAAgC,UAAhBA,EAAOzwC,MACnE,IAAIoqB,EAAU,GACd,MAAMkpB,EAAW,6CACc,MAA/B,QAAoBxxC,IAAhB2iN,EACF,OAA0B,QAA1B,EAAQA,EAAYt6M,cAAM,aAAlB,EAAoBnK,MAC1B,KAAK,EACHoqB,EAAU1Z,OAAK7N,EAAKywC,EAAH,SACjB,MAEF,KAAK,EACHlpB,EAAU1Z,OAAK7N,EAAKywC,EAAH,YACjB,MAEF,KAAK,EACHlpB,EAAU1Z,OAAK7N,EAAKywC,EAAH,UACjB,MAEF,QACElpB,EAAU1Z,OAAK7N,EAAKywC,EAAH,WACjB,MAIN,OAAOlpB,EAGF/F,eAAeqgM,EAAcvnC,GAClC,MAAM9vK,EAAU8hC,OAAM53B,QAAQ,oBACxBgtJ,EAAernJ,uBAAU7P,GAC/Bk3J,EAAat3E,aAAekwF,EAC5BhuI,OAAMzrB,SAAS,yBAA0B6gJ,GACzCp1H,OAAMzrB,SAAS,kBAAmB6gJ,EAAal9J,IAM1Cgd,eAAesgM,EAAwB9uK,EAAesnI,GAC3D,MAAMynC,EAAmB,CACvB,KAAQ,QACR,OAAU,CACR,WAAc,CAAC/uK,GACf,QAAW,qBACX,KAAQ,EACR,KAAQ,sEAIa,OAArBsnI,EAASnlK,cAAyClW,IAArBq7K,EAASnlK,UACxCmlK,EAASnlK,QAAU,KAIhBmlK,EAASlmI,SAAWkmI,EAASnlK,QAAQ9a,OAAS,IACjDigL,EAASlmI,SAAU,GAGhBkmI,EAASnlK,QAAQjN,KAAM0lC,GAAgC,UAAhBA,EAAOzwC,MAGjDm9K,EAASnlK,QAAQvL,QAAQ,CAACgkC,EAAao0K,KACjB,UAAhBp0K,EAAOzwC,OACJywC,EAAOtmC,OAAOqrC,aACjB/E,EAAOtmC,OAAOqrC,WAAa,IAG2D,IAApF/E,EAAOtmC,OAAOqrC,WAAWhrC,OAAQs6M,GAAmBA,IAAcjvK,GAAO34C,QAC3EigL,EAASnlK,QAAQ6sM,GAAa16M,OAAOqrC,WAAWh4C,KAAKq4C,MAT3DsnI,EAASnlK,QAAQxa,KAAKonN,GAexB,MAAMG,EAAiB5nC,EAASnlK,QAAQjN,KAAM0lC,GAAgC,UAAhBA,EAAOzwC,MACrE,IAAK+kN,EAAgB,CAEnB,MAAMC,EAAoB,CACxB,KAAQ,QACR,OAAU,CACR,KAAQ,EACR,KAAQ,sEAGZ7nC,EAASnlK,QAAQxa,KAAKwnN,SAGlBN,EAAcvnC,GAWf94J,eAAei/K,EAAuBztJ,EAAexuC,EAAYg8L,EAA+BE,EAA8CpmB,GAEnJkmB,EAAqB52L,QAASyB,IAC5B,MAAM+2M,EAAW/nM,uBAAUhP,GAmB3B,OAlBA+2M,EAASjtM,QAAQvL,QAASgkC,IACJ,UAAhBA,EAAOzwC,OAEJywC,EAAOtmC,OAAOqrC,aACjB/E,EAAOtmC,OAAOqrC,WAAa,IAE2D,IAApF/E,EAAOtmC,OAAOqrC,WAAWhrC,OAAQs6M,GAAmBA,IAAcjvK,GAAO34C,QAC3EuzC,EAAOtmC,OAAOqrC,WAAWh4C,KAAKq4C,MAM/B3nC,EAAK+kC,SACRgyK,EAAShyK,QAAS,EAClBgyK,EAAS7jN,QAAU,KAGd+tC,OAAMzrB,SAAS,mBAAoB,CACxCrc,KACA83D,UAAW8lJ,EACXn3M,QAASm3M,EAAS59M,OAItBk8L,EAAsB92L,QAASyB,IAE7B,MAAM02M,EAAmB,CACvB,KAAQ,QACR,OAAU,CACR,WAAc,CAAC/uK,GACf,QAAW2uK,EAAet2M,GAC1B,KAAQ,EACR,KAAQ,aAGN+2M,EAAW/nM,uBAAUhP,GAS3B,OARA+2M,EAASjtM,QAAQxa,KAAKonN,GAGjB12M,EAAK+kC,SACRgyK,EAAShyK,QAAS,EAClBgyK,EAAS7jN,QAAU,KAGd+tC,OAAMzrB,SAAS,mBAAoB,CACxCrc,KACA83D,UAAW8lJ,EACXn3M,QAASm3M,EAAS59M,aAIhBs9M,EAAwB9uK,EAAOsnI,GACrCtnI,EAAQ,GAUHxxB,eAAe++K,EAAyB0hB,EAAmBz9M,EAAYg8L,EAA+BlmB,GAE3G,IAAK,MAAMjvK,KAAQm1L,EAAsB,CACvC,MAAM4hB,EAAW/nM,uBAAUhP,GAC3B+2M,EAASjtM,QAAQvL,QAAQ,CAACgkC,EAAao0K,KAEjB,UAAhBp0K,EAAOzwC,OACJywC,EAAOtmC,OAAOqrC,aACjB/E,EAAOtmC,OAAOqrC,WAAa,IAE7B/E,EAAOtmC,OAAOqrC,WAAa/E,EAAOtmC,OAAOqrC,WAAWhrC,OAAQ3I,GAAiBA,IAASijN,YAGpF31K,OAAMzrB,SAAS,mBAAoB,CACvCrc,KACA83D,UAAW8lJ,EACXn3M,QAASm3M,EAAS59M,KAGG,OAArB81K,EAASnlK,cAAyClW,IAArBq7K,EAASnlK,UACxCmlK,EAASnlK,QAAQvL,QAAQ,CAACgkC,EAAao0K,KACjB,UAAhBp0K,EAAOzwC,OACJywC,EAAOtmC,OAAOqrC,aACjB/E,EAAOtmC,OAAOqrC,WAAa,IAE7B2nI,EAASnlK,QAAQ6sM,GAAa16M,OAAOqrC,WAAa2nI,EAASnlK,QAAQ6sM,GAAa16M,OAAOqrC,WAAWhrC,OAAQ3I,GAAiBA,IAASijN,YAGlIJ,EAAcvnC,M,mBCnSxBv+K,EAAOD,QAAU,ktH,gFCAjB,W,sCCeKumN,E,kJCfgN,W,IAACxgN,OAAkB,aAAO,QAAa,Y,OAAO,EAAC,Q,IAAE,OAA+B,MAAC,CAACN,kBAAM,IAAW,OAAIF,MAAG,EAAO,MAAcE,SAAM,YAAC,EAAM,MAAC,GAAQF,WAAQ,U,CAAc,UAAuB,OAAIC,eAAcA,EAAM,Y,MAAoE,CAA0C,MAAQA,K,CAA2B,SAAQ,WAAM,MAAC,CAACK,KAAM,O,CAA4BC,OAAQ,C,YAA0BN,CAA2B,iBAAC,SAA4B,mEAAG,MAAKD,CAAYE,MAAM,gCAAC,MAAO,WAAI,YAAIF,MAAG,QAAyC,MAAM6N,CAA+E3N,MAAM,iBAAC,SAAQ,YAAE,8BAA+D,WAAU,qBAAoB,GAAI,SAAQ,C,MAAM,C,KAAQ,O,GAAc,QAAK,Q,YAAG,QAAE,GAAGqc,GAAK,EAAEvc,GAAG,iDAAW,U,MAAM,C,MAAS,K,EAAoE,eAAa,0B,OAAC,U,IAAkB,G,CAAmB,SAAQ,C,MAAO,CAAoB,SAAoB,OAACM,GAAM,M,CAA0BC,EAAQ,EAAC,OAAUwN,C,MAAS,CAA+B,MAAC,QAACvN,QAAW,6CAAkB,YAAG,eAAcR,GAAYE,gBAAM,GAAC,MAAO,OAAI,YAAQ,QAAC,aAAK,QAAK,MAAK,CAAcA,MAAM,SAAC,SAAQD,SAAImI,GAAqB,OAAQnI,EAAO,aAAuE,WAAQ,sBAAqB,WAAe,EAAG,Q,MAAC,CAAmB,SAAqB,OAAsB,S,CAAQvB,SAAOm8C,C,MAAoBt6C,C,MAA6BiK,EAAKqwC,qBAA2B,MAAC,mDAACr6C,QAAW,aAAoB,aAAI,SAAO,GAASN,gBAAM,GAAC,YAAU,OAAC,aAAQ,QAAC,iBAAK,GAAK,MAAK,CAAYA,MAAM,WAAC,SAAQD,SAAI06C,GAAW,OAAQ16C,EAAO,eAAyE,WAAQ,yBAAqB,a,MAAmB,CAAqB,SAAoB,OAACK,GAAM,M,CAA6BC,SAAS,C,MAAmB,CAAkC,MAAC,aAACC,QAAW,kDAAqB,sBAAI,MAAO,OAAST,SAAY,GAASG,gBAAM,GAAC,aAAU,QAAC,YAAQ,SAAS,OAAIF,MAAG,EAAc,UAAEiC,SAAM,YAAE,OAAUsa,kBAAQrc,WAAM,0BAA4D,KAAO,OAAKwkE,C,YAAwB,S,MAAO,CAAc,SAACpkE,GAAM,IAAC5B,GAAK,M,GAA6CuB,OAAS46C,C,MAAkC,CAACr6C,SAAU,GAAsB,MAAO,CAAcT,MAAW,EAAC,+CAAYG,MAAM,kBAAC,MAAO,OAAG,SAAO,IAAImB,MAAG,CAAC,MAAO,EAAC,O,SAAwBpB,SAAIghN,GAAsB,4BAAKjhN,WAAW,sBAA8DD,EAAW,EAAC,QAAkBG,YAAM,YAAC,OAAa,QAAgB,KAAQ,IAAY,GAAC,CAAC,MAAQD,SAAIihN,GAAY,+BAA4B,UAAO,GAAM,wCAAC,KAAM,OAAK,C,YAAS,kBAAO,OAAIlhN,QAAU,GAACD,UAAY,IAAaE,MAAO,U,GAAgG,CAAW,uBAA6BF,gBAAY,CAAO,MAAM8N,CAAoH,KAAU,OAAS7O,KAAO,KAACe,iB,EAAiD,Q,YAAgB,Y,CAACsB,EAAG,sF,MAAC,C,KAAyB,O,CAAwC,kBAAC,YAAU,QAAiC,CAACpB,EAAI6B,GAAI7B,EAAIkhN,QAAUrtM,yCAA+B,8CAAC,OAAO9T,EAAG,OAAK,CAAEhB,IAAK,EAAyB,YAAU,8BAACe,OAAqBE,UAAa,KAA+FF,IAAmBG,MAAM,YAAC,OAAQ,EAACqsC,UAAa,iBAA6B,CAACvsC,EAAG,OAAQ,wBAACD,OAAW,UAAC,kBAAsB,K,OAAM,EAAC,O,IAAC,KAAY,QAAG,K,CAAC,OAAQ,CAAO,YAAC,QAACsB,CAAE,EAAC,sE,IAAC,Y,YAAgCpB,O,MAAuB,CAAC,gBAAIA,oBAAkBA,KAAgFC,EAAM,QAAC,YAAO,uBAAI,OAAM,UAAa,IAAUH,MAAY,SAA6FG,GAAK,CAAE,MAAQD,SAAO,GAAuD,OAAQ,EAAM,mBAAuC,UAAc,EAAC,mEAAG,aAACK,MAAM,CAAC5B,KAAOuB,O,GAA4CA,QAAImhN,OAAcrzM,C,YAAI,Q,CAACvN,OAAU,GAAC,6DAAe,OAAIR,MAAQ,EAAC,0DAACD,MAAW,OAAkBE,cAAImhN,EAA0ClhN,eAAM,EAAC,eAAe,I,MAA6D,CAAkB,sBAAoB,kBAAe,GAAG,mBAAQxB,WAAWyiN,mB,EAA2ClhN,MAAQ,C,YAA+B,e,CAACO,gBAAW,mBAAkB,OAAI,MAAO,EAAG,GAAIP,8CAAgCF,MAAW,OAAYC,cAAS,EAACD,eAAY,EAAUE,eAAIohN,I,MAAwD,CAA8D,MAAMphN,EAAIqhN,iBAAgB,SAAS,SAACC,GAAgB,OAAQthN,EAAIuhN,mBAAkB,IAAgB,WAAW,uBAAIlhN,GAAM,mC,YAAY6gN,U,CAAmB5gN,QAAS,C,YAAyBN,Q,CAA+B,QAAD,EAAC,6B,MAACO,CAA8B,0DAAG,IAAO,EAAIP,gBAAqDC,IAAM,kBAAC,MAAQD,EAAII,mBAAkD,MAAMJ,OAAoB,SAAUshN,I,MAA6C,CAAe,QAAU,UAAC,QAAG,qBAACjhN,EAAM,+BAA+BC,WAAS,uBAAwD,8C,MAACC,CAA8B,0DAAG,IAAO,EAAG,gBAAcT,MAAY,gBAAWC,MAAG,EAAU,iBAAED,MAAW,OAAQG,SAAM,I,MAAgC,CAAwB,MAAO,EAACD,UAAO,QAAmD,kBAAmB,GAAC,SAAa,UAAO,cAAgB,WAAW,uBAAqB,WAAe,EAAC,OAAE,YAAC,UAACoB,CAAE,EAAC,Q,YAAUpB,OAAuB,OAAID,MAAG,qBAAaE,MAAM,cAAC,MAAQ,wDAAG,oBAACN,aAAe,QAAMZ,MAAI,OAAYa,SAAG,G,eAAa,G,gBAAO,I,GAAS,C,OAAUG,EAAG,uB,SAAgD,C,aAAU,I,YAAoD,O,6BAAgC,G,UAAuC,MAAC,IAAW,MAAK,GAAK,OAAC,KAAU,MAAO,YAAM,OAACoC,MAAY,CAAC,KAAY,KAAeyL,QAAO5N,GAAOA,GAAO,oBAAyHF,MAAY,CAAoC,sBAAC,MAAY,EAAG,iBAAC,KAAYE,SAAc,OAAuB,qBAAG,CAACA,EAAG,MAAO,CAA6EF,YAAY,CAA8BG,YAAM,U,CAAiB,SAAYD,EAAI4Q,6GAA0L,W,YAAC,8BAAmC,OAAI7Q,UAAW,IAACD,UAAY,S,GAAyB,CAAgB,QAAY,aAAM,CAACE,EAAI4N,GAAG,IAAI5N,EAAIW,GAAGX,EAAII,GAAG,0CAA0C,OAAO,EAAG,kBAAS,CAC7oO,OACGa,gBAAoB,qB,8LAF0uN2P,UAAK,YAAC,8BAACxP,MAAG,CAAC,UAAYogN,IAAU,mBAAoGvhN,IAAO,qBAA2CmB,CAAE,EAAC,mE,8JDe57N,SAAK2/M,GACHA,eACAA,eACAA,iBACAA,gBAJF,CAAKA,MAAW,KAehB,IAAqB/wD,EAArB,cAAwC1qJ,eAAOC,SAA/CxC,c,oBAeE,KAAA6N,OAAQ,EACR,KAAAswM,UAAYrmK,eAAoB,GAAI,GAAI,GAAI,GAE5C,KAAA4mK,SAAW,CACR/hM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,+CACrCsf,GAAWA,EAAE3mB,QAAU,KAAOkK,KAAK7C,GAAG,gDAEzC,KAAAqkE,gBAAkB,CACf/kD,GAAW,qBAAqBrO,KAAKqO,IAAMzc,KAAK7C,GAAG,sDAEtD,KAAAshN,aAAe,CAAEhiM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,uDACtD,KAAAuhN,cAAgB,CAAEjiM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,4DAGvD,KAAAghN,mBAAqBL,EAAYpsJ,IACjC,KAAAitJ,eAAiBb,EAAYpsJ,IAC7B,KAAAwsJ,eAAgB,EAIhB,KAAAG,gBAAkB,OAClB,KAAAC,mBAAqB,CAClB7hM,GAAW,WAAWrO,KAAKqO,IAAMzc,KAAK7C,GAAG,qDACzCsf,GAAWA,GAAK,IAAMzc,KAAK7C,GAAG,yDAEjC,KAAAyhN,iBAAmB,CAChBniM,GAAW,WAAWrO,KAAKqO,IAAMzc,KAAK7C,GAAG,qDACzCsf,GAAWA,GAAK,GAAKzc,KAAK7C,GAAG,uDAVhC,sBACE,OAAO6C,KAAKm+M,qBAAuBL,EAAYpsJ,IAAM,GAAK,EAY5DmtJ,4BACO7+M,KAAKk+M,cAG4B,IAA3Bl+M,KAAKi+M,UAAUjkN,UACxBgG,KAAKi+M,UAAUjkN,QAAU,MAHzBgG,KAAKi+M,UAAUjkN,QAAU,EACzBgG,KAAKi+M,UAAUpyK,QAAS,GAM5BizK,oBAAoBzxL,GAElB,OADArtB,KAAKm+M,mBAAqB9wL,EAClBA,GACN,KAAKywL,EAAYpsJ,IACX1xD,KAAK2+M,iBAAmBb,EAAY39M,IACtCH,KAAKi+M,UAAUjkN,SAAW,GACjBgG,KAAK2+M,iBAAmBb,EAAYzrK,KAC7CryC,KAAKi+M,UAAUjkN,SAAW,KACjBgG,KAAK2+M,iBAAmBb,EAAYz8M,MAC7CrB,KAAKi+M,UAAUjkN,SAAW,OAE5BgG,KAAKq+M,gBAAkB,OACvB,MACF,KAAKP,EAAY39M,IACXH,KAAK2+M,iBAAmBb,EAAYpsJ,IACtC1xD,KAAKi+M,UAAUjkN,SAAW,GACjBgG,KAAK2+M,iBAAmBb,EAAYzrK,KAC7CryC,KAAKi+M,UAAUjkN,SAAW,GACjBgG,KAAK2+M,iBAAmBb,EAAYz8M,MAC7CrB,KAAKi+M,UAAUjkN,SAAW,MAE5BgG,KAAKq+M,gBAAkB,MACvB,MACF,KAAKP,EAAYzrK,KACXryC,KAAK2+M,iBAAmBb,EAAYpsJ,IACtC1xD,KAAKi+M,UAAUjkN,SAAW,KACjBgG,KAAK2+M,iBAAmBb,EAAY39M,IAC7CH,KAAKi+M,UAAUjkN,SAAW,GACjBgG,KAAK2+M,iBAAmBb,EAAYz8M,MAC7CrB,KAAKi+M,UAAUjkN,SAAW,IAE5BgG,KAAKq+M,gBAAkB,IACvB,MACF,KAAKP,EAAYz8M,IACXrB,KAAK2+M,iBAAmBb,EAAYpsJ,IACtC1xD,KAAKi+M,UAAUjkN,SAAW,MACjBgG,KAAK2+M,iBAAmBb,EAAY39M,IAC7CH,KAAKi+M,UAAUjkN,SAAW,KACjBgG,KAAK2+M,iBAAmBb,EAAYzrK,OAC7CryC,KAAKi+M,UAAUjkN,SAAW,IAE5BgG,KAAKq+M,gBAAkB,EACvB,MAKJr+M,KAAKi+M,UAAUjkN,QAAU4sB,KAAKysB,MAAMrzC,KAAKi+M,UAAUjkN,SACpB,IAA3BgG,KAAKi+M,UAAUjkN,UACbgG,KAAKm+M,qBAAuBL,EAAYpsJ,IAC1C1xD,KAAKi+M,UAAUjkN,QAAU,GAEzBgG,KAAKi+M,UAAUjkN,QAAU,GAK7BgG,KAAK2+M,eAAiB3+M,KAAKm+M,mBAE7BY,yBAAsB,WACP,QAAT,EAAA/+M,KAAK8G,YAAI,aAAT,EAAW9M,SAAU,QAAU,EACjCgG,KAAKm+M,mBAAqBL,EAAYz8M,KACpB,QAAT,EAAArB,KAAK8G,YAAI,aAAT,EAAW9M,SAAU,OAAS,EACvCgG,KAAKm+M,mBAAqBL,EAAYzrK,MACpB,QAAT,EAAAryC,KAAK8G,YAAI,aAAT,EAAW9M,SAAU,KAAO,IACrCgG,KAAKm+M,mBAAuBL,EAAY39M,KAI5C,YACE,MAAO,CACL,CAAEuN,MAAO1N,KAAK7C,GAAG,+CAAgDivC,MAAM,GACvE,CAAE1+B,MAAO1N,KAAK7C,GAAG,8CAA+CivC,MAAM,IAG1E,iBACE,MAAO,CACL,CAAErsC,MAAOC,KAAK7C,GAAG,sCAAuC3B,MAAO,QAC/D,CAAEuE,MAAOC,KAAK7C,GAAG,4CAA6C3B,MAAO,eACrE,CAAEuE,MAAOC,KAAK7C,GAAG,wCAAyC3B,MAAO,UACjE,CAAEuE,MAAOC,KAAK7C,GAAG,2CAA4C3B,MAAO,cACpE,CAAEuE,MAAOC,KAAK7C,GAAG,+CAAgD3B,MAAO,kBACxE,CAAEuE,MAAOC,KAAK7C,GAAG,yCAA0C3B,MAAO,YAGtE,kBACE,MAAO,CACL,CAAEuE,MAAOC,KAAK7C,GAAG,sCAAuC3B,MAAOsiN,EAAYpsJ,KAC3E,CAAE3xD,MAAOC,KAAK7C,GAAG,sCAAuC3B,MAAOsiN,EAAY39M,KAC3E,CAAEJ,MAAOC,KAAK7C,GAAG,uCAAwC3B,MAAOsiN,EAAYzrK,MAC5E,CAAEtyC,MAAOC,KAAK7C,GAAG,sCAAuC3B,MAAOsiN,EAAYz8M,MAI/E,iBACE,QAASrB,KAAK8G,KAIhB,sBAAsBW,GACpBzH,KAAKi+M,UAAUxmK,WAAWzgD,OAAOyQ,EAAK,SAChCzH,KAAKgO,WAEb,qBACEhO,KAAKi+M,UAAUxmK,WAAWrhD,KAAK,CAC7BshD,QAAQ,EACRz+C,OAAQ,EACRsX,SAAU,GACVonC,UAAW,iBAEP33C,KAAKgO,WAIb,8BACE,MAAO,CACL,CAAEjO,MAAOC,KAAK7C,GAAG,6CAA8C6hN,WAAY,SAC3E,CAAEj/M,MAAOC,KAAK7C,GAAG,+CAAgD6hN,WAAY,WAC7E,CAAEj/M,MAAOC,KAAK7C,GAAG,6CAA8C6hN,WAAY,UAG/E,gBAAgBpmN,GACd,MAAMywC,EAAc,CAAE,KAAQzwC,EAAMmK,OAAQ,IAE5C,OAAQnK,GACN,IAAK,UACHywC,EAAOtmC,OAAS,CACdkrC,QAAS,CACP,eAAgB,oBAElBC,OAAQ,OACRG,KAAM,cACNF,IAAK,IAEP,MACF,IAAK,QACH9E,EAAOtmC,OAAS,CACdqrC,WAAY,CAAC,oBACbprB,QAAS,GACTqrB,KAAM,eAER,MACF,IAAK,QACHhF,EAAOtmC,OAAS,CACdnK,KAAM,EACNy1C,KAAM,eAER,MAGJruC,KAAKi+M,UAAUrtM,QAAQxa,KAAKizC,SACtBrpC,KAAKgO,WAEb,mBAAmBvG,GACjBzH,KAAKi+M,UAAUrtM,QAAQ5Z,OAAOyQ,EAAK,SAC7BzH,KAAKgO,WAGb,uBACQhO,KAAKutC,YACVvtC,KAAK8J,MAAMmE,KAAaD,WAG3B,mBACE,MAAM9G,EAAY4O,uBAAU9V,KAAKi+M,WAGZ,IAAjB/2M,EAAKlN,UACHgG,KAAKm+M,qBAAuBL,EAAY39M,IAC1C+G,EAAKlN,SAAW,GACPgG,KAAKm+M,qBAAuBL,EAAYzrK,KACjDnrC,EAAKlN,SAAW,KACPgG,KAAKm+M,qBAAuBL,EAAYz8M,MACjD6F,EAAKlN,SAAW,OAElBkN,EAAKlN,QAAUq7C,SAASnuC,EAAKlN,QAAS,KAGxC,IACMgG,KAAK8G,WACD9G,KAAKi/M,WAAW,CAAEh/M,GAAID,KAAK8C,OAAOC,OAAO9C,GAAI83D,UAAW7wD,EAAMR,QAAS1G,KAAK8G,KAAK7G,YAEjFD,KAAKk/M,QAAQ,CAAEj/M,GAAID,KAAK8C,OAAOC,OAAO9C,GAAI83D,UAAW7wD,IAC3DlH,KAAKiC,MAAM,mBACXjC,KAAK48B,UAAU,CACbhkC,KAAM,UACN4B,QAAS,UACTgB,OAAO,KAGX,MAAO9D,GACPsI,KAAK48B,UAAU,CACbhkC,KAAM,QACN4B,QAAS9C,EAAE8C,QACXgB,OAAO,KAIb,8BACQwE,KAAKyG,WAAW,CAAEL,WAAYpG,KAAK8C,OAAOC,OAAO9C,GAAIyG,QAAS1G,KAAKi+M,UAAUh+M,KACnFD,KAAKiC,MAAM,cAGb,gBACMjC,KAAK8G,MACmB,OAAtB9G,KAAK8G,KAAK9M,SAA0C,IAAtBgG,KAAK8G,KAAK9M,UAC1CgG,KAAKk+M,eAAgB,GAEvBl+M,KAAKi+M,UAAYnoM,uBAAU9V,KAAK8G,MAChC9G,KAAK++M,yBACL/+M,KAAK8+M,oBAAoB9+M,KAAKm+M,sBAE9Bn+M,KAAKk+M,eAAgB,QACfl+M,KAAK6C,eAAe7C,KAAK8C,OAAOC,OAAO9C,KAGjD,sBACQD,KAAKgO,aA9QL1N,gBAAPC,kBAAM,2BAEaD,gBAAnB2H,eAAM,cAAY,qCACuB3H,gBAAzC4H,eAAO,mCAAiC,2CACd5H,gBAA1B2P,eAAS,kBAAgB,gCACU3P,gBAAnC6H,eAAO,6BAA2B,qCACV7H,gBAAxB6H,eAAO,kBAAgB,8BAGI7H,gBAA3B6H,eAAO,qBAAmB,iCAGC7H,gBAA3B6H,eAAO,qBAAmB,iCAgC3B7H,gBADC6B,eAAM,kBAAgB,8CA5CJ4qJ,EAAU,gBAR9BtsJ,eAAU,CACT2H,WAAY,CACVqmC,MAAOC,OACPC,QAASC,OACTuwK,MAAOC,OACP5xG,iCAGiBu/C,WE9Bia,I,wBCQlbrsJ,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,WACA,MAIa,OAAA0C,E,kECnBf,W,yDCAA,W,kCCAA,W,0CCAAlJ,EAAOD,QAAU,s3E,kCCAjB,W,qBCAAC,EAAOD,QAAU,IAA0B,iC,mBCA3CC,EAAOD,QAAU,ksJ,kCCSV,IAAK+pL,EAAZ,2CAAYA,GACVA,0CACAA,0CACAA,wCAHF,CAAYA,MAAgB,M,yDCT5B,W,mBCAA9pL,EAAOD,QAAU,kiH,yDCAjB,W,kCCAA,W,6/BCAA,W,qBCAAC,EAAOD,QAAU,IAA0B,oC,kCCA3C,W,gFCAA,W,qBCAAC,EAAOD,QAAU,IAA0B,4C,islBCA3C,W,kCCAA,IAAIiI,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,sCAAsC,CAACC,EAAG,MAAM,CAACD,YAAY,aAAa,CAACE,EAAIoQ,GAAG,cAAc,GAAGrQ,EAAG,MAAM,CAACD,YAAY,cAAc,CAACE,EAAIoQ,GAAG,eAAe,MAEhRnP,EAAkB,G,wBCEtB,IAAqBuhE,EAArB,cAA6D1/D,SAAxC0/D,EAA+B,gBADnD9+D,QACoB8+D,WCJif,I,wBCQlgB7+D,EAAY,eACd,EACAlB,EACAxB,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,2CCnBf,W,kCCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,kCCAA,W,qBCAAlJ,EAAOD,QAAU,IAA0B,gC,yDCA3C,IAAIiI,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,uBAAuBsB,GAAG,CAAC,MAAQ,SAASX,GAAQA,EAAOkmE,kBAAkBlmE,EAAO+Q,oBAAqB,CAACzR,EAAG,SAAS,CAACkQ,IAAI,OAAOhQ,MAAM,CAAC,MAAQD,EAAI4yC,MAAM,OAAS5yC,EAAI0mE,UAAW1mE,EAAIsiN,aAAcviN,EAAG,oBAAoB,CAAChB,IAAIiB,EAAIuiN,kBAAkBtiN,MAAM,CAAC,MAAQD,EAAI4yC,MAAM,OAAS5yC,EAAI0mE,OAAO,OAAS1mE,EAAI8sE,OAAO,OAAS,UAAU,OAAS9sE,EAAIuiN,kBAAoBviN,EAAIwiN,cAAgBxiN,EAAIwoE,OAAO,YAAYxoE,EAAImyD,SAAS,sBAAsBnyD,EAAIyiN,0BAA4BziN,EAAIuiN,kBAAoBviN,EAAIuiN,kBAAkB,iBAAiBviN,EAAI0iN,cAActhN,GAAG,CAAC,gBAAkBpB,EAAIyuD,mBAAmBzuD,EAAIo+C,MAAM,IAEptBn9C,EAAkB,G,wBCFlBwB,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,oBAAoB,CAACC,EAAG,SAAS,CAACkQ,IAAI,QAAQhQ,MAAM,CAAC,MAAQD,EAAI4yC,MAAM,OAAS5yC,EAAI0mE,aAEtMzlE,EAAkB,GCKtB,IAAqB0hN,EAArB,cAA4C7/M,OAA5CC,c,oBAUE,KAAAgkE,IAAW,KACX,KAAAC,QAAe,KAEf,YACE,OAAO/jE,KAAKy/M,aAAe,IAAM,IAWnCx7I,WAAWC,EAAYC,EAAYC,EAAYC,GAC7C,OAAOz9C,KAAK09C,MAAMF,EAAKF,EAAIG,EAAKF,GAWlCI,aAAaL,EAAYC,EAAYC,EAAYC,GAC/C,MAAMG,EAAkB59C,KAAK69C,MAAMJ,EAAKF,EAAIC,EAAKF,GAC3CQ,EAAiD,IAA/B99C,KAAK69C,MAAMJ,EAAKF,EAAIC,EAAKF,GAAYt9C,KAAK+9C,GAClE,MAAO,CAAEH,UAASE,WAUpBE,YAAYC,EAAcC,EAAYC,EAAYC,GAChDH,EAAQI,UAAUH,EAAIC,GACtBF,EAAQK,OAAOF,GACfH,EAAQI,WAAWH,GAAKC,GAQ1BI,cAAclB,GACZ,OAAOA,EAAajkE,KAAKolE,MAa3BC,WAAWR,EAAcX,EAAYC,EAAYC,EAAYC,EAAYiB,EAAgBC,GACvF,MAAMC,EAAYX,EAAQY,qBAAqBvB,EAAIC,EAAIC,EAAIC,GAC3DmB,EAAKE,aAAa,EAAGJ,GACrBE,EAAKE,aAAa,EAAGH,GACrBV,EAAQc,YAAcH,EACtBX,EAAQe,UAAY,EAUtBC,UAAUhB,EAAcX,EAAYC,EAAYa,GAC9ChlE,KAAK4kE,YAAYC,EAASX,EAAIC,EAAIa,GAClCH,EAAQiB,YACRjB,EAAQkB,OAAO7B,EAAIC,GACnBU,EAAQmB,OAAO9B,EAAK,GAAIC,EAAK,IAC7BU,EAAQoB,SACRpB,EAAQqB,YACRrB,EAAQiB,YACRjB,EAAQkB,OAAO7B,EAAIC,GACnBU,EAAQmB,OAAO9B,EAAK,GAAIC,EAAK,IAC7BU,EAAQoB,SAcVE,UAAUtB,EAAcX,EAAYC,EAAYC,EAAYC,EAAYiB,EAAgBC,EAAgBP,GACtG,IAAIoB,EAAalC,EACbmC,EAAalC,EACbmC,EAAcpC,EACdqC,EAAcpC,EACdqC,EAAW,EACXC,EAAa,EACbC,EAAa,EAEjB,MAAMzC,EAAqBjkE,KAAKikE,WAAWC,EAAIC,EAAIC,EAAIC,GACjDe,EAAQplE,KAAKmlE,cAAclB,GACjCjkE,KAAKqlE,WAAWR,EAASX,EAAIC,EAAIC,EAAIC,EAAIiB,EAAQC,GAGjD,MAAMoB,EAAM,KACVH,GAAY,GACRA,EAAW,IAAGC,GAAc,GAC5BD,EAAW,KAAIE,GAAc,GAC7BF,EAAW,MACbA,EAAW,EACXC,EAAa,EACbC,EAAa,EACbN,EAAKlC,EACLmC,EAAKlC,EACLmC,EAAMpC,EACNqC,EAAMpC,GAGRU,EAAQ+B,UAAU,EAAG,EAAG5mE,KAAK2vC,MAAO3vC,KAAKyjE,QACzCoB,EAAQe,UAAY,EAGpBf,EAAQgC,OACJJ,EAAa,IACfzmE,KAAK6lE,UAAUhB,EAASuB,EAAIC,EAAIrB,EAAMR,SACtC4B,GAAMhB,EAAQx+C,KAAKkgD,IAAI9B,EAAMR,SAC7B6B,GAAMjB,EAAQx+C,KAAKmgD,IAAI/B,EAAMR,UAE3BiC,EAAazmE,KAAKolE,QACpBplE,KAAKiC,MAAM,mBACXwkE,EAAa,EACbL,EAAKlC,EACLmC,EAAKlC,GAEPU,EAAQmC,UAEHhnE,KAAKy/M,eAER56I,EAAQgC,OACJH,EAAa,IACf1mE,KAAK6lE,UAAUhB,EAASyB,EAAKC,EAAKvB,EAAMR,SACxC8B,GAAOlB,EAAQx+C,KAAKkgD,IAAI9B,EAAMR,SAC9B+B,GAAOnB,EAAQx+C,KAAKmgD,IAAI/B,EAAMR,UAE5BkC,EAAa1mE,KAAKolE,QACpBsB,EAAa,EACbJ,EAAMpC,EACNqC,EAAMpC,GAERU,EAAQmC,WAEVhnE,KAAK+jE,QAAUkD,sBAAsBN,IAKvC3mE,KAAK+jE,QAAUkD,sBAAsBN,GAcvCO,iBAAiBrC,EAAcX,EAAYC,EAAYC,EAAYC,EAAYiB,EAAgBC,EAAgBP,GAC7G,IAAIoB,EAAahC,EACbiC,EAAahC,EACbiC,EAAclC,EACdmC,EAAclC,EACdmC,EAAW,EACXC,EAAa,EACbC,EAAa,EAEjB,MAAMzC,EAAqBjkE,KAAKikE,WAAWC,EAAIC,EAAIC,EAAIC,GACjDe,EAAQplE,KAAKmlE,cAAclB,GACjCjkE,KAAKqlE,WAAWR,EAASX,EAAIC,EAAIC,EAAIC,EAAIiB,EAAQC,GAGjD,MAAMoB,EAAM,KACVH,GAAY,GACRA,EAAW,IAAGC,GAAc,GAC5BD,EAAW,KAAIE,GAAc,GAC7BF,EAAW,MACbA,EAAW,EACXC,EAAa,EACbC,EAAa,EACbN,EAAKlC,EACLmC,EAAKlC,EACLmC,EAAMpC,EACNqC,EAAMpC,GAGRU,EAAQ+B,UAAU,EAAG,EAAG5mE,KAAK2vC,MAAO3vC,KAAKyjE,QACzCoB,EAAQe,UAAY,EAEpBf,EAAQgC,OACJJ,EAAa,IACfzmE,KAAK6lE,UAAUhB,EAASuB,EAAIC,EAAIrB,EAAMR,QAAU,IAAM59C,KAAK+9C,GAAK,KAChEyB,GAAMhB,EAAQx+C,KAAKkgD,IAAI9B,EAAMR,SAC7B6B,GAAMjB,EAAQx+C,KAAKmgD,IAAI/B,EAAMR,UAE3BiC,EAAazmE,KAAKolE,QACpBplE,KAAKiC,MAAM,mBACXwkE,EAAa,EACbL,EAAKhC,EACLiC,EAAKhC,GAGPQ,EAAQmC,UAEHhnE,KAAKy/M,eAER56I,EAAQgC,OACJH,EAAa,IACf1mE,KAAK6lE,UAAUhB,EAASyB,EAAKC,EAAKvB,EAAMR,QAAU,IAAM59C,KAAK+9C,GAAK,KAClE2B,GAAOlB,EAAQx+C,KAAKkgD,IAAI9B,EAAMR,SAC9B+B,GAAOnB,EAAQx+C,KAAKmgD,IAAI/B,EAAMR,UAE5BkC,EAAa1mE,KAAKolE,QACpBsB,EAAa,EACbJ,EAAMlC,EACNmC,EAAMlC,GAERQ,EAAQmC,WAGVhnE,KAAK+jE,QAAUkD,sBAAsBN,IAKvC3mE,KAAK+jE,QAAUkD,sBAAsBN,GAGvCtmE,UACE,MAAM8mE,EAAcnnE,KAAK8J,MAAMs9D,MAC/BpnE,KAAK8jE,IAAMqD,EAAOE,WAAW,MAC7B,MAAMrC,EAAQhlE,KAAKukE,aAAavkE,KAAK6pE,OAAOjsC,EAAG59B,KAAK6pE,OAAOhsC,EAAG79B,KAAKkvD,SAAStxB,EAAG59B,KAAKkvD,SAASrxB,GACzF79B,KAAKs/M,kBACPt/M,KAAKknE,iBACHlnE,KAAK8jE,IACL9jE,KAAK6pE,OAAOjsC,EACZ59B,KAAK6pE,OAAOhsC,EACZ79B,KAAKkvD,SAAStxB,EACd59B,KAAKkvD,SAASrxB,EACd79B,KAAKslE,OACLtlE,KAAKulE,OACLP,GAGFhlE,KAAKmmE,UACHnmE,KAAK8jE,IACL9jE,KAAK6pE,OAAOjsC,EACZ59B,KAAK6pE,OAAOhsC,EACZ79B,KAAKkvD,SAAStxB,EACd59B,KAAKkvD,SAASrxB,EACd79B,KAAKslE,OACLtlE,KAAKulE,OACLP,GAINnoB,gBACE6qB,qBAAqB1nE,KAAK+jE,WApSHzjE,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,+BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,4BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,6BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,6BACEF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,wCACCF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,mCACKF,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,6BACCF,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,6BARVk/M,EAAc,gBADlCj/M,QACoBi/M,WCPid,I,wBCQleh/M,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCLf,IAAqBisD,EAArB,cAA0C9sD,OAA1CC,c,oBAaE,KAAAgkE,IAAW,KAYXt3D,UAAUq4D,EAAcX,EAAYC,EAAYC,EAAYC,EAAYiB,EAAgBC,GACtF,MAAMC,EAAYX,EAAQY,qBAAqBvB,EAAIC,EAAIC,EAAIC,GAC3DmB,EAAKE,aAAa,EAAGJ,GACrBE,EAAKE,aAAa,EAAGH,GACrBV,EAAQc,YAAcH,EACtBX,EAAQe,UAAY,EAWtB0C,SAASzD,EAAcX,EAAYC,EAAYC,EAAYC,GACzDQ,EAAQiB,YACRjB,EAAQkB,OAAO7B,EAAIC,GACnBU,EAAQmB,OAAO5B,EAAIC,GACnBQ,EAAQoB,SACRpB,EAAQqB,YAaVqC,SAAS1D,EAAcX,EAAYC,EAAYC,EAAYC,EAAYiB,EAAgBC,GACrFvlE,KAAKwM,UAAUq4D,EAASX,EAAIC,EAAIC,EAAIC,EAAIiB,EAAQC,GAChDvlE,KAAKsoE,SAASzD,EAASX,EAAIC,EAAIC,EAAIC,GAGrC7Y,kBACExrD,KAAKiC,MAAM,mBAGb,gBAEE,MAAMklE,EAAcnnE,KAAK8J,MAAM0+D,KAC/BxoE,KAAK8jE,IAAMqD,EAAOE,WAAW,MAEzBrnE,KAAKq/M,aACPr/M,KAAKuoE,SACHvoE,KAAK8jE,IACL9jE,KAAK6pE,OAAOjsC,EACZ59B,KAAK6pE,OAAOhsC,EACZ79B,KAAKkvD,SAAStxB,EACd59B,KAAKkvD,SAASrxB,EACd,UACA79B,KAAKs/M,kBAAoBt/M,KAAKu/M,cAAgBv/M,KAAKulE,QAGrDvlE,KAAKuoE,SACHvoE,KAAK8jE,IACL9jE,KAAK6pE,OAAOjsC,EACZ59B,KAAK6pE,OAAOhsC,EACZ79B,KAAKkvD,SAAStxB,EACd59B,KAAKkvD,SAASrxB,EACd,UACA,aA1FmBv9B,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,+BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,4BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,6BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,6BACEF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,wCACCF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,mCACAF,gBAAxBC,eAAK,CAAEC,SAAS,KAAO,mCACEF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,+CACKF,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,6BACCF,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,6BACCF,gBAA7BC,eAAK,CAAEC,QAAS,aAAY,oCAXVmsD,EAAY,gBALhClsD,eAAU,CACT2H,WAAY,CACVy7D,wBAGiBlX,WCdqc,ICQtd,G,UAAY,eACd,EACAntD,EACAxB,GACA,EACA,KACA,WACA,OAIa,S,mDCnBfxG,EAAOD,QAAU,smG,kCCAjB,W,kCCAA,W,kCCAA,W,yDCAA,W,wxBCAA,W,itHCA4CuF,EAAOwN,W,IAAS7K,EAAM,KAAuB,EAAO3C,EAAG,SAAc,QAAY,Y,OAACD,SAAY,CAAiCG,IAAK,a,YAAS,iCAAE,OAAIF,KAAQ,KAAuC,CAACA,EAAG,MAAM,CAAyIioB,YAAahoB,yBAAkB,SAAU,CAAC,EAAG,GAAC,OAAY,GAAC,+GAACiQ,YAAQ,gBAAChQ,KAAM,mB,IAAC,K,MAAgC,CAA0B,gCAAI,QAAG,mBAE1gBgB,I,+FCKJqxC,IAAUC,KAQV,IAAqBllC,EAArB,cAAqDvK,OAArDC,c,oBACE,KAAA+M,WAA4B,KAE5B,kBACE,OAAO7M,KAAK7C,GAAG,wDAGjB,mBACE,MAAO,CACLoyC,MAAO,CACLjqB,WAAW,EACXkqB,gBAAiBxvC,KAAKrC,SAASwL,MAAMsmC,aAAaC,iBAClDC,MAAO3vC,KAAK6M,YAEd+iC,UAAW,CACTC,SAAS,GAEXC,cAAe,CACbD,SAAS,GAEXE,UAAW,CACTF,SAAS,GAEXG,UAAW,CACTH,SAAS,GAEX7jC,OAAQ,CACN,CACEvR,KAAM,cACN7B,KAAM,SACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,UAAc,MACf,CAAC,SAAc,KACf,CAAC,UAAc,KACf,CAAC,UAAc,MACf,CAAC,UAAc,KACf,CAAC,UAAc,KACf,CAAC,QAAc,MACf,CAAC,UAAc,KACf,CAAC,UAAc,MACf,CAAC,UAAc,KACf,CAAC,UAAc,MACf,CAAC,SAAc,KACf,CAAC,UAAc,KACf,CAAC,UAAc,MACf,CAAC,UAAc,OAGnB,CACEmF,KAAM,eACN7B,KAAM,OACNqT,MAAO,EACPC,MAAO,UACP5W,KAAM,CACJ,CAAC,UAAc,GACf,CAAC,SAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,SAAc,IACf,CAAC,UAAc,GACf,CAAC,SAAc,GACf,CAAC,QAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,UAAc,GACf,CAAC,SAAc,GACf,CAAC,UAAc,IACf,CAAC,UAAc,GACf,CAAC,UAAc,MAIrB26C,OAAQ,CACNJ,SAAS,EACTK,UAAW,CACThkC,MAAOlM,KAAKrC,SAASwL,MAAMC,KAAO,UAAY,YAGlD+mC,YAAa,CACXnkC,OAAQ,CACNokC,cAAc,IAGlBC,MAAO,GACPpkC,MAAO,CACL,CACElM,MAAO,KACPoM,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXnM,IAAK,EACLC,IAAK,IACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,aACRzP,MAAO,CACLiP,MAAO,aAIb,CACEnM,MAAO,KACPuwC,UAAW,CAAC,CACV90C,MAAO,GACP0Q,MAAO,UACPqkC,UAAW,QACXZ,MAAO,EACPa,MAAO,CACLlgC,KAAM,qBACNmgC,MAAO,QACP5S,GAAI,EACJD,GAAI,MAGRzxB,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,WAAW,EACXC,cAAe,EACfpM,IAAK,EACLC,IAAK,IACLoM,UAAW,UACXC,OAAQ,CACNC,OAAQ,YACRzP,MAAO,CACLiP,MAAO,eAQnB,gBAAa,YACLlM,KAAKutC,YACXvtC,KAAK6M,WAAkD,QAApC,EAAA7M,KAAK8J,MAAM,cAAsB4mC,WAAG,aAApC,EAAsCC,cA7IxCvmC,EAAuB,gBAN3C3J,eAAU,CACT2H,WAAY,CACVwoC,WAAYjlC,WACZklC,6BAGiBzmC,WCfqc,I,YCOtd1J,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,2CClBf,W,kCCAA,W,4CCAAlJ,EAAOD,QAAU,IAA0B,uC,kCCA3C,W,yGCMYilD,E,qCAAZ,SAAYA,GACVA,uBACAA,uBACAA,mBACAA,yBACAA,kBALF,CAAYA,MAAY,KAcxB,IAAqBqsB,EAArB,cAA0ChpE,OAA1CC,c,oBAKE,KAAAs8C,aAA6BI,EAAaC,KAO1C,mBACE,OAAOz8C,KAAK89C,kBAAkBlsB,aAUhC,oBACE,MAAM,aAAE8kJ,EAAY,SAAEp4H,GAAat+C,KACnC,OAAOjK,OAAOyN,QAAQkzK,GACnBtzK,OAAQyB,GAA4BA,EAAS,GAAGnD,MAAM,KAAK,KAAO48C,GAClEt1B,OAAO,CAACC,EAA6B5lB,KAAsB,IAAM4lB,EAAU,CAAC5lB,EAAG,GAAG3B,MAAM,KAAK,IAAK2B,EAAG,KAAS,IAGnHs8M,kBACE,OAAQxlN,IACFA,IACF6F,KAAKo8C,aAAeI,EAAapjD,QAKvCwW,KAAKta,GACH0K,KAAKmhC,QAAQ,CAAE3kB,QAASlnB,EAAM+H,SAAU2C,KAAK2/M,oBAO/C,kBACE,OAAO,EAMT,iBACE,OAAO3/M,KAAK21M,cAAgB31M,KAAKwuB,gBAAgB,UAAW,iBAM9Du0D,cACE/iF,KAAKo8C,aAAeI,EAAa+vC,QAMnCvJ,gBACEhjF,KAAK4/M,iBAAiBpjK,EAAasuF,SAMrCp+C,cACE1sF,KAAK4/M,iBAAiBpjK,EAAapjD,OAOrCwmN,iBAAiBlyM,GACf1N,KAAKo8C,aAAe1uC,EACpB1N,KAAK6/M,kBAAoBllN,WAAW,KAClCqF,KAAKo8C,aAAeI,EAAaC,MAChC,KAML8vB,YACEnyE,aAAa4F,KAAK6/M,qBA5FGv/M,gBAAtB2H,eAAM,iBAAe,wCACa3H,gBAAlC4H,eAAO,4BAA0B,sCACJ5H,gBAA7B6H,eAAO,uBAAqB,8BAHV0gE,EAAY,gBADhCpoE,QACoBooE,a,mBCpBrBrxE,EAAOD,QAAU,kyG,kCCAjB,W,kCCAA,IAAIiI,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACiC,MAAM,CAAE,GAAEhC,EAAI2/G,aAAgB,sBAEpI1+G,EAAkB,G,wBCOtB,IAAqBkgD,EAArB,cAA2Cr+C,OAGzC,mBACE,OAA0B,IAAtBG,KAAKkvI,aAA2B,uBACV,IAAtBlvI,KAAKkvI,aAA2B,qBAC7B,OALD5uI,gBAAPC,kBAAM,mCADY29C,EAAa,gBADjCz9C,QACoBy9C,WCT2b,I,wBCQ5cx9C,EAAY,eACd,EACAlB,EACAxB,GACA,EACA,KACA,WACA,MAIa,OAAA0C,E,2CCnBR,IAAKm1J,EAAZ,2CAAYA,GACVA,eACAA,qBACAA,iBAHF,CAAYA,MAAuB,M,4CCAnCr+J,EAAOD,QAAU,IAA0B,2B,kCCA3C,W,gFCAA,W,kCCkFO,IAAK2gF,EAAZ,2CAAYA,GACVA,mCACAA,mCACAA,qCACAA,qCACAA,iDACAA,iDACAA,iDACAA,iDACAA,qDACAA,qDACAA,+BACAA,+BACAA,6BACAA,+BACAA,+BACAA,6BACAA,+BACAA,iCACAA,mCAnBF,CAAYA,MAAiB,M,mCClF7B,W,kCCAA,W,kCCAA,W,+LCAsO,W,MAAEl7E,K,EAAQ,WAAC,EAAQF,MAAG,Y,OAA8F,UAAC,MAAG,CAAWM,WAAM,GAAC5B,YAAWu1C,MAAQ1zC,kBAAS,O,YAA+B,OAACC,gBAAmB,gBAAM,EAAC,MAAUT,IAA4C,gBAAgB,sEAAY,MAAC,GAAaA,OAA+BG,MAAM,SAAC,SAAO,YAAE,YAA0BH,WAAY,WAA6GG,GAAK,OAAC,C,YAAW,mB,YAA4B,CAAG,yB,CAAK,SAAQ,C,YAAqB+zC,mB,MAAc,CAAC,UAAiE/zC,GAAK,OAAC,C,YAAS,oBAAE,4EAAE,MAAK,CAAqBH,SAAY,kBAAgBC,KAAQ,I,GAAS,CAAe,MAAM4M,SAAQ,GAA2B,EAAK,QAAC,KAA0C7M,UAAW,CAAC,sCAAc,MAAK,CAAuDpC,MAAUsC,KAAuEF,UAAW,GAAC,QAAc,YAAUE,eAA2DtC,GAAI,MAAMsC,CAAgC,MAAK,CAAuBC,MAAM,OAAC,IAAO,EAAO,QAAsC,mBAA+B,uBAACI,YAAM,e,CAAC5B,MAAOuB,GAAI+iN,QAAY,gC,KAACziN,IAAQ,EAAC,gBAAe,aAACN,UAAI+iN,GAAW,EAACj1M,OAAG,W,YAAC,e,CAACvN,SAAW,iDAAa,wCAAM,OAAM,EAAG,OAAI,CAAoGT,OAA8BG,MAAM,0CAAC,SAAW,GAAK,gB,MAAK,C,MAA6B+zC,cAAc,qBAAC,iBAA6Gl0C,WAAY,kBAAyB,QAAQ,KAAO,6DAAqO,OAArO,U,YAAW,kB,MAAuC,CAAgB,e,GAAK,CAAwB,kBAAIE,EAAM,QAAKA,KAAuH,0EAAoO,OAApO,UAAE,YAAW,kBAACF,OAAiCE,MAAO,QAAoDqE,UAAa2+M,mCAAe,UAAW,KAAmChhN,IAAO,uBAAsCZ,CAAE,EAAC,iF,YAASpB,CAAiB,eAAcF,SAAW,CAAgBkC,YAAM,oB,CAAE,gBAAwBhC,GAAG,+BAACijN,CAAgB,yBAAM,OAAO,EAAC,OAACnjN,YAAY,gBAAa,MAAM8N,CACnkF,mCAGD,I,wQCUA,IAAqB6iG,EAArB,cAA6C3tG,OAA7CC,c,oBAIE,KAAAixC,QAAS,EACT,KAAAkvK,iBAAkB,EAClB,KAAAC,oBAAqB,EACrB,KAAAF,iBAAkB,EAClB,KAAAF,YAAc,GACd,KAAAK,aAAe,EACf,KAAAJ,YAAc,EACd,KAAAK,iBAAmB,EACnB,uCAEE,OAAOpgN,KAAK8/M,YAAY5oM,SAAWlX,KAAKqgN,gBAAgBnpM,OAG1DopM,gBACEtgN,KAAKogN,iBAAmB,EACxBpgN,KAAKigN,iBAAkB,EACvBjgN,KAAKkgN,oBAAqB,EAC1BlgN,KAAK8/M,YAAc,GACnB9/M,KAAK+/M,YAAc//M,KAAKmgN,aACxBngN,KAAK+wC,QAAS,EACd/wC,KAAKggN,iBAAkB,EAGzBO,WACEvgN,KAAKigN,iBAAkB,EACvBjgN,KAAK8/M,YAAc,GACnB9/M,KAAK+/M,YAAc//M,KAAKmgN,aACxBngN,KAAK+wC,QAAS,EACd/wC,KAAKggN,iBAAkB,EACvBhgN,KAAKkgN,oBAAqB,EAG5BxhB,eACE1+L,KAAKigN,iBAAkB,EACvBjgN,KAAKggN,iBAAkB,EACvBhgN,KAAKogN,iBAAmB,IAExB,MAAMrjM,EAAWC,YAAY,KAC3Bhd,KAAK+/M,eAEoB,IAArB//M,KAAK+/M,aAAqB//M,KAAKkgN,sBACjC/iM,cAAcJ,GACT/c,KAAKkgN,oBACRlgN,KAAKiC,MAAM,iBAEbjC,KAAKugN,aAEN,OAlDkBjgN,gBAAtBC,eAAK,CAAEC,QAAS,MAAK,sCACIF,gBAAzBC,eAAK,CAAEC,SAAS,KAAQ,+BAFNgtG,EAAe,gBAPnC/sG,eAAU,CACT+tC,SAAU,CACR7/B,QACE,OAAOA,YAIQ6+F,WCdyZ,I,wBCQ1a9sG,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,WACA,MAIa,aAAA0C,E,yFCnBf,W,kCCAA,W,mBCAAlJ,EAAOD,QAAU,sgH,kCCKV,IAAKipN,EASAzxJ,EAZZ,sGAGA,SAAYyxJ,GACVA,sBACAA,4BACAA,wBAHF,CAAYA,MAAgB,KAS5B,SAAYzxJ,GACVA,oBACAA,kCACAA,oCACAA,0BAJF,CAAYA,MAAc,KA+JpB,MAAOg0C,EAAbjjG,cACE,KAAAG,GAAK,GACL,KAAA6gG,cAAgB,CAAEloG,KAAM,OAAQ4C,MAAO,IACvC,KAAA63D,iBAAc34D,EACd,KAAAwoE,YAAc,EACd,KAAAnjE,MAAQ,GACR,KAAA6kD,SAAWmK,EAAeC,IAC1B,KAAAoiE,aAAe,GACf,KAAAnwB,iBAAmBu/G,EAAiBpsJ,KACpC,KAAAk+D,sBAAuB,GAGnB,MAAOukB,EAAb/2I,cACE,KAAAG,GAAK,GACL,KAAAsZ,WAAa,UACb,KAAAunF,cAAgB,CAAEloG,KAAM,OAAQ4C,MAAO,IACvC,KAAA63D,iBAAc34D,EACd,KAAAwoE,YAAc,EACd,KAAAnjE,MAAQ,GACR,KAAAqxH,aAAe,GACf,KAAAxsE,SAAWmK,EAAeC,IAC1B,KAAAiyC,iBAAmBu/G,EAAiBpsJ,KACpC,KAAAk+D,sBAAuB,K,kCCnMzB,IAAI9yH,EAAS,WAAkB,IAAIzC,EAAIiD,KAAKlD,EAAGC,EAAIuN,MAAMxN,GAAUC,EAAIuN,MAAMC,YAAY,OAAOzN,EAAG,MAAM,CAACD,YAAY,oBAAoB,CAACC,EAAG,oBAAoB,CAACE,MAAM,CAAC,cAAc,MAAM,uBAAuB,QAAQ,MAAQD,EAAI8qF,cAAc1pF,GAAG,CAAC,mBAAqB,SAASX,GAAQ,OAAOT,EAAI+qF,mBAAmBtqF,OAAaT,EAAIg0D,aAAa52C,OAAQrd,EAAG,MAAM,CAACD,YAAY,gBAAgB,CAACC,EAAG,eAAe,CAAChB,IAAIiB,EAAIqrD,YAAYprD,MAAM,CAAC,UAAYD,EAAIgO,cAAc,kBAAoB,IAAI,iBAAmB,IAAI,oBAAqB,EAAM,yBAA2B,CAAC,OAAQ,QAAQ,YAAc,QAAQ,GAAGjO,EAAG,MAAM,CAACC,EAAI4N,GAAG,IAAI5N,EAAIW,GAAGX,EAAII,GAAI,2CAA0C,QAAQ,IAEzrBa,EAAkB,G,gDCStB,IAAqBuoJ,EAArB,cAAoD1mJ,OAApDC,c,oBAGE,KAAAsoD,YAAc,EACd,KAAAt2C,QAAe,CAAC,UAAW,iBAAkB,mBAAoB,eAAgB,gBACjF,KAAA+2E,eAAsB,CACpBn3E,QAAS,CAAEvR,KAAM,IAAKC,IAAK,KAC3B4R,eAAgB,CAAE7R,IAAK,EAAGC,IAAK,KAC/B2R,iBAAkB,CAAE5R,IAAK,EAAGC,IAAK,KACjCgS,aAAc,CAAEjS,IAAK,EAAGC,IAAK,KAC7BiS,aAAc,CAAElS,IAAK,EAAGC,IAAK,MAE/B,KAAA2wD,aAAoB,CAClB52C,OAAQ,KACR8+L,KAAM,IAIR,oBACE,IAAIhuM,EAA2B,GAC/BA,EAAsB,CACpB,CACEE,IAAK,QACL1Q,KAAM,QACN4Q,QAAS,CACPjL,IAAK,MACLD,IAAK,QAEPsF,WAAY,OACZ7M,KAAM,OACN0S,KAAM,IACNrH,IAAK,IAEP,CACEkH,IAAK,QACL1Q,KAAM,QACN4Q,QAAS,CACPjL,IAAK,MACLD,IAAK,QAEPsF,WAAY,OACZ7M,KAAM,OACN0S,KAAM,IACNrH,IAAK,KAIT,MAAMuH,EAAc,CAClBlW,KAAM,CACJ0O,aAAciH,EACdQ,wBAAyB,SACzBhH,cAAe,OACf7L,KAAM,SAERmQ,WAAY,+BAEd,OAAOyC,EAGT,mBACE,MAAO,CACL,CAAC,UAAW,CAAC,CAAC,WAAY,cAC1B,CAAC,iBAAkB,CAAC,CAAC,kBAAmB,qBACxC,CAAC,mBAAoB,CAAC,CAAC,oBAAqB,uBAC5C,CAAC,eAAgB,CAAC,CAAC,gBAAiB,mBACpC,CAAC,eAAgB,CAAC,CAAC,gBAAiB,oBASxC4xG,mBAAmB75G,GACjB,MAAMi6G,EAAuBtkE,IAAiBA,EAAI0X,QAAQ,OAAQ,IAClE,IAAKrtD,EAAIzN,OAAQ,OAAO,KACxB,GAAmB,IAAfyN,EAAIzN,OAAc,OAAO0nH,EAAoBj6G,EAAI,IAChD,CACH,MAAMigD,EAAYjgD,EAAIA,EAAIzN,OAAS,GACnC,MAAO,KAAK0nH,EAAoBh6D,IAIpCskC,mBAAmB/uF,GACjBiH,KAAK+wD,aAAe,CAAE52C,OAAQphB,EAAMohB,OAAQ8+L,KAAMlgN,EAAMwK,KACxDvD,KAAKooD,aAAe,EAGtB/nD,UACEL,KAAK+wD,aAAe,CAAE52C,OAAQ,UAAW8+L,KAAM,CAAC,QAAS,YAzF1B34M,gBAAhC+uD,eAAO,CAAE1nC,KAAM,iBAAgB,0CADb4+H,EAAsB,gBAN1C9lJ,eAAU,CACT2H,WAAY,CACVihF,yBACA39E,wBAGiB66I,WCXwe,I,wBCQzf7lJ,EAAY,eACd,EACAlB,EACAxB,GACA,EACA,KACA,WACA,MAIa,OAAA0C,E,yGChBf,IAAamqC,EAAb,cAAqChrC,OAArCC,c,oBACE,KAAA2gN,UAAY,CACThkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,+CACrCsf,GAAWA,EAAE3mB,QAAU,KAAOkK,KAAK7C,GAAG,gDAEzC,KAAAujN,WAAa,CACVjkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,gDACrCsf,GAAWA,EAAE3mB,QAAU,IAAMkK,KAAK7C,GAAG,iDAExC,KAAAwjN,WAAa,CACVlkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,iDAExC,KAAAyjN,SAAW,CACRnkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,+CAExC,KAAA0jN,YAAc,CACXpkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,kDAExC,KAAA8rC,iBAAmB,CAChBxsB,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,uDAExC,KAAAsrC,aAAe,CACZhsB,GAAW,gBAAgBrO,KAAKqO,IAAMzc,KAAK7C,GAAG,mDAEjD,KAAA21G,SAAW,CACRr2F,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,+CACrCsf,GAAWA,EAAE3mB,QAAU,GAAKkK,KAAK7C,GAAG,gDAEvC,KAAAqrC,iBAAmB,CAChB/rB,GAAW,oCAAoCrO,KAAKqO,IAAM,gCAE7D,KAAAysB,YAAa,CACVzsB,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,kDAExC,KAAA2jN,SAAU,CACPrkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,+CAExC,KAAA4jN,cAAgB,CACbtkM,GAAwB,IAAbA,EAAE3mB,QAAgBkK,KAAK7C,GAAG,qDAtC7B0tC,EAAe,gBAD3BpqC,QACYoqC,I,iECHbrzC,EAAOD,QAAU,s3H,mBCAjBC,EAAOD,QAAU,8rH,qBCAjBC,EAAOD,QAAU,IAA0B,wC,kDCACuF,EAAOwN,W,IAAS7K,EAAM,KAAuB,EAAO3C,EAAG,SAAgB,QAAa,Y,OAACD,SAAY,CAAsBG,IAAK,c,YAAUD,sB,MAAU,CAAkB,QAAY,MAAe,QAAYA,MAAa,aAAaikN,YAAa,YAAYxwK,WAAM,MAAQ,gBAAS,cAAmB,eAAc,mBAAG,SAAC,I,GAA0B,CAAiC,kBAAC,+B,6BCOha,IAAqBhoC,EAArB,cAAyC3I,OAQvC,kBACE,QAAKG,KAAKsD,UAAkB9H,IAA6B,IAAVA,KAAiBA,GAAUwE,KAAK7C,GAAG,6BAIpFkD,UACGL,KAAK8J,MAAMu4C,YAAoBr0C,UAAS,KAbnC1N,gBAAPC,kBAAM,4BACkBD,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,4BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,gCACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,+BACCF,gBAAxBC,eAAK,CAAEC,QAAS,QAAO,4BACCF,gBAAxBC,eAAK,CAAEC,SAAS,KAAO,+BANLgI,EAAW,gBAD/B/H,QACoB+H,WCPyb,I,wBCQ1c9H,EAAY,eACd,EACA,EACA1C,GACA,EACA,KACA,KACA,MAIa,OAAA0C,E,mDCnBflJ,EAAOD,QAAU,s3J,+HCAjB,W,mBCAAC,EAAOD,QAAU,s/F,6CCAjBC,EAAOD,QAAU,IAA0B,yC,uGCA3C,W,mBCAAC,EAAOD,QAAU,k5G","file":"js/app.245826d5.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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-08375cb5\":\"8c91ca00\",\"chunk-0e4bde61\":\"20f3c249\",\"chunk-1605f1a2\":\"22dd3767\",\"chunk-22aae448\":\"99e0bc9f\",\"chunk-2d0be65c\":\"5bb135fe\",\"chunk-300a6eb4\":\"3073f7d2\",\"chunk-38e507ff\":\"caaa7828\",\"chunk-3b0f7bc4\":\"f67dfcd2\",\"chunk-3e92fc02\":\"07985d0c\",\"chunk-43009062\":\"d107e51f\",\"chunk-67d26b5e\":\"69bc5e8c\",\"chunk-70fb08ce\":\"0ac550cf\",\"chunk-aa35d6fc\":\"713539e7\",\"chunk-aab99126\":\"62599be4\"}[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-08375cb5\":1,\"chunk-0e4bde61\":1,\"chunk-1605f1a2\":1,\"chunk-22aae448\":1,\"chunk-300a6eb4\":1,\"chunk-38e507ff\":1,\"chunk-3b0f7bc4\":1,\"chunk-3e92fc02\":1,\"chunk-43009062\":1,\"chunk-67d26b5e\":1,\"chunk-70fb08ce\":1,\"chunk-aa35d6fc\":1,\"chunk-aab99126\":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/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-08375cb5\":\"c343c8e3\",\"chunk-0e4bde61\":\"d16bf950\",\"chunk-1605f1a2\":\"e9d12c18\",\"chunk-22aae448\":\"cacaaa53\",\"chunk-2d0be65c\":\"31d6cfe0\",\"chunk-300a6eb4\":\"749bf304\",\"chunk-38e507ff\":\"4da82c90\",\"chunk-3b0f7bc4\":\"b5251ebc\",\"chunk-3e92fc02\":\"5569b8bf\",\"chunk-43009062\":\"ca5c591c\",\"chunk-67d26b5e\":\"1a66f66b\",\"chunk-70fb08ce\":\"5ac5bd09\",\"chunk-aa35d6fc\":\"6b30a47a\",\"chunk-aab99126\":\"8ab47edd\"}[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([1,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/ConsumptionService.6de6f771.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewImage.vue?vue&type=style&index=0&id=2dc29a64&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/MpcEnergyView.e4299e94.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=style&index=0&id=044e4d84&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=style&index=0&id=0979930e&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDownBase.vue?vue&type=style&index=0&id=74c70de2&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1750\",\"isConfirmationDialog\":_vm.isConfirmationDialog},on:{\"dialogStatus\":_vm.handleModalWindowStatus},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"manage-anomaly-detection\"},[_c('div',{staticClass:\"manage-anomaly-detection-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[(!_vm.deviceFormView)?_c('v-col',{staticClass:\"d-flex flex-column py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c('div',{staticClass:\"device-type-field\"},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"offset-lg\":_vm.deviceType.value ? 4 : 6,\"lg\":_vm.deviceType.value ? 4 : 6}},[_c('v-combobox',{staticClass:\"items-list-background\",style:(_vm.deviceType.value ? 'margin-top: 58px;' : null),attrs:{\"items\":_vm.anomalyDetectionTypesArrayList,\"label\":_vm.$t('modals.manageMLModel.form.type'),\"item-value\":\"value\",\"item-text\":\"title\",\"outlined\":\"\",\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"cache-items\":\"\"},model:{value:(_vm.deviceType),callback:function ($$v) {_vm.deviceType=$$v},expression:\"deviceType\"}})],1)],1)],1)],1),_c('div',[_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.typeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.typeValidation},on:{\"click\":function($event){_vm.deviceFormView = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}],null,false,3095024692)},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.type')))])])],1)]):_vm._e(),(_vm.deviceFormView)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c(_vm.currentAnomalyDetectionType.manageSchema,{tag:\"component\",attrs:{\"device-data\":_vm.anomalyDetectionDataWithType,\"is-edit-modal\":!!_vm.deviceData.data.type,\"active-room-id\":_vm.activeRoomId},on:{\"closeDialog\":_vm.closeDialog,\"handleControl\":_vm.handleControl,\"backToChoosingType\":function($event){_vm.deviceFormView = false},\"onFormUnchanged\":_vm.onFormUnchanged}})],1):_vm._e(),(!_vm.$vuetify.breakpoint.mobile)?_c('v-col',{staticClass:\"d-flex align-center justify-center py-0\",attrs:{\"cols\":\"4\"}},[_c('div',{staticClass:\"manage-anomaly-detection-preview-wrapper\"},[(_vm.currentPreviewImage)?_c('PreviewImage',{attrs:{\"src\":_vm.currentPreviewImage}}):_vm._e()],1)]):_vm._e()],1)],1)],1)])]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"anomaly-detection-default-schema\"},[_c('v-stepper',{model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageAnomalyDetection.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageAnomalyDetection.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageAnomalyDetection.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"content\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageAnomalyDetection.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"40\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',{staticClass:\"actions\"},[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.nameType')))])])],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-badge',{attrs:{\"dot\":\"\",\"color\":\"error\",\"overlap\":\"\",\"offset-x\":\"10\",\"value\":!_vm.mappingsValidation.general}},[_c('NavigationTab',{attrs:{\"is-active\":_vm.tab === 0,\"tab-title\":_vm.$t('modals.manageAnomalyDetection.mappingsTabs.general')},on:{\"click\":function($event){_vm.tab = 0}}})],1),_c('v-badge',{attrs:{\"dot\":\"\",\"color\":\"error\",\"overlap\":\"\",\"offset-x\":\"10\",\"value\":!_vm.mappingsValidation.variables}},[_c('NavigationTab',{attrs:{\"is-active\":_vm.tab === 1,\"tab-title\":_vm.$t('modals.manageAnomalyDetection.mappingsTabs.variables')},on:{\"click\":function($event){_vm.tab = 1}}})],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tab === 0),expression:\"tab === 0\"}]},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[(_vm.isStartStopDateComponent)?_c('RangeDatePicker',{staticClass:\"mt-5\",attrs:{\"start-date\":_vm.localDeviceData.data.meta.controllerMappings.startDate,\"end-date\":_vm.localDeviceData.data.meta.controllerMappings.endDate},on:{\"handleStartStopDate\":_vm.handleStartStopDate}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',_vm._l((_vm.mappingsByColumns.middleMappings),function(middleField,middleFieldIndex){return _c('div',{key:middleFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.anomalyDetectionMappings[middleField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.anomalyDetectionMappings[middleField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.anomalyDetectionMappings[middleField].component,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.anomalyDetectionMappings[middleField].items),\"label\":_vm.$t(`anomalyDetection.${_vm.localDeviceData.data.type}.mappings.${middleField}.label`),\"optional\":_vm.anomalyDetectionMappings[middleField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[middleField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, middleField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[middleField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`anomalyDetection.${_vm.localDeviceData.data.type}.mappings.${middleField}.description`))+\" \")])],1)])}),0)]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',_vm._l((_vm.mappingsByColumns.outputMappings),function(outputField,outputFieldIndex){return _c('div',{key:outputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.anomalyDetectionMappings[outputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.anomalyDetectionMappings[outputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.anomalyDetectionMappings[outputField].component,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.anomalyDetectionMappings[outputField].items),\"label\":_vm.$t(`anomalyDetection.${_vm.localDeviceData.data.type}.mappings.${outputField}.label`),\"optional\":_vm.anomalyDetectionMappings[outputField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[outputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, outputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[outputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`anomalyDetection.${_vm.localDeviceData.data.type}.mappings.${outputField}.description`))+\" \")])],1)])}),0)])],1)],1)],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.tab === 1),expression:\"tab === 1\"}]},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.localDeviceData.data.chartOptions),function(variableObj,variableIndex){return _c('v-col',{key:variableIndex,attrs:{\"cols\":\"4\"}},[_c('div',{staticStyle:{\"height\":\"40px\"}},[(variableIndex === _vm.localDeviceData.data.chartOptions.length - 1)?_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\",\"disabled\":_vm.isMaximumOfVariablesReached},on:{\"click\":_vm.addVariable}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-plus\")]),_vm._v(\" \"+_vm._s(_vm.$t('modals.manageAnomalyDetection.addVariable'))+\" \")],1):_vm._e()],1),_c('div',{staticClass:\"mt-2\"},[(_vm.localDeviceData.data.chartOptions.length > 1)?_c('v-btn',{staticClass:\"error lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.removeVariable(variableIndex)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.delete'))+\" \")]):_vm._e(),_vm._l((_vm.mappingsByColumns.variableMappings),function(variableField,variableFieldIndex){return _c('div',{key:variableFieldIndex,staticClass:\"mt-2\"},[(_vm.anomalyDetectionMappings[variableField])?_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.anomalyDetectionMappings[variableField].optional) }},[_c(_vm.anomalyDetectionMappings[variableField].component,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.anomalyDetectionMappings[variableField].items),\"label\":_vm.$t(`modals.manageAnomalyDetection.form.${variableField}`),\"optional\":true,\"scaling-data\":_vm.localDeviceData.data.chartOptions[variableIndex][variableField],\"maxLength\":variableField === 'unit' ? 10 : undefined,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.localDeviceData.data.chartOptions[variableIndex][variableField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.chartOptions[variableIndex], variableField, $$v)},expression:\"localDeviceData.data.chartOptions[variableIndex][variableField]\"}})],1):_vm._e()])})],2)])}),1)],1)],1)]),_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"stage2-actions\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingsValidation.all},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingsValidation.all},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageMLModel.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])])])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":\"6\"}},[_c('div',[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageMLModel.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('v-select',{attrs:{\"items\":_vm.anomalyDetectionInstanceWidthItems,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageAnomalyDetection.form.width'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.data.selectedWidth),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data, \"selectedWidth\", $$v)},expression:\"localDeviceData.data.selectedWidth\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('modals.manageAnomalyDetection.form.threshold'),\"step\":1,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true},model:{value:(_vm.localDeviceData.data.threshold),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data, \"threshold\", _vm._n($$v))},expression:\"localDeviceData.data.threshold\"}})],1)])],1)],1)],1),_c('div',{staticClass:\"actions\"},[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.areaFields')))])])],1)])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"scaling-field\"},[_c('v-select',{attrs:{\"items\":_vm.scalingTypes,\"item-text\":\"title\",\"item-value\":\"id\",\"label\":_vm.$t('uiComponents.scalingField.label'),\"color\":\"accent\",\"hide-selected\":\"\",\"outlined\":\"\"},on:{\"change\":_vm.handleScalingType},model:{value:(_vm.scalingType),callback:function ($$v) {_vm.scalingType=$$v},expression:\"scalingType\"}}),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.scalingField.min'),\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.scalingData.min),callback:function ($$v) {_vm.$set(_vm.scalingData, \"min\", _vm._n($$v))},expression:\"scalingData.min\"}}),_c('v-text-field',{staticClass:\"ml-2\",attrs:{\"label\":_vm.$t('uiComponents.scalingField.max'),\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.scalingData.max),callback:function ($$v) {_vm.$set(_vm.scalingData, \"max\", _vm._n($$v))},expression:\"scalingData.max\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Scaling } from '@/types/common.types';\n\n/**\n * Scaling field component which used in manage modal forms\n */\n@Component\nexport default class ScalingField extends Vue {\n @Prop({ default: null }) scalingData!: Scaling;\n\n scalingType = 'manual'\n\n get scalingTypes() {\n return [\n { title: this.$t('uiComponents.scalingField.scalingMethods.manual'), id: 'manual' },\n { title: this.$t('uiComponents.scalingField.scalingMethods.auto'), id: 'auto' },\n ];\n }\n\n handleScalingType() {\n if (this.scalingType === 'auto') {\n this.scalingData.min = null;\n this.scalingData.max = null;\n }\n }\n\n mounted() {\n if (this.scalingData.min === null && this.scalingData.max === null) {\n this.scalingType = 'auto';\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScalingField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScalingField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScalingField.vue?vue&type=template&id=7d913f0b&scoped=true&\"\nimport script from \"./ScalingField.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScalingField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d913f0b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"range-date-picker\"},[_c('v-btn',{staticClass:\"lynus-mid-btn\",staticStyle:{\"width\":\"100%\"},attrs:{\"color\":\"accent\"},on:{\"click\":function($event){_vm.isCalendar = true}}},[(!_vm.startDate && !_vm.endDate)?_c('span',{staticClass:\"mr-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.rangeDatePicker.buttonTitle'))+\" \")]):_c('span',[_vm._v(_vm._s(_vm.convertToDate(_vm.startDate))+\" TO \"+_vm._s(_vm.convertToDate(_vm.endDate)))])]),_c('v-dialog',{attrs:{\"width\":\"580\",\"persistent\":\"\"},model:{value:(_vm.isCalendar),callback:function ($$v) {_vm.isCalendar=$$v},expression:\"isCalendar\"}},[_c('div',{staticClass:\"range-date-picker-body\"},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',[_c('div',{staticClass:\"text-center font-weight-bold pa-4 accent\"},[_vm._v(\"Start Date\")]),_c('v-date-picker',{attrs:{\"value\":_vm.convertToDate(_vm.start),\"show-current\":false,\"first-day-of-week\":1,\"color\":\"accent\",\"no-title\":\"\"},on:{\"input\":function($event){return _vm.handleStartDate($event)}}})],1),_c('div',[_c('div',{staticClass:\"text-center font-weight-bold pa-4 accent\"},[_vm._v(\"End Date\")]),_c('v-date-picker',{attrs:{\"value\":_vm.convertToDate(_vm.end),\"show-current\":false,\"first-day-of-week\":1,\"color\":\"accent\",\"min\":_vm.convertToDate(_vm.start),\"disabled\":!(!!_vm.start),\"no-title\":\"\"},on:{\"input\":function($event){return _vm.handleEndDate($event)}}})],1)]),_c('div',{staticClass:\"pa-2 d-flex justify-space-between\"},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.cancelDate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.cancel'))+\" \")]),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.acceptDate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.accept'))+\" \")])],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\n\n/**\n * Form field Range Date Picker, give possibility to handle start, end date\n */\n@Component\nexport default class RangeDatePicker extends Vue {\n @Prop({ default: null }) startDate!: number; // Timestamp seconds\n @Prop({ default: null }) endDate!: number; // Timestamp seconds\n\n start: any = null\n end: any = null\n isCalendar = false\n\n @Watch('isCalendar')\n onCalendarDialogChange(val: boolean) {\n if (val) {\n this.start = this.startDate;\n this.end = this.endDate;\n }\n }\n\n /**\n * Converts seconds to date YYYY-MM-DD\n * @param seconds number of seconds\n * @return string date in format YYYY-MM-DD\n */\n convertToDate(seconds: number) {\n if (!seconds) return '';\n const [day, month, year] = new Date(seconds * 1000).toLocaleDateString('en-GB').split('/');\n return `${year}-${month}-${day}`;\n }\n\n /**\n * Converts date YYYY-MM-DD to seconds\n * @param date in format YYYY-MM-DD\n * @return date in seconds\n */\n convertToSeconds(date: string) {\n const [year, month, day] = date.split('-');\n return Date.UTC(+year, +month - 1, +day) / 1000;\n }\n\n handleStartDate(e: any) {\n this.start = this.convertToSeconds(e);\n }\n handleEndDate(e: any) {\n this.end = this.convertToSeconds(e);\n }\n\n acceptDate() {\n this.$emit('handleStartStopDate', { startDate: this.start, endDate: this.end });\n this.isCalendar = false;\n }\n cancelDate() {\n this.isCalendar = false;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDatePicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDatePicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RangeDatePicker.vue?vue&type=template&id=4443e28a&\"\nimport script from \"./RangeDatePicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./RangeDatePicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RangeDatePicker.vue?vue&type=style&index=0&id=4443e28a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport InputFieldNumber from '@/ui/components/components/InputFieldNumber.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport TextField from '@/ui/components/modals/components/form/TextField.vue';\nimport SelectField from '@/ui/components/modals/components/form/SelectField.vue';\nimport ScalingField from '@/ui/components/modals/components/form/ScalingField.vue';\nimport RangeDatePicker from '@/ui/components/modals/components/RangeDatePicker.vue';\nimport NavigationTab from '@/ui/components/modals/components/NavigationTab.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport { IAnomalyDetection } from '@/types/anomalyDetection.types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IVariable } from '@/types/variables.types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IRule } from '@/types/rules.types';\n\n/**\n * Scheme to create, modify a specific device.\n * Specified in the device type definition in store/anomalyDetection/anomalyDetectionTypes.ts\n */\n@Component({\n components: {\n InputFieldNumber,\n ComboboxField,\n TextField,\n SelectField,\n ScalingField,\n RangeDatePicker,\n NavigationTab,\n },\n})\nexport default class DefaultSchema extends mixins(Validation, FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n threshold: null,\n selectedWidth: null,\n },\n collection_id: '',\n }),\n }) deviceData!: IAnomalyDetection;\n @Prop() isEditModal!: boolean;\n @Prop({ default: '' }) activeRoomId!: string;\n\n @State('measurements') measurementsState!: IVariablesState;\n @State('anomalyDetection') anomalyDetectionState!: IAnomalyDetectionState;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: IProject;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string; rulesList: IRule[];\n }) => Promise;\n @Action('rules/deleteRule') deleteRule!: (payload: {\n project_id: string; rule_id: string;\n }) => Promise;\n\n stage = 1;\n localDeviceData: IAnomalyDetection = JSON.parse(JSON.stringify(this.deviceData));\n showOptionalFields = false;\n tab = 0;\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n get anomalyDetectionInstanceWidthItems() {\n return [\n { id: 'half', name: 'Half' },\n { id: 'full', name: 'Full' },\n ];\n }\n\n // stages validations\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks all mappings of Anomaly Detection device\n * @return object that contains properties (all, variables, general) with a status value\n */\n get mappingsValidation() {\n if (this.stage === 2) {\n const generalMappingsCheck = () => {\n const requiredFields: any = [...this.mappingsByColumns.middleMappings, ...this.mappingsByColumns.outputMappings]\n .filter((el: any) => !this.anomalyDetectionMappings[el]?.optional);\n const arr: any = Object.entries(this.localDeviceData.data.meta.controllerMappings)\n .filter((el: any) => requiredFields.some((field: string) => field === el[0]))\n .map((el) => el[1]);\n return !arr.some((el: string) => el === '');\n };\n const variableMappingsCheck = () => {\n const variablesArr: string[] = this.localDeviceData.data.chartOptions.map((el: any) => el.var);\n return variablesArr.length ? !variablesArr.some((el: string) => el === '') : false;\n };\n const startStopDateCheck = () => {\n return this.isStartStopDateComponent\n ? !!this.localDeviceData.data.meta?.controllerMappings?.startDate && !!this.localDeviceData.data.meta?.controllerMappings?.endDate\n : true;\n };\n return {\n all: variableMappingsCheck() && startStopDateCheck() && generalMappingsCheck(),\n variables: variableMappingsCheck(),\n general: generalMappingsCheck() && startStopDateCheck(),\n };\n }\n return {\n all: false,\n variables: false,\n general: false,\n };\n }\n\n /**\n * Checks validation on stage 3.\n * @return status of combination collection_id, selectedWidth, threshold fields\n */\n get settingsValidation() {\n const checkThreshold = () => {\n return typeof this.localDeviceData.data.threshold === 'number'\n && this.localDeviceData.data.threshold <= 100\n && this.localDeviceData.data.threshold >= 0;\n };\n return !!this.localDeviceData.collection_id.length\n && !!this.localDeviceData.data.selectedWidth\n && checkThreshold();\n }\n\n get anomalyDetectionTypes() {\n return this.anomalyDetectionState.anomalyDetectionTypes;\n }\n get anomalyDetectionSchema() {\n return this.anomalyDetectionTypes[this.deviceData.data.type];\n }\n get anomalyDetectionMappings() {\n return this.anomalyDetectionSchema.mappings;\n }\n get mappingsByColumns() {\n if (this.localDeviceData?.data?.type) {\n return this.anomalyDetectionSchema.mappingsByColumns;\n } else {\n return [];\n }\n }\n\n /**\n * Contains list of properties for aggregation methods\n * @return object of routes to i18n translations\n */\n get aggregationMethods() {\n return [\n { name: this.$t('modals.manageCharts.form.aggregationMethods.averageOfPeriod'), id: 'avg' },\n { name: this.$t('modals.manageCharts.form.aggregationMethods.minimumOfPeriod'), id: 'min' },\n { name: this.$t('modals.manageCharts.form.aggregationMethods.maximumOfPeriod'), id: 'max' },\n { name: this.$t('modals.manageCharts.form.aggregationMethods.lastOfPeriod'), id: 'last' },\n { name: this.$t('modals.manageCharts.form.aggregationMethods.firstOfPeriod'), id: 'first' },\n ];\n }\n\n get isStartStopDateComponent() {\n return this.anomalyDetectionSchema.isStartStopDate;\n }\n\n get isMaximumOfVariablesReached() {\n return this.localDeviceData.data.chartOptions.length > 10;\n }\n\n /**\n * Checks incoming parameter and return list of measurements or some array according to parameter\n * @param key any type\n * @return list of measurements or list of aggregationMethods or array\n */\n listDefinition(key: string | Array) {\n if (Array.isArray(key)) {\n return key;\n } else if (key === 'aggregations') {\n return this.aggregationMethods;\n } else {\n return this.variablesForComboBox;\n }\n }\n\n /**\n * Init Anomaly Detection mappings\n * @return object mappings form\n */\n initAnomalyDetectionInstanceMappings() {\n const listOfMappings: any = [...this.mappingsByColumns.outputMappings, ...this.mappingsByColumns.middleMappings];\n let mappings: any = {};\n listOfMappings.forEach((mapping: string) => {\n mappings = { ...mappings, [mapping]: '' };\n });\n return { ...mappings, ...{ startDate: null, endDate: null } };\n }\n\n /**\n * Init Anomaly Detection variables\n * @return object variables form\n */\n initAnomalyDetectionInstanceVariables() {\n let mappings: any = {};\n this.mappingsByColumns.variableMappings.forEach((mapping: string) => {\n if (mapping === 'scaling') {\n mappings = { ...mappings, [mapping]: { min: null, max: null } };\n } else {\n mappings = { ...mappings, [mapping]: '' };\n }\n });\n return { ...mappings, ...{ seriesType: 'View', type: 'line' } };\n }\n\n /**\n * Creates new variable\n */\n addVariable() {\n const variableOptions: any = this.initAnomalyDetectionInstanceVariables();\n this.localDeviceData.data.chartOptions.push(variableOptions);\n }\n\n /**\n * Remove selected variable\n * @param idx number, index of selected variable\n */\n removeVariable(idx: number | string) {\n const clone: any = JSON.parse(JSON.stringify(this.localDeviceData.data.chartOptions));\n clone.splice(idx, 1);\n this.localDeviceData.data.chartOptions = clone;\n }\n\n /**\n * Creates rules for device according to errorWarning field,\n * save ids of created rules in current device object\n * @param deviceData current device data object\n */\n async addRulesWhenCreateDevice(deviceData: any) {\n if (!deviceData.data.meta.controllerMappings.errorWarning.length) {\n deviceData.data.meta.warningRule = null;\n deviceData.data.meta.errorRule = null;\n } else {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n if (this.project.id) {\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n }\n\n /**\n * Replacing existing rules with new ones when errorWarning field is changed\n * @param deviceData current device data object\n */\n async addRulesWhenEditDevice(deviceData: any) {\n if (!this.project.id) return;\n const oldErrorWarningVar = this.deviceData.data.meta.controllerMappings.errorWarning;\n const newErrorWarningVar = deviceData.data.meta.controllerMappings.errorWarning;\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // if errorWarning was changed\n if (oldErrorWarningVar !== newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // create new rules\n if (newErrorWarningVar) {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n }\n\n handleStartStopDate(e: any) {\n this.localDeviceData.data.meta.controllerMappings = { ...this.localDeviceData.data.meta.controllerMappings, ...e };\n }\n\n /**\n * Save device data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true);\n const copy = JSON.parse(JSON.stringify(this.localDeviceData));\n copy.project_id = this.project.id;\n\n // rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n created() {\n this.localDeviceData = JSON.parse(JSON.stringify(this.deviceData));\n this.$set(this.localDeviceData.data.meta, 'controllerMappings', this.initAnomalyDetectionInstanceMappings());\n this.$set(this.localDeviceData.data, 'chartOptions', []);\n\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n\n if (this.isEditModal) {\n this.localDeviceData.data.meta.controllerMappings = {\n ...this.localDeviceData.data.meta.controllerMappings,\n ...this.deviceData.data.meta.controllerMappings,\n };\n const chartOptionsLocalCopy: any = JSON.parse(JSON.stringify(this.deviceData.data.chartOptions));\n this.localDeviceData.data.chartOptions = chartOptionsLocalCopy.filter((el: any, inx: number, arr: any) => {\n const typesToRemove: string[] = ['Threshold', 'AnomalyScore'];\n const isAnomalyScoreMappingFilled = !!this.deviceData.data.meta.controllerMappings.anomalyScore.length;\n const isLastValue = arr.length - 1 === inx;\n return !typesToRemove.some((type: string) => type === el.seriesType) && !(isLastValue && isAnomalyScoreMappingFilled);\n });\n } else {\n this.addVariable();\n this.dataSnapshot = JSON.parse(JSON.stringify(this.localDeviceData));\n }\n // remove Anomaly Score from chartOptions so it doesnt duplicate Anymore\n const hasAnomalyScore = this.localDeviceData.data.chartOptions.some((element: any) => {\n return element.name === 'Anomaly Score';\n });\n if (hasAnomalyScore === true) {\n this.localDeviceData.data.chartOptions = this.localDeviceData.data.chartOptions.filter((element: any) => element.name !== 'Anomaly Score');\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultSchema.vue?vue&type=template&id=4b10fc38&\"\nimport script from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DefaultSchema.vue?vue&type=style&index=0&id=4b10fc38&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { State, Getter } from 'vuex-class';\nimport DefaultSchema from '@/ui/components/modals/ManageAnomalyDetection/schemas/DefaultSchema.vue';\nimport StreamAnomalyDetection\n from '@/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue';\nimport HistoryAnomalyDetection\n from '@/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport PreviewImage from '@/ui/components/components/PreviewImage.vue';\nimport i18n from '@/ui/plugins/i18n';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n/**\n * A component that allows to create or modify Anomaly Detection device\n */\n@Component({\n components: {\n PreviewImage,\n DefaultSchema,\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n ModalWindow,\n },\n})\nexport default class ManageAnomalyDetection extends Vue {\n @Prop({ default: '' }) formTitle?: string;\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData?: any;\n @Prop({ default: '' }) activeRoomId!: string;\n @State('anomalyDetection') anomalyDetectionState!: IAnomalyDetectionState;\n @Getter('anomalyDetection/anomalyDetectionTypesWithLocaleNamesList') anomalyDetectionTypesWithLocaleNamesList!: any;\n @Getter('anomalyDetection/lastCreatedAnomalyDetection') lastCreatedAnomalyDetection!: any;\n\n deviceType = { title: '', value: '' }\n deviceFormView = false\n currentSelectedTheme = '';\n anomalyDetectionTypesArrayList = [];\n isConfirmationDialog = false;\n\n handleModalWindowStatus(status: boolean) {\n if (status) {\n this.deviceFormView = !!this.deviceData.data.type;\n if (this.deviceData.created_at) {\n this.deviceType.value = this.deviceData.data.type;\n }\n this.anomalyDetectionTypesArrayList = JSON.parse(JSON.stringify(this.anomalyDetectionTypesWithLocaleNamesList));\n } else {\n this.deviceFormView = false;\n this.$store.commit('anomalyDetection/setLastCreatedAnomalyDetection', this.deviceType.value);\n this.anomalyDetectionTypesArrayList = [];\n }\n this.currentSelectedTheme = this.$vuetify.theme.dark ? 'themeDark' : 'themeLight';\n }\n\n created() {\n this.deviceType.value = this.lastCreatedAnomalyDetectionType;\n this.deviceType.title = this.deviceType.value ? i18n.t(`anomalyDetection.${this.deviceType.value}.previewName`).toString() : '';\n }\n\n get lastCreatedAnomalyDetectionType() {\n return this.lastCreatedAnomalyDetection;\n }\n\n /**\n * Define Anomaly Detection preview image according to type\n * @return path to preview image or null if Anomaly Detection don`t have it\n */\n get currentPreviewImage() {\n const currentImgPreview = this.deviceType.value;\n if (currentImgPreview) {\n try {\n return require(`../../../assets/images/previews/${this.currentSelectedTheme}/${currentImgPreview}.png`);\n } catch (e) {\n // maybe load fallback image?\n console.log(e);\n return null;\n }\n } else {\n return null;\n }\n }\n\n get anomalyDetectionTypes() {\n return this.anomalyDetectionState.anomalyDetectionTypes;\n }\n get currentAnomalyDetectionType() {\n if (this.deviceType.value) {\n return this.anomalyDetectionTypes[this.deviceType.value];\n }\n return {};\n }\n\n // steps validation\n get typeValidation() {\n return !!this.deviceType?.value?.length;\n }\n\n get anomalyDetectionDataWithType() {\n const clone = JSON.parse(JSON.stringify(this.deviceData));\n clone.data.type = this.deviceType.value;\n return clone;\n }\n\n onFormUnchanged(value: boolean) {\n this.isConfirmationDialog = !value;\n }\n\n closeDialog() {\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n handleControl(device: any) {\n this.$emit('handleControl', device);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ab1b151a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ab1b151a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconValueFieldWithTooltip.vue?vue&type=style&index=0&id=fb3a33cc&prod&scoped=true&lang=css&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=style&index=0&id=51ad4a4e&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'PVProductionService' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"solar_panel\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-production-service\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.actualPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"2,56 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedEnergy`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kWh\")])]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"pv-production-charts-content\"},[_c('SettingsCharts')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pv-service-settings-charts-preview\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c('div',[_c(item.component,{tag:\"component\"})],1)])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pvProductionService-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700,\"showNavigationButtons\":false}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Forecast extends Vue {\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n const lang: any = this.$t('mlModel.PVProductionService.settingsView.chartLabels.forecast');\n currentChartOptions = [\n {\n agg: 'first',\n name: lang.predictedPower,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: lang.predictedEnergy,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=6693d3a6&scoped=true&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Forecast.vue?vue&type=style&index=0&id=6693d3a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6693d3a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pv-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Chart extends Vue {\n tab: any = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.actualPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.calculatedPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n get settingsViewLang() {\n return 'mlModel.PVProductionService.settingsView';\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Chart.vue?vue&type=template&id=64e8aa3f&\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts&\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Chart.vue?vue&type=style&index=0&id=64e8aa3f&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/previews/mpc/PVProductionService/Forecast.vue';\nimport Chart from '@/ui/components/devices/previews/mpc/PVProductionService/Chart.vue';\n\n@Component({\n components: {\n Forecast,\n Chart,\n },\n})\nexport default class SettingsCharts extends Vue {\n tab: any = null\n\n get settingsViewLang() {\n return 'mlModel.PVProductionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'Chart',\n locale: this.settingsViewLang,\n component: 'Chart',\n },\n {\n title: 'Forecast',\n locale: this.settingsViewLang,\n component: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsCharts.vue?vue&type=template&id=29cc78f6&\"\nimport script from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsCharts.vue?vue&type=style&index=0&id=29cc78f6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport SettingsCharts from '@/ui/components/devices/previews/mpc/PVProductionService/SettingsCharts.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n SettingsCharts,\n MPCLayout,\n },\n})\nexport default class PVProductionServicePreview extends Vue {\n series = [\n {\n name: 'Valve Position',\n type: 'line',\n yAxis: 0,\n color: '#3450ae',\n data: [\n [1583100000000, 23],\n [1583103600000, 26],\n [1583107200000, 22],\n [1583110800000, 28],\n [1583114400000, 28],\n [1583118000000, 29],\n [1583121600000, 29],\n ],\n },\n {\n name: 'Temperature',\n type: 'line',\n yAxis: 1,\n color: '#50ab7e',\n data: [\n [1583100000000, 22],\n [1583103600000, 25],\n [1583107200000, 22],\n [1583110800000, 23],\n [1583114400000, 24],\n [1583118000000, 28],\n [1583121600000, 29],\n ],\n },\n ]\n yAxis = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#3450ae',\n labels: {\n format: '{value} °C',\n style: {\n color: '#3450ae',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#50ab7e',\n labels: {\n format: '{value}',\n style: {\n color: '#50ab7e',\n },\n },\n },\n ]\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get tabs() {\n return [\n {\n title: 'Forecast',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n {\n title: 'Chart',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n ];\n }\n get mainViewLang() {\n return 'mlModel.PVProductionService.mainView';\n }\n get previewNameLang() {\n return this.$t('mlModel.PVProductionService.previewName');\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=647f5e4e&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=647f5e4e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=824a3d2c&prod&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYwAAAB9CAMAAACGXqRwAAAAXVBMVEUxMTFNTk49PDv4+fn///+9vb1SUlEXFxfGxsZFRUTa2trt8PGenp7l5eU0NDh2dna1tbWvr6+QkJBeXl7Pz88qHyfTmCcgks86RE6UzPf/+9IXMJGaPRf80pc9+f/3JQkWAAAE1UlEQVR42u2dDZObIBCGo+iFgMTP3Eev/f9/s6LEIJKoFzTbzvtMp3tT6GZuX9llIbk7HAEZDggBxAA+MT6SK+9fv37rf7oYC16yMj6Sd8t8yz8XBObVYhgVPtg74vJyMY59fkKWIiFGZ5GlaIjR6YAsRUOMbh+FLEVDDP3F9xeyFA0x2jyFLEVFjPPXL2QpKmK0XzFkKSpifMsEWeq1YgCIASAGxAAQA2IAiAExAMSAGGAHMS4H8HIunRiQggbnSysGwkCF4wELg06mQggAAAAAAAAAT3ASScJPiAMJGv1ZMY44kKD74J5EHOiIoRAHEnAtRoE40KCQskQUAPCsjAxRoEGKmkEHht0U+gzgQaADp8Nbq0aDsykAXPKmyREFGmS6ZlSIAwkktrbY2gIPSovRIA4UOOdtCy5rBIKGGqccmykAAAAA3CHKs4JzXmR59KPxUD7Aoc74jaxePR7KBzjEFR9TxavGQ/kI0gvEJz/xedMWJPLztvb6Iyq5SxmtGA/lI8RjdXpEvKUYb35WihGlfEoaLR4P5SNEhzzHlmKc4imfK8WIS+6jjBeOh/IRSou8KtO0rHK/GuftxGi/mbP7Z60YFfdTTcYbpTzjS+bMvUY4LeosNWT1nmr0YkxYKUbN71E744IlyXTcmZMk7JEP/2uEoVsWqUW+Y6YKI4a93xSqsUw2Hu8O8+1AZlMfeg6bzsl6r8IyEx9Banedjqj3q+JBxIisyMgkETfDeWSPt3FWbCQGjxwfTfs/1VgMy4d2cDOujzALIxuLke23NIKIkd+yvX7zorgaTW7GRf+7tgR3xMgtH926SZjgjhj58Bp6hhyM6yNIxchTh3y3qhFEjMzO9jIRbWHQZsghmRlirE1djhiZ5UNd5/RiMONi8KFntCuLNcYEz1M6S1WuGNVueSqIGMUtC8k2Qcne9JEszLi4Pu2OGIXlQ10f937u1cXgoxNDrzrZG+H4CJKlSleMcrc8FUQMK9t31aI3JlRm/J4Y3PLhiDGsDD68hrJeQd1SVUgx0gn/ohhSZ3vL3BdDJdcCcl8MaeZ4xNApzzIQwyOGeVLl1dwXQ8ieR2IoKXXlkR4xzBJshh0b/4/S1HnKj2qGrtFN90jLJkTNYN6a0W/VOsPEBjVjWQHfSoznDwqz28aWiVYFXVunuykmRMNndlOyn+MU8NFuSi9AY5otdlPLtrbxrmKsaaRyu+XTz7Mx0z5D8fk+Qw1iSDHtM5ieYMwmfcaypm/Te42nsDpw1ddllbgdeFcn9NP8oAPXc/TGlT/qwMfuN+jAlxyHbHeM/jlZFmsXoXU2JfolYYxzNqW7wbmzKV157p5Nqb7VU1bHF/xsaslB4WY3TOfnxVh8atsV35lTWz3npae280foG34KzHO5tNbF8vsMNRLDe5/R7lnZS+8z5i6Xtq0Y3YXS7a8f6Ln8lq4R8zd93jl73vQ9hm71NvUXd+CU1MC7QwiB902RAu8oXLjZSXf5sCvea7uwQ347AAKc69CtEXiitrbruogRByo7nRxaAOCiO1f89E4iBL2aBM9RQgxCFBADYgCIATHA8gKOvS2hrS3Hz7Wl0/TxFHEAAAAAAAAAAAAAAAAAABZxQQjoSHFEEKhwPByxNKgsjFaMI+SgIcWxEwMQ4S/aLqmNmZZI7gAAAABJRU5ErkJggg==\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",staticClass:\"input-field-external-base-form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{class:['input-field-external-base', { 'd-flex justify-space-between': !_vm.isOnlyInputFieldShown }]},[(_vm.isDescriptionShown)?_c('div',{staticClass:\"input-field-external-base__description\",style:({ ..._vm.descriptionStyles })},[_vm._t(\"textDescription\")],2):_vm._e(),_c('div',{staticClass:\"input-field-external-base__field\",style:({ ..._vm.inputFieldStyles })},[_c('v-text-field',{attrs:{\"value\":_vm.value,\"step\":_vm.step,\"type\":\"number\",\"solo\":\"\",\"flat\":\"\",\"rules\":[..._vm.fieldRules],\"height\":_vm.height,\"min\":_vm.min,\"max\":_vm.max,\"disabled\":_vm.disabled,\"background-color\":_vm.fieldBackground},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keypress\":_vm.handleKeypress}})],1),(_vm.isUnitShown)?_c('div',{staticClass:\"input-field-external-base__unit\",style:({ ..._vm.unitStyles })},[_vm._t(\"unit\")],2):_vm._e(),(_vm.isIconShown)?_c('div',{staticClass:\"input-field-external-base__icon\",style:({ ..._vm.iconStyles })},[_vm._t(\"icon\")],2):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\n\n/**\n * Component that represent custom input field number type.\n * Highlight error border if value not valid.\n * Example how to use:\n * \n */\n@Component\nexport default class InputFieldExternal extends Vue {\n @Prop() value!: any;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: 0.01 }) step?: number;\n @Prop({ default: 0 }) min?: number;\n @Prop({ default: 100 }) max?: number;\n @Prop({ default: () => [] }) fieldRules?: any;\n @Prop({ default: '#fff' }) fieldBackground!: string;\n @Prop({ default: 36 }) height!: number | string;\n @Prop({ default: () => {} }) descriptionStyles!: any;\n @Prop({ default: () => {} }) inputFieldStyles!: any;\n @Prop({ default: () => {} }) unitStyles!: any;\n @Prop({ default: () => {} }) iconStyles!: any;\n @Prop({ default: true }) isDescriptionShown!: boolean;\n @Prop({ default: true }) isUnitShown!: boolean;\n @Prop({ default: true }) isIconShown!: boolean;\n\n state: any = 24\n valid = true\n @Watch('actualValue')\n onActualValueChange(val: any) {\n if (typeof val === 'number') this.state = val.toFixed(2);\n }\n\n get actualValue(): any {\n return 22;\n }\n\n get isOnlyInputFieldShown() {\n return !this.isIconShown && !this.isDescriptionShown && !this.isUnitShown;\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.handleState();\n }\n\n /**\n * Blocks invalid keys\n * @param {object} e event object\n */\n handleKeypress(e: any) {\n const isDecimalSymbol = /[0-9]|,/.test(e.key);\n const isInteger = /[0-9]/.test(e.key);\n if (this.isDecimal && !isDecimalSymbol) e.preventDefault();\n if (!this.isDecimal && !isInteger) e.preventDefault();\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n handleState() {\n if (!this.valid) return null;\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n this.state = this.actualValue;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldExternal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldExternal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputFieldExternal.vue?vue&type=template&id=4297d408&\"\nimport script from \"./InputFieldExternal.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputFieldExternal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputFieldExternal.vue?vue&type=style&index=0&id=4297d408&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=c0490202&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemsChartPreview.vue?vue&type=style&index=0&id=237729bc&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutoMapping.vue?vue&type=style&index=0&id=661a7a12&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"800\"},on:{\"dialogStatus\":_vm.handleModalWindowStatus},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageAreas.name'),\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\",\"counter\":\"30\",\"rules\":[_vm.rules.required]},model:{value:(_vm.room.name),callback:function ($$v) {_vm.$set(_vm.room, \"name\", $$v)},expression:\"room.name\"}})],1),_c('div',[_c('v-radio-group',{model:{value:(_vm.radioGroup),callback:function ($$v) {_vm.radioGroup=$$v},expression:\"radioGroup\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('modals.manageAreas.image'),\"color\":\"accent\",\"value\":0}}),_c('v-radio',{attrs:{\"label\":_vm.$t('modals.manageAreas.icon'),\"color\":\"accent\",\"value\":1}})],1)],1),(_vm.radioGroup === 0)?_c('div',[_c('v-file-input',{attrs:{\"color\":\"accent\",\"hint\":_vm.$t('modals.manageAreas.pictureFieldDescription'),\"persistent-hint\":\"\",\"label\":_vm.$t('modals.manageAreas.pictureFieldLabel'),\"outlined\":\"\"},model:{value:(_vm.pictureObject),callback:function ($$v) {_vm.pictureObject=$$v},expression:\"pictureObject\"}})],1):_c('div',[_c('IconList',{attrs:{\"search-timeout\":350,\"icons\":_vm.icons,\"search\":_vm.search,\"outlined\":\"\"},on:{\"selected\":_vm.onSelected}})],1),_c('div',[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"depressed\":\"\",\"disabled\":!_vm.valid,\"elevation\":\"0\",\"color\":\"accent\"},on:{\"click\":_vm.validate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")])],1)])]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n Component, Prop, Vue, Watch,\n} from 'vue-property-decorator';\nimport IconList from '@/ui/components/components/IconList.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Mutation } from 'vuex-class';\nimport { IRoom } from '@/types/rooms.types';\nimport IconService from '@/services/IconService';\nimport { IReportBox } from '@/types/app.types';\nimport { Icon } from '@/types/common.types';\n\n/**\n * A component that allows to create or modify a room\n */\n@Component({\n components: { IconList, ModalWindow },\n})\nexport default class ManageRoom extends Vue {\n @Prop({ type: String }) formTitle!: string;\n @Prop({ default: () => ({ name: '', meta: {} }) }) roomData!: IRoom;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n\n radioGroup = 0;\n isTooltip = false;\n room = {\n name: '',\n meta: {},\n };\n pictureObject = { name: '' }\n\n iconObject?: Icon;\n icons: Icon[] = [];\n\n valid = true;\n rules = {\n required: (value: string) => !!value || 'Required.',\n }\n\n /**\n * If modal window dialog open copy room data to local property\n * @param status\n */\n handleModalWindowStatus(status: boolean) {\n if (status) this.room = JSON.parse(JSON.stringify(this.roomData));\n }\n\n /**\n * Search icons by inserted name\n * @param q name of the icon\n * @return list of icons\n */\n search(q: string): Promise {\n // clear icons if the query is smaller than 3 chars\n if (q.length < 3) {\n this.icons = [];\n return Promise.resolve();\n }\n\n return IconService.fetchIcons(q).then((res: Icon[]) => {\n this.icons = res.map((icon: Icon) => ({ term: icon.term, id: icon.id }));\n });\n }\n\n onSelected(icon: Icon) {\n this.iconObject = icon;\n }\n\n /**\n * Creates room with certain parameters\n */\n send() {\n if (this.room.name.length === 0) {\n return;\n }\n\n // prepares room data for request data\n const args = {\n room: this.room,\n } as any;\n\n // save picture data in room object if a picture was selected when creating the room\n if (this.radioGroup === 0 && this.pictureObject.name !== '') {\n args.cover = this.pictureObject;\n args.coverType = 'picture';\n }\n // save icon data in room object if icon was selected when creating the room\n if (this.radioGroup === 1 && this.iconObject) {\n args.cover = this.iconObject.id;\n args.coverType = 'icon';\n }\n\n this.$emit('handleRoom', args);\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n validate() {\n if (this.$refs.form !== undefined) {\n (this.$refs.form as any).validate();\n this.send();\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageRoom.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageRoom.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageRoom.vue?vue&type=template&id=ec63bbd0&\"\nimport script from \"./ManageRoom.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageRoom.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=style&index=0&id=5a7e8cc5&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTestPage.vue?vue&type=style&index=0&id=18717cf6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=style&index=0&id=19c6039b&prod&lang=scss&\"","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IVariableListState } from '@/store/modules/variables/types';\nimport api from '@/services/api';\nimport { IVariable } from '@/types/variables.types';\n\nconst state: IVariableListState = {\n variables: [],\n};\n\nconst getters: GetterTree = {\n variables(state: IVariableListState) {\n return state.variables;\n },\n variablesForComboBox(state: IVariableListState) {\n const variableList = state.variables.map((element: IVariable) => {\n if (element.alias !== null) {\n return { text: `${element.variable} (${element.alias})`, value: element.variable, alias: element.alias };\n } else {\n return { text: element.variable, value: element.variable, alias: element.alias };\n }\n });\n // contains a list of variables that should be filtered out, currently it only contains the heartbeat values\n const variableValuesToFilter = ['$hb', '$hb2'];\n return variableList.filter((element) => !variableValuesToFilter.includes(element.value));\n },\n};\n\nconst mutations: MutationTree = {\n setVariables(state, variables) {\n state.variables = variables;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load project measurements\n * @param commit\n * @param projectId\n */\n async fetchVariables({ commit }, projectId) {\n try {\n const variables = await api.fetch(`/projects/${projectId}/variables`, 'GET');\n commit('setVariables', variables);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async modifyVariableAlias({ commit }, { projectId, variable }) {\n try {\n const response = await api.fetch(`/projects/${projectId}/variables/${variable.variable}`, 'PUT', { alias: variable.alias });\n commit('app/setReport', {\n type: 'success',\n message: 'Alias updated',\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async modifyVariableAliasList({ commit }, { projectId, variablesObject }) {\n try {\n const response = await api.fetch(`/projects/${projectId}/variables`, 'PUT', variablesObject);\n commit('app/setReport', {\n type: 'success',\n message: 'Alias updated',\n value: true,\n }, { root: true });\n return true;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return false;\n }\n },\n};\n\nexport const variables: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { cloneDeep, merge } from 'lodash';\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store/types';\nimport { resetEnergyDeviceMappings } from '@/utils/installationWizardUtilsFunctions';\nimport {\n emsLimitsByType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/wizardLimits';\nimport {\n shouldSendVariableForType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/mqttVariables';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport {\n IBatterySystem,\n IChargeStationSystem,\n IElectricHeatingElementSystem, IHeatingPumpSystem,\n IIncludedSystemsBigConsumerDefinition,\n IIncludedSystemsChargeStationDefinition,\n IIncludedSystemsHeatingPumpDefinition,\n IIncludedSystemsTypes,\n IMQTTVariable,\n NavigationDirection, WizardPath,\n} from '@/types/wizards/installationWizard.types';\nimport { IWizardLoadingState, IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { defaultFeedbackTimeoutSeconds } from '@/utils/constants';\nimport {\n hybridVersionDate,\n plcVersionDate,\n} from '@/utils/versionManagementUtils';\nimport {\n IInstallationWizardState,\n} from './types';\nimport { MQTTFeedbackError } from './MQTTFeedbackError';\nimport {\n IGNORE_FEEDBACK\n} from '@/ui/components/wizards/installationWizard/wizardSettings/developmentConfig';\nimport { Vue } from 'vue-property-decorator';\n\nconst defaultWizardState = (): IInstallationWizardState => {\n return {\n emsDevice: {},\n energyViewDevice: {},\n pilotSystemCount: 0,\n inverterCount: 1,\n stringInverterCount: 0,\n // energy components (not dummy components)\n includedSystemsTypes: {\n battery: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n electric_heating: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n charge_station: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n pv: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n generator: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n heating_pump_consumer: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n heating_pump: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n big_consumer: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n load_shedding: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n chp: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n },\n currentStep: 1,\n currentPage: 0,\n pages: [\n {\n title: 'information',\n view: 'Information',\n step: 1,\n page: 0,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'ManualsPage',\n view: 'ManualsPage',\n step: 1,\n page: 1,\n dependencies: ['Deye', 'Solarmax'],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'GeneralInformations',\n view: 'GeneralInformations',\n step: 1,\n page: 2,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'CommonEnergyPriceSettings',\n view: 'CommonEnergyPriceSettings',\n step: 1,\n page: 3,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'Questionnaire',\n view: 'Questionnaire',\n step: 1,\n page: 4,\n dependencies: ['Deye', 'Solarmax'],\n availableFrom: hybridVersionDate.getTime(),\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'InviteUsersToProject',\n view: 'InviteUsersToProject',\n step: 2,\n page: 0,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'ComponentsPage',\n view: 'ComponentsPage',\n step: 3,\n page: 0,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'InverterConfiguration',\n view: 'InverterConfiguration',\n step: 4,\n page: 0,\n dependencies: ['Deye'],\n availableFrom: hybridVersionDate.getTime(),\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'PilotSpecification',\n view: 'PilotSpecification',\n step: 4,\n page: 1,\n dependencies: [],\n path: [WizardPath.STRING_INVERTER],\n },\n {\n title: 'AddStringLoggersPage',\n view: 'AddStringLoggersPage',\n step: 4,\n page: 2,\n dependencies: ['Deye'],\n },\n {\n title: 'BatteryGridSettings',\n view: 'BatteryGridSettings',\n step: 5,\n page: 0,\n dependencies: [],\n },\n {\n title: 'GridDrmSettings',\n view: 'GridDrmSettings',\n step: 5,\n page: 1,\n dependencies: ['Deye', 'Solarmax'],\n path: [WizardPath.STRING_INVERTER, WizardPath.TENANT_STRING_INVERTER],\n },\n {\n title: 'GeneratorSettings',\n view: 'GeneratorSettings',\n step: 5,\n page: 2,\n dependencies: ['generator', 'Deye'],\n },\n {\n title: 'ChargingStationSettings',\n view: 'ChargingStationSettings',\n step: 5,\n page: 3,\n dependencies: ['charge_station'],\n },\n {\n title: 'HeatingElementSettings',\n view: 'HeatingElementSettings',\n step: 5,\n page: 4,\n dependencies: ['electric_heating'],\n },\n {\n title: 'HeatingPumpSettings',\n view: 'HeatingPumpSettings',\n step: 5,\n page: 5,\n dependencies: ['heating_pump | heating_pump_consumer', 'Deye', 'Solarmax'],\n },\n {\n title: 'BigConsumerSettings',\n view: 'BigConsumerSettings',\n step: 5,\n page: 6,\n dependencies: ['big_consumer', 'Deye', 'Solarmax'],\n },\n {\n title: 'ChpSettings',\n view: 'ChpSettings',\n step: 5,\n page: 7,\n dependencies: ['chp', 'Deye'],\n },\n {\n title: 'GeneralSettingsEMS',\n view: 'GeneralSettingsEMS',\n step: 5,\n page: 8,\n dependencies: [],\n },\n {\n title: 'SystemTestPage',\n view: 'SystemTestPage',\n step: 6,\n page: 0,\n dependencies: ['Deye'],\n },\n {\n title: 'InstallationPage',\n view: 'InstallationPage',\n step: 6,\n page: 1,\n dependencies: ['!Solarmax'],\n },\n {\n title: 'FinalPageInstallationWizard',\n view: 'FinalPageInstallationWizard',\n step: 6,\n page: 2,\n dependencies: [],\n path: [WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER, WizardPath.TENANT],\n },\n ],\n pagesMobileBatteryDeye: [\n {\n title: 'information',\n view: 'Information',\n step: 1,\n page: 0,\n dependencies: [],\n },\n {\n title: 'GeneralInformations',\n view: 'GeneralInformations',\n step: 1,\n page: 2,\n dependencies: [],\n },\n {\n title: 'InviteUsersToProject',\n view: 'InviteUsersToProject',\n step: 2,\n page: 0,\n dependencies: [],\n },\n {\n title: 'FinalPageInstallationWizard',\n view: 'FinalPageInstallationWizard',\n step: 6, // keep the step at 6 so translations are correct, navigation works also fine\n page: 2,\n dependencies: [],\n },\n ],\n loadingState: {\n isLoading: false,\n loadingCount: 0,\n loadingTotal: 0,\n },\n customTimerLoadingState: {\n isLoading: false,\n loadingCount: 0,\n loadingTotal: 0,\n },\n // Pilot physical devices\n pilot: {\n isSelected: false,\n definition: [],\n count: 0,\n },\n // AC PV Systems\n ACPV: {\n isSelected: false,\n count: 0,\n },\n // external visualisation devices / dummy devices\n externalVisualisations: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n currentPageIndex: 0,\n isPilotPageDone: false,\n wasComponentsPageDone: false,\n savedPilotMapping: {\n ctRelationship: 100,\n lineConfig: [\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n ],\n },\n navigationDirection: NavigationDirection.forward,\n wasInstallationWizardCompleted: false,\n producerOptionsEnabled: false,\n consumerOptionsEnabled: false,\n externallyOccupiedPilotLines: [],\n disablePilotDevices: false,\n acpvAvailable: false,\n acpvOnLoadAvailable: false,\n serialNumberCheckDone: false,\n wizardBlocked: false,\n isHybrid: false,\n restartSent: false,\n disabledWhileOffline: false,\n hybridSettings: {\n useBothBatteryInputs: false,\n },\n wizardPath: WizardPath.INSTALLATION,\n };\n};\n\nconst state: IInstallationWizardState = defaultWizardState();\n\nconst MAX_RETRIES = 1;\nconst CHECK_INTERVAL_MS = 1000;\nconst MAX_CHECKS = defaultFeedbackTimeoutSeconds;\n\nconst setCounts = (mappings: Partial) => {\n const controllerMappings = cloneDeep(mappings.data.meta.controllerMappings);\n Object.keys(state.includedSystemsTypes).forEach((mapping: string) => {\n if (controllerMappings[mapping]) {\n controllerMappings[mapping].count = Object.keys(controllerMappings[mapping].components).length;\n }\n });\n mappings.data.meta.controllerMappings = controllerMappings;\n return mappings;\n};\n\nconst getters: GetterTree = {\n emsDevice(state: IInstallationWizardState): IDevice {\n return state.emsDevice as IDevice;\n },\n energyViewDevice(state: IInstallationWizardState): IDevice {\n return state.energyViewDevice as IDevice;\n },\n pilotSystemCount(state: IInstallationWizardState): number {\n return state.pilotSystemCount;\n },\n includedSystemsTypes(state: IInstallationWizardState): IIncludedSystemsTypes {\n return state.includedSystemsTypes;\n },\n currentPage(state: IInstallationWizardState): number {\n return state.currentPage;\n },\n currentStep(state: IInstallationWizardState): number {\n return state.currentStep;\n },\n loadingState(state: IInstallationWizardState): IWizardLoadingState {\n return state.loadingState;\n },\n customTimerLoadingState(state: IInstallationWizardState): IWizardLoadingState {\n return state.customTimerLoadingState;\n },\n isHybrid(state: IInstallationWizardState): boolean {\n return state.isHybrid;\n },\n wizardPages(state: IInstallationWizardState, _, __, rootGetters): IWizardPage[] {\n const isMobileDeye = rootGetters['projects/isMobileDeye'];\n if (isMobileDeye) {\n // only show the pages that are relevant for the mobile battery deye\n return state.pagesMobileBatteryDeye;\n }\n\n return state.pages.filter((page: IWizardPage) => {\n const project = rootGetters['projects/project'];\n if (page.availableFrom && plcVersionDate(project).getTime() < page.availableFrom) {\n return false;\n }\n\n const isDeye = rootGetters['projects/isDeye'];\n const isSolarmax = rootGetters['projects/isSolarmax'];\n const includesSolarmaxDependency = page.dependencies?.includes('Solarmax');\n const includesDeyeDependency = page.dependencies?.includes('Deye');\n\n let pathAllowed = true;\n if (state.wizardPath === WizardPath.STRING_INVERTER || state.wizardPath === WizardPath.TENANT_STRING_INVERTER || state.wizardPath === WizardPath.TENANT) {\n pathAllowed = page.path ? page.path.some(path => path === state.wizardPath) : false;\n }\n\n return pathAllowed && page.dependencies?.every((dependency: string) => {\n const isDeyeDependency = dependency.includes('Deye');\n const isSolarmaxDependency = dependency.includes('Solarmax');\n const negate = dependency[0] === '!';\n if ((isDeyeDependency || isSolarmaxDependency) && (includesDeyeDependency && includesSolarmaxDependency)) {\n return (isDeye || isSolarmax) && !negate;\n } else if (isDeyeDependency && includesDeyeDependency && !includesSolarmaxDependency) {\n return isDeye && !negate;\n } else if (isSolarmaxDependency && includesSolarmaxDependency && !includesDeyeDependency) {\n return isSolarmax && !negate;\n } else if (isSolarmaxDependency && negate && !isSolarmax) {\n return !isSolarmax && negate; // dependency '!Solarmax'\n } else {\n if (dependency.includes('|')) {\n // to get the possibility of dependencies that are evaluated with a logical OR\n const orDependencies = dependency.split('|').map((orDependency) => orDependency.trim());\n return orDependencies.some((orDependency) => {\n return (state.includedSystemsTypes as any)[orDependency]?.count > 0;\n });\n }\n return (state.includedSystemsTypes as any)[dependency]?.count > 0;\n }\n });\n });\n },\n considerProjectStatus(): boolean {\n // this can be used to control whether we show the \"project offline\" alerts etc.\n return process.env.NODE_ENV !== 'development';\n },\n pilot(state: IInstallationWizardState) {\n return state.pilot;\n },\n externalVisualisation(state: IInstallationWizardState) {\n return state.externalVisualisations;\n },\n generatorsOnGeneratorConnections(state: IInstallationWizardState) {\n return state.includedSystemsTypes.generator;\n },\n isPilotPageDone(state: IInstallationWizardState) {\n return state.isPilotPageDone;\n },\n savedPilotMapping(state: IInstallationWizardState) {\n return state.savedPilotMapping;\n },\n navigationDirection(state: IInstallationWizardState) {\n return state.navigationDirection;\n },\n shouldSendVariable: (_, __, ___, rootGetters) => (variable: string) => {\n return shouldSendVariableForType(rootGetters['projects/batterySystemType'], variable);\n },\n emsLimits(_, __, ___, rootGetters) {\n return emsLimitsByType(rootGetters['projects/batterySystemType'], rootGetters['projects/project']);\n },\n ACPV(state: IInstallationWizardState) {\n return state.ACPV;\n },\n wasInstallationWizardCompleted(state: IInstallationWizardState) {\n return state.wasInstallationWizardCompleted;\n },\n connectedLines(state: IInstallationWizardState) {\n const chargeStationExternal = state.includedSystemsTypes.charge_station.definition.filter((value: IIncludedSystemsChargeStationDefinition) => typeof value.connectWithLine === 'number').map((value: IIncludedSystemsChargeStationDefinition) => value.connectWithLine);\n const heatingPumpExternal = state.includedSystemsTypes.heating_pump.definition.filter((value: IIncludedSystemsHeatingPumpDefinition) => typeof value.connectWithLine === 'number').map((value: IIncludedSystemsHeatingPumpDefinition) => value.connectWithLine);\n const heatingPumpConsumerExternal = state.includedSystemsTypes.heating_pump_consumer.definition.filter((value: IIncludedSystemsHeatingPumpDefinition) => typeof value.connectWithLine === 'number').map((value: IIncludedSystemsHeatingPumpDefinition) => value.connectWithLine);\n const bigConsumerExternal = state.includedSystemsTypes.big_consumer.definition.filter((value: IIncludedSystemsBigConsumerDefinition) => typeof value.connectWithLine === 'number').map((value: IIncludedSystemsBigConsumerDefinition) => value.connectWithLine);\n const consumerLines = [...chargeStationExternal, ...heatingPumpExternal, ...heatingPumpConsumerExternal, ...bigConsumerExternal, ...state.externallyOccupiedPilotLines];\n let pilotCount = state.externalVisualisations.count - state.externallyOccupiedPilotLines.length;\n const restOfPilotLines = [];\n for (let i = 1; i <= 4; i++) {\n if (!consumerLines.includes(i) && pilotCount > 0) {\n restOfPilotLines.push(i);\n pilotCount--;\n }\n }\n return [...consumerLines, ...restOfPilotLines];\n },\n wasComponentsPageDone(state: IInstallationWizardState) {\n return state.wasComponentsPageDone;\n },\n producerOptionsEnabled(state: IInstallationWizardState) {\n return state.producerOptionsEnabled ?? false;\n },\n consumerOptionsEnabled(state: IInstallationWizardState) {\n return state.consumerOptionsEnabled ?? false;\n },\n getDisablePilotDevices(state: IInstallationWizardState) {\n return state.disablePilotDevices;\n },\n wizardBlocked(state: IInstallationWizardState) {\n return state.wizardBlocked;\n },\n serialNumberCheckDone(state: IInstallationWizardState) {\n return state.serialNumberCheckDone;\n },\n disabledWhileOffline(state: IInstallationWizardState) {\n return state.disabledWhileOffline;\n },\n};\n\nconst mutations: MutationTree = {\n updateEMSDeviceData(state, device: Partial) {\n state.emsDevice.data.meta.controllerMappings = device.data.meta.controllerMappings;\n state.emsDevice = setCounts(state.emsDevice);\n },\n updateEMSDevice(state, device: IDevice) {\n state.emsDevice = device;\n },\n updateEnergyViewDeviceData(state, device: Partial) {\n state.energyViewDevice.data.meta.controllerMappings = device.data.meta.controllerMappings;\n state.energyViewDevice = setCounts(state.energyViewDevice);\n },\n updateEnergyViewDevice(state, device: IDevice) {\n state.energyViewDevice = device;\n },\n setPilotSystemCount(state: IInstallationWizardState, data: number) {\n state.pilotSystemCount = data;\n },\n setACPVSystemCount(state: IInstallationWizardState, data: number) {\n state.ACPV.count = data;\n },\n setACPVSystemSelection(state: IInstallationWizardState, data: boolean) {\n state.ACPV.isSelected = data;\n },\n setIncludedSystemsTypes(state: IInstallationWizardState, includedSystemsTypes) {\n state.includedSystemsTypes = includedSystemsTypes;\n },\n setCurrentPage(state: IInstallationWizardState, data: number) {\n state.currentPage = data;\n },\n setCurrentStep(state: IInstallationWizardState, data: number) {\n state.currentStep = data;\n },\n setLoadingState(state: IInstallationWizardState, data: IWizardLoadingState) {\n state.loadingState = data;\n },\n setCustomTimerLoadingState(state: IInstallationWizardState, data: IWizardLoadingState) {\n state.customTimerLoadingState = data;\n },\n incrementLoadingSentCount(state: IInstallationWizardState) {\n state.loadingState.loadingCount++;\n },\n resetLoadingState(state: IInstallationWizardState) {\n state.loadingState = {\n isLoading: false,\n loadingCount: 0,\n loadingTotal: 0,\n };\n },\n resetChargeStationDefinition(state: IInstallationWizardState, { index }: { index: number }) {\n const defaultDefinition = {\n systemType: '',\n connectWithLine: '',\n noFreeLoading: false,\n webastoType: 0,\n title: '',\n };\n Vue.set(state.includedSystemsTypes.charge_station.definition, index, defaultDefinition);\n },\n addSystemPropertyValues(\n state: IInstallationWizardState,\n { systemType, data }: {\n systemType: string;\n data: IBatterySystem | IChargeStationSystem | IElectricHeatingElementSystem | IHeatingPumpSystem;\n },\n ) {\n (state.includedSystemsTypes[systemType as keyof IIncludedSystemsTypes] as any).systems.push(data);\n },\n updateSystemPropertyValues(\n state: IInstallationWizardState,\n { systemType, data, systemIndex }: {\n systemType: string;\n data: IBatterySystem | IChargeStationSystem | IElectricHeatingElementSystem | IHeatingPumpSystem;\n systemIndex: number;\n },\n ) {\n (state.includedSystemsTypes[systemType as keyof IIncludedSystemsTypes] as any).systems[systemIndex] = data;\n },\n handleIncludedSystemsTypesSystemSystemsProps(\n state: IInstallationWizardState,\n { systemName, systemIndex, prop, value }: {\n systemName: string;\n systemIndex: number;\n prop: string;\n value: any;\n },\n ) {\n (state.includedSystemsTypes as any)[systemName].systems[systemIndex][prop].value = value;\n },\n handleIncludedSystemsTypesSystemDefinitionProps(\n state: IInstallationWizardState,\n { systemName, systemIndex, prop, value }: {\n systemName: string;\n systemIndex: number;\n prop: string;\n value: any;\n },\n ) {\n (state.includedSystemsTypes as any)[systemName].definition[systemIndex][prop] = value;\n },\n handleIncludedSystemsTypesSystem(\n state: IInstallationWizardState,\n { system, key, data }: { system: string; key: string; data: any },\n ) {\n (state.includedSystemsTypes[system as keyof IIncludedSystemsTypes] as any)[key] = data;\n },\n setEMSSystemCount(state: IInstallationWizardState, { system, count }: any) {\n state.emsDevice.data.meta.controllerMappings[system].count = count;\n },\n setEnergyViewSystemCount(state: IInstallationWizardState, { system, count }: any) {\n state.energyViewDevice.data.meta.controllerMappings[system].count = count;\n },\n reset(state: IInstallationWizardState) {\n state = merge(state, defaultWizardState());\n },\n setPilot(state: IInstallationWizardState, data: any) {\n state.pilot = data;\n },\n setExternalVisualisation(state: IInstallationWizardState, data: any) {\n state.externalVisualisations = data;\n },\n setIsPilotPageDone(state: IInstallationWizardState, data: {}) {\n state.savedPilotMapping = data;\n state.isPilotPageDone = true;\n },\n setNavigationDirection(state: IInstallationWizardState, data: NavigationDirection) {\n state.navigationDirection = data;\n },\n setGeneratorsOnGeneratorConnection(state: IInstallationWizardState, data: any) {\n state.includedSystemsTypes.generator = data;\n },\n setIsPilotPageNotDone(state: IInstallationWizardState) {\n state.isPilotPageDone = false;\n state.savedPilotMapping = {\n ctRelationship: 100,\n lineConfig: [\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n ],\n };\n },\n setInverterCount(state: IInstallationWizardState, data: number) {\n state.inverterCount = data;\n state.serialNumberCheckDone = false;\n },\n resetSystemsPropInIncludedSystemTypes(state: IInstallationWizardState, systemType: 'battery' | 'electric_heating' | 'charge_station' | 'heating_pump') {\n state.includedSystemsTypes[systemType].systems = [];\n },\n setWasComponentsPageDone(state: IInstallationWizardState) {\n state.wasComponentsPageDone = true;\n },\n setProducerOptionsEnabled(state: IInstallationWizardState, data: boolean) {\n state.producerOptionsEnabled = data;\n },\n setConsumerOptionsEnabled(state: IInstallationWizardState, data: boolean) {\n state.consumerOptionsEnabled = data;\n },\n setExternallyOccupiedPilotLine(state: IInstallationWizardState, data: number) {\n state.externallyOccupiedPilotLines.push(data);\n },\n removeExternallyOccupiedPilotLine(state: IInstallationWizardState, data: number) {\n state.externallyOccupiedPilotLines = state.externallyOccupiedPilotLines.filter((value: number) => value !== data);\n },\n setDisablePilotDevices(state: IInstallationWizardState, data: boolean) {\n state.disablePilotDevices = data;\n },\n setWizardBlocked(state: IInstallationWizardState, data: boolean) {\n state.wizardBlocked = data;\n },\n setSerialNumberCheckDone(state: IInstallationWizardState) {\n state.serialNumberCheckDone = true;\n },\n setRestartSent(state: IInstallationWizardState, data: boolean) {\n state.restartSent = data;\n },\n setDisabledWhileOffline(state: IInstallationWizardState, data: boolean) {\n state.disabledWhileOffline = data;\n },\n};\n\nconst actions: ActionTree = {\n handleIncrement({ state, getters }) {\n if (state.currentPageIndex + 1 < getters.wizardPages.length) {\n state.currentPageIndex++;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n this.commit('installationWizard/setNavigationDirection', NavigationDirection.forward);\n },\n\n handleDecrement({ state, getters }) {\n if (state.currentPageIndex !== 0) {\n state.currentPageIndex--;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n this.commit('installationWizard/setNavigationDirection', NavigationDirection.backward);\n },\n\n initDevices({ commit, rootGetters }) {\n // Define Wizard Settings\n state.wasInstallationWizardCompleted = rootGetters['projects/project'].meta?.wasInstallationWizardCompleted ?? false;\n state.producerOptionsEnabled = rootGetters['projects/project'].meta?.wizardSettings?.producerOptionsEnabled ?? false;\n state.consumerOptionsEnabled = rootGetters['projects/project'].meta?.wizardSettings?.consumerOptionsEnabled ?? false;\n state.hybridSettings = rootGetters['projects/project'].meta?.wizardSettings?.hybridSettings ?? {\n useBothBatteryInputs: false,\n };\n const findByType = (type: string) => rootGetters['devices/allDevices'].find((element: IDevice) => {\n return element.data.type === type;\n });\n const project: IProject = rootGetters['projects/project'];\n\n // TODO: currently throws error if no EnergyView in project\n const energyView = resetEnergyDeviceMappings(\n cloneDeep(findByType('EnergyViewV2')),\n emsLimitsByType(project.meta.controller.batterySystemType, project),\n state.wasInstallationWizardCompleted,\n rootGetters['projects/batterySystemType'],\n state.consumerOptionsEnabled,\n state.producerOptionsEnabled,\n );\n // TODO: currently throws error if no EMS in project\n const ems = resetEnergyDeviceMappings(\n cloneDeep(findByType('EMSV2')),\n emsLimitsByType(project.meta.controller.batterySystemType, project),\n state.wasInstallationWizardCompleted,\n rootGetters['projects/batterySystemType'],\n state.consumerOptionsEnabled,\n state.producerOptionsEnabled,\n );\n\n commit('updateEMSDevice', ems);\n commit('updateEnergyViewDevice', energyView);\n },\n\n publishVariable({ dispatch }, { variableToCheck, value }) {\n return dispatch('mqttClient/publish', {\n records: [{\n n: variableToCheck,\n v: value,\n u: '',\n }],\n }, { root: true });\n },\n\n async waitForVariableValue({ dispatch, rootState }, { variable, expectedValue }) {\n let checks = 0;\n const resolved = new Promise((resolve, reject) => {\n const interval = setInterval(async () => {\n await dispatch('measurements/fetchMeasurements', rootState.projects.projectId, { root: true });\n checks++;\n if (await dispatch('checkVariableMatch', { variable, expectedValue })) {\n clearInterval(interval);\n resolve();\n } else if (checks >= MAX_CHECKS) {\n clearInterval(interval);\n reject();\n }\n }, CHECK_INTERVAL_MS);\n });\n return resolved.then(() => {\n return true;\n }).catch(() => false);\n },\n\n checkVariableMatch({ rootGetters }, { variable, expectedValue }) {\n try {\n return rootGetters['measurements/measurements'][variable] === expectedValue;\n } catch (error) {\n return false;\n }\n },\n\n async handleMaxRetries({ dispatch }, { variableToCheck }) {\n if (variableToCheck.isBoolean) {\n const oppositeValue = variableToCheck.expectedValue ? 0 : 1;\n\n // Try to send the opposite value\n dispatch('publishVariable', { variableToCheck: variableToCheck.sentVariable, value: oppositeValue });\n if (await dispatch('waitForVariableValue', { variable: variableToCheck.name, expectedValue: oppositeValue })) {\n // If the feedback for the opposite value is received, then send the original value again\n dispatch('publishVariable', { variableToCheck: variableToCheck.sentVariable, value: variableToCheck.expectedValue });\n if (!await dispatch('waitForVariableValue', { variable: variableToCheck.name, expectedValue: variableToCheck.expectedValue })) {\n throw new MQTTFeedbackError(\n `Expected MQTT feedback for variable ${variableToCheck.name} with value ${variableToCheck.expectedValue}, but timeout was reached.`,\n variableToCheck.name,\n );\n }\n } else {\n // No feedback after sending the opposite value\n throw new MQTTFeedbackError(\n `Expected MQTT feedback for variable ${variableToCheck.name} with value ${oppositeValue}, but timeout was reached.`,\n variableToCheck.name,\n );\n }\n } else {\n throw new MQTTFeedbackError(\n `Expected MQTT feedback for variable ${variableToCheck.name} with value ${variableToCheck.expectedValue}, but timeout was reached.`,\n variableToCheck.name,\n );\n }\n },\n\n async retryOnFail({ dispatch, commit, rootGetters, rootState }, { retries = 0, variableToCheck }) {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n await dispatch('measurements/fetchMeasurements', rootState.projects.projectId, { root: true });\n // Wait for initially sent value and resolve if feedback is received\n if (await dispatch('waitForVariableValue', { variable: variableToCheck.name, expectedValue: variableToCheck.expectedValue })) {\n return resolve();\n }\n\n // If feedback is not received, try to send the value again\n if (retries < MAX_RETRIES) {\n try {\n dispatch('publishVariable', { variableToCheck: variableToCheck.sentVariable, value: variableToCheck.expectedValue });\n await dispatch('retryOnFail', { retries: retries + 1, variableToCheck });\n return resolve();\n } catch (error) {\n commit('resetLoadingState');\n return reject(error);\n }\n } else {\n try {\n await dispatch('handleMaxRetries', { variableToCheck });\n resolve();\n } catch (error) {\n commit('resetLoadingState');\n reject(error);\n }\n }\n });\n },\n\n async waitForMQTTFeedback(\n { dispatch, commit },\n variableToCheck?: { name: string; sentVariable: string; expectedValue: string | number; isBoolean?: boolean; customTimeout?: number; quickSend?: boolean },\n ): Promise {\n const check = IGNORE_FEEDBACK;\n\n if (variableToCheck && variableToCheck.customTimeout) {\n return new Promise((resolve) => {\n let i = variableToCheck.customTimeout ?? 0;\n const interval = setInterval(() => {\n if (variableToCheck.customTimeout && i > 0) {\n commit('setCustomTimerLoadingState', {\n isLoading: true,\n loadingCount: i,\n loadingTotal: variableToCheck.customTimeout,\n });\n i--;\n } else {\n commit('setCustomTimerLoadingState', {\n isLoading: false,\n loadingCount: 0,\n loadingTotal: 0,\n });\n clearInterval(interval);\n resolve();\n }\n }, 1000);\n });\n }\n\n if (check || !variableToCheck || (variableToCheck.quickSend && !variableToCheck.customTimeout)) {\n // no variable to check was passed -> we just wait 1s and resolve\n const timeout = variableToCheck?.quickSend ? 200 : 1000;\n return new Promise((resolve) => setTimeout(() => {\n resolve();\n }, timeout));\n }\n\n // we have some variable to check on -> check for 15 seconds if the expectd result comes back and retry after first try\n await dispatch('retryOnFail', { retries: 0, variableToCheck });\n },\n\n async sendVariables({ dispatch, commit, rootGetters, rootState }, variablesToSend: IMQTTVariable[]): Promise {\n // start loading\n commit('setLoadingState', {\n isLoading: true,\n loadingCount: 0,\n loadingTotal: variablesToSend.length,\n });\n\n // call send function for every this.settings property in for loop in typescript\n // eslint-disable-next-line no-restricted-syntax\n for (const element of variablesToSend) {\n // eventually parse float (leaves ints unchanged)\n const valueToSend = parseFloat(element.value.toString());\n // Fetch measurements for updated value online\n await dispatch('measurements/fetchMeasurements', rootState.projects.projectId, { root: true });\n const variable = rootGetters['measurements/measurements'][element.variable];\n\n if (element.variable !== '') {\n dispatch('mqttClient/publish', {\n records: [{\n n: element.variable,\n v: valueToSend,\n u: '',\n }],\n }, { root: true });\n }\n commit('incrementLoadingSentCount');\n const noFeedback = element.quickSend ? { quickSend: true, customTimeout: element.customTimeout ?? 0 } : undefined;\n const shouldWaitForFeedback = element.feedbackVariable !== undefined && variable !== valueToSend;\n const isBoolean = !!element.isBoolean;\n // eslint-disable-next-line no-nested-ternary\n await dispatch('waitForMQTTFeedback', shouldWaitForFeedback\n ? {\n name: element.feedbackVariable,\n sentVariable: element.variable,\n expectedValue: !element.customExpectedValue ? valueToSend : element.customExpectedValue,\n isBoolean,\n customTimeout: element.customTimeout,\n }\n : noFeedback);\n }\n commit('resetLoadingState');\n },\n};\n\nexport const installationWizard: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { merge } from 'lodash';\nimport i18n from '@/ui/plugins/i18n';\nimport api from '@/services/api';\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { ITenantWizardState } from './types';\nimport { ITenantModel } from '@/types/wizards/tenant.types';\n\nconst defaultWizardState = () => {\n return {\n currentPage: 0,\n currentStep: 1,\n currentPageIndex: 0,\n pages: [\n {\n title: 'WelcomePage',\n view: 'WelcomePage',\n step: 1,\n page: 0,\n dependencies: [],\n },\n {\n title: 'SystemInformation',\n view: 'SystemInformation',\n step: 1,\n page: 1,\n dependencies: [],\n },\n {\n title: 'BasicBillingInformation',\n view: 'BasicBillingInformation',\n step: 1,\n page: 2,\n dependencies: [],\n },\n {\n title: 'PaymentInformation',\n view: 'PaymentInformation',\n step: 1,\n page: 3,\n dependencies: [],\n },\n {\n title: 'FlatsInformation',\n view: 'FlatsInformation',\n step: 1,\n page: 4,\n dependencies: [],\n },\n {\n title: 'TariffSettings',\n view: 'TariffSettings',\n step: 1,\n page: 5,\n dependencies: [],\n },\n {\n title: 'ExtraCosts',\n view: 'ExtraCosts',\n step: 1,\n page: 6,\n dependencies: [],\n },\n {\n title: 'AutoMapping',\n view: 'AutoMapping',\n step: 1,\n page: 7,\n dependencies: [],\n },\n {\n title: 'Electricity',\n view: 'Electricity',\n step: 2,\n page: 0,\n dependencies: ['electricity'],\n },\n {\n title: 'Heating',\n view: 'Heating',\n step: 2,\n page: 1,\n dependencies: ['heating'],\n },\n {\n title: 'Cooling',\n view: 'Cooling',\n step: 2,\n page: 2,\n dependencies: ['cooling'],\n },\n {\n title: 'ColdWater',\n view: 'ColdWater',\n step: 2,\n page: 3,\n dependencies: ['coldWater'],\n },\n {\n title: 'WarmWater',\n view: 'WarmWater',\n step: 2,\n page: 4,\n dependencies: ['serviceWater'],\n },\n {\n title: 'ConsumptionComparison',\n view: 'ConsumptionComparison',\n step: 3,\n page: 0,\n dependencies: [],\n },\n {\n title: 'BillingAndDocumentOutput',\n view: 'BillingAndDocumentOutput',\n step: 4,\n page: 0,\n dependencies: [],\n },\n {\n title: 'FinalPage',\n view: 'FinalPage',\n step: 5,\n page: 0,\n dependencies: [],\n },\n ],\n tenant: {\n header: {\n image_Id: '', // will contain the file as base64\n headerText: '',\n providerName: '',\n contractCountry: '',\n ownerAddress: {\n street: '',\n zip: '',\n city: '',\n country: '',\n },\n ownerMobile: '',\n ownerMail: '',\n ownerRegistrationNumber: '',\n ownerName: '',\n },\n general: {\n paymentDetails: {\n currency: '€',\n tax: 0, // 0 - 100 %\n coldWaterTax: 0, // 0 - 100 %\n serviceWaterTax: 0, // 0 - 100 %\n heatingTax: 0, // 0 - 100 %\n productionTax: 0, // 0 - 100 %\n sideCostsTax: 0, // 0 - 100 %\n coolingTax: 0, // 0 - 100 %,\n isTaxIncluded: false,\n bankName: '',\n iban: '', // add regex for user input\n swift: '',\n additionalText: '',\n },\n billingComponents: {\n electricity: false,\n serviceWater: false,\n coldWater: false,\n heating: false,\n cooling: false,\n },\n flats: {\n flatCount: 0,\n flatConfigurations: [],\n },\n tariffSettings: {\n electricity: {\n lowTariffProduction: 0,\n highTariffProduction: 0,\n lowTariffGrid: 0,\n highTariffGrid: 0,\n allDayTariffGrid: 0,\n allDayTariffProduction: 0,\n residualElectricityComposition: [], // user can select as many sources as he likes, sum of all percentage values must be 100 %\n lowTariffTimesProduction: {\n start: '00:00',\n end: '00:00',\n },\n lowTariffTimesGrid: {\n start: '00:00',\n end: '00:00',\n },\n residualElectricityText: '',\n },\n water: {\n priceServiceWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceColdWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceHeating: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceCooling: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n },\n },\n sideCosts: [{\n name: '',\n amount: 0,\n }],\n timeZone: '',\n productionCounters: [],\n gridCounter: '',\n gridProductionCounter: '',\n overallCounters: {\n energyCounter: [], // id of the Energy Counter of the Flat\n heatingCounter: [], // id of the Heating Counter of the Flat\n serviceWaterCounter: [], // id of the Service Water Counter of the Flat\n coldWaterCounter: [], // id of the Cold Water Counter of the Flat\n coolingCounter: [], // id of the Cooling Counter of the Flat\n },\n },\n referenceInformation: {\n // calculate values later inside the export file with the selected interval (billingSettings.interval)\n consumption1PersonHousehold: 2400, // kWh/Year default 2400\n consumption2PersonHousehold: 3000, // kWh/Year default 3000\n consumption3PersonHousehold: 3600, // kWh/Year default 3600\n consumption4PersonHousehold: 4000, // kWh/Year default 4000\n additionalText: '',\n },\n billingSettings: {\n start: 0, // will contain date when to start\n interval: 'Year',\n mail: '',\n subject: 'subject',\n content: 'from {{start}} to {{end}}', // default: from {{start}} to {{end}}\n },\n lastMonthUpdate: 0,\n lastYearUpdate: 0,\n lastPeriod: {},\n },\n wasTenantDone: false,\n wasTenantRestarted: false,\n isAutoMappingEnabled: true, // if true, automapping is set for all counter pages\n hasLynusInverter: false, // if false we have tenant only if yes we have a hybrid system\n overallProductionMeasurement: '',\n } as ITenantWizardState;\n};\n\nconst state: ITenantWizardState = defaultWizardState();\n\nconst getters: GetterTree = {\n currentPage(state: ITenantWizardState): number {\n return state.currentPage;\n },\n currentStep(state: ITenantWizardState): number {\n return state.currentStep;\n },\n // returns based on the dependencies of the pages\n wizardPages(state: ITenantWizardState): IWizardPage[] {\n return state.pages.filter((page: IWizardPage) => {\n return page.dependencies?.every((dependency: string) => {\n return (state.tenant.general.billingComponents as any)[dependency] === true;\n });\n });\n },\n considerProjectStatus(): boolean {\n // this can be used to control whether we show the \"project offline\" alerts etc.\n return process.env.NODE_ENV !== 'development';\n },\n isAutoMappingEnabled(): boolean {\n return state.isAutoMappingEnabled;\n },\n wasTenantDone(state: ITenantWizardState): boolean {\n return state.wasTenantDone;\n },\n defaultWizardStatePages(): IWizardPage[] {\n return defaultWizardState().pages;\n },\n hasLynusInverter(state: ITenantWizardState): boolean {\n return state.hasLynusInverter;\n },\n overallProductionMeasurement(state: ITenantWizardState): string {\n return state.overallProductionMeasurement;\n },\n};\n\nconst mutations: MutationTree = {\n setCurrentPage(state: ITenantWizardState, data: number) {\n state.currentPage = data;\n },\n setCurrentStep(state: ITenantWizardState, data: number) {\n state.currentStep = data;\n },\n updateTenantObject(state: ITenantWizardState, data: ITenantModel) {\n state.tenant = data;\n },\n reset(state: ITenantWizardState) {\n state = merge(state, defaultWizardState());\n // to avoid of merge not resetting tenant object we do it manually\n state.tenant = defaultWizardState().tenant;\n },\n setWasTenantDoneState(state: ITenantWizardState, data: boolean) {\n state.wasTenantDone = data;\n },\n resetPageStepIndex(state: ITenantWizardState) {\n state.currentPageIndex = 0;\n state.currentPage = 0;\n state.currentStep = 1;\n },\n setTenant(state: ITenantWizardState, data: ITenantModel) {\n state.tenant = data;\n },\n setIsAutoMappingEnabled(state: ITenantWizardState, data: boolean) {\n state.isAutoMappingEnabled = data;\n },\n setWasTenantRestarted(state: ITenantWizardState, data: boolean) {\n state.wasTenantRestarted = data;\n },\n setPages(state: ITenantWizardState, data: IWizardPage[]) {\n state.pages = data;\n },\n setHasLynusInverter(state: ITenantWizardState, data: boolean) {\n state.hasLynusInverter = data;\n },\n setOverallProductionMeasurement(state: ITenantWizardState, data: string) {\n state.overallProductionMeasurement = data;\n },\n};\n\nconst actions: ActionTree = {\n handleIncrement({ state, getters }) {\n if (state.currentPageIndex + 1 < getters.wizardPages.length) {\n state.currentPageIndex++;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n },\n handleDecrement({ state, getters }) {\n if (state.currentPageIndex !== 0) {\n state.currentPageIndex--;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n },\n async loadTenant({ commit }, project_id: string) {\n try {\n const result = await api.fetch(`/projects/${project_id}/renters`, 'GET');\n // if tenant was never done before endpoint will return object with empty values so we do not need to replace the current one\n if (result.header.ownerMail !== '') {\n // is needed for old tenant models where the billingComponents did not contain cooling\n result.general.billingComponents.cooling = result.general.billingComponents.cooling ?? false;\n commit('setTenant', result);\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async updateTenant({ commit }, data: { project_id: string; tenant: any}) {\n try {\n delete data.tenant.general.overallCounters.serviceWaterConter;\n delete data.tenant.general.overallCounters.coldWaterConter;\n await api.fetch(`/projects/${data.project_id}/renters`, 'PUT', data.tenant);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updatedTenantModel'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n async downLoadTenant({ commit }, data: {start: number; end: number; project_id: string}) {\n try {\n const file = await api.fetch(`/projects/${data.project_id}/renters/report?id=${data.project_id}&start=${data.start}&end=${data.end}`, 'GET', undefined, undefined, 'blob');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.downloadFileSuccess'),\n value: true,\n }, { root: true });\n return file;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n async deleteTenant({ commit }, project_id: string) {\n try {\n await api.fetch(`/projects/${project_id}/renters`, 'DELETE');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deletedTenantModel'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const tenantWizard: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store/types';\nimport { INavigationState } from '@/store/modules/navigation/types';\nimport { envMainMenuEntries, envProjectMenuEntries, envDocumentationTabs } from '@/utils/env';\n\nconst state: INavigationState = {\n drawer: true,\n isMini: false,\n appNavigation: [\n {\n name: 'Home',\n locale: 'navigation.appNavigation.home',\n path: '/',\n icon: 'home',\n },\n {\n name: 'Ticket',\n locale: 'navigation.appNavigation.ticket',\n path: '/ticket',\n icon: 'ticket',\n },\n {\n name: 'Changelog',\n locale: 'navigation.appNavigation.changelog',\n path: '/changelog',\n icon: 'fa-list-ol',\n superAdminOnly: true,\n },\n {\n name: 'PartnerManagement',\n locale: 'navigation.appNavigation.PartnerManagement',\n path: '/partner-management',\n icon: 'fa-chalkboard-teacher',\n partnerOnly: true,\n },\n {\n name: 'PartnerWorkspace',\n locale: 'navigation.appNavigation.PartnerWorkspace',\n path: '/partner-workspace',\n icon: 'fa-handshake',\n partnerOnly: true,\n },\n {\n name: 'SerialNumberManagement',\n locale: 'navigation.appNavigation.serialNumberManagement',\n path: '/serial-number-management',\n icon: 'fa-key',\n superAdminOnly: true,\n lynusSupportOnly: true,\n },\n ],\n documentationNavigation: [\n {\n title: 'User Manual',\n locale: 'navigation.documentationNavigation.userManual',\n name: 'UserManual',\n description: '',\n icon: 'library_add',\n path: '/documentation/userManual',\n },\n {\n title: 'API Documentation',\n locale: 'navigation.documentationNavigation.apiDocumentation',\n name: 'APIDocs',\n description: '',\n icon: 'description',\n path: '/documentation/api',\n },\n {\n title: 'Device Connectivity',\n locale: 'navigation.documentationNavigation.deviceConnectivity',\n name: 'DeviceConnectivity',\n description: '',\n icon: 'description',\n path: '/documentation/deviceConnectivity',\n },\n ],\n};\n\nconst getters: GetterTree = {\n appNavigationFiltered(state) {\n return state.appNavigation.filter((e: any) => envMainMenuEntries.includes(e.name));\n },\n\n /**\n * Project navigation\n * @param state\n * @param getters\n * @param rootState\n * @param rootGetters\n */\n projectNavigation(state, getters, rootState, rootGetters) {\n const route = `/projects/${rootState.projects.projectId}`;\n return [\n {\n name: 'Favorites',\n locale: 'navigation.appNavigation.favorites',\n path: `${route}/favorites`,\n icon: 'favourites',\n memberAccess: true,\n },\n {\n name: 'Areas',\n locale: 'navigation.appNavigation.areas',\n path: `${route}/areas`,\n icon: 'areas',\n memberAccess: true,\n },\n {\n name: 'Devices Library',\n locale: 'navigation.appNavigation.devicesLibrary',\n path: `${route}/devices`,\n icon: 'devices-library',\n memberAccess: false,\n },\n {\n name: 'AI/ML Library',\n locale: 'navigation.appNavigation.aimlLibrary',\n path: `${route}/aiml`,\n icon: 'AI-ML',\n memberAccess: false,\n },\n {\n name: 'Variables',\n locale: 'navigation.appNavigation.variables',\n path: `${route}/variables`,\n icon: 'variables',\n memberAccess: true,\n },\n {\n name: 'Workbench',\n locale: 'navigation.appNavigation.workbench',\n path: `${route}/workbench`,\n icon: 'workbench',\n memberAccess: false,\n },\n {\n name: 'Settings',\n locale: 'navigation.appNavigation.settings',\n path: `${route}/settings`,\n icon: 'settings',\n memberAccess: true,\n },\n {\n name: 'Rules',\n locale: 'navigation.appNavigation.rules',\n path: `${route}/rules`,\n icon: 'fa-check',\n memberAccess: false,\n },\n {\n name: 'Report',\n locale: 'navigation.appNavigation.report',\n path: `${route}/Report`,\n icon: 'fa-file-alt',\n memberAccess: false,\n },\n {\n name: 'Event List',\n locale: 'navigation.appNavigation.eventList',\n path: `${route}/eventlist`,\n icon: 'eventlist',\n memberAccess: true,\n accepted: rootGetters['events/getIsAllAccepted'],\n animation: rootGetters['events/getIsAllAccepted'],\n },\n {\n name: 'InstallationWizard',\n locale: 'navigation.appNavigation.installationWizard',\n path: `${route}/installation-wizard`,\n icon: 'mdi-auto-fix',\n memberAccess: false,\n },\n {\n name: 'TenantWizard',\n locale: 'navigation.appNavigation.tenantWizard',\n path: `${route}/tenant-wizard`,\n icon: 'mdi-home-analytics',\n memberAccess: false,\n filterForMobileBatteryDeye: true, // filter for mobile battery deye batterytype\n },\n ].filter((e) => envProjectMenuEntries.includes(e.name));\n },\n documentationNavigationFiltered(state) {\n return state.documentationNavigation.filter((tab: any) => envDocumentationTabs.includes(tab.name));\n },\n partnerNavigation(state, getters, rootState, rootGetters) {\n const id = rootState.partnerWorkspaces.workspaceId;\n return [\n {\n name: 'PartnerProjectView',\n locale: 'navigation.partnerNavigation.partnerProjectView',\n path: `/partner-workspace/${id}`,\n icon: 'settings',\n superAdminOnly: false,\n },\n ];\n },\n};\n\nconst mutations: MutationTree = {\n handleDrawer(state: INavigationState, payload: boolean) {\n state.drawer = payload;\n },\n handleMiniVariant(state: INavigationState, payload: boolean) {\n state.isMini = payload;\n },\n};\n\nconst actions = {};\n\nexport const navigation: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { Map } from 'immutable';\nimport ProjectService from '@/services/ProjectService';\nimport i18n from '@/ui/plugins/i18n';\nimport { IProject, IProjectFilters, IProjectMQTTInfo } from '@/types/project.types';\nimport { BatteryType, deyeBatteryTypes } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { loggerTypes } from '@/ui/components/wizards/loggerWizard/wizardSettings/systemTypes';\nimport { IProjectsState } from './types';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\n\nconst state: IProjectsState = {\n projectId: null,\n projects: Map(),\n project: {},\n mqttInfo: {},\n projectLoader: false,\n projectsLoader: false,\n projectFilters: {\n projectName: '',\n projectStatus: '',\n projectTags: [],\n batterySystemType: '',\n systemType: '',\n },\n};\n\nconst getters: GetterTree = {\n project(state: IProjectsState) {\n return state.project;\n },\n // returns project creation date in seconds\n projectCreationTimestamp(state: IProjectsState) {\n const projectCreationDate = new Date(state.project.created_at);\n return Math.trunc(projectCreationDate.getTime() / 1000);\n },\n projects(state: IProjectsState) {\n return state.projects.valueSeq().toJS();\n },\n startOfTheProject(state: IProjectsState) {\n return new Date(state.project.created_at).getTime();\n },\n projectStartedAt(state: IProjectsState) {\n return state.project.started_at;\n },\n projectStartedAtNumber(state: IProjectsState) {\n return new Date(state.project.started_at).getTime();\n },\n projectFilters(state: IProjectsState) {\n return state.projectFilters;\n },\n projectTagsLists(state, getters, rootState, rootGetters) {\n const tagSet = new Set();\n rootGetters['projects/projects'].forEach((currentProject: IProject) => {\n (currentProject?.meta?.tags ?? []).forEach((currentTag: string) => {\n tagSet.add(currentTag);\n });\n });\n\n return Array.from(tagSet);\n },\n projectsFilteredByTag(state, getters, rootState, rootGetters) {\n const projectList = rootGetters['projects/projects'];\n const filterTags = state.projectFilters.projectTags;\n if (!filterTags.length) return projectList;\n return projectList.filter((project: IProject) => {\n const projectTags = project?.meta?.tags ?? [];\n return filterTags.some((tag: string) => projectTags.includes(tag)); // if tagsForFilter is [], it will return true\n });\n },\n projectCurrency(state: IProjectsState) {\n return state.project.meta?.projectCurrency;\n },\n batterySystemType(state: IProjectsState): BatteryType | undefined {\n if (!state.project?.meta) return undefined;\n return state.project.meta.controller?.batterySystemType;\n },\n isDeye(_, getters) {\n return deyeBatteryTypes.includes(getters.batterySystemType);\n },\n isSolarmax(_, getters) {\n return getters.batterySystemType === BatteryType.SOLARMAX;\n },\n isLoggerSystem(_, getters) {\n return loggerTypes.includes(getters.batterySystemType);\n },\n isMobileDeye(_, getters) {\n return getters.batterySystemType === BatteryType.MobileBatteryDeye;\n },\n};\n\nconst mutations: MutationTree = {\n setProjectId(state: IProjectsState, projectId: string) {\n state.projectId = projectId;\n },\n setProjects(state: IProjectsState, projects: Map) {\n state.projects = projects;\n },\n setProject(state: IProjectsState, project: IProject) {\n state.project = project;\n if (!project.id) return;\n state.projectId = project.id;\n },\n setProjectFilter(state: IProjectsState, data: { type: keyof IProjectFilters; value: any }) {\n state.projectFilters[data.type] = data.value;\n },\n setMqttInfo(state: IProjectsState, info: IProjectMQTTInfo) {\n state.mqttInfo = info;\n },\n setProjectLoader(state: IProjectsState, payload: boolean) {\n state.projectLoader = payload;\n },\n setProjectsLoader(state: IProjectsState, payload: boolean) {\n state.projectsLoader = payload;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load project list, creates Map collection from them and set to project state\n * @param commit\n */\n async loadProjects({ commit }) {\n try {\n commit('setProjectsLoader', true);\n const data = await ProjectService.fetchProjects();\n const projects = (data as IProject[]).reduce((acc, cur) => {\n if (!cur.id) return acc;\n return acc.set(cur.id, cur);\n }, Map());\n commit('setProjects', projects);\n this.commit('router/setHomeDataLoaded', true);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n } finally {\n commit('setProjectsLoader', false);\n }\n },\n\n /**\n * Creates new project\n * @param commit\n * @param state\n * @param project\n */\n async createProject({ commit, state }, project) {\n try {\n const result = await ProjectService.createProject(project);\n commit('setProjects', state.projects.set(result.id, result));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createProject'),\n value: true,\n }, { root: true });\n return result;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Creates Copy of project\n * @param commit\n * @param state\n * @param project\n */\n async copyProject({ commit, state }, project) {\n try {\n const result = await ProjectService.createProject(project);\n commit('setProjects', state.projects.set(result.id, result));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.copyProject'),\n value: true,\n }, { root: true });\n return result;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n\n /**\n * Delete selected project\n * @param commit\n * @param state\n * @param projectId\n */\n async deleteProject({ commit, state }, projectId: string) {\n try {\n await ProjectService.deleteProject(projectId);\n commit('setProjects', state.projects.remove(projectId));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deleteProject'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Load project\n * @param commit\n * @param rootGetters\n * @param projectId\n */\n async loadProject({ commit, rootGetters }, projectId: string) {\n try {\n const project = await ProjectService.fetchProject(projectId);\n\n let continueWithoutSerialNumber = true;\n // check for serial number in backend\n if (plcVersionDate(project).getTime() > hybridVersionDate.getTime()) {\n const serialNumbers = rootGetters['serialNumber/serialNumbers'];\n const serialNumber = project.meta?.serial_number;\n if (serialNumber && serialNumbers.includes(serialNumber)) {\n continueWithoutSerialNumber = false;\n }\n }\n commit('setProjectId', project.id);\n commit('setProject', project);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates selected project\n * @param commit\n * @param state\n * @param project\n */\n async updateProject({ commit, state }, project: IProject) {\n try {\n const res = await ProjectService.updateProject(project);\n commit('setProjects', state.projects.set(res.id, res));\n commit('setProject', res);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updateProject'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n async resetQR({ commit, state }, projectId: string): Promise {\n try {\n const res = await ProjectService.resetQR(projectId);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.resetQR'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n /**\n * Disables QR code so it can't be used for adding new users anymore\n */\n async disableQR({ commit, state }, projectId: string): Promise {\n try {\n const res = await ProjectService.disableQR(projectId);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.disableQrCode'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const projects: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { envDevices } from '@/utils/env';\nimport devicesTypes from './devicesTypes';\n\n// device types filtered by VUE_APP_DEVICES of config.js\nconst devicesTypesFiltered: any = {};\nconst filterList: string[] = envDevices;\n\n// eslint-disable-next-line no-restricted-syntax\nfor (const [key, value] of Object.entries(devicesTypes)) {\n if (filterList.indexOf(key) !== -1) {\n devicesTypesFiltered[key] = value;\n }\n}\n\nexport default devicesTypesFiltered;\n","import devicesTypes from './devicesTypes';\nimport devicesTypesFiltered from './devicesTypesFiltered';\n\nexport default {\n devicesTypes,\n devicesTypesFiltered,\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IDevice, IDeviceType } from '@/types/devices.types';\nimport DeviceService from '@/services/DeviceService';\nimport { Map } from 'immutable';\nimport i18n from '@/ui/plugins/i18n';\nimport { sortElementsByPosition, convertElementsPositionsToObject } from '@/utils/utilsFunctions';\nimport devicesSettings from './settings';\n\nconst state: IDevicesState = {\n devices: Map(),\n devicesFilter: '',\n lastCreatedDevice: '',\n ...devicesSettings,\n};\n\nconst getters: GetterTree = {\n /**\n * all devices: devices and charts\n * when we fetch use \"/projects/project_id/devices\" in request url in response will be devices and charts\n * @param state list of devices, list of devices types, deviceFilter\n */\n allDevices(state: IDevicesState) {\n return state.devices.valueSeq().toJS();\n },\n /**\n * Only devices, filtered from charts\n * @param state\n * @param getters\n */\n devices(state: IDevicesState, getters: Record) {\n return getters.allDevices\n .filter((device: IDevice) => Object.keys(state.devicesTypesFiltered).includes(device.data.type));\n },\n devicesTypes(state: IDevicesState) {\n return state.devicesTypesFiltered;\n },\n lastCreatedDevice(state: IDevicesState) {\n return state.lastCreatedDevice;\n },\n deviceTypeSchemaByKey: (state: IDevicesState) => (type: string) => state.devicesTypesFiltered[type],\n\n /**\n * Goes through devicesTypesFiltered and create options\n * (Example: { value: key, title: i18n translation }) for every item\n * @param state\n */\n devicesTypesWithLocaleNamesList(state: IDevicesState) {\n return Object.keys(state.devicesTypesFiltered)\n .map((itemType: string) => ({ value: itemType, title: i18n.t(`devices.${itemType}.previewName`) }));\n },\n\n /**\n * Return devices, MPC, charts attached to selected room\n * @param state\n * @param getters\n * @param rootState\n * @param rootGetters\n */\n devicesByRoom: (state, getters, rootState, rootGetters) => (roomId: string) => {\n const roomDevicesPositions = rootGetters['members/currentMember']?.meta?.device_positions?.[roomId];\n const roomDevicesPositionsMap = roomDevicesPositions\n ? convertElementsPositionsToObject(roomDevicesPositions)\n : {};\n\n const mpc = rootGetters['mpc/mpcControllers'];\n const charts = rootGetters['charts/charts'];\n const { devices } = getters;\n const roomDevices = [...devices, ...charts, ...mpc].filter((device: IDevice) => device.collection_id === roomId);\n\n return sortElementsByPosition({\n elementsList: JSON.parse(JSON.stringify(roomDevices)),\n positions: roomDevicesPositionsMap,\n });\n },\n\n /**\n * Returns devices, MPC, charts which are in current user favorites list\n * @param state\n * @param getters\n * @param rootState\n * @param rootGetters\n */\n favoritesDevices(state, getters, rootState, rootGetters) {\n const favoritePositions = rootGetters['members/currentMember']?.meta?.favorite_positions;\n const favoritePositionsMap = favoritePositions\n ? convertElementsPositionsToObject(favoritePositions)\n : {};\n\n const mpc = rootGetters['mpc/mpcControllers'];\n const charts = rootGetters['charts/charts'];\n const { devices } = getters;\n const favoriteDevices = [...devices, ...charts, ...mpc].filter(device => {\n return rootGetters['members/currentMemberFavoriteDevices'].includes(device.id);\n });\n\n return sortElementsByPosition({\n elementsList: JSON.parse(JSON.stringify(favoriteDevices)),\n positions: favoritePositionsMap,\n });\n },\n\n /**\n * Returns devices list with the visibility status of the settings window\n * @param state\n */\n devicesIsSettings(state: IDevicesState) {\n return Object.entries(state.devicesTypes).map((device: [string, IDeviceType]) => [device[0], device[1].isSettingsView]);\n },\n};\n\nconst mutations: MutationTree = {\n setDevices(state: IDevicesState, devices: Map) {\n state.devices = devices;\n },\n setDevicesFilter(state: IDevicesState, name: string) {\n state.devicesFilter = name;\n },\n setLastCreatedDevice(state: IDevicesState, device: string) {\n state.lastCreatedDevice = device;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load devices list, creates Map collection from them and set to devices state\n * @param commit\n * @param state\n * @param rootState\n */\n async fetchDevices({ commit, state, rootState }) {\n const res = await DeviceService.fetchDevices(rootState.projects.projectId as string);\n const devices = (res as IDevice[]).reduce((acc, cur) => acc.set(cur.id, cur), Map());\n commit('setDevices', devices);\n },\n\n /**\n * Load energy data for selected device (EnergyView, EMS).\n * @param commit\n * @param state\n * @param rootState\n * @param rootGetters\n * @param id\n */\n async fetchEnergyData({ commit, state, rootState, rootGetters }, params) {\n const project_id = rootGetters['projects/project'].id;\n try {\n return await DeviceService.fetchEnergyData(project_id, params.device_id, params.start, params.end);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorLoadingEnergyData'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Creates device\n * @param commit\n * @param state\n * @param rootState\n * @param device\n */\n async createDevice({ commit, state, rootState }, device: IDevice) {\n try {\n const res = await DeviceService.createDevice(rootState.projects.projectId as string, device);\n commit('setDevices', state.devices.set(res.id, res));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createDevice', { name: res.name }),\n value: true,\n }, { root: true });\n return res;\n } catch (e) {\n console.log(e);\n return null;\n }\n },\n\n /**\n * Removes selected device, rules attached to device\n * @param commit\n * @param dispatch\n * @param state\n * @param rootState\n * @param device device data\n */\n async deleteDevice({ commit, dispatch, state, rootState }, device: IDevice) {\n const project_id = rootState.projects.projectId;\n const warningRuleId = device.data?.meta?.warningRule;\n const errorRuleId = device.data?.meta?.errorRule;\n // remove rules attached to device\n await Promise.all([warningRuleId, errorRuleId].filter((rule_id: string) => rule_id).map((rule_id: string) => {\n return dispatch('rules/deleteRule', { project_id, rule_id }, { root: true });\n }));\n\n // will remove all of the single system Error and Warning Rules only for EMSV2\n if (device.data.type === 'EMSV2') {\n const systemsRules = device.data.meta.rules ? Object.values(device.data.meta.rules) : [];\n const rulesVariablesList: any = systemsRules.length\n ? systemsRules\n .map((system: any) => [system.errorRule, system.warningRule])\n .reduce((acc: any, item: any) => acc.concat(item), [])\n : [];\n const rulesList: any = [...rulesVariablesList]\n .filter((el: any) => !!el)\n .map((variable: string) => dispatch('rules/deleteRule', { project_id, rule_id: variable }, { root: true }));\n await Promise.all(rulesList);\n }\n\n await DeviceService.deleteDevice(rootState.projects.projectId as string, device.id);\n commit('setDevices', state.devices.remove(device.id));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deleteDevice'),\n value: true,\n }, { root: true });\n },\n\n /**\n * Updates selected device\n * @param commit\n * @param state\n * @param rootState\n * @param device device data\n */\n async updateDevice({ commit, state, rootState }, { device, skipReport }) {\n if (!rootState.projects.projectId) return;\n\n try {\n const res = await DeviceService.updateDevice(rootState.projects.projectId, device.id, device);\n commit('setDevices', state.devices.set(res.id, res));\n if (!skipReport) {\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.editDevice', { name: res.name }),\n value: true,\n }, { root: true });\n }\n } catch (e) {\n if (!skipReport) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n }\n },\n\n /**\n * Add device to Favorites\n * @param commit\n * @param state\n * @param rootState\n * @param deviceId device id\n */\n async addDeviceToFavorites({ commit, state, rootState }, deviceId) {\n await DeviceService.addToFavorites(rootState.projects.projectId as string, deviceId);\n\n const currentDevice = state.devices.get(deviceId);\n if (currentDevice) {\n currentDevice.favorite = true;\n commit('setDevices', state.devices.set(currentDevice.id, currentDevice));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.addToFavorites', { name: currentDevice.name }),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Removes device from Favorites\n * @param commit\n * @param state\n * @param rootState\n * @param deviceId device id\n */\n async removeDeviceFromFavorites({ commit, state, rootState }, deviceId) {\n await DeviceService.deleteFromFavorites(rootState.projects.projectId as string, deviceId);\n\n const currentDevice = state.devices.get(deviceId);\n if (currentDevice) {\n currentDevice.favorite = false;\n commit('setDevices', state.devices.set(currentDevice.id, currentDevice));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.removeFromFavorites', { name: currentDevice.name }),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Change date by direction and period\n * @param dispatch\n * @param id Device id\n * @param start Start date for mpc data\n * @param end End date for mpc data\n * @param period Current period\n */\n async fetchDataByPeriod(\n { dispatch },\n { id, start, end, period }: { id: string; start: number; end: number; period: string },\n ) {\n const energyResponse = await dispatch('devices/fetchEnergyData', { device_id: id, start, end }, { root: true });\n return energyResponse;\n },\n\n /**\n * Returns list of all basic devices by collection ID\n * @param collection_id\n */\n getDevicesByCollectionID({ getters }, collection_id: string) {\n return getters.devices.filter((device: any) => device.collection_id === collection_id);\n },\n\n /**\n * Returns list of all basic devices by collection ID\n * @param collection_id\n */\n getAllDevicesByCollectionID({ getters }, collection_id: string) {\n return getters.allDevices.filter((device: any) => device.collection_id === collection_id);\n },\n\n async transferToRegelenergie({ commit, rootState, dispatch }, device: IDevice) {\n try {\n // transfer device to regelenergie\n await DeviceService.transferToRegelenergie(rootState.projects.projectId as string, device);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('mlModel.EMS.settingsView.regelenergie.transferSuccess') as string,\n value: true,\n }, { root: true });\n\n // update device meta to signalize that is has been transferred\n device.data.meta.regie = true;\n dispatch('updateDevice', device);\n } catch (e) {\n console.log(e);\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('mlModel.EMS.settingsView.regelenergie.transferError') as string,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const devices: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IMember } from '@/types/members.types';\n\nexport default {\n async fetchMembers(projectId: string) {\n return api.fetch(`/projects/${projectId}/members`, 'GET');\n },\n\n async fetchMember(projectId: string, memberId: string) {\n return api.fetch(`/projects/${projectId}/members/${memberId}`, 'GET');\n },\n\n async createMember(projectId: string, member: Partial) {\n return api.fetch(`/projects/${projectId}/members`, 'POST', member);\n },\n\n async updateMember(projectId: string, memberId: string, member: Partial) {\n return api.fetch(`/projects/${projectId}/members/${memberId}`, 'PUT', member);\n },\n\n async deleteMember(projectId: string, memberId: string) {\n return api.fetch(`/projects/${projectId}/members/${memberId}`, 'DELETE');\n },\n\n async updateMemberMeta(projectId: string, memberId: string, member: Partial) {\n return api.fetch(`/projects/${projectId}/members/${memberId}/meta`, 'PUT', member);\n },\n\n async updateMemberCollections(projectId: string, memberId: string, collections: string[]) {\n return api.fetch(`/projects/${projectId}/members/${memberId}/collections`, 'PUT', collections);\n },\n};\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store/types';\nimport { Map } from 'immutable';\nimport { IMemberState } from '@/store/modules/members/types';\nimport { IMember } from '@/types/members.types';\nimport {\n canAccess,\n userRolesKeys,\n UserRoleCode,\n UserRoleName,\n} from '@/utils/userRoles';\nimport i18n from '@/ui/plugins/i18n';\nimport MemberService from '@/services/MemberService';\nimport { cloneDeep } from 'lodash';\n\nconst state: IMemberState = {\n members: Map(),\n currentMember: null,\n};\n\nconst getters: GetterTree = {\n members(state: IMemberState) {\n return state.members.valueSeq().toJS();\n },\n currentMember(state: IMemberState) {\n return state.currentMember;\n },\n currentMemberAreasPositions(state: IMemberState) {\n return state.currentMember?.meta?.area_positions || [];\n },\n currentMemberDevicesPositions(state: IMemberState) {\n return state.currentMember?.meta?.device_positions;\n },\n currentUserRole(state: IMemberState) {\n if (state.currentMember !== null) {\n return userRolesKeys[state.currentMember.role];\n } else {\n return UserRoleName.readOnly;\n }\n },\n canMemberAccess: (state: IMemberState) => (permissionCategory: string, permissionName: string) => {\n return canAccess(\n state.currentMember?.role ?? UserRoleCode.readOnly,\n permissionCategory,\n permissionName,\n );\n },\n currentMemberFavoriteDevicesPositions(state: IMemberState) {\n return state.currentMember?.meta?.favorite_positions || [];\n },\n currentMemberFavoriteDevices(state: IMemberState) {\n return state.currentMember?.meta?.favorite_devices || [];\n },\n};\n\nconst mutations: MutationTree = {\n setMembers(state: IMemberState, members: Map) {\n state.members = members;\n },\n setMember(state, member: IMember) {\n state.members = state.members.set(member.id, member);\n },\n setCurrentMember(state: IMemberState, member: IMember) {\n state.currentMember = member;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Creates new member\n * @param commit\n * @param state\n * @param rootState\n * @param member member data\n * @param showMessage\n */\n async createMember({ commit, state, rootState }, data: { member: IMember; showMessage: boolean}) {\n try {\n let roleForCreation = UserRoleCode.readOnly;\n if (data.member?.role !== undefined) {\n roleForCreation = data.member.role;\n }\n const res = await MemberService.createMember(\n rootState.projects.projectId as string,\n { id: data.member.id, role: roleForCreation },\n );\n commit('setMembers', state.members.set(data.member.id, res));\n return res;\n } catch (e) {\n if (data.showMessage) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('errorMessages.apiErrorTexts.memberLimitReached'),\n value: true,\n }, { root: true });\n }\n return { status: 'Error', value: data.member };\n }\n },\n\n /**\n * Updates selected member\n * @param commit\n * @param state\n * @param rootState\n * @param member member data\n */\n async updateMember({ commit, state, rootState }, member: IMember) {\n try {\n const { role, owner, id } = member;\n\n const res = await MemberService.updateMember(rootState.projects.projectId as string, id, { role, owner });\n commit('setMembers', state.members.set(res.id, res));\n commit('app/setReport', { type: 'success', message: i18n.t('uiComponents.reportMessages.memberUpdated'), value: true }, { root: true });\n return res;\n } catch (e) {\n console.log(e);\n }\n },\n\n /**\n * Delete selected member\n * @param commit\n * @param state\n * @param rootState\n * @param member member data\n */\n async deleteMember({ commit, state, rootState }, member: IMember) {\n try {\n await MemberService.deleteMember(rootState.projects.projectId as string, member.id);\n commit('setMembers', state.members.delete(member.id));\n commit('app/setReport', { type: 'success', message: i18n.t('uiComponents.reportMessages.memberRemoved'), value: true }, { root: true });\n } catch (e) {\n console.log(e);\n }\n },\n\n /**\n * Load members attached to project\n * @param commit\n * @param state\n * @param projectId project id\n */\n async fetchMembers({ commit, state }, projectId) {\n try {\n const res = await MemberService.fetchMembers(projectId);\n const members = (res as IMember[]).reduce((acc, cur) => acc.set(cur.id, cur), Map());\n commit('setMembers', members);\n } catch (e) {\n console.log(e);\n }\n },\n\n /**\n * Load member\n * @param commit\n * @param state\n * @param rootState\n * @param memberId member id\n * @param projectId project id\n */\n async fetchMember({ commit, state, rootState }, { memberId, projectId }) {\n try {\n const res = await MemberService.fetchMember(projectId, memberId);\n commit('setCurrentMember', res);\n } catch (e) {\n console.log(e);\n }\n },\n\n /**\n * Update member meta, used to save areas, devices positions by member id`s\n * @param object\n * @param payload\n */\n async updateMemberMeta({ commit, state, rootState }, { project_id, member }) {\n try {\n await MemberService.updateMemberMeta(project_id, member.id, { meta: member.meta });\n commit('setMembers', state.members.set(member.id, member));\n commit('setCurrentMember', member);\n commit('app/setReport', { type: 'success', message: i18n.t('uiComponents.reportMessages.memberUpdated'), value: true }, { root: true });\n return true;\n } catch (e) {\n console.log(e);\n return false;\n }\n },\n\n /**\n * Update member collections, that is used to filter out rooms that a specific user can or can not see\n * @param projectId Project ID as string\n * @param memberId User ID as string\n * @param collectionsList Array of Room ID's\n */\n async updateMemberCollections({ commit, state }, { project_id, member, collectionsList }) {\n try {\n await MemberService.updateMemberCollections(project_id, member.id, collectionsList);\n const m = cloneDeep(member);\n m.collections = collectionsList;\n commit('setMember', m);\n commit('app/setReport', { type: 'success', message: 'member was updated', value: true }, { root: true });\n } catch (e) {\n commit('app/setReport', { type: 'error', message: e.message, value: true }, { root: true });\n }\n },\n};\n\nexport const members: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { Map } from 'immutable';\nimport { IRoomsState } from '@/store/modules/rooms/types';\nimport i18n from '@/ui/plugins/i18n';\nimport { sortElementsByPosition, convertElementsPositionsToObject } from '@/utils/utilsFunctions';\nimport { IRoom } from '@/types/rooms.types';\nimport CollectionService from '@/services/CollectionService';\n\nconst state: IRoomsState = {\n rooms: Map(),\n};\n\nconst getters: GetterTree = {\n rooms(\n state: IRoomsState,\n rootGetters: Record,\n ) {\n const areaPositions = rootGetters['members/currentMember']?.meta?.area_positions;\n const areaPositionsMap = areaPositions\n ? convertElementsPositionsToObject(rootGetters['members/currentMember'].meta.area_positions)\n : {};\n\n return sortElementsByPosition({\n elementsList: state.rooms.valueSeq().toJS(),\n positions: areaPositionsMap,\n });\n },\n\n /**\n * Sort the list of rooms by number in name and alphabetically.\n * @param state\n * @param getters\n * @return list of Rooms\n */\n sortedRoomsByName(state: IRoomsState, getters: any) {\n const numbersRegExp = /^[0-9]+/g;\n\n const roomsWithNumberInName = getters.rooms.filter((room: IRoom) => {\n return numbersRegExp.test(room.name);\n });\n const roomsWithoutNumbersInName = getters.rooms.filter((room: IRoom) => {\n return !numbersRegExp.test(room.name);\n });\n\n const roomsWithNumberInNameSorted = roomsWithNumberInName.sort((a: IRoom, b: IRoom) => {\n const aNameArr = a.name.match(numbersRegExp) || ['Infinity'];\n const bNameArr = b.name.match(numbersRegExp) || ['Infinity'];\n const aNameNum = Number(aNameArr[0]);\n const bNameNum = Number(bNameArr[0]);\n return aNameNum - bNameNum;\n });\n const roomsWithoutNumbersInNameSorted = roomsWithoutNumbersInName.sort((a: IRoom, b: IRoom) => {\n if (a.name > b.name) return 1;\n if (a.name < b.name) return -1;\n return 0;\n });\n\n return [...roomsWithNumberInNameSorted, ...roomsWithoutNumbersInNameSorted];\n },\n};\n\nconst mutations: MutationTree = {\n setRooms(state: IRoomsState, rooms: Map) {\n state.rooms = rooms;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load rooms\n * @param commit\n * @param rootState\n * @param payload\n */\n async fetchRooms({ commit, rootState }, payload) {\n try {\n const res = await CollectionService.fetchCollections(payload);\n const rooms = (res as IRoom[]).reduce((acc, cur) => acc.set(cur.id, cur), Map());\n commit('setRooms', rooms);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Creates room\n * @param dispatch\n * @param commit\n * @param state\n * @param rootState\n * @param payload\n */\n async createRoom({ dispatch, commit, state, rootState }, payload: any) {\n let assetResponse;\n let { cover } = payload.room;\n\n if (payload.cover) {\n if (payload.coverType === 'picture') {\n assetResponse = await dispatch('app/postAsset', payload.cover, { root: true });\n cover = `/assets/${assetResponse}`;\n } else if (payload.coverType === 'icon') {\n cover = `/icons/${payload.cover}.svg`;\n }\n }\n\n const roomResponse: IRoom = await CollectionService.createCollection(\n rootState.projects.projectId,\n {\n name: payload.room.name,\n meta: { cover, devicesPositions: undefined },\n },\n );\n commit('setRooms', state.rooms.set(roomResponse.id, roomResponse));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createArea'),\n value: true,\n }, { root: true });\n },\n\n /**\n * Creates copy of room\n * @param dispatch\n * @param commit\n * @param state\n * @param rootState\n * @param payload\n */\n async copyRoom({ dispatch, commit, state, rootState }, payload: any) {\n try {\n const roomResponse: IRoom = await CollectionService.createCollection(\n rootState.projects.projectId,\n payload.room,\n );\n commit('setRooms', state.rooms.set(roomResponse.id, roomResponse));\n return roomResponse;\n } catch (e) {\n console.log(e);\n return { error: e };\n }\n },\n\n /**\n * Delete selected room\n * @param commit\n * @param state\n * @param dispatch\n * @param rootState\n * @param roomId\n */\n async deleteRoom({ commit, state, dispatch, rootState }, roomId: string) {\n try {\n await CollectionService.deleteCollection(rootState.projects.projectId, roomId);\n commit('setRooms', state.rooms.remove(roomId));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deleteArea'),\n value: true,\n }, { root: true });\n rootState.mpc.mpcControllers.forEach((mpc: any) => {\n if (mpc.collection_id === roomId) {\n dispatch('mpc/deleteMPC', mpc, { root: true });\n }\n });\n rootState.devices.allDevices.forEach((device: any) => {\n if (device.room !== roomId) {\n dispatch('devices/deleteDevice', device, { root: true });\n }\n });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates selected room\n * @param commit\n * @param state\n * @param rootState\n * @param dispatch\n * @param payload\n */\n async updateRoom({ commit, state, rootState, dispatch }, payload) {\n try {\n let assetResponse;\n let { cover } = payload.room.meta;\n\n if (payload.cover) {\n if (payload.coverType === 'picture') {\n assetResponse = await dispatch('app/postAsset', payload.cover, { root: true });\n cover = `/assets/${assetResponse}`;\n } else if (payload.coverType === 'icon') {\n cover = `/icons/${payload.cover}.svg`;\n }\n }\n\n const roomResponse: IRoom = await CollectionService.updateCollection(\n rootState.projects.projectId,\n payload.room.id,\n {\n name: payload.room.name,\n meta: {\n cover,\n devicesPositions: payload.room.meta.devicesPositions || undefined,\n },\n },\n );\n commit('setRooms', state.rooms.set(roomResponse.id, roomResponse));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.editArea'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const rooms: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IPublishRecord } from '@/types/mqtt.types';\n\nexport default {\n async fetchMeasurements(projectId: string) {\n return api.fetch(`/projects/${projectId}/measurements`, 'GET');\n },\n\n async sendMeasurements(projectId: string, measurements: IPublishRecord[]) {\n return api.fetch(`/projects/${projectId}/measurements`, 'POST', JSON.stringify(measurements));\n },\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { Map } from 'immutable';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport MeasurementService from '@/services/MeasurementService';\n\nconst state: IVariablesState = {\n measurements: Map(),\n mqttMeasurements: Map(),\n measurementsKeys: [],\n measurementsFilter: '',\n measurementsFilterCount: 0,\n};\n\nconst getters: GetterTree = {\n measurements(state: IVariablesState) {\n return state.measurements.toJS();\n },\n\n /**\n * Filters measurements by name length\n * @param state\n */\n measurementsKeys(state: IVariablesState) {\n return state.measurements.keySeq().filter(variable => variable).toJS();\n },\n\n measurementsFilterCount(state: IVariablesState) {\n return state.measurementsFilterCount;\n },\n};\n\nconst mutations: MutationTree = {\n setMeasurements(state: IVariablesState, measurements: Map) {\n state.measurements = measurements;\n },\n setMqttMeasurements(state: IVariablesState, measurements: Map) {\n state.mqttMeasurements = measurements;\n },\n setMeasurementsKeys(state: IVariablesState, measurements: any) {\n state.measurementsKeys = Object.keys(measurements);\n },\n setMeasurement(state: IVariablesState, record: any) {\n if (!record.n) return;\n if (record.vs) {\n state.measurements = state.measurements.set(record.n, record.vs);\n } else {\n state.measurements = state.measurements.set(record.n, record.v);\n }\n },\n setMeasurementsFilter(state: IVariablesState, name: string) {\n state.measurementsFilter = name;\n },\n setMeasurementsFilterCount(state: IVariablesState, count: number) {\n state.measurementsFilterCount = count;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load project measurements\n * @param commit\n * @param projectId\n */\n async fetchMeasurements({ commit }, projectId) {\n try {\n const measurements = await MeasurementService.fetchMeasurements(projectId);\n commit('setMeasurements', Map(measurements));\n commit('setMeasurementsKeys', measurements);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const measurements: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IChartsState } from '@/store/modules/charts/types';\nimport { measurements } from '../measurements';\nimport i18n from '@/ui/plugins/i18n';\n\nconst state: IChartsState = {\n chartsTypes: {\n 'chart': {\n mappings: ['value'],\n },\n 'LineChart': {\n mappings: ['value'],\n },\n 'ColumnChart': {\n mappings: ['value'],\n },\n 'AreaChart': {\n mappings: ['value'],\n },\n 'GaugeChart': {\n mappings: ['value'],\n },\n },\n};\n\nconst getters: GetterTree = {\n charts(state, getters, rootState, rootGetters) {\n return rootGetters['devices/allDevices']\n .filter((device: any) => Object.keys(state.chartsTypes).some(item => item === device.data.type));\n },\n};\n\nconst mutations: MutationTree = {};\n\nconst actions: ActionTree = {\n async fetchChart({ commit, rootState }, {\n projectId, variableName, from, to, agg, interval,\n }) {\n try {\n return api.fetch(\n `/projects/${projectId}/measurements/${variableName}/chart?start=${from}&end=${to}&agg=${agg}&int=${interval}`,\n 'GET',\n );\n } catch (e) {\n commit('app/setReport', {\n type: 'info',\n message: i18n.t('errorMessages.infoTexts.variableNotDefined'),\n value: true,\n }, { root: true });\n }\n },\n async fetchChartByExactTime({ commit, rootState }, { projectId, chartName, time }) {\n return api.fetch(`/projects/${projectId}/measurements/${chartName}?time=${time}`, 'GET');\n },\n};\n\nexport const charts: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","/**\n * A collection of device schemas with these options:\n * - **mappingsByColumns** - mappings grouped by columns, which will be drawn in the manage modal form\n * - **mappings** - collection of mappings used in device, are also the form fields in the manage modal form\n * - **isStartStopDate** - status whether the device has RangeDatePicker field in manage modal form\n * - **manageSchema** - manage modal form used to create, update device\n * - **isSettingsView** - status whether the device has a settings window\n */\nconst anomalyDetectionTypes = {\n HistoryAnomalyDetection: {\n mappingsByColumns: {\n variableMappings: ['unit', 'var', 'name', 'agg', 'scaling'],\n outputMappings: ['anomalyScore'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n mappings: {\n unit: {\n component: 'TextField',\n optional: false,\n },\n var: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n name: {\n component: 'TextField',\n optional: false,\n },\n agg: {\n component: 'SelectField',\n items: 'aggregations',\n optional: false,\n },\n scaling: {\n component: 'ScalingField',\n optional: false,\n },\n heartbeat: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n errorWarning: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n mpcReady: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n anomalyScore: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n },\n isStartStopDate: true,\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n },\n StreamAnomalyDetection: {\n mappingsByColumns: {\n variableMappings: ['unit', 'var', 'name', 'agg', 'scaling'],\n outputMappings: ['anomalyScore'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n mappings: {\n unit: {\n component: 'TextField',\n optional: false,\n },\n var: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n name: {\n component: 'TextField',\n optional: false,\n },\n agg: {\n component: 'SelectField',\n items: 'aggregations',\n optional: false,\n },\n scaling: {\n component: 'ScalingField',\n optional: false,\n },\n heartbeat: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n errorWarning: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n mpcReady: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n anomalyScore: {\n component: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n },\n isStartStopDate: false,\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n },\n};\n\nexport default anomalyDetectionTypes;\n","import { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport anomalyDetectionTypes from '@/store/modules/anomalyDetection/anomalyDetectionTypes';\nimport i18n from '@/ui/plugins/i18n';\n\nconst state: IAnomalyDetectionState = {\n anomalyDetectionTypes,\n lastCreatedAnomalyDetection: '',\n};\n\nconst getters: GetterTree = {\n /**\n * Filters from MPC devices Anomaly Detected devices\n * @param state\n * @param getters\n * @param rootState\n * @param rootGetters\n */\n anomalyDetectionDevices(state, getters, rootState, rootGetters) {\n return rootGetters['mpc/mpcControllers'].filter((device: any) => Object.keys(state.anomalyDetectionTypes).some((el: string) => el === device.data.type));\n },\n\n /**\n * Goes through anomalyDetectionTypes and create options\n * (Example: { value: key, title: i18n translation }) for every item\n * @param state\n */\n anomalyDetectionTypesWithLocaleNamesList(state) {\n return Object.keys(state.anomalyDetectionTypes)\n .map((itemType: string) => ({ value: itemType, title: i18n.t(`anomalyDetection.${itemType}.previewName`) }));\n },\n lastCreatedAnomalyDetection(state: IAnomalyDetectionState) {\n return state.lastCreatedAnomalyDetection;\n },\n};\n\nconst mutations: MutationTree = {\n setLastCreatedAnomalyDetection(state: IAnomalyDetectionState, device: any) {\n state.lastCreatedAnomalyDetection = device;\n },\n};\n\nconst actions: ActionTree = {};\n\nexport const anomalyDetection: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import colors from '@/ui/components/devices/mpc/colors';\n\n/**\n * A collection of device schemas with these options:\n * - **mappingsByColumns** - mappings grouped by columns, which will be drawn in the manage modal form\n * - **controllerMappings** - collection of mappings used in device, are also the form fields in the manage modal form\n * - **settingsMappings** - list of mappings which validates to red frame around the settings list item flashes\n * - **manageSchema** - manage modal form used to create, update device\n * - **isSettingsView** - status whether the device has a settings window\n * - **dynamicMappingsMinMax** - min, max borders to validate value of specific named mappings\n * for settings menu item flashing border\n *\n * Used in EMS and Setpoint Optimizer\n * - **groups** - collection of system groups\n * - **systems** - collection of systems with options settings for them\n * - **additionalFields** - additional fields for manage modal form stage 3\n */\nconst mlModelTypes = {\n HeatingCircuitOptimization: {\n mappingsByColumns: {\n inputMappings: [\n 'valveReturnType',\n 'flowTemperature',\n 'returnTemperature',\n 'areaTemperature',\n 'valvePosition',\n ],\n outputMappings: [\n 'newValvePosition',\n 'newAreaTemperature',\n 'newSetTemperature',\n ],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n controllerMappings: {\n valveReturnType: {\n vuetifyComponent: 'SelectField',\n items: ['0-1 Digital'],\n optional: false,\n type: 'input',\n },\n flowTemperature: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n newSetTemperature: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n returnTemperature: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n areaTemperature: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n valvePosition: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n newValvePosition: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'output',\n },\n newAreaTemperature: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'output',\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'none',\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'none',\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'none',\n },\n },\n settingsMappings: null,\n manageSchema: 'HCOSchema',\n isSettingsView: true,\n },\n PVProductionService: {\n mappingsByColumns: {\n inputMappings: ['startDate', 'power'],\n outputMappings: ['predictedEnergy', 'predictedPower'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n predictedPower: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n predictedEnergy: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n },\n settingsMappings: null,\n manageSchema: 'ServicesSchema',\n isSettingsView: false,\n },\n ConsumptionService: {\n mappingsByColumns: {\n inputMappings: ['startDate', 'power'],\n outputMappings: ['predictedEnergy', 'predictedPower'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n predictedPower: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n predictedEnergy: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n },\n settingsMappings: null,\n manageSchema: 'ServicesSchema',\n isSettingsView: false,\n },\n HppProductionService: {\n mappingsByColumns: {\n inputMappings: ['startDate', 'power'],\n outputMappings: ['calculatedProduction', 'calculatedEnergy'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n type: 'input',\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'none',\n },\n calculatedProduction: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n calculatedEnergy: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n type: 'input',\n },\n },\n settingsMappings: null,\n manageSchema: 'ServicesSchema',\n isSettingsView: false,\n },\n EMS: {\n mappingsByColumns: {\n inputMappings: ['startDate', 'state_enable_ems', 'allow_charging_state', 'message', 'state_main_fuse', 'inverter_power', 'force_charge', 'forceCharge2', 'calibration_charge', 'maintenance_charge', 'charge_maintenance'],\n outputMappings: [\n 'heartbeat', 'errorWarning', 'mpcReady', 'operation_mode',\n 'max_depth', 'reserve_battery', 'min_charge_battery', 'reserve_charge', 'update_time',\n 'enable_ems', 'calculated_battery_power', 'activate_heating_pump', 'allow_charging_button',\n 'enable_controlling', 'activate_main_fuse', 'size_main_fuse', 'size_main_fuse',\n ],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n activate_heating_pump: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n calculated_battery_power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n state_enable_ems: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n enable_ems: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n size_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 30,\n minMaxBorders: { min: 0, max: 500 },\n },\n operation_mode: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n max_depth: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: { min: 10, max: 100 },\n },\n reserve_battery: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: { min: 11, max: 100 },\n },\n min_charge_battery: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: { min: 25, max: 75 },\n },\n reserve_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: { min: 10, max: 100 },\n },\n update_time: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: { min: 10, max: 600 },\n },\n message: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n allow_charging_button: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n allow_charging_state: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n enable_controlling: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n state_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n inverter_power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n activate_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n force_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n forceCharge2: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n calibration_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n maintenance_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n charge_maintenance: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n },\n groups: {\n producer: {\n id: 'producer',\n title: 'Producer',\n systems: ['pv', 'generator'],\n },\n producerConsumer: {\n id: 'producerConsumer',\n title: 'Producer Consumer',\n systems: ['battery', 'grid'],\n },\n consumer: {\n id: 'consumer',\n title: 'Consumer',\n systems: ['house', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'],\n },\n },\n systems: {\n pv: {\n id: 'pv',\n title: 'PV System',\n required: false,\n group: 'producer',\n quantity: 40,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n generator: {\n id: 'generator',\n title: 'Generator',\n required: false,\n group: 'producer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'state_reset', 'error', 'state_generator', 'state_enable', 'energy_counter', 'state_timelock'],\n output: ['enable_soc', 'disable_soc', 'switch_enable', 'switch_reset', 'hour_on', 'minute_on', 'hour_off', 'minute_off', 'enable_timelock'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n state_reset: '',\n state_generator: '',\n enable_soc: '',\n disable_soc: '',\n switch_enable: '',\n switch_reset: '',\n state_enable: '',\n energy_counter: '',\n hour_on: '',\n minute_on: '',\n hour_off: '',\n minute_off: '',\n enable_timelock: '',\n state_timelock: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n state_reset: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_generator: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n enable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n disable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_reset: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n hour_on: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n minute_on: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n hour_off: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n minute_off: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n enable_timelock: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_timelock: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n battery: {\n id: 'battery',\n title: 'Battery',\n required: false,\n group: 'producerConsumer',\n quantity: 20,\n mappingsByColumns: {\n input: ['power', 'error', 'soc', 'target_power', 'state_enable', 'state_reset', 'capacity', 'energy_counter', 'reverse_energy_counter'],\n output: ['size_capacity', 'priority', 'switch_enable', 'switch_reset'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n target_power: '',\n state_enable: '',\n state_reset: '',\n error: '',\n title: '',\n soc: '',\n size_capacity: '',\n capacity: '',\n priority: '',\n switch_enable: '',\n switch_reset: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n target_power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_reset: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n size_capacity: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n capacity: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n priority: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_reset: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n grid: {\n id: 'grid',\n title: 'Grid',\n required: true,\n group: 'producerConsumer',\n quantity: 1,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter', 'reverse_energy_counter'],\n output: ['size'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n size: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n size: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n house: {\n id: 'house',\n title: 'House Consumption',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'state_enable', 'energy_counter'],\n output: ['switch_enable'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n state_enable: '',\n switch_enable: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n charge_station: {\n id: 'charge_station',\n title: 'EV Charging Station',\n required: false,\n group: 'consumer',\n quantity: 250,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'car_connected', 'charging_time', 'state_charging_station', 'state_emergency',\n 'slider_target_power', 'state_manual', 'min_power', 'target_power', 'state_enable', 'energy_counter',\n ],\n output: [\n 'switch_emergency', 'priority',\n 'enable_soc', 'disable_soc', 'max_power', 'switch_manual', 'slider_manual',\n 'slider_min_power', 'switch_enable',\n ],\n titles: ['title'],\n },\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'car_connected': '',\n 'charging_time': '',\n 'state_charging_station': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'min_power': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'max_power': '',\n 'slider_manual': '',\n 'slider_target_power': '',\n 'slider_min_power': '',\n 'target_power': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'switch_manual': '',\n 'energy_counter': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'car_connected': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'charging_time': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_charging_station': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'min_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_min_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'energy_counter': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n electric_heating: {\n id: 'electric_heating',\n title: 'Electric Heating Element',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'temperature', 'state_electric_heating', 'state_emergency', 'state_manual',\n 'state_time', 'state_disable_protection', 'slider_target_power', 'target_power', 'state_enable',\n 'energy_counter',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_disable_protection', 'switch_manual', 'slider_manual', 'switch_time', 'hour_on', 'minute_on',\n 'hour_off', 'minute_off', 'target_temp_on', 'target_temp_off', 'target_temp_max', 'switch_enable', 'max_power',\n ],\n titles: ['title'],\n },\n isDynamicFields: true,\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'temperature': '',\n 'state_electric_heating': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'state_time': '',\n 'state_disable_protection': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_disable_protection': '',\n 'switch_manual': '',\n 'slider_target_power': '',\n 'switch_time': '',\n 'hour_on': '',\n 'minute_on': '',\n 'hour_off': '',\n 'minute_off': '',\n 'target_temp_on': '',\n 'target_temp_off': '',\n 'target_temp_max': '',\n 'max_power': {},\n 'target_power': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'slider_manual': '',\n 'energy_counter': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'temperature': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_electric_heating': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_disable_protection': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_disable_protection': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_max': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n vuetifyComponent: 'DynamicField',\n isDynamic: true,\n optional: false,\n maxRange: 10,\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n heating_pump: {\n id: 'heating_pump',\n title: 'Heating Pump',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'state_reset', 'state_heating_pump', 'state_emergency', 'state_manual', 'manual_power',\n 'state_time', 'state_time_power', 'flow_temperature', 'return_temperature', 'inlet_temperature',\n 'outlet_temperature', 'boiler_temperature', 'boiler_water_temperature', 'target_power', 'state_enable',\n 'energy_counter', 'heating_power_produced', 'heating_power_consumed', 'heating_buffer', 'stop_heating_power',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_reset', 'switch_manual', 'slider_manual', 'switch_time', 'slider_power', 'hour_on', 'minute_on',\n 'hour_off', 'minute_off', 'switch_enable', 'max_power',\n ],\n titles: ['title'],\n },\n isDynamicFields: true,\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'state_reset': '',\n 'state_heating_pump': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'manual_power': '',\n 'state_time': '',\n 'state_time_power': '',\n 'flow_temperature': '',\n 'return_temperature': '',\n 'inlet_temperature': '',\n 'outlet_temperature': '',\n 'boiler_temperature': '',\n 'boiler_water_temperature': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_reset': '',\n 'switch_manual': '',\n 'slider_power': '',\n 'switch_time': '',\n 'hour_on': '',\n 'minute_on': '',\n 'hour_off': '',\n 'minute_off': '',\n 'max_power': {},\n 'switch_enable': '',\n 'slider_manual': '',\n 'target_power': '',\n 'state_enable': '',\n 'energy_counter': '',\n 'heating_power_produced': '',\n 'heating_power_consumed': '',\n 'stop_heating_power': '',\n 'heating_buffer': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'state_reset': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_heating_pump': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'manual_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'flow_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'return_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'inlet_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'outlet_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'boiler_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'boiler_water_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_reset': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n vuetifyComponent: 'DynamicField',\n isDynamic: true,\n optional: true,\n maxRange: 2,\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'heating_power_produced': {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n 'heating_power_consumed': {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n 'heating_buffer': {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n 'stop_heating_power': {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n minMaxBorders: { min: 0, max: 1 },\n },\n },\n },\n big_consumer: {\n id: 'big_consumer',\n title: 'Other Big Consumer',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'state_consumer', 'state_emergency', 'state_manual', 'state_enable', 'target_power',\n 'slider_target_power', 'energy_counter',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_manual', 'switch_enable', 'slider_manual', 'max_power',\n ],\n titles: ['title'],\n },\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'state_consumer': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_manual': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'target_power': '',\n 'slider_manual': '',\n 'slider_target_power': '',\n 'max_power': '',\n 'energy_counter': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'state_consumer': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n },\n settingsMappings: ['size_main_fuse', 'max_depth', 'reserve_battery', 'min_charge_battery', 'reserve_charge', 'update_time'],\n additionalFields: {\n component: 'EMSAdditionalFields',\n objects: {\n scaling: ['pv', 'consumption', 'batteryPower'],\n energyPrice: [],\n },\n },\n manageSchema: 'EMSSchema',\n isSettingsView: true,\n },\n PVMonitoringService: {\n mappingsByColumns: {\n inputMappings: ['startDate', 'endDate', 'power'],\n outputMappings: ['efficiency'],\n middleMappings: ['heartbeat', 'errorWarning', 'mpcReady'],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n endDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n efficiency: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n errorWarning: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n },\n },\n settingsMappings: ['PV.#id#.decay'], // here used specific mapping naming syntax, it consists from 'PV.mpc_device_id.decay'\n dynamicMappingsMinMax: {\n 'PV.#id#.decay': { min: 0, max: 100 },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n },\n // TODO: replace with EnergyView once the old EnergyView is not used anymore\n MpcEnergyView: {\n mappingsByColumns: {\n inputMappings: ['force_charge', 'forceCharge2', 'calibration_charge', 'maintenance_charge', 'charge_maintenance'],\n outputMappings: [],\n },\n controllerMappings: {\n force_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n forceCharge2: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n calibration_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n maintenance_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n charge_maintenance: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n },\n additionalFields: {\n component: 'EnergyViewAdditionalFields',\n objects: {\n scaling: ['pvScaling', 'conumptionScaling', 'maxGridSize'],\n },\n },\n groups: {\n producer: {\n id: 'producer',\n title: 'Producer',\n systems: ['pv', 'generator'],\n },\n producerConsumer: {\n id: 'producerConsumer',\n title: 'Producer Consumer',\n systems: ['grid', 'battery'],\n },\n consumer: {\n id: 'consumer',\n title: 'Consumer',\n systems: ['house', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'],\n },\n },\n systems: {\n pv: {\n id: 'pv',\n title: 'PV System',\n required: true,\n group: 'producer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n generator: {\n id: 'generator',\n title: 'Generator',\n required: false,\n group: 'producer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n battery: {\n id: 'battery',\n title: 'Battery',\n required: false,\n group: 'producerConsumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'soc', 'energy_counter', 'reverse_energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n soc: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n grid: {\n id: 'grid',\n title: 'Grid',\n required: true,\n group: 'producerConsumer',\n quantity: 1,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter', 'reverse_energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n house: {\n id: 'house',\n title: 'House Consumption',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n charge_station: {\n id: 'charge_station',\n title: 'EV Charging Station',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n electric_heating: {\n id: 'electric_heating',\n title: 'Electric Heating Element',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n heating_pump: {\n id: 'heating_pump',\n title: 'Heating Pump',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n big_consumer: {\n id: 'big_consumer',\n title: 'Other Big Consumer',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n },\n manageSchema: 'EMSSchema',\n isSettingsView: false,\n },\n};\n\nexport default mlModelTypes;\n","import api from '@/services/api';\n\nexport default {\n async fetchControllersByProject(projectId: string) {\n return api.fetchMPC(`/controllers/${projectId}`, 'GET');\n },\n\n async fetchController(controllerId: string) {\n return api.fetchMPC(`/${controllerId}`, 'GET');\n },\n\n async createController(controller: any) {\n return api.fetchMPC('/controllers/', 'POST', controller);\n },\n\n async updateController(controllerId: string, controller: any) {\n return api.fetchMPC(`/controllers/${controllerId}`, 'PUT', controller);\n },\n\n async deleteController(controllerId: string) {\n return api.fetchMPC(`/controllers/${controllerId}`, 'DELETE');\n },\n\n async addToFavorites(controllerId: string) {\n return api.fetchMPC(`/controllers/${controllerId}/favorites`, 'PUT');\n },\n\n async deleteFromFavorites(controllerId: string) {\n return api.fetchMPC(`/controllers/${controllerId}/favorites`, 'DELETE');\n },\n\n async updateControllerTiming(controllerId: string, controller: any) {\n return api.fetchMPC(`/controllers/${controllerId}/timing`, 'PUT', controller);\n },\n\n async updateControllerSettings(controllerId: string, controller: any) {\n return api.fetchMPC(`/controllers/${controllerId}/settings`, 'PUT', controller);\n },\n};\n","import api from '@/services/api';\n\n// TODO: later need to move this interface to types folder\ninterface ActivateDataParam {\n latitude: number;\n longitude: number;\n username: string;\n password: string;\n}\n\nexport default {\n async fetchStatus(projectId: string) {\n return api.fetchMPC(`/weather/${projectId}`, 'GET');\n },\n\n async activate(projectId: string, data: ActivateDataParam) {\n return api.fetchMPC(`/weather/${projectId}`, 'POST', data);\n },\n\n async deactivate(projectId: string) {\n return api.fetchMPC(`/weather/${projectId}`, 'DELETE');\n },\n};\n","import api from '@/services/api';\n\nexport default {\n async fetchDay(\n mpcId: string,\n start: { year: number; month: number; date: number },\n ) {\n return api.fetchMPC(`/${mpcId}/energy/${start.year}/${start.month}/${start.date}`, 'GET');\n },\n\n async fetchWeek(\n mpcId: string,\n start: { year: number; month: number; date: number },\n end: { year: number; month: number; date: number },\n ) {\n return api.fetchMPC(`/${mpcId}/energy/start/${start.year}/${start.month}/${start.date}/end/${end.year}/${end.month}/${end.date}`, 'GET');\n },\n\n async fetchMonth(\n mpcId: string,\n start: { year: number; month: number },\n ) {\n return api.fetchMPC(`/${mpcId}/energy/${start.year}/${start.month}`, 'GET');\n },\n\n async fetchYear(\n mpcId: string,\n start: { year: number },\n ) {\n return api.fetchMPC(`/${mpcId}/energy/${start.year}`, 'GET');\n },\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport api from '@/services/api';\nimport { RootState } from '@/store/types';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport { Map } from 'immutable';\nimport mlModelTypes from '@/store/modules/mpc/mlModelTypes';\nimport i18n from '@/ui/plugins/i18n';\nimport { envLoadMPC, envMPCDeviceList } from '@/utils/env';\nimport { get, merge, set } from 'lodash';\nimport ControllerService from '@/services/ControllerService';\nimport MPCWeatherService from '@/services/MPCWeatherService';\nimport MPCEnergyService from '@/services/MPCEnergyService';\n\nconst state: IMPCState = {\n mlModelTypes,\n mpcControllers: Map(),\n isWeatherServiceActive: false,\n lastCreatedModel: '',\n};\n\n// TODO: remove this EnergyView check if old EnergyView is not needed anymore\nfunction replacePossibleEnergyViewType(mpcController: any): void {\n const type = get(mpcController, 'data.type');\n // temporarily replace MPC EnergyView type with MpcEnergyView\n // for backwards compatibility with old EnergyView\n if (type === 'EnergyView') set(mpcController, 'data.type', 'MpcEnergyView');\n}\n\nconst getters: GetterTree = {\n mpcControllers(state: IMPCState) {\n return state.mpcControllers.valueSeq().toJS();\n },\n getMPCControllerById: (state: IMPCState) => (id: string) => state.mpcControllers.get(id),\n mpcControllersFavorites(state: IMPCState) {\n if (state.mpcControllers.size >= 1) {\n const mpcList = state.mpcControllers.valueSeq().toJS();\n return mpcList.filter((mpc: any) => mpc.favorite);\n }\n return [];\n },\n\n /**\n * Only ML Models, filtered from other MPC devices\n * @param state\n */\n mlModelDevices(state: IMPCState) {\n return state.mpcControllers.valueSeq().toJS()\n .filter((device: any) => Object.keys(state.mlModelTypes).some((el: string) => el === device.data.type));\n },\n mlModelTypes(state: IMPCState) {\n return state.mlModelTypes;\n },\n mlModelTypeSchemaByKey: (state: IMPCState) => (type: string) => state.mlModelTypes[type],\n\n /**\n * Goes through mlModelTypes and create options\n * (Example: { value: key, title: i18n translation }) for every item\n * @param state\n */\n mlModelsTypesWithLocaleNamesList(state: IMPCState) {\n let localModelTypes = Object.keys(state.mlModelTypes)\n .map((itemType: string) => ({ value: itemType, title: i18n.t(`mlModel.${itemType}.previewName`) }));\n localModelTypes = localModelTypes.filter((element: any) => envMPCDeviceList.includes(element.value));\n return localModelTypes;\n },\n\n /**\n * Returns MPC devices list with the visibility status of the settings window\n * @param state\n */\n mlModelIsSettings(state: IMPCState) {\n return Object.entries(state.mlModelTypes).map((mlModel: any) => [mlModel[0], mlModel[1].isSettingsView]);\n },\n lastCreatedModel(state: IMPCState) {\n return state.lastCreatedModel;\n },\n};\n\nconst mutations: MutationTree = {\n setMPCControllers(state, payload) {\n state.mpcControllers = payload;\n },\n updateMPCInstance(state, payload) {\n const oldMPCObject = state.mpcControllers.get(payload.id);\n const newMPCObject = merge(oldMPCObject, payload);\n state.mpcControllers = state.mpcControllers.set(newMPCObject.id, newMPCObject);\n },\n setWeatherServiceStatus(state, status) {\n state.isWeatherServiceActive = status;\n },\n setLastCreatedModel(state: IMPCState, device: any) {\n state.lastCreatedModel = device;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Creates new MPC device\n * @param commit\n * @param state\n * @param mpc\n */\n async createMCCInstance({ commit, state }, mpc) {\n try {\n // TODO: temporary solution for EmsEnergyView device\n const copy = JSON.parse(JSON.stringify(mpc));\n if (copy.data.type === 'MpcEnergyView') {\n copy.data.type = 'EnergyView';\n copy.data.meta.controllerMappings.errorWarning = '';\n copy.data.meta.controllerMappings.mpcReady = '';\n copy.data.meta.controllerMappings.heartbeat = '';\n copy.data.meta.controllerMappings.startDate = null;\n }\n\n const res = await ControllerService.createController(copy);\n if (res.data.type === 'EnergyView') res.data.type = 'MpcEnergyView';\n\n commit('setMPCControllers', state.mpcControllers.set(res.id, res));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createMLModel', { name: res.name }),\n value: true,\n }, { root: true });\n return res;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n\n /**\n * Load MPC devices, creates Map collection from them and set to MPC state\n * @param commit\n * @param state\n * @param rootState\n */\n async fetchMPCListByProject({ commit, state, rootState }) {\n if (!envLoadMPC) return;\n\n try {\n // TODO: refactor this\n // eslint-disable-next-line no-async-promise-executor\n const mpcPromise = new Promise(async (resolve) => {\n const res = await ControllerService.fetchControllersByProject(rootState.projects.projectId as string);\n resolve(res);\n });\n let timeout;\n const timeoutPromise = new Promise((resolve) => {\n timeout = setTimeout(resolve, 15000, 'MPC_Load_Timeout_Error');\n });\n const res: any = await Promise.race([mpcPromise, timeoutPromise]).then((value) => {\n if (value === 'MPC_Load_Timeout_Error') {\n commit('app/setReport', { type: 'error', message: i18n.t('uiComponents.reportMessages.loadMPCTimeoutError'), value: true }, { root: true });\n return [];\n } else {\n return value;\n }\n });\n if (timeout) {\n clearTimeout(timeout);\n }\n if (res.length) {\n const mpcControls = (res as any[]).reduce((acc, cur) => {\n // TODO: remove this EnergyView check if old EnergyView is not needed anymore\n replacePossibleEnergyViewType(cur);\n\n return acc.set(cur.id, cur);\n }, Map());\n\n commit('setMPCControllers', mpcControls);\n } else {\n commit('setMPCControllers', Map());\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorLoadingMPCData'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Load MPC full data, used in created component hook of MPC devices\n * @param commit\n * @param state\n * @param rootState\n * @param id\n */\n async fetchMPCData({ commit, state, rootState }, id) {\n try {\n const mpcController = await ControllerService.fetchController(id);\n\n // TODO: remove this EnergyView check if old EnergyView is not needed anymore\n replacePossibleEnergyViewType(mpcController);\n\n return mpcController;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorLoadingMPCData'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * get Energy Flow Data for Day\n * @param commit\n * @param state\n * @param rootState\n * @param params\n */\n async fetchEnergyDay({ commit, state, rootState }, params) {\n try {\n const res = await MPCEnergyService.fetchDay(params.id, {\n year: params.start.year,\n month: params.start.month,\n date: params.start.day,\n });\n return res;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n /**\n * get Energy Flow Data between two dates\n * @param commit\n * @param state\n * @param rootState\n * @param params\n */\n async fetchEnergyWeek({ commit, state, rootState }, params) {\n try {\n const res = await MPCEnergyService.fetchWeek(\n params.id,\n { year: params.start.year, month: params.start.month, date: params.start.day },\n { year: params.end.year, month: params.end.month, date: params.end.day },\n );\n return res;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n /**\n * get Energy Flow Data for Month\n * @param commit\n * @param state\n * @param rootState\n * @param params\n */\n async fetchEnergyMonth({ commit, state, rootState }, params) {\n try {\n const res = await MPCEnergyService.fetchMonth(params.id, {\n year: params.start.year,\n month: params.start.month,\n });\n return res;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n /**\n * get Energy Flow Data for Year\n * @param commit\n * @param state\n * @param rootState\n * @param params\n */\n async fetchEnergyYear({ commit, state, rootState }, params) {\n try {\n const res = await MPCEnergyService.fetchYear(params.id, { year: params.start.year });\n return res;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n return null;\n }\n },\n\n /**\n * Change date by direction and period\n * @param dispatch\n * @param id Device id\n * @param start Start date for mpc data\n * @param end End date for mpc data\n * @param period Current period\n */\n async fetchDataByPeriodMpc(\n { dispatch },\n { id, start, end, period }: { id: string; start: number; end: number; period: string },\n ) {\n const startDate = new Date(start * 1000);\n const endDate = new Date(end * 1000);\n const params = {\n id,\n start: {\n day: startDate.getDate(),\n month: startDate.getMonth() + 1,\n year: startDate.getFullYear(),\n },\n end: {\n day: endDate.getDate(),\n month: endDate.getMonth() + 1,\n year: endDate.getFullYear(),\n },\n };\n const energyResponse = await dispatch(`mpc/fetchEnergy${period.charAt(0).toUpperCase() + period.slice(1)}`, params, { root: true });\n return energyResponse;\n },\n\n /**\n * Add MPC device to Favorites\n * @param commit\n * @param state\n * @param rootState\n * @param id\n */\n async addMPCToFavorites({ commit, state, rootState }, id) {\n await ControllerService.addToFavorites(id);\n\n const device: any = state.mpcControllers.get(id);\n if (device) {\n device.favorite = true;\n commit('setMPCControllers', state.mpcControllers.set(device.id, device));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.addToFavorites', { name: device.name }),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Removes MPC device from Favorites\n * @param commit\n * @param state\n * @param rootState\n * @param id\n */\n async removeMPCFromFavorites({ commit, state, rootState }, id) {\n await ControllerService.deleteFromFavorites(id);\n\n const device: any = state.mpcControllers.get(id);\n if (device) {\n device.favorite = false;\n commit('setMPCControllers', state.mpcControllers.set(device.id, device));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.removeFromFavorites', { name: device.name }),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Removes selected MPC device, rules attached to it\n * @param commit\n * @param dispatch\n * @param state\n * @param rootState\n * @param mpc\n */\n async deleteMPC({ commit, dispatch, state, rootState }, mpc) {\n // delete rules\n const warningRuleId = mpc.data.meta.warningRule;\n const errorRuleId = mpc.data.meta.errorRule;\n const systemsRules = mpc.data.meta.rules ? Object.values(mpc.data.meta.rules) : [];\n const rulesVariablesList: any = systemsRules.length\n ? systemsRules\n .map((system: any) => [system.errorRule, system.warningRule])\n .reduce((acc: any, item: any) => acc.concat(item), [])\n : [];\n const rulesList: any = [warningRuleId, errorRuleId, ...rulesVariablesList]\n .filter((el: any) => !!el)\n .map((variable: string) => dispatch('rules/deleteRule', { project_id: mpc.project_id, rule_id: variable }, { root: true }));\n await Promise.all(rulesList);\n // delete ems\n await ControllerService.deleteController(mpc.id);\n commit('setMPCControllers', state.mpcControllers.remove(mpc.id));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deleteMLModel'),\n value: true,\n }, { root: true });\n },\n\n /**\n * Updates selected MPC device\n * @param commit\n * @param state\n * @param mpc\n */\n async updateMPC({ commit, state }, mpc) {\n try {\n // TODO: temporary solution for EmsEnergyView device\n const copy = JSON.parse(JSON.stringify(mpc));\n if (copy.data.type === 'MpcEnergyView') {\n copy.data.type = 'EnergyView';\n copy.data.meta.controllerMappings.errorWarning = '';\n copy.data.meta.controllerMappings.mpcReady = '';\n copy.data.meta.controllerMappings.heartbeat = '';\n copy.data.meta.controllerMappings.startDate = null;\n }\n\n const res = await ControllerService.updateController(mpc.id, copy);\n if (res.data.type === 'EnergyView') res.data.type = 'MpcEnergyView';\n\n commit('setMPCControllers', state.mpcControllers.set(res.id, res));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.editMLModel', { name: res.name }),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates MPC timing\n * @param commit\n * @param mpc\n */\n async updateMPCTiming({ commit }, mpc) {\n return ControllerService.updateControllerTiming(mpc.id, mpc)\n .then((res: any) => {\n commit('setMPCControllers', state.mpcControllers.set(res.id, res));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updateMLModelTimings'),\n value: true,\n }, { root: true });\n });\n },\n\n /**\n * Load MPC weather status, affects on visibility MPC content\n * @param commit\n * @param state\n * @param rootState\n */\n async fetchMPCWeatherStatus({ commit, state, rootState }) {\n try {\n const res = await MPCWeatherService.fetchStatus(rootState.projects.projectId as string);\n commit('setWeatherServiceStatus', res.site_active);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorFetchWeatherService'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Activate MPC weather service\n * @param commit\n * @param state\n * @param rootState\n * @param payload\n */\n async activateWeatherService({ commit, state, rootState }, payload) {\n try {\n await MPCWeatherService.activate(rootState.projects.projectId as string, payload);\n commit('setWeatherServiceStatus', true);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.weatherServiceEnabled'),\n value: true,\n }, { root: true });\n return true;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorFetchWeatherService'),\n value: true,\n }, { root: true });\n return false;\n }\n },\n\n /**\n * Deactivate MPC weather service\n * @param commit\n * @param state\n * @param rootState\n */\n async deactivateWeatherService({ commit, state, rootState }) {\n try {\n await MPCWeatherService.deactivate(rootState.projects.projectId as string);\n commit('setWeatherServiceStatus', false);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.weatherServiceDisabled'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorFetchWeatherService'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Load Autarkiegrad according to selected period\n * @param commit\n * @param project_id\n * @param start start date\n * @param end end date\n * @param params combined from systems instances string\n */\n async fetchAutarkiegrad({ commit }, { project_id, start, end, params }) {\n try {\n return await api.fetchMPC(`/autarchy/${project_id}/${start}/${end}?${params}`, 'GET');\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: i18n.t('uiComponents.reportMessages.errorFetchAutarkiegrad'),\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates tariff settings\n * @param commit\n * @param state\n * @param mpc_id\n * @param settings\n */\n async updateTariffSettings({ commit, state }, { mpc_id, settings }) {\n try {\n const res = await ControllerService.updateControllerSettings(mpc_id, { settings });\n commit('setMPCControllers', state.mpcControllers.set(res.id, res));\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.tariffUpdated'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates temperature settings of Setpoint Optimizer\n * @param commit\n * @param mpc_id\n * @param settings\n */\n async updateSetpointSystemInstanceTemperatureSettings({ commit }, { mpc_id, settings }) {\n try {\n const res = await ControllerService.updateControllerSettings(mpc_id, { settings });\n commit('updateMPCInstance', res);\n commit('app/setReport', {\n type: 'success',\n message: 'Temperature settings updated',\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Returns list of all basic mpc's by collection ID\n * @param collection_id\n */\n getMpcList({ getters }, collection_id: string) {\n return getters.mpcControllers.filter((device: any) => device.collection_id === collection_id);\n },\n};\n\nexport const mpc: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IReport } from '@/types/report.types';\n\nexport default {\n async fetchReports(projectId: string) {\n return api.fetch(`/projects/${projectId}/reports`, 'GET');\n },\n\n async createReport(projectId: string, report: Partial) {\n return api.fetch(`/projects/${projectId}/reports`, 'POST', report);\n },\n\n async updateReport(projectId: string, reportId: string, report: Partial) {\n return api.fetch(`/projects/${projectId}/reports/${reportId}`, 'PUT', report);\n },\n\n async deleteReport(projectId: string, reportId: string) {\n return api.fetch(`/projects/${projectId}/reports/${reportId}`, 'DELETE');\n },\n\n async printReport(\n projectId: string,\n reportId: string,\n format: string,\n start: number,\n end: number,\n responseType: 'arraybuffer' | undefined,\n ) {\n return api.fetch(\n `/projects/${projectId}/reports/${reportId}?format=${format}&start=${start}&end=${end}`,\n 'GET',\n undefined,\n undefined,\n responseType,\n );\n },\n\n async triggerReportActions(\n projectId: string,\n reportId: string,\n format: 'json' | 'csv' | 'pdf' | 'xml',\n start: number,\n end: number,\n report: IReport,\n ) {\n return api.fetch(\n `/projects/${projectId}/reports/${reportId}?action=true&start=${start}&end=${end}&format=${format}`,\n 'GET',\n report,\n );\n },\n};\n","import { cloneDeep } from 'lodash';\nimport { RootState } from '@/store/types';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport i18n from '@/ui/plugins/i18n';\nimport ReportService from '@/services/ReportService';\nimport { IReport, IPrintReportPayload, ITriggerReportActionsPayload } from '@/types/report.types';\nimport { IReportState } from './types';\n\nconst state: IReportState = {\n reportList: [],\n reportFilter: '',\n};\n\nconst getters: GetterTree = {\n getReportFilter(state: IReportState) {\n return state.reportFilter;\n },\n};\n\nconst mutations: MutationTree = {\n setReports(state: IReportState, reports: IReport[]) {\n state.reportList = reports;\n },\n setReport(state: IReportState, report: IReport) {\n state.reportList.push(report);\n },\n updateReport(state: IReportState, report: IReport) {\n state.reportList = state.reportList.map((localReport: IReport) => {\n if (localReport.id === report.id) return report;\n else return cloneDeep(localReport);\n });\n },\n deleteReportFromList(state: IReportState, reportId: string) {\n state.reportList = state.reportList.filter((el: IReport) => el.id !== reportId);\n },\n setReportFilter(state: IReportState, name: string) {\n state.reportFilter = name;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * load projects reports\n * @param commit\n * @param project_id\n */\n async loadReports({ commit }, project_id: string) {\n try {\n const result = await ReportService.fetchReports(project_id);\n commit('setReports', result);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Creates new report\n * @param commit\n * @param id current project id\n * @param reportModel report data\n */\n async addReport({ commit }, { id, reportModel }: { id: string; reportModel: IReport }) {\n try {\n const res = await ReportService.createReport(id, reportModel);\n commit('setReport', res);\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.reportWithNameCreated', { name: res.name }),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Updates selected report\n * @param commit\n * @param id current project id\n * @param report_id report id\n * @param reportModel report data\n */\n async modifyReport({ commit }, { id, report_id, reportModel }: { id: string; report_id: string; reportModel: IReport }) {\n try {\n const response = await ReportService.updateReport(id, report_id, reportModel);\n commit('updateReport', response);\n commit('app/setReport', {\n type: 'success',\n message: 'report updated',\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Delete selected project\n * @param commit\n * @param state\n * @param project_id\n * @param report_id\n */\n async deleteReport({ commit, state }, { project_id, report_id }: { project_id: string; report_id: string }) {\n try {\n await ReportService.deleteReport(project_id, report_id);\n commit('deleteReportFromList', report_id);\n commit('app/setReport', {\n type: 'success',\n message: 'report deleted',\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Print selected project to pdf or json\n * @param commit\n * @param state\n * @param payLoad\n */\n async printReport({ commit, state }, payLoad: IPrintReportPayload) {\n try {\n const responseType = payLoad.format === 'pdf' ? 'arraybuffer' : undefined;\n const res = await ReportService.printReport(\n payLoad.project_id,\n payLoad.report_id,\n payLoad.format,\n payLoad.start,\n payLoad.end,\n responseType,\n );\n if (['json', 'csv', 'pdf', 'xml'].includes(payLoad.format)) return res;\n else return null;\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n /**\n * Trigger report action\n * @param commit\n * @param state\n * @param payLoad\n */\n async triggerReportActions({ commit, state }, payLoad: ITriggerReportActionsPayload) {\n try {\n await ReportService.triggerReportActions(\n payLoad.id,\n payLoad.report_id,\n payLoad.format,\n payLoad.start,\n payLoad.end,\n payLoad.reportModel,\n );\n commit('app/setReport', {\n type: 'success',\n message: 'Actions Triggered',\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const report: Module = {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import { RootState } from '@/store/types';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport api from '@/services/api';\nimport i18n from '@/ui/plugins/i18n';\nimport { IRouterState } from '@/store/modules/router/types';\nimport { IScrollPosition } from '@/types/router.types';\n\nconst state: IRouterState = {\n scrollPosition: { x: 0, y: 0 },\n homeDataLoaded: false,\n};\n\nconst getters: GetterTree = {\n scrollPosition: (state: IRouterState) => state.scrollPosition,\n homeDataLoaded: (state: IRouterState) => state.homeDataLoaded,\n};\n\nconst mutations: MutationTree = {\n setScrollPosition(state: IRouterState, scrollPosition: IScrollPosition) {\n state.scrollPosition = scrollPosition;\n },\n setHomeDataLoaded(state: IRouterState, homeDataLoaded: boolean) {\n state.homeDataLoaded = homeDataLoaded;\n },\n};\n\nconst actions: ActionTree = {};\n\nexport const router: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\n\nexport default {\n async fetchEvents(projectId: string, page: number, accepted: boolean) {\n return api.fetch(`/projects/${projectId}/alerts?page=${page}&accepted=${accepted}`, 'GET');\n },\n\n async acceptEvent(projectId: string, eventId: string) {\n return api.fetch(`/projects/${projectId}/alerts/${eventId}`, 'PUT');\n },\n\n async acceptEvents(projectId: string) {\n return api.fetch(`/projects/${projectId}/alerts`, 'PUT');\n },\n};\n","import EventService from '@/services/EventService';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IEvent } from '@/types/events.types';\nimport { IEventState } from './types';\n\nconst state: IEventState = {\n eventList: [],\n numberOfPages: null,\n eventListFilter: '',\n};\n\nconst getters: GetterTree = {\n /**\n * Returns events filtered by eventListFilter\n * @param state\n */\n getEventList(state) {\n return state.eventListFilter\n ? state.eventList.filter((item: IEvent) => Object.values(item).join().toLowerCase().includes(state.eventListFilter))\n : state.eventList;\n },\n\n /**\n * Returns accepted events\n * @param state\n */\n getIsAllAccepted(state) {\n let counterNotAccepted = 0;\n Object.values(state.eventList).forEach((element: IEvent) => {\n if (element.accepted_at === '' || element.accepted_at === null) {\n counterNotAccepted++;\n }\n });\n return counterNotAccepted !== 0;\n },\n};\n\nconst mutations: MutationTree = {\n setEventsList(state, events) {\n state.eventList = events;\n },\n setNumberOfPages(state, payload) {\n state.numberOfPages = payload;\n },\n acceptAllEvents(state, payLoad: { formattedDate: string; fullName: string }) {\n state.eventList.forEach((item: IEvent) => {\n if (item.accepted_by === 'ACCEPT') {\n item.accepted_at = payLoad.formattedDate;\n item.accepted_by = payLoad.fullName;\n }\n });\n },\n setEventListFilter(state, value: string) {\n state.eventListFilter = value;\n },\n removeEventFromList(state, payload) {\n state.eventList = state.eventList.filter((event: IEvent) => event.id !== payload.id);\n },\n clean(state) {\n state.eventList = [];\n state.numberOfPages = null;\n state.eventListFilter = '';\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Accept selected event\n * @param commit\n * @param state\n * @param rootState\n * @param payLoad\n */\n async acceptOneEvent({ commit, state, rootState }, payLoad: { id: string }) {\n try {\n const acceptedEvent = await EventService.acceptEvent(rootState.projects.projectId as string, payLoad.id);\n commit('removeEventFromList', acceptedEvent);\n } catch (e) {\n commit('setReport', {\n type: 'error',\n message: e.message,\n value: true,\n });\n }\n },\n\n /**\n * Accepts all events\n * @param commit\n * @param state\n * @param rootState\n * @param payLoad\n */\n async acceptEveryEvent({ commit, state, rootState }) {\n try {\n await EventService.acceptEvents(rootState.projects.projectId as string);\n commit('setEventsList', []);\n } catch (e) {\n commit('setReport', {\n type: 'error',\n message: e.message,\n value: true,\n });\n }\n },\n\n /**\n * Load events list according to selected page\n * @param commit\n * @param state\n * @param rootState\n * @param payload\n */\n async loadEvents({ commit, state, rootState }, payload: { page: number; bol: boolean }) {\n try {\n const res = await EventService.fetchEvents(rootState.projects.projectId as string, payload.page, payload.bol);\n commit('setEventsList', res.data);\n commit('setNumberOfPages', res.pages);\n } catch (e) {\n commit('setReport', {\n type: 'error',\n message: e.message,\n value: true,\n });\n }\n },\n};\n\nexport const events: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import mqtt, { PacketCallback } from 'mqtt';\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport Vue from 'vue';\nimport router from '@/router';\nimport { RootState } from '@/store/types';\nimport { IPublishRecord } from '@/types/mqtt.types';\nimport MeasurementService from '@/services/MeasurementService';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\nconst state: IMQTTState = {\n client: null,\n online: false,\n internet: false,\n timer: null,\n internetTimer: null,\n lastHeartbeatMessage: 0,\n lastInternetHeartbeatMessage: 0,\n};\n\nconst getters: GetterTree = {\n mqttClientInfo(state, getters, rootState, rootGetters) {\n if (state.client) {\n const {\n hostname, port, password, username,\n } = state.client.options;\n return {\n username,\n password,\n port: '8883',\n hostname,\n topicPublish: `projects/${rootGetters['projects/project'].id}/messages`, // configuration valid for a client's device\n topicSubscribe: `projects/${rootGetters['projects/project'].id}/messages2`, // configuration valid for a client's device\n };\n }\n return null;\n },\n isProjectOnline(state: IMQTTState): boolean {\n return state.online;\n },\n isProjectConnected(state: IMQTTState): boolean {\n return state.internet;\n },\n};\n\nconst mutations: MutationTree = {\n setOnline(state, status) {\n state.online = status;\n },\n setInternet(state, status) {\n state.internet = status;\n },\n clearTimer(state) {\n clearTimeout(state.timer);\n state.timer = null;\n },\n clearInternetTimer(state) {\n clearTimeout(state.internetTimer);\n state.internetTimer = null;\n },\n setLastHeartbeatMessage(state, value) {\n state.lastHeartbeatMessage = value;\n },\n setInternetHeartbeatMessage(state, value) {\n state.lastInternetHeartbeatMessage = value;\n },\n};\n\nconst actions: ActionTree = {\n publish({ commit, state, getters }, { records, callback }: { records: IPublishRecord[]; callback: PacketCallback }) {\n const string = JSON.stringify(records);\n state.client?.publish(getters.mqttClientInfo?.topicSubscribe!, string, {}, callback);\n records.forEach((record: any) => commit('measurements/setMeasurement', record, { root: true }));\n },\n async createConnection({ commit, state, getters, rootGetters, dispatch }) {\n // generate more random clientId than default. use same as in app. (length 23)\n const project = rootGetters['projects/project'];\n let host = `wss://api.lynus.io/v1/projects/${project.id}/mqtt?token=${Vue.prototype.$keycloak.token}`; // eslint-disable-line\n state.client = mqtt.connect(host, {\n username: 'test',\n password: 'test',\n transformWsUrl: () => {\n return `wss://api.lynus.io/v1/projects/${project.id}/mqtt?token=${Vue.prototype.$keycloak.token}`;\n },\n });\n state.client.on('connect', () => {\n // topicPublish on purpose used here, as topics are reversed with respect to client's devices\n state.client?.subscribe(getters.mqttClientInfo?.topicPublish!, (err: any) => {\n if (err) console.error(err);\n });\n });\n\n state.client.on('message', (topic: string, message: any) => {\n const formatting = String.fromCharCode.apply(null, message);\n const isHeartbeatMessage: boolean = formatting.includes('\"vs\":\"hb\"');\n const isOnlineMessage: boolean = formatting.includes('\"vs\":\"hb2\"');\n\n const isSerialNumberMessage: boolean = formatting.includes('sI_SN');\n\n if (isSerialNumberMessage) {\n const records = JSON.parse(formatting) as any[];\n records.forEach((record: any) => {\n if (record.n.includes('sI_SN')) {\n const serialNumber = {\n name: record.n,\n value: record.vs,\n };\n if (serialNumber.value !== '-1' && serialNumber.value !== '#EMPTY#') {\n commit('serialNumber/setSerialNumber', serialNumber, { root: true });\n }\n }\n });\n }\n\n if (router.currentRoute?.meta?.mqtt) {\n const records = JSON.parse(formatting) as any[];\n records.forEach((record: any) => {\n if (record.vs === 'hb') {\n if (record.n) {\n const { vs, ...rec } = record;\n commit('measurements/setMeasurement', rec, { root: true });\n }\n } else {\n commit('measurements/setMeasurement', record, { root: true });\n }\n });\n }\n\n // if heartbeat message arrives at least once every 30 seconds, set online to true\n if (isHeartbeatMessage) {\n commit('setLastHeartbeatMessage', Date.now());\n commit('setOnline', true);\n\n commit('clearTimer');\n // if it has been more than 30 seconds since the last heartbeat message\n const heartbeatOffset = 30000;\n state.timer = setTimeout(() => {\n commit('setOnline', false);\n }, heartbeatOffset);\n }\n\n if (isOnlineMessage) {\n commit('setInternetHeartbeatMessage', Date.now());\n commit('setInternet', true);\n\n commit('clearInternetTimer');\n // if it has been more than 45 seconds since the last heartbeat message\n const heartbeatOffset = 45000;\n state.internetTimer = setTimeout(() => {\n commit('setInternet', false);\n }, heartbeatOffset);\n }\n });\n\n await dispatch('measurements/fetchMeasurements', project.id, { root: true });\n const measurements = rootGetters['measurements/measurements'];\n const current = Math.trunc(new Date().getTime() / 1000);\n\n // initial check if a heartbeat message was received in the last 60 seconds\n if (measurements.$hb) {\n const lastHb = Math.trunc(new Date(measurements.$hb).getTime() / 1000);\n if (current - lastHb < 60) {\n commit('setOnline', true);\n }\n }\n\n // initial check if a internet heartbeat message was received in the last 60 seconds\n if (measurements.$hb2) {\n const lastInternetHb = Math.trunc(new Date(measurements.$hb2).getTime() / 1000);\n if (current - lastInternetHb < 60) {\n commit('setInternet', true);\n }\n }\n },\n async removeConnection({ state, commit }) {\n commit('clearTimer');\n commit('clearInternetTimer');\n commit('setOnline', false);\n commit('setInternet', false);\n commit('setLastHeartbeatMessage', 0);\n commit('setInternetHeartbeatMessage', 0);\n state.client?.end(true, {}, () => {\n state.client = null;\n });\n },\n};\n\nexport const mqttClient: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import { cloneDeep, merge } from 'lodash';\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { RootState } from '@/store/types';\nimport {\n emsLimitsByType,\n} from '@/ui/components/wizards/loggerWizard/wizardSettings/wizardLimits';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport { allEnergyCircleTypes } from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n NavigationDirection,\n} from '@/types/wizards/installationWizard.types';\nimport { IIncludedSystemsTypesLogger } from '@/types/wizards/loggerWizard.types';\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\nimport {\n IloggerWizardState,\n} from './types';\n\nconst defaultWizardState = () => {\n return {\n energyViewDevice: {},\n includedSystemsTypes: {\n battery: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n pv: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n generator: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n acPV: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n },\n currentStep: 1,\n currentPage: 0,\n pages: [\n {\n title: 'LoggerInformation',\n view: 'LoggerInformation',\n step: 1,\n page: 0,\n dependencies: [],\n },\n {\n title: 'LoggerManualsPage',\n view: 'LoggerManualsPage',\n step: 1,\n page: 1,\n dependencies: [],\n },\n {\n title: 'DefineLoggerIds',\n view: 'DefineLoggerIds',\n step: 1,\n page: 2,\n dependencies: [],\n },\n {\n title: 'LoggerComponentsPage',\n view: 'LoggerComponentsPage',\n step: 1,\n page: 3,\n dependencies: [],\n },\n {\n title: 'GeneralInformationsLogger',\n view: 'GeneralInformationsLogger',\n step: 2,\n page: 0,\n dependencies: [],\n },\n {\n title: 'CommonEnergyPriceSettings',\n view: 'CommonEnergyPriceSettings',\n step: 2,\n page: 1,\n dependencies: [],\n },\n {\n title: 'InviteUsersToProjectLogger',\n view: 'InviteUsersToProjectLogger',\n step: 3,\n page: 0,\n dependencies: [],\n },\n {\n title: 'FinalLoggerPage',\n view: 'FinalLoggerPage',\n step: 4,\n page: 0,\n dependencies: [],\n },\n ],\n ACPV: {\n isSelected: false,\n count: 0,\n },\n currentPageIndex: 0,\n navigationDirection: NavigationDirection.forward,\n wasloggerWizardCompleted: false,\n wasComponentsPageDone: false,\n loggerInformation: [],\n hasGridMeasurement: false,\n } as IloggerWizardState;\n};\n\nconst state: IloggerWizardState = defaultWizardState();\n\nconst setCounts = (mappings: Partial) => {\n const controllerMappings = cloneDeep(mappings.data.meta.controllerMappings);\n Object.keys(state.includedSystemsTypes).forEach((mapping: string) => {\n if (controllerMappings[mapping]) {\n controllerMappings[mapping].count = Object.keys(controllerMappings[mapping].components).length;\n }\n });\n mappings.data.meta.controllerMappings = controllerMappings;\n return mappings;\n};\n\nconst getters: GetterTree = {\n energyViewDevice(state: IloggerWizardState): IDevice {\n return state.energyViewDevice as IDevice;\n },\n includedSystemsTypes(state: IloggerWizardState): IIncludedSystemsTypesLogger {\n return state.includedSystemsTypes;\n },\n currentPage(state: IloggerWizardState): number {\n return state.currentPage;\n },\n currentStep(state: IloggerWizardState): number {\n return state.currentStep;\n },\n wizardPages(state: IloggerWizardState, _, __, rootGetters): IWizardPage[] {\n return state.pages;\n },\n considerProjectStatus(): boolean {\n // this can be used to control whether we show the \"project offline\" alerts etc.\n return false;\n },\n navigationDirection(state: IloggerWizardState) {\n return state.navigationDirection;\n },\n emsLimits(_, __, ___, rootGetters) {\n return emsLimitsByType(rootGetters['projects/batterySystemType']);\n },\n ACPV(state: IloggerWizardState) {\n return state.ACPV;\n },\n wasLoggerWizardCompleted(state: IloggerWizardState) {\n return state.wasloggerWizardCompleted;\n },\n wasComponentsPageDone(state: IloggerWizardState) {\n return state.wasComponentsPageDone;\n },\n loggerInformation(state: IloggerWizardState) {\n return state.loggerInformation;\n },\n hasGridMeasurement(state: IloggerWizardState) {\n return state.hasGridMeasurement;\n },\n};\n\nconst mutations: MutationTree = {\n updateEnergyViewDeviceData(state, device: Partial) {\n state.energyViewDevice.data.meta.controllerMappings = device.data.meta.controllerMappings;\n state.energyViewDevice = setCounts(state.energyViewDevice);\n },\n updateEnergyViewDevice(state, device: IDevice) {\n state.energyViewDevice = device;\n },\n setIncludedSystemsTypes(state: IloggerWizardState, includedSystemsTypes) {\n state.includedSystemsTypes = includedSystemsTypes;\n },\n setCurrentPage(state: IloggerWizardState, data: number) {\n state.currentPage = data;\n },\n setCurrentStep(state: IloggerWizardState, data: number) {\n state.currentStep = data;\n },\n setWasComponentsPageDone(state: IloggerWizardState) {\n state.wasComponentsPageDone = true;\n },\n setNavigationDirection(state: IloggerWizardState, data: NavigationDirection) {\n state.navigationDirection = data;\n },\n setLoggerInformation(state: IloggerWizardState, data: {id: string; hasPv: boolean; hasBattery: boolean; selectedProducer: ''}[]) {\n state.loggerInformation = data;\n },\n setHasGridMeasurement(state: IloggerWizardState, data: boolean) {\n state.hasGridMeasurement = data;\n },\n reset(state: IloggerWizardState) {\n state = merge(state, defaultWizardState());\n },\n};\n\nconst actions: ActionTree = {\n handleIncrement({ state, getters }) {\n if (state.currentPageIndex + 1 < getters.wizardPages.length) {\n state.currentPageIndex++;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n this.commit('loggerWizard/setNavigationDirection', NavigationDirection.forward);\n },\n handleDecrement({ state, getters }) {\n if (state.currentPageIndex !== 0) {\n state.currentPageIndex--;\n state.currentPage = getters.wizardPages[state.currentPageIndex].page;\n state.currentStep = getters.wizardPages[state.currentPageIndex].step;\n }\n this.commit('loggerWizard/setNavigationDirection', NavigationDirection.backward);\n },\n /**\n * This function will remove all the components from the energy view device that cannot be used inside the Logger wizard.\n * Currently only (PV, Battery, Generator, AC-PV, House) are allowed.\n */\n initDevices({ commit, rootGetters }) {\n // Define Wizard Settings\n state.wasloggerWizardCompleted = rootGetters['projects/project'].meta?.wasloggerWizardCompleted ?? false;\n const findByType = (type: string) => rootGetters['devices/allDevices'].find((element: IDevice) => {\n return element.data.type === type;\n });\n const project: IProject = rootGetters['projects/project'];\n\n const resetToZero = ['heating_pump', 'big_consumer', 'chp', 'electric_heating', 'charge_station'];\n const energyView = cloneDeep(findByType('EnergyViewV2'));\n allEnergyCircleTypes.forEach((systemType: string) => {\n if (resetToZero.includes(systemType)) {\n energyView.data.meta.controllerMappings[systemType].count = 0;\n energyView.data.meta.controllerMappings[systemType].components = {};\n }\n });\n\n commit('updateEnergyViewDevice', energyView);\n },\n};\n\nexport const loggerWizard: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IPartner } from '@/types/partner.types';\n\nexport default {\n async fetchPartners() {\n return api.fetch('/admin/partners', 'GET'); // returns all partners\n },\n async createPartner(partner: IPartner) {\n return api.fetch('/admin/partners', 'POST', { data: partner });\n },\n async fetchPartner(id: string) {\n return api.fetch(`/admin/partners/${id}`, 'GET');\n },\n async updatePartner(id: string, partner: IPartner) {\n return api.fetch(`/admin/partners/${id}`, 'PUT', partner);\n },\n async deletePartner(id: string) {\n return api.fetch(`/admin/partners/${id}`, 'DELETE');\n },\n async fetchPartnerNonAdmin() {\n return api.fetch('/partner', 'GET'); // returns the parnter object of the logged in user\n },\n async updatePartnerNonAdmin(id: string, partner: IPartner) {\n return api.fetch('/partner', 'PUT', partner);\n },\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { IPartnerState } from '@/store/modules/partners/types';\nimport { RootState } from '@/store/types';\nimport PartnerService from '@/services/PartnerService';\nimport i18n from '@/ui/plugins/i18n';\n\nconst state: IPartnerState = {\n partners: [],\n partner: null,\n};\n\nconst getters: GetterTree = {\n partners(state) {\n return state.partners;\n },\n partner(state) {\n return state.partner;\n },\n getPartnerById: (state) => (id: string) => {\n return state.partners.find((partner) => partner.id === id);\n },\n};\n\nconst mutations: MutationTree = {\n setPartners(state, payload) {\n state.partners = payload;\n },\n setPartner(state, payload) {\n state.partner = payload;\n },\n};\n\nconst actions: ActionTree = {\n async fetchPartners({ commit, rootGetters }) {\n try {\n const user = rootGetters['app/getUser'];\n let data;\n if (user.super_admin) {\n data = await PartnerService.fetchPartners();\n commit('setPartners', data);\n } else {\n data = await PartnerService.fetchPartnerNonAdmin();\n commit('setPartners', [data]);\n commit('setPartner', data);\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async createPartner({ commit, dispatch }, partner) {\n try {\n await PartnerService.createPartner(partner);\n dispatch('fetchPartners');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createPartner'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async fetchPartner({ commit, rootGetters }, data: { id: string }) {\n try {\n const user = rootGetters['app/getUser'];\n let partner;\n if (user.super_admin) {\n partner = await PartnerService.fetchPartner(data.id);\n } else {\n partner = await PartnerService.fetchPartnerNonAdmin();\n }\n commit('setPartner', partner);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async updatePartner({ commit, dispatch, rootGetters }, { id, partner, showMessage }) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await PartnerService.updatePartner(id, partner);\n } else {\n await PartnerService.updatePartnerNonAdmin(id, partner);\n }\n dispatch('fetchPartners');\n if (showMessage) {\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updatePartner'),\n value: true,\n }, { root: true });\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async deletePartner({ commit, dispatch }, id) {\n try {\n await PartnerService.deletePartner(id);\n dispatch('fetchPartners');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deletePartner'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const partners: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { ILead } from '@/types/leads.types';\n\nexport default {\n async fetchLeads() {\n return api.fetch('/admin/leads', 'GET');\n },\n async createLead(lead: Partial) {\n return api.fetch('/admin/leads', 'POST', lead);\n },\n async updateLead(id: string, lead: ILead) {\n return api.fetch(`/admin/leads/${id}`, 'PUT', lead);\n },\n async deleteLead(id: string) {\n return api.fetch(`/admin/leads/${id}`, 'DELETE');\n },\n async fetchLeadsNonAdmin() {\n return api.fetch('partner/leads', 'GET');\n },\n async createLeadNonAdmin(lead: Partial) {\n return api.fetch('/partner/leads', 'POST', lead);\n },\n async updateLeadNonAdmin(id: string, lead: ILead) {\n return api.fetch(`partner/leads/${id}`, 'PUT', lead);\n },\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { ILeadsState } from '@/store/modules/leads/types';\nimport { RootState } from '@/store/types';\nimport i18n from '@/ui/plugins/i18n';\nimport LeadsService from '@/services/LeadsService';\n\nconst state: ILeadsState = {\n leads: [],\n};\n\nconst getters: GetterTree = {\n leads(state) {\n return state.leads;\n },\n};\n\nconst mutations: MutationTree = {\n setLeads(state, payload) {\n state.leads = payload;\n },\n};\n\nconst actions: ActionTree = {\n async fetchLeads({ commit, rootGetters }) {\n try {\n const user = rootGetters['app/getUser'];\n let data;\n if (user.super_admin) {\n data = await LeadsService.fetchLeads();\n commit('setLeads', data);\n } else {\n data = await LeadsService.fetchLeadsNonAdmin();\n commit('setLeads', data);\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async createLead({ commit, dispatch, rootGetters }, lead) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await LeadsService.createLead(lead);\n } else {\n await LeadsService.createLeadNonAdmin(lead);\n }\n dispatch('fetchLeads');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createLead'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async updateLead({ commit, dispatch, rootGetters }, { id, lead, showMessage, skipFetch }) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await LeadsService.updateLead(id, lead);\n } else {\n await LeadsService.updateLeadNonAdmin(id, lead);\n }\n\n if (!skipFetch) {\n dispatch('fetchLeads');\n }\n\n if (showMessage) {\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updateLead'),\n value: true,\n }, { root: true });\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async deleteLeads({ commit, dispatch }, id) {\n try {\n await LeadsService.deleteLead(id);\n dispatch('fetchLeads');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deleteLead'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const leads: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IPartnerWorkspace } from '@/types/partnerWorkspace.types';\n\nexport default {\n fetchWorkspaces() {\n return api.fetch('/admin/projects', 'GET');\n },\n createdWorkspace(id: string, workspace: IPartnerWorkspace) {\n return api.fetch('/admin/projects', 'POST', { partner_id: id, ...workspace });\n },\n updateWorkspace(project_id: string, workspace: IPartnerWorkspace) {\n return api.fetch(`/admin/projects/${project_id}`, 'PUT', workspace);\n },\n deleteWorkspace(project_id: string) {\n return api.fetch(`/admin/projects/${project_id}`, 'DELETE');\n },\n fetchWorkspaceNonAdmin() {\n return api.fetch('/partner/projects', 'GET');\n },\n createWorkspaceNonAdmin(workspace: IPartnerWorkspace) {\n return api.fetch('/partner/projects', 'POST', workspace);\n },\n updateWorkspaceNonAdmin(project_id: string, workspace: IPartnerWorkspace) {\n return api.fetch(`/partner/projects/${project_id}`, 'PUT', workspace);\n },\n deleteWorkspaceNonAdmin(project_id: string) {\n return api.fetch(`/partner/projects/${project_id}`, 'DELETE');\n },\n};\n","import {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport PartnerWorkspaceService from '@/services/PartnerWorkspaceService';\nimport i18n from '@/ui/plugins/i18n';\nimport { IPartnerWorkspacesState } from './types';\n\nconst state: IPartnerWorkspacesState = {\n workspaces: [],\n workspace: null,\n workspaceId: '',\n workspaceFilter: '',\n filterByPartner: '',\n};\n\nconst getters: GetterTree = {\n workspaces(state) {\n return state.workspaces;\n },\n workspace(state) {\n return state.workspace;\n },\n workspaceId(state) {\n return state.workspaceId;\n },\n workspaceById: (state) => (id: string) => {\n return state.workspaces.find((workspace) => workspace.id === id);\n },\n workspaceFilter(state) {\n return state.workspaceFilter;\n },\n getFilterByPartner(state) {\n return state.filterByPartner;\n },\n};\n\nconst mutations: MutationTree = {\n setWorkspaces(state, payload) {\n state.workspaces = payload;\n },\n setWorkspace(state, payload) {\n state.workspace = payload;\n },\n setWorkspaceId(state, payload) {\n state.workspaceId = payload;\n },\n setWorkspaceFilter(state, payload) {\n state.workspaceFilter = payload;\n },\n setFilterByPartner(state, payload) {\n state.filterByPartner = payload;\n },\n};\n\nconst actions: ActionTree = {\n async fetchWorkspaces({ commit, rootGetters }) {\n try {\n const user = rootGetters['app/getUser'];\n let data;\n if (user.super_admin) {\n data = await PartnerWorkspaceService.fetchWorkspaces();\n } else {\n data = await PartnerWorkspaceService.fetchWorkspaceNonAdmin();\n }\n commit('setWorkspaces', data);\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async createWorkspace({ commit, dispatch, rootGetters }, data) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await PartnerWorkspaceService.createdWorkspace(data.id, data.workspace);\n } else {\n await PartnerWorkspaceService.createWorkspaceNonAdmin(data.workspace);\n }\n dispatch('fetchWorkspaces');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.createPartnerWorkspace'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n async updateWorkspace({ commit, dispatch, rootGetters }, data) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await PartnerWorkspaceService.updateWorkspace(data.project_id, data.workspace);\n } else {\n await PartnerWorkspaceService.updateWorkspaceNonAdmin(data.project_id, data.workspace);\n }\n dispatch('fetchWorkspaces');\n if (data.showMessage) {\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.updatePartnerWorkspace'),\n value: true,\n }, { root: true });\n }\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n\n async deleteWorkspace({ commit, dispatch, rootGetters }, id) {\n try {\n const user = rootGetters['app/getUser'];\n if (user.super_admin) {\n await PartnerWorkspaceService.deleteWorkspace(id);\n } else {\n await PartnerWorkspaceService.deleteWorkspaceNonAdmin(id);\n }\n dispatch('fetchWorkspaces');\n commit('app/setReport', {\n type: 'success',\n message: i18n.t('uiComponents.reportMessages.deletePartnerWorkspace'),\n value: true,\n }, { root: true });\n } catch (e) {\n commit('app/setReport', {\n type: 'error',\n message: e.message,\n value: true,\n }, { root: true });\n }\n },\n};\n\nexport const partnerWorkspaces: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","import api from '@/services/api';\nimport { IProject } from '@/types/project.types';\nimport { IInverter, SerialNumberType } from '@/types/serialNumber.types';\n\nexport default {\n async fetchInverters() {\n return api.fetch('/admin/inverters', 'GET');\n },\n async createInverters(inverters: { id: string; description: string; type: SerialNumberType }[]) {\n return api.fetch('/admin/inverters', 'POST', inverters);\n },\n async updateInverter(inverter: IInverter) {\n return api.fetch(`/admin/inverters/${inverter.id}`, 'PUT', inverter);\n },\n async deleteInverter(inverterId: string) {\n return api.fetch(`/admin/inverters/${inverterId}`, 'DELETE');\n },\n async checkInverters(projectId: string, inverters: { id: string; type: SerialNumberType }[]) {\n return api.fetch(`projects/${projectId}/activate`, 'POST', inverters);\n },\n};\n","import SerialNumberService from '@/services/SerialNumberService';\nimport { RootState } from '@/store/types';\nimport { ActionTree, GetterTree, Module, MutationTree } from 'vuex';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { IInverter, SerialNumberType } from '@/types/serialNumber.types';\n\nexport interface IInvertersState {\n inverters: IInverter[];\n serialNumbersFromMqtt: { [key: string]: string };\n inverterFilter: string;\n}\n\nconst state: IInvertersState = {\n inverters: [],\n serialNumbersFromMqtt: {},\n inverterFilter: '',\n};\n\nconst getters: GetterTree = {\n inverters: (state: IInvertersState) => state.inverters,\n serialNumbersFromMqtt: (state: IInvertersState) => state.serialNumbersFromMqtt,\n inverterFilter: (state: IInvertersState) => state.inverterFilter,\n};\n\nconst mutations: MutationTree = {\n setInverters(state: IInvertersState, inverters: IInverter[]) {\n state.inverters = inverters;\n },\n setSerialNumber(state: IInvertersState, serialNumber: { name: string; value: string }) {\n state.serialNumbersFromMqtt[serialNumber.name] = serialNumber.value;\n },\n setInverterFilter(state: IInvertersState, inverterFilter: string) {\n state.inverterFilter = inverterFilter;\n },\n appendInverters(state: IInvertersState, inverters: IInverter[]) {\n state.inverters = [...state.inverters, ...inverters];\n },\n replaceInverter(state: IInvertersState, newInverter: IInverter) {\n const inverterIndex: number = state.inverters.findIndex((inverter: IInverter) => inverter.id === newInverter.id);\n if (inverterIndex !== -1) {\n state.inverters[inverterIndex] = newInverter;\n }\n },\n removeInverter(state: IInvertersState, inverterId: string) {\n state.inverters = state.inverters.filter((inverter: IInverter) => inverter.id !== inverterId);\n },\n};\n\nconst actions: ActionTree = {\n async fetchInverters({ commit }) {\n const serialNumbers: IInverter[] = await SerialNumberService.fetchInverters();\n commit('setInverters', serialNumbers);\n },\n async createInverters({ state, dispatch, commit }, serialNumbers: { id: string; description: string; type: SerialNumberType }[]) {\n const response = await SerialNumberService.createInverters(serialNumbers);\n commit('appendInverters', serialNumbers.filter((inverter: { id: string; description: string; type: SerialNumberType }) => !state.inverters.some((inverter2: IInverter) => inverter2.id === inverter.id)));\n },\n async updateSerialNumber({ commit }, serialNumber: IInverter) {\n const inverter: IInverter = await SerialNumberService.updateInverter(serialNumber);\n commit('replaceInverter', inverter);\n },\n async deleteSerialNumber({ commit }, id: string) {\n await SerialNumberService.deleteInverter(id);\n commit('removeInverter', id);\n },\n async activateSerialNumbers({ commit }, payload: { projectId: string; inverters: { id: string; type: SerialNumberType }[] }) {\n const { projectId, inverters } = payload;\n const status: any = await SerialNumberService.checkInverters(projectId, inverters.map((inverter: { id: string; type: SerialNumberType }) => ({ id: inverter.id, type: inverter.type })));\n return status.success;\n },\n};\n\nexport const serialNumber: Module = {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n};\n","import { rules } from '@/store/modules/rules';\nimport { variables } from '@/store/modules/variables';\nimport { installationWizard } from '@/store/modules/installationWizard';\nimport { tenantWizard } from '@/store/modules/tenantWizard';\nimport { navigation } from '@/store/modules/navigation';\nimport { projects } from '@/store/modules/projects';\nimport { devices } from '@/store/modules/devices';\nimport { members } from '@/store/modules/members';\nimport { rooms } from '@/store/modules/rooms';\nimport { measurements } from '@/store/modules/measurements';\nimport { charts } from '@/store/modules/charts';\nimport { anomalyDetection } from '@/store/modules/anomalyDetection';\nimport { mpc } from '@/store/modules/mpc';\nimport { app } from '@/store/modules/app';\nimport { report } from '@/store/modules/report';\nimport { router } from '@/store/modules/router';\nimport { events } from '@/store/modules/events';\nimport { mqttClient } from '@/store/modules/mqtt';\nimport { loggerWizard } from '@/store/modules/loggerWizard';\nimport { partners } from '@/store/modules/partners';\nimport { leads } from '@/store/modules/leads';\nimport { partnerWorkspaces } from '@/store/modules/partnerWorkspaces';\nimport { serialNumber } from '@/store/modules/serialNumber';\n\nexport default {\n app,\n navigation,\n projects,\n devices,\n rooms,\n measurements,\n charts,\n members,\n anomalyDetection,\n rules,\n mpc,\n report,\n router,\n events,\n mqttClient,\n variables,\n installationWizard,\n tenantWizard,\n loggerWizard,\n partners,\n leads,\n partnerWorkspaces,\n serialNumber,\n};\n","import Vue from 'vue';\nimport Vuex, { StoreOptions } from 'vuex';\nimport modules from '@/store/modules';\nimport { RootState } from '@/store/types';\n\nVue.use(Vuex);\n\nconst store: StoreOptions = { modules };\n\nexport default new Vuex.Store(store);\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsTable.vue?vue&type=style&index=0&id=749b71be&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=style&index=0&id=36dbc01d&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{style:(_vm.showPopup ? 'z-index: 9000;' : null),attrs:{\"overlay-opacity\":\"0.8\",\"max-width\":null,\"width\":_vm.width,\"persistent\":\"\"},model:{value:(_vm.showPopup),callback:function ($$v) {_vm.showPopup=$$v},expression:\"showPopup\"}},[(_vm.showPopup)?_c('v-card',{staticClass:\"lynus-popup\"},[_c('div',{staticClass:\"lynus-popup__header\"},[_c('div',{staticClass:\"lynus-popup-header-title\"},[_vm._t(\"title\")],2),(_vm.showCloseButton)?_c('div',{staticClass:\"pb-2\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\"},on:{\"click\":_vm.closeDialog}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1):_vm._e()]),_c('div',{staticClass:\"lynus-popup__body\"},[_vm._t(\"body\")],2)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent a basic popup\n */\n@Component\nexport default class LynusPopup extends Vue {\n @Prop({ default: false }) showPopup!: boolean; // controls the visibility of the popup\n @Prop({ default: 700 }) width!: number; // width of the popup\n @Prop({ default: true }) showCloseButton!: boolean; // controls the visibility of the close button\n\n closeDialog() {\n this.$emit('closeLynusPopup');\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LynusPopup.vue?vue&type=template&id=5f07aaf3&scoped=true&\"\nimport script from \"./LynusPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./LynusPopup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LynusPopup.vue?vue&type=style&index=0&id=5f07aaf3&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f07aaf3\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"zev-report\"},[_vm._t(\"title\"),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('h2',{staticClass:\"pb-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.generalTitle')))])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.nameRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.nameReportField')},model:{value:(_vm.localReportData.name),callback:function ($$v) {_vm.$set(_vm.localReportData, \"name\", $$v)},expression:\"localReportData.name\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.nameRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.usernameField')},model:{value:(_vm.localReportData.meta.zev.innosolv.username),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.innosolv, \"username\", $$v)},expression:\"localReportData.meta.zev.innosolv.username\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"4\",\"md\":\"4\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.streetRule,\"label\":_vm.$t('modals.manageReport.textFields.streetField')},model:{value:(_vm.localReportData.address.street),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"street\", $$v)},expression:\"localReportData.address.street\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"4\",\"md\":\"4\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.cityRule,\"label\":_vm.$t('modals.manageReport.textFields.cityField')},model:{value:(_vm.localReportData.address.city),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"city\", $$v)},expression:\"localReportData.address.city\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"4\",\"md\":\"4\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.countryRule,\"label\":_vm.$t('modals.manageReport.textFields.countryField')},model:{value:(_vm.localReportData.address.country),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"country\", $$v)},expression:\"localReportData.address.country\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"2\",\"md\":\"2\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"items\":_vm.currencyOptions,\"label\":_vm.$t('modals.manageReport.textFields.currencyField')},model:{value:(_vm.localReportData.currency),callback:function ($$v) {_vm.$set(_vm.localReportData, \"currency\", $$v)},expression:\"localReportData.currency\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"2\",\"md\":\"2\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('TimezoneChooser',{attrs:{\"currentValue\":_vm.localReportData.timezone,\"full-size\":true},on:{\"onChange\":_vm.onTimezoneChange}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"12\"}},[_c('h2',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.tarifTitle')))]),_c('TariffSettingsTooltip')],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"2\",\"md\":\"2\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"items\":_vm.weekDayOptions,\"label\":_vm.$t('modals.manageReport.textFields.weekdayField')},model:{value:(_vm.tempWeekDay),callback:function ($$v) {_vm.tempWeekDay=$$v},expression:\"tempWeekDay\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"2\",\"md\":\"2\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('div',{staticClass:\"mx-3 d-flex\"},[_c('v-checkbox',{staticClass:\"mb-0 mt-3\",attrs:{\"color\":\"blue\",\"true-value\":false,\"false-value\":true,\"hide-details\":\"\"},model:{value:(_vm.localReportData.meta.zev.groupingSelected),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev, \"groupingSelected\", $$v)},expression:\"localReportData.meta.zev.groupingSelected\"}}),_c('div',{staticClass:\"pt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.textFields.switchTariffOption'))+\" \")])],1)])],1),_c('v-row',[_c('v-col',{staticStyle:{\"padding-right\":\"0\",\"padding-left\":\"0\"},attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"pl-3\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titlePvTarif')))]),_c('v-select',{staticClass:\"mx-3 mt-2\",attrs:{\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"items\":_vm.currentDayOptions,\"label\":_vm.$t('modals.manageReport.textFields.daySettingsField')},on:{\"input\":function($event){_vm.changeOfDaySetting(true, parseInt(_vm.tempWeekDay))}},model:{value:(_vm.localReportData.meta.zev.arrayDaySettingsInternal[parseInt(_vm.tempWeekDay)]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.arrayDaySettingsInternal, parseInt(_vm.tempWeekDay), $$v)},expression:\"localReportData.meta.zev.arrayDaySettingsInternal[parseInt(tempWeekDay)]\"}}),(_vm.localReportData.meta.zev.arrayDaySettingsInternal[parseInt(_vm.tempWeekDay)] === 'custom')?_c('div',[_c('div',{staticClass:\"d-flex flex-wrap\"},[(typeof _vm.localReportData.meta.zev.tariffs.internal.time[_vm.tempWeekDay][0][0] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifStart1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][0][0]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][0], 0, $$v)},expression:\"localReportData.meta.zev.tariffs.internal.time[parseInt(tempWeekDay)][0][0]\"}}):_vm._e(),(typeof _vm.localReportData.meta.zev.tariffs.internal.time[_vm.tempWeekDay][0][1] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifEnd1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][0][1]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][0], 1, $$v)},expression:\"localReportData.meta.zev.tariffs.internal.time[parseInt(tempWeekDay)][0][1]\"}}):_vm._e()],1),(_vm.toggleSecondTariff === true && _vm.localReportData.meta.zev.tariffs.internal.time[_vm.tempWeekDay][1] !== undefined)?_c('div',{staticClass:\"d-flex flex-wrap\"},[(typeof _vm.localReportData.meta.zev.tariffs.internal.time[_vm.tempWeekDay][1][0] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifStart2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][1][0]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][1], 0, $$v)},expression:\"localReportData.meta.zev.tariffs.internal.time[parseInt(tempWeekDay)][1][0]\"}}):_vm._e(),(typeof _vm.localReportData.meta.zev.tariffs.internal.time[_vm.tempWeekDay][1][1] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifEnd2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][1][1]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal.time[parseInt(_vm.tempWeekDay)][1], 1, $$v)},expression:\"localReportData.meta.zev.tariffs.internal.time[parseInt(tempWeekDay)][1][1]\"}}):_vm._e()],1):_vm._e()]):_vm._e(),_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.unitCostRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifPrice1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.low),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal, \"low\", _vm._n($$v))},expression:\"localReportData.meta.zev.tariffs.internal.low\"}}),_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.unitCostRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifPrice2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.internal.high),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.internal, \"high\", _vm._n($$v))},expression:\"localReportData.meta.zev.tariffs.internal.high\"}})],1),(_vm.internalTariffValid === false)?_c('div',{staticClass:\"error--text\"},[_vm._v(\" \"+_vm._s(this.$t('modals.manageReport.errorMessages.timeError'))+\" \")]):_vm._e(),_c('div',{staticClass:\"mx-3 d-flex\"},[_c('v-checkbox',{attrs:{\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},on:{\"change\":_vm.clearTariffTimes},model:{value:(_vm.toggleSecondTariff),callback:function ($$v) {_vm.toggleSecondTariff=$$v},expression:\"toggleSecondTariff\"}}),_c('div',{staticClass:\"pt-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.textFields.activateSecTarif'))+\" \")])],1)],1),_c('v-col',{staticStyle:{\"padding-right\":\"0\",\"padding-left\":\"0\"},attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"pl-3\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titleGridTarif')))]),_c('v-select',{staticClass:\"mx-3 mt-2\",attrs:{\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"items\":_vm.currentDayOptions,\"label\":_vm.$t('modals.manageReport.textFields.daySettingsField')},on:{\"input\":function($event){_vm.changeOfDaySetting(false, parseInt(_vm.tempWeekDay))}},model:{value:(_vm.localReportData.meta.zev.arrayDaySettingsExternal[parseInt(_vm.tempWeekDay)]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.arrayDaySettingsExternal, parseInt(_vm.tempWeekDay), $$v)},expression:\"localReportData.meta.zev.arrayDaySettingsExternal[parseInt(tempWeekDay)]\"}}),(_vm.localReportData.meta.zev.arrayDaySettingsExternal[parseInt(_vm.tempWeekDay)] === 'custom')?_c('div',[_c('div',{staticClass:\"d-flex flex-wrap\"},[(typeof _vm.localReportData.meta.zev.tariffs.external.time[_vm.tempWeekDay][0][0] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifStart1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][0][0]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][0], 0, $$v)},expression:\"localReportData.meta.zev.tariffs.external.time[parseInt(tempWeekDay)][0][0]\"}}):_vm._e(),(typeof _vm.localReportData.meta.zev.tariffs.external.time[_vm.tempWeekDay][0][1] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifEnd1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][0][1]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][0], 1, $$v)},expression:\"localReportData.meta.zev.tariffs.external.time[parseInt(tempWeekDay)][0][1]\"}}):_vm._e()],1),(_vm.toggleSecondTariff === true && _vm.localReportData.meta.zev.tariffs.external.time[_vm.tempWeekDay][1] !== undefined)?_c('div',{staticClass:\"d-flex flex-wrap\"},[(typeof _vm.localReportData.meta.zev.tariffs.external.time[_vm.tempWeekDay][1][0] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifStart2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][1][0]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][1], 0, $$v)},expression:\"localReportData.meta.zev.tariffs.external.time[parseInt(tempWeekDay)][1][0]\"}}):_vm._e(),(typeof _vm.localReportData.meta.zev.tariffs.external.time[_vm.tempWeekDay][1][1] === 'string')?_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.timeSettingsRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifEnd2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][1][1]),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external.time[parseInt(_vm.tempWeekDay)][1], 1, $$v)},expression:\"localReportData.meta.zev.tariffs.external.time[parseInt(tempWeekDay)][1][1]\"}}):_vm._e()],1):_vm._e()]):_vm._e(),_c('div',{staticClass:\"d-flex flex-wrap\"},[_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.unitCostRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifPrice1Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.low),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external, \"low\", _vm._n($$v))},expression:\"localReportData.meta.zev.tariffs.external.low\"}}),_c('v-text-field',{staticClass:\"mx-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.unitCostRule,\"label\":_vm.$t('modals.manageReport.textFields.tarifPrice2Title')},model:{value:(_vm.localReportData.meta.zev.tariffs.external.high),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.tariffs.external, \"high\", _vm._n($$v))},expression:\"localReportData.meta.zev.tariffs.external.high\"}})],1),(_vm.externalTariffValid === false)?_c('div',{staticClass:\"error--text\"},[_vm._v(\" \"+_vm._s(this.$t('modals.manageReport.errorMessages.timeError'))+\" \")]):_vm._e()],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.mainVarsTitle')))])]),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.titleRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.titleField')},model:{value:(_vm.localReportData.meta.zev.titles.grid),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.titles, \"grid\", $$v)},expression:\"localReportData.meta.zev.titles.grid\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-combobox',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.gridRule,\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageReport.textFields.gridField'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},model:{value:(_vm.localReportData.meta.zev.producers.external[0].name),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.producers.external[0], \"name\", $$v)},expression:\"localReportData.meta.zev.producers.external[0].name\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.titleRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.titleField')},model:{value:(_vm.localReportData.meta.zev.producers.internal_to_external.title),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.producers.internal_to_external, \"title\", $$v)},expression:\"localReportData.meta.zev.producers.internal_to_external.title\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-combobox',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.gridRule,\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageReport.textFields.gridFieldProduction'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},model:{value:(_vm.localReportData.meta.zev.producers.internal_to_external.name),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.producers.internal_to_external, \"name\", $$v)},expression:\"localReportData.meta.zev.producers.internal_to_external.name\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.pvVarsTitle')))])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.titleRules,\"label\":_vm.$t('modals.manageReport.textFields.titleField')},model:{value:(_vm.localReportData.meta.zev.titles.photovoltaik),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.titles, \"photovoltaik\", $$v)},expression:\"localReportData.meta.zev.titles.photovoltaik\"}}),_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addZevVar('pv')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addPVButton'))+\" \")])],1)],1),_c('v-row',_vm._l((_vm.localReportData.meta.zev.producers.internal),function(element,index){return _c('v-col',{key:index,staticClass:\"d-flex py-0\",attrs:{\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.variableNameRule,\"items\":_vm.variablesForComboBox,\"label\":'PV Variable ' + (index + 1),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},model:{value:(_vm.localReportData.meta.zev.producers.internal[index].name),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.producers.internal[index], \"name\", $$v)},expression:\"localReportData.meta.zev.producers.internal[index].name\"}}),_c('v-btn',{staticClass:\"ml-6 mt-3\",style:({visibility: index >= 1 ? 'visible' : 'hidden'}),attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.removeZevVar('pv', index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.deleteVariable'))+\" \")])],1)}),1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',{staticClass:\"pb-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.appartmentTitle')))]),_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addZevVar('appartment')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addAPButton'))+\" \")]),(_vm.apartmentsTitlesDuplicates)?_c('div',{staticClass:\"pt-3 error--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.duplicateTitlesText'))+\" \")]):_vm._e()],1)],1),_c('v-row',_vm._l((_vm.localReportData.meta.zev.consumers),function(element,index){return _c('v-col',{key:index,staticClass:\"d-flex py-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex flex-column flex-md-row grow\"},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.nameRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.titleField')},model:{value:(_vm.localReportData.meta.zev.consumers[index].title),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.consumers[index], \"title\", $$v)},expression:\"localReportData.meta.zev.consumers[index].title\"}}),_c('v-combobox',{staticClass:\"ml-md-6\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.variableNameRule,\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageReport.textFields.appartmentVarField') + (index + 1),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},model:{value:(_vm.localReportData.meta.zev.consumers[index].name),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.consumers[index], \"name\", $$v)},expression:\"localReportData.meta.zev.consumers[index].name\"}}),_c('v-text-field',{staticClass:\"ml-md-6\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.meterIDRule,\"required\":\"\",\"label\":\"Metering ID\"},model:{value:(_vm.localReportData.meta.zev.consumers[index].metering_id),callback:function ($$v) {_vm.$set(_vm.localReportData.meta.zev.consumers[index], \"metering_id\", $$v)},expression:\"localReportData.meta.zev.consumers[index].metering_id\"}})],1),_c('v-btn',{staticClass:\"ml-6 mt-3\",style:({visibility: index >= 1 ? 'visible' : 'hidden'}),attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.removeZevVar('appartment', index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.deleteVariable'))+\" \")])],1)}),1)],1)],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.actionsTitle')))])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('email')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addEmail'))+\" \")]),_c('v-btn',{staticClass:\"accent lynus-small-btn ml-6\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('webhook')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addWebhook'))+\" \")])],1)],1),_vm._l((_vm.localReportData.actions),function(action,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h3',[_vm._v(\"Action \"+_vm._s(index + 1))])]),_c('v-col',{attrs:{\"lg\":\"2\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"items\":_vm.formatOptions,\"item-text\":\"state\",\"item-value\":\"abbr\",\"label\":_vm.$t('modals.manageReport.textFields.formatOptionField')},model:{value:(action.format),callback:function ($$v) {_vm.$set(action, \"format\", $$v)},expression:\"action.format\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c(action.type,{tag:\"component\",attrs:{\"params\":action.params,\"disableBody\":true,\"actionIndex\":index}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteAction(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.deleteAction'))+\" \")])],1)],1)}),_c('v-row',[_c('v-col',[_c('v-checkbox',{staticClass:\"mx-6\",attrs:{\"label\":_vm.$t('modals.manageReport.actionCheckBox'),\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.localReportData.active),callback:function ($$v) {_vm.$set(_vm.localReportData, \"active\", $$v)},expression:\"localReportData.active\"}})],1)],1)],2),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('PrintReport',{attrs:{\"report\":_vm.localReportData}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('TriggerActions',{attrs:{\"report\":_vm.localReportData}})],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":[_vm.show ? 'accent' : 'theme']}})],1)]}}]),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('div',{staticClass:\"tariff-settings-tooltip-content\"},[_c('div',{staticClass:\"tariff-settings-tooltip-content__title\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.expressionDescriptionTitle'))+\" \")]),_c('ul',_vm._l((_vm.$t('modals.manageReport.expressionDescriptionItems')),function(item,index){return _c('li',{key:index},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0),_c('div',{staticClass:\"tariff-settings-tooltip-content__text\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.tarifDescriptionText'))+\" \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class TariffSettingsTooltip extends Vue {\n show = false;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TariffSettingsTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TariffSettingsTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TariffSettingsTooltip.vue?vue&type=template&id=45a81ccf&\"\nimport script from \"./TariffSettingsTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./TariffSettingsTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TariffSettingsTooltip.vue?vue&type=style&index=0&id=45a81ccf&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { cloneDeep } from 'lodash';\nimport { timeToMinutes } from '@/utils/utilsFunctions';\n\n/**\n * @param currentModel contains the whole report model\n * @returns the report model with the final Times inserted\n * This function only runs when day grouping is enabled by the User.\n * This function gets the report and fills up the missing day values for Monday-Friday and Saturday and Sunday to be the same\n */\nexport function fillUpTariffTimes(currentModel: any) {\n for (let i = 0; i <= 6; i++) {\n const internalTimes = currentModel.meta.zev.tariffs.internal.time;\n const currentInternalDaySettings = currentModel.meta.zev.arrayDaySettingsInternal;\n const mondayInternalSettings = currentInternalDaySettings[0];\n const saturdayInternalSettings = currentInternalDaySettings[5];\n const internalMonday = internalTimes[0];\n const internalSaturday = internalTimes[5];\n const externalTimes = currentModel.meta.zev.tariffs.external.time;\n const currentExternalDaySettings = currentModel.meta.zev.arrayDaySettingsExternal;\n const mondayExternalSettings = currentExternalDaySettings[0];\n const saturdayExternalSettings = currentExternalDaySettings[5];\n const externalMonday = externalTimes[0];\n const externalSaturday = externalTimes[5];\n\n // weekdays\n if (i > 0 && i < 5) {\n currentInternalDaySettings[i] = mondayInternalSettings;\n currentExternalDaySettings[i] = mondayExternalSettings;\n internalTimes[i] = cloneDeep(internalMonday);\n externalTimes[i] = cloneDeep(externalMonday);\n }\n // sunday\n if (i === 6) {\n currentInternalDaySettings[i] = saturdayInternalSettings;\n currentExternalDaySettings[i] = saturdayExternalSettings;\n internalTimes[i] = cloneDeep(internalSaturday);\n externalTimes[i] = cloneDeep(externalSaturday);\n }\n }\n return currentModel;\n}\n/**\n * @param currentReport contains the whole report model\n * @returns the report model with the converted Times inserted\n * This function goes through all the Tariff times and converts the times from format 'HH:MM' to time in minutes (02:00 -> 120)\n * This function is needed for API compatibility\n */\nexport function convertTimes(currentReport: any) {\n for (let i = 0; i <= 6; i++) {\n // internal Times\n const internalTimes: any[][] = currentReport.meta.zev.tariffs.internal.time;\n // map every start/end time from its minute value to an actual time in HH:mm format\n // e.g. [[\"00:00\", \"06:00\"]] -> [[\"0\", \"360\"]]\n internalTimes[i] = internalTimes[i].map((e: any[]) => e.map(time => timeToMinutes(time)));\n\n // external Times\n const externalTimes = currentReport.meta.zev.tariffs.external.time;\n // map every start/end time from its minute value to an actual time in HH:mm format\n // e.g. [[\"00:00\", \"06:00\"]] -> [[\"0\", \"360\"]]\n externalTimes[i] = externalTimes[i].map((e: any[]) => e.map(time => timeToMinutes(time)));\n }\n return currentReport;\n}\n","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport EmailAction from '@/ui/components/modals/actions/EmailAction.vue';\nimport WebhookAction from '@/ui/components/modals/actions/WebhookAction.vue';\nimport PrintReport from '@/ui/components/modals/ManageReport/PrintReport.vue';\nimport TriggerActions from '@/ui/components/modals/ManageReport/TriggerActions.vue';\nimport TariffSettingsTooltip from '@/ui/components/modals/ManageReport/TariffSettingsTooltip.vue';\nimport { mixins } from 'vue-class-component';\nimport { ReportFormRules } from '@/ui/components/modals/ManageReport/mixins/rules';\nimport { minutesToTime, timeToMinutes } from '@/utils/utilsFunctions';\nimport { fillUpTariffTimes, convertTimes } from '@/ui/components/modals/ManageReport/utils';\nimport { cloneDeep } from 'lodash';\nimport moment from 'moment-timezone';\nimport { Action, Getter, State } from 'vuex-class';\nimport TimezoneChooser from '@/ui/components/components/TimezoneChooser.vue';\nimport { isArray } from 'highcharts';\nimport { IReport } from '@/types/report.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMember } from '@/types/members.types';\n\n/**\n * A component that allows to manage Zev report form\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n email: EmailAction,\n webhook: WebhookAction,\n TimezoneChooser,\n TariffSettingsTooltip,\n PrintReport,\n TriggerActions,\n },\n})\nexport default class ZevReportNew extends mixins(ReportFormRules) {\n @Prop({ default: null }) report!: null | any;\n @Prop() isNewReport!: boolean;\n @Getter('measurements/measurementsKeys') measurementsKeys!: string[];\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n @Action('report/addReport') addReport!: ({ id, reportModel }: { id: string; reportModel: IReport }) => Promise;\n\n formValid = true;\n localReportData: any = {\n type: 'zev',\n name: '',\n currency: 'EUR',\n timezone: moment.tz.guess(),\n address: {\n street: '',\n city: '',\n country: '',\n },\n variables: [{ name: '', title: '', unit_cost: 0, unit: '' }],\n actions: [],\n meta: {\n zev: {\n arrayDaySettingsInternal: ['custom', 'custom', 'custom', 'custom', 'custom', 'custom', 'custom'],\n arrayDaySettingsExternal: ['custom', 'custom', 'custom', 'custom', 'custom', 'custom', 'custom'],\n groupingSelected: true,\n innosolv: {\n username: '',\n },\n titles: {\n grid: 'Grid',\n photovoltaik: 'PV',\n },\n consumers: [{ name: '', title: '', metering_id: '' }],\n producers: {\n internal: [{ name: '', title: '' }],\n external: [{ name: '', title: '' }],\n internal_to_external: { name: '', title: '' },\n },\n tariffs: {\n internal: {\n time: [\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n ],\n low: '',\n high: '',\n },\n external: {\n time: [\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n [['00:00', '00:00'], ['00:00', '00:00']],\n ],\n low: '',\n high: '',\n },\n },\n },\n },\n active: false,\n };\n toggleSecondTariff = true;\n tempWeekDay = 0;\n\n get internalTariffValid() {\n let valid = true;\n this.localReportData.meta.zev.tariffs.internal.time.forEach((tariffs: any[][]) => {\n tariffs.forEach((tariff: any[]) => {\n const tariffTimeValid = tariff.map((t: any) => /[0-9][0-9]:[0-9][0-9]$/.test(t));\n const isValid = !tariffTimeValid.some((el: boolean) => !el);\n if (isValid) {\n if (timeToMinutes(tariff[0]) > timeToMinutes(tariff[1])) {\n valid = false;\n }\n }\n });\n });\n return valid;\n }\n get externalTariffValid() {\n let valid = true;\n this.localReportData.meta.zev.tariffs.external.time.forEach((tariffs: any[][]) => {\n tariffs.forEach((tariff: any[]) => {\n const tariffTimeValid = tariff.map((t: any) => /[0-9][0-9]:[0-9][0-9]$/.test(t));\n const isValid = !tariffTimeValid.some((el: boolean) => !el);\n if (isValid) {\n if (timeToMinutes(tariff[0]) > timeToMinutes(tariff[1])) {\n valid = false;\n }\n }\n });\n });\n return valid;\n }\n\n get apartmentsTitlesDuplicates() {\n const titles = this.localReportData.meta.zev.consumers.map((data: any) => data.title);\n return titles.some((t: string, inx: number) => inx !== titles.indexOf(t));\n }\n\n get currentDayOptions() {\n const langPath: any = this.$t('modals.manageReport.daySettings');\n return [\n { state: langPath.customOption, abbr: 'custom' },\n { state: langPath.highOption, abbr: 'high' },\n { state: langPath.lowOption, abbr: 'low' },\n ];\n }\n\n get formatOptions() {\n return this.localReportData.type === 'zev'\n ? [\n { state: 'pdf', abbr: 'pdf' },\n { state: 'xml', abbr: 'xml' },\n ] : [\n { state: 'json', abbr: 'json' },\n { state: 'pdf', abbr: 'pdf' },\n { state: 'csv', abbr: 'csv' },\n ];\n }\n\n get currencyOptions() {\n return [\n { state: 'EUR', abbr: 'EUR' },\n { state: 'CHF', abbr: 'CHF' },\n ];\n }\n\n get weekDayOptions() {\n const langPath: any = this.$t('modals.manageReport.weekDayOptions');\n if (!this.localReportData.meta.zev.groupingSelected) {\n return [\n { state: langPath.mondayOption, abbr: 0 },\n { state: langPath.tuesdayOption, abbr: 1 },\n { state: langPath.wednesdayOption, abbr: 2 },\n { state: langPath.thursdayOption, abbr: 3 },\n { state: langPath.fridayOption, abbr: 4 },\n { state: langPath.saturdayOption, abbr: 5 },\n { state: langPath.sundayOption, abbr: 6 },\n ];\n } else {\n return [\n { state: langPath.workDayGrouping, abbr: 0 },\n { state: langPath.weekendGrouping, abbr: 5 },\n ];\n }\n }\n\n get fullValidation() {\n return this.formValid && this.externalTariffValid && this.internalTariffValid;\n }\n\n get reportDataToSend() {\n let reportCopy = cloneDeep(this.localReportData);\n if (this.localReportData.meta.zev.groupingSelected) {\n reportCopy = fillUpTariffTimes(reportCopy);\n }\n reportCopy = convertTimes(reportCopy);\n return reportCopy;\n }\n\n @Watch('fullValidation')\n onFormValidStatusChange(status: boolean) {\n this.$emit('onFormValidStatusChange', status);\n }\n\n changeOfDaySetting(isInternal: boolean, currentSelectedDay: number) {\n const currentDaySettingInternal = this.localReportData.meta.zev.arrayDaySettingsInternal[currentSelectedDay];\n const currentDaySettingExternal = this.localReportData.meta.zev.arrayDaySettingsExternal[currentSelectedDay];\n const internalTimes = this.localReportData.meta.zev.tariffs.internal.time;\n const externalTimes = this.localReportData.meta.zev.tariffs.external.time;\n\n if (isInternal) {\n // changes in internal Day settings\n internalTimes[currentSelectedDay] = this.getAllDaySetting(currentDaySettingInternal);\n } else {\n // changes in external Day settings\n externalTimes[currentSelectedDay] = this.getAllDaySetting(currentDaySettingExternal);\n }\n this.localReportData = cloneDeep(this.localReportData);\n // will trigger fields to show error message for user\n this.$nextTick(() => {\n this.formValidate();\n });\n }\n\n clearTariffTimes() {\n if (!this.toggleSecondTariff) {\n for (let i = 0; i <= 6; i++) {\n const currentTarifs = this.localReportData.meta.zev.tariffs;\n if (this.localReportData.meta.zev.arrayDaySettingsInternal[i] !== 'high') {\n currentTarifs.internal.time[i] = [currentTarifs.internal.time[i][0]];\n }\n if (this.localReportData.meta.zev.arrayDaySettingsExternal[i] !== 'high') {\n currentTarifs.external.time[i] = [currentTarifs.external.time[i][0]];\n }\n }\n } else {\n for (let i = 0; i <= 6; i++) {\n const currentTarifs = this.localReportData.meta.zev.tariffs;\n if (this.localReportData.meta.zev.arrayDaySettingsInternal[i] !== 'high') {\n currentTarifs.internal.time[i].push(['00:00', '00:00']);\n }\n if (this.localReportData.meta.zev.arrayDaySettingsExternal[i] !== 'high') {\n currentTarifs.external.time[i].push(['00:00', '00:00']);\n }\n }\n }\n }\n\n /**\n * Used to format times from time in minutes to format HH:MM\n */\n revertTimeFromApi() {\n // internal Times\n // map every start/end time from its minute value to an actual time in HH:mm format\n // e.g. [[\"0\", \"360\"]] -> [[\"00:00\", \"06:00\"]]\n this.localReportData.meta.zev.tariffs.internal.time.forEach((tariffs: any[][], tariffsInx: number) => {\n tariffs.forEach((tariff: any[], tariffInx: number) => {\n tariff.forEach((time: any, timeInx: number) => {\n this.localReportData.meta.zev.tariffs.internal.time[tariffsInx][tariffInx][timeInx] = minutesToTime(time);\n });\n });\n });\n // external Times\n // map every start/end time from its minute value to an actual time in HH:mm format\n // e.g. [[\"0\", \"360\"]] -> [[\"00:00\", \"06:00\"]]\n this.localReportData.meta.zev.tariffs.external.time.forEach((tariffs: any[][], tariffsInx: number) => {\n tariffs.forEach((tariff: any[], tariffInx: number) => {\n tariff.forEach((time: any, timeInx: number) => {\n this.localReportData.meta.zev.tariffs.external.time[tariffsInx][tariffInx][timeInx] = minutesToTime(time);\n });\n });\n });\n }\n\n /**\n * Takes the current times for either internal or external tariffs and the current\n * day setting (low/high) and sets it to the respective times so that it is valid for\n * all day.\n*/\n getAllDaySetting(currentDaySetting: string) {\n switch (currentDaySetting) {\n case 'low':\n // low is selected\n if (this.toggleSecondTariff) return [['00:00', '11:59'], ['12:00', '23:59']];\n else return [['00:00', '23:59']];\n case 'high': return [];\n case 'custom':\n if (this.toggleSecondTariff) return [['00:00', '00:00'], ['00:00', '00:00']];\n else return [['00:00', '00:00']];\n }\n }\n\n /**\n * Function that add new action to report\n * @param type string, action type key\n */\n addAction(type: string) {\n const newAction: any = { 'type': type, 'format': 'pdf' };\n\n switch (type) {\n case 'webhook':\n newAction.params = {\n headers: {\n 'content-type': 'application/json',\n },\n method: 'POST',\n url: '',\n };\n break;\n case 'email':\n newAction.params = {\n recipients: ['example@mail.com'],\n subject: '{{name}}',\n body: 'Report from {{start}} to {{end}}',\n };\n break;\n }\n this.$set(this.localReportData.actions, this.localReportData.actions.length, newAction);\n }\n deleteAction(index: number) {\n this.localReportData.actions.splice(index, 1);\n }\n\n onTimezoneChange(value: string) {\n this.localReportData.timezone = value;\n }\n\n async addZevVar(type: string) {\n if (type === 'pv') this.localReportData.meta.zev.producers.internal.push({ name: '', title: '' });\n else this.localReportData.meta.zev.consumers.push({ name: '', title: '', metering_id: '' });\n\n await this.$nextTick();\n this.formValidate();\n }\n removeZevVar(type: string, index: number) {\n if (type === 'pv') this.localReportData.meta.zev.producers.internal.splice(index, 1);\n else this.localReportData.meta.zev.consumers.splice(index, 1);\n }\n\n formValidate() {\n (this.$refs.form as any).validate();\n }\n\n created() {\n if (this.report) {\n if (this.report.meta.zev.producers.internal_to_external === undefined || isArray(this.report.meta.zev.producers.internal_to_external)) {\n // is needed in order for the old zev reports to work properly\n const copy = JSON.parse(JSON.stringify(this.report));\n copy.meta.zev.producers.internal_to_external = { name: '', title: '' };\n this.localReportData = copy;\n } else {\n this.localReportData = JSON.parse(JSON.stringify(this.report));\n }\n this.revertTimeFromApi();\n }\n }\n mounted() {\n this.formValidate();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZevReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ZevReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ZevReport.vue?vue&type=template&id=24668430&\"\nimport script from \"./ZevReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./ZevReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowUpBase.vue?vue&type=style&index=0&id=70dd1f2b&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t('modals.emailActions.recipients')))]),_c('v-btn',{staticClass:\"accent lynus-small-btn mb-6 mt-4\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.addRecipient}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.emailActions.addRecipient'))+\" \")]),_c('div',_vm._l((_vm.params.recipients),function(_,index){return _c('div',{key:index,staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.emailActions.recipient'),\"outlined\":\"\",\"color\":\"blue\"},model:{value:(_vm.params.recipients[index]),callback:function ($$v) {_vm.$set(_vm.params.recipients, index, $$v)},expression:\"params.recipients[index]\"}}),(index !== 0 || _vm.enableNoRecipients === true)?_c('v-btn',{staticClass:\"lynus-small-btn mt-3 ml-6\",attrs:{\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteRecipient(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.delete'))+\" \")]):_vm._e()],1)}),0)],1),_c('v-text-field',{attrs:{\"rules\":_vm.subjectRule,\"label\":_vm.$t('modals.emailActions.subject'),\"outlined\":\"\",\"color\":\"blue\"},model:{value:(_vm.params.subject),callback:function ($$v) {_vm.$set(_vm.params, \"subject\", $$v)},expression:\"params.subject\"}}),_c('v-textarea',{attrs:{\"rules\":_vm.bodyRule,\"label\":_vm.$t('modals.emailActions.body'),\"outlined\":\"\",\"color\":\"blue\"},model:{value:(_vm.params.body),callback:function ($$v) {_vm.$set(_vm.params, \"body\", $$v)},expression:\"params.body\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Email action component.\n * Manages emails.\n */\n@Component\nexport default class EmailAction extends Vue {\n @Prop({ default: {} }) params: any;\n @Prop({ default: false }) enableNoRecipients!: boolean;\n\n subjectRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.subjectRule'),\n ]\n bodyRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.bodyRule'),\n ]\n\n deleteRecipient(index: number) {\n this.params.recipients.splice(index, 1);\n this.$set(this.params, 'recipients', this.params.recipients);\n }\n addRecipient() {\n if (!this.params.recipients) {\n this.$set(this.params, 'recipients', []);\n }\n this.params.recipients.push('mail@example.com');\n this.$set(this.params, 'recipients', this.params.recipients);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailAction.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailAction.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmailAction.vue?vue&type=template&id=5110d70f&\"\nimport script from \"./EmailAction.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailAction.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{ref:\"hc-wrapper\",staticClass:\"chart-rounded deviceBackground\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"chart-rounded__header\"},[_c('div',[_vm._v(_vm._s(_vm.$t('anomalyDetection.StreamAnomalyDetection.previewName')))]),_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false))],1),_c('highcharts',{ref:\"hc\",attrs:{\"constructor-type\":'stockChart',\"options\":_vm.chartOptions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Chart } from 'highcharts-vue';\nimport stockInit from 'highcharts/modules/stock';\nimport Highcharts from 'highcharts';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\n\nstockInit(Highcharts);\n\n@Component({\n components: {\n highcharts: Chart,\n DeviceDescription,\n },\n})\nexport default class StreamAnomalyDetection extends Vue {\n chartWidth: null | number = null\n\n get description() {\n return this.$t('anomalyDetectionDescriptions.StreamAnomalyDetection');\n }\n\n get chartOptions() {\n return {\n chart: {\n animation: false,\n backgroundColor: this.$vuetify.theme.currentTheme.deviceBackground,\n width: this.chartWidth,\n },\n exporting: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n navigator: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n series: [\n {\n name: 'Temperature',\n type: 'spline',\n yAxis: 0,\n color: '#0037FF',\n data: [\n [951861600000, 1200],\n [951948000000, 2000],\n [952034400000, 900],\n [952120800000, 1950],\n [952207200000, 600],\n [952293600000, 600],\n [952380000000, 1900],\n [952466400000, 800],\n [952552800000, 1900],\n [952639200000, 800],\n [952725600000, 1750],\n [952812000000, 500],\n [952898400000, 500],\n [952984800000, 1700],\n [953071200000, 1000],\n ],\n },\n {\n name: 'AnomalyScore',\n type: 'line',\n yAxis: 1,\n color: '#FF0000',\n data: [\n [951861600000, 5],\n [951948000000, 4],\n [952034400000, 6],\n [952120800000, 5],\n [952121200000, 5],\n [952207200000, 6],\n [952293000000, 22],\n [952293600000, 4],\n [952294000000, 5],\n [952380000000, 6],\n [952466400000, 7],\n [952552800000, 4],\n [952639200000, 6],\n [952725600000, 6],\n [952812000000, 6],\n [952898400000, 20],\n [952984800000, 4],\n [953071200000, 6],\n ],\n },\n ],\n legend: {\n enabled: true,\n itemStyle: {\n color: this.$vuetify.theme.dark ? '#ffffff' : '#000000',\n },\n },\n plotOptions: {\n series: {\n connectNulls: true,\n },\n },\n xAxis: {},\n yAxis: [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n min: 0,\n max: 2000,\n lineColor: '#0037FF',\n labels: {\n format: '{value} kW',\n style: {\n color: '#0037FF',\n },\n },\n },\n {\n title: null,\n plotLines: [{\n value: 25,\n color: '#cccc00',\n dashStyle: 'solid',\n width: 2,\n label: {\n text: 'Threshold (0-100%)',\n align: 'right',\n y: -5,\n x: -10,\n },\n }],\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#FF0000',\n labels: {\n format: '{value} %',\n style: {\n color: '#FF0000',\n },\n },\n },\n ],\n };\n }\n\n async mounted() {\n await this.$nextTick();\n this.chartWidth = (this.$refs['hc-wrapper'] as any).$el?.clientWidth;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StreamAnomalyDetection.vue?vue&type=template&id=4bcb55a6&\"\nimport script from \"./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"\nexport * from \"./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=style&index=0&id=6502b2e2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=style&index=0&id=ea49509e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterComponentSettings.vue?vue&type=style&index=0&id=55d9c6ce&prod&lang=css&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddUserToChargeStationWindow.vue?vue&type=style&index=0&id=4254ce48&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=style&index=0&id=374e20e2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=style&index=0&id=6ff56f28&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-switch',{staticClass:\"pa-0 ma-0 switch-mock\",attrs:{\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\"},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class SwitchMock extends Vue {\n state = false\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchMock.vue?vue&type=template&id=3af2c858&\"\nimport script from \"./SwitchMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./SwitchMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SwitchMock.vue?vue&type=style&index=0&id=3af2c858&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/StringInverter.e51f387c.png\";","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{style:(_vm.dialog ? 'z-index: 9000;' : null),attrs:{\"overlay-opacity\":\"0.8\",\"max-width\":_vm.maxWidth,\"width\":_vm.width,\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),!_vm.disabled ? on : null),[_vm._t(\"activator\")],2)]}}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[(_vm.persistent || _vm.dialog)?_c('v-card',{staticClass:\"modal-window\"},[_c('div',{staticClass:\"modal-window__header\"},[_c('div',{staticClass:\"modal-window-header-title\"},[_vm._t(\"title-text\")],2),_c('div',{staticClass:\"pb-2\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\",\"disabled\":_vm.disableCloseButton},on:{\"click\":_vm.closeDialog}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"modal-window__body\",style:(_vm.bodyStyle)},[_vm._t(\"body\")],2),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t('uiComponents.dialog'),\"additional-information\":_vm.$t('uiComponents.routeLeave.text')},on:{\"handleRouteChange\":_vm.onConfirmationDialogClose}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\n\n@Component({\n components: { LeaveConfirmationModal },\n})\nexport default class ModalWindow extends Vue {\n @Prop({ default: null }) maxWidth!: number | string;\n @Prop({ default: true }) padding!: boolean;\n @Prop({ default: false }) disableCloseButton!: boolean;\n @Prop({ default: false }) disabled!: boolean;\n @Prop({ default: false }) persistent!: boolean;\n @Prop({ default: 'unset' }) width!: string | number;\n @Prop({ default: false }) isConfirmationDialog!: boolean;\n\n dialog = false;\n\n bodyStyle = {\n padding: this.padding ? '20px' : '0',\n };\n\n @Watch('dialog')\n dialogChange(status: boolean) {\n this.$emit('dialogStatus', status);\n }\n\n onConfirmationDialogClose() {\n this.dialog = false;\n }\n\n async closeDialog() {\n if (this.isConfirmationDialog) {\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction();\n } else {\n this.dialog = false;\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalWindow.vue?vue&type=template&id=3fa8afd3&scoped=true&\"\nimport script from \"./ModalWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModalWindow.vue?vue&type=style&index=0&id=3fa8afd3&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fa8afd3\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=style&index=0&id=5041dcb5&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=style&index=0&id=bf42dada&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultButton.vue?vue&type=style&index=0&id=d2ef7fe4&prod&lang=scss&scoped=true&\"","import axios, { ResponseType } from 'axios';\nimport Vue from 'vue';\nimport { envApi, envMpcApi } from '@/utils/env';\nimport i18n from '@/ui/plugins/i18n';\nimport { app } from '@/store/modules/app';\n\nexport default class API {\n /**\n * Fetch data from lynus API\n * @param {string} url request URL path\n * @param {'GET'|'POST'|'PUT'|'DELETE'} method request method\n * @param body\n * @param {object} headers request headers\n * @param responseType\n */\n static fetch(url: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE', body?: unknown, headers?: any, responseType?: ResponseType): Promise {\n return new Promise((resolve, reject) => {\n axios({\n baseURL: envApi,\n url,\n responseType,\n headers: {\n authorization: `Bearer ${Vue.prototype.$keycloak.token}`,\n ...headers,\n },\n method,\n data: body,\n })\n .then(res => resolve(res.data))\n .catch(err => {\n const handledErrors = [400, 401, 500];\n if (handledErrors.includes(err.response.status)) {\n (app.mutations as any)?.setReport({ type: 'error', message: i18n.t(`errorMessages.apiErrorTexts.${err.response.status}`), value: true });\n } else {\n (app.mutations as any)?.setReport({ type: 'error', message: err.message, value: true });\n }\n reject(err);\n });\n });\n }\n\n /**\n * Fetch data from staging API\n * @param {string} url request URL path\n * @param {'GET'|'POST'|'PUT'|'DELETE'} method request method\n * @param body\n * @param {object} headers request headers\n */\n static fetchMPC(url: string, method: 'GET' | 'POST' | 'PUT' | 'DELETE', body?: unknown, headers?: any): Promise {\n return new Promise((resolve, reject) => {\n axios({\n baseURL: envMpcApi,\n url,\n headers: {\n authorization: Vue.prototype.$keycloak.token,\n ...headers,\n },\n method,\n data: body,\n }).then(res => resolve(res.data)).catch(err => reject(err));\n });\n }\n}\n","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleSystemsCharts.vue?vue&type=style&index=0&id=3f794120&prod&lang=scss&scoped=true&\"","import api from '@/services/api';\nimport { IProject } from '@/types/project.types';\n\nexport default {\n async fetchProjects() {\n return api.fetch('/projects', 'GET');\n },\n\n async fetchProject(projectId: string) {\n return api.fetch(`/projects/${projectId}`, 'GET');\n },\n\n async createProject(project: IProject) {\n return api.fetch('/projects', 'POST', project);\n },\n\n async updateProject(project: IProject) {\n return api.fetch(`/projects/${project.id}`, 'PUT', project);\n },\n\n async deleteProject(projectId: string) {\n return api.fetch(`/projects/${projectId}`, 'DELETE');\n },\n\n async resetQR(projectId: string) {\n return api.fetch(`/projects/${projectId}/join/reset`, 'POST');\n },\n\n async fetchProjectDocuments(projectId: string) {\n return api.fetch(`/projects/${projectId}/documents`, 'GET');\n },\n\n async deleteProjectDocument(projectId: string, fileId: string) {\n return api.fetch(`/projects/${projectId}/documents/${fileId}`, 'DELETE');\n },\n\n async disableQR(projectId: string) {\n return api.fetch(`/projects/${projectId}/join/disable`, 'POST');\n },\n\n};\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeSlider.vue?vue&type=style&index=0&id=28271260&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModalWindow.vue?vue&type=style&index=0&id=3fa8afd3&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=77e65c3c&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=style&index=0&id=444c636c&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=style&index=0&id=32d3b8d8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=830a4982&prod&lang=scss&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=03a69a60&prod&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB7CAMAAAC/xSxTAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL0UExURX5+fnt7e1JSV+Tk5FJSUm9vb3BwcPLy8v///xYWFmV2fhsaG+Hh4ZiYmFJSU///q1sWFnBwgC0tLajY8ry8vPLyv25fUpNwcNHR0RkYGFdSUsfHx4CAgH59b35+dn5+fTWC1FNfboyMjOrq6p6enn1+fhZaq1NSUnh+fn51ZbCwsO3t7UFBQcjIyI6OjmVXUlxSUm59fh4cHlJSX/b29vPz8/z8/L+/vygoJ9bW1lur/3ZlV///+GBvfVJTW3t+fnlpWlZkdH59ehYWNWBgYFlZWV9TUKmpqVpaWhYWGVtqeoLU/zQ0NMzMzDAwMLi4uP+rW8PDw7u7u1FRUXJxcX55alJWY9vb22BUUtSCNX1uX1JZaGp5fl5eXoKCgu/v711YVHJjVnJ+fq2trVJca/n//8t6MEE9QXCTv5eXl/r6+jEbF21iWxYYT7+TcHpxaHRqXoaGhmpbUvPy7v/un08YFrb7/xYgZyAYFh0kNZOTk+fn56WlpZ3t/3h3dkKP4j4WFnx4b1RYW2ZxeVlibnBhUyIiIn58a3B3fi14ynd6iPXw41Gg7i0WHdv6////7v/9z5lPH//Ug/384nUqFv/47yNqvOT4/2m6/VUWFqhbGmVlZV1mcmFsdm1tbXV7fVleaGNyffDw9ufx8md0e+7y8mJXUpWrvIzQ+xpKmsqigp6xzP/fjEFtnf/KeMr//4hycO/btBkYPhYteI5BFu+gUBYkX2IcFuO6gpXF6q/v/+3Cif//xBY1giM8XlAkFv/4pBYYKLpoIJvR9dT////21xssUPLyxdTM0p17e9Lw+byCUNucWubNl6HP75iJfrVlIMB4RVAzIzV9vO/p3c67qM7a5jBforHa8lCCvNTm7dq+pMjl+bdzOry8n4zf/+////mrW++vX//5tSBltaC7eEVtpeG3c0N9t9Gyl82STnM6GUI4Y6JtRaLSnf+6aFk8I3nL9jpzvII1Fv/fn0snGUVXbLiNd2Ol29KSToKYpKSkcErdNfgAAAbYSURBVHja7dxnWFNXGAfwg0ng3F4IGi3NImHInmIIoFEwgoAyZIoLXGAD2io4cFRw7z1r7VKLu1WrVVurVbv33nvvvful514SSESfpy25uefS9/8hJDcQed6f57zn3JCLMISeIOzfnWGY3DmfroNiUKERjvHWLxtXOh8eOXgYuR3O9IMKiaBhvwUNOjQeunkbxo98U0fmrN+r8U4yeTH9RnK3QRg/8L0m99wlTuylp+oGD6uZehP5gbvXroHqCaSx+p3j+0nZJ5+p3vpH0g7XsbGp+cftm3cSAv/uua89ifHh5iaMLc/PngXVE6iLMxeOOLq4f/cgV42LXN1nzGwiz2yrJo83n7j3HvJ4JRRPqLFhOfbVffeTqeq3IapUjavGhp/CicHZLdtanUhOsjvwyePvQfEE6xv4u8Ym/PP5C7/++Vezq4b/KYZPeJvGR6c+3nziwPtQPOE0NtUF4Ytcf758pjq7Jdx5DuNSM/WTtTugdgJqfKBZg3c++DC3uiI1H85rbKojGus3ckddNA43LyOtAyLY7u+Z86Rv1Az+wXL6F25RS9avlt2kVQdVN1R/mPT5dstnX19q11i/MbcJSifgmmrOkbdJw97YmHvuW25srH+hkTmwzvJ0HTN7luX0ixpmzhvb2zVwDSxvBdL4D9mwBZa3lGhYdltad+MQCjRmzGQe3Q+Fo2emgoAGaEBAAzQgoAEBDZo1zKZkH4jISTaZeY1aKAUdqSUaZigDLTFjZIIq0BITRtAz6OkdGEER6AlogAYENEADAhqgAflXmVepKI0GDUpSqSDpBRpUZASHobCBBkUafqBBR+I5jXzQoCNVvb1QPnRxWOFCrjQ2pqtBg5LY6OkbcfE5eQzFycuJjxO2AjJq1lTRWaksq6FZQ8OyqVnR/4f9hlqhYlWZthSap5EUWyb5JRVqAf8JPRV78cLYpAIvnSw0hmaNmFCZzqsgKbZQwKlKryidKHYXL5zMlhTL1NkhekRx9CHZallxCTu50LPV8bCGOpYdW5TmhyQQv7SisWyscJNVmt98mcgaiqSSIh2SSHRFJUkKoSoxkbSNBb6iakSrCorTkGSSVlygEmhlFcqvqXqLqpHFesn8pKPhJ/Nis7rsCjcuVaVTIwlFrVOlCrMNrFrAaUSLqRHPZsqypaSRLctk4wX6n1mqUIRUiamRw9pCQ6SkERJqY3OE2tP4ysRd4eZpUmL0UtLQx6Ro8rrqfoNhfHyQpNL6O4MGaIAGaFCv4QsaFGmoJoIGPRoMMx00KNJgbgMNijSYW0CDIg2mFDQ6m7Jxu9ylwcz1nMZjT3h1yKrX6dPI6HaN/Z5hilauXHRrOv/AeOO4CLnyjhX8A3JfuWgxd88aMHCM2zSYfI9pXHudd4f06EmZhnHBNK1DI7BCzieY5+gfwT/gn4zScnd5hijtIOQ+jbEe1Oixr5dL3j1Km0bgEEfBScbLBy5Ot06LUA4gD5YnKoNvRwtb5KMjEVqqHJRuHS8nDtb6vn3cqMHoPKjRVvvVj++xH/nCdohSjcAKnsE4Xh4cRuYvngGVJZJnDQncsChLnJROhsZQ5E4No8c1Xn7luVU9HUdu8L6esr4RYNeI0pZPaP8aIOfLbuS+GhK4AbE8cXSkofNDw1Uj1sMaDQdLvXs860O/xij5pLDW8UIqbkiwH+1P5idrPTc2orTBaFTEUOM0rbzbkkg3aSzz9NhIPnbUe8WZuySgEYyurEFulkRaySgx1JdPyOC7+6Aw92gwntZYfbB01b5XJa1RlsgJ9O0zSjnU0NJtb1hZYicmLFHHRsNbh960PyHVmap1v1E+xpBQHsn3crLIulOafcMpHY/Q38Xr5Y5FlBFlkEUX1z04owGSW1NJYPfnpHH1Fa5jOdxCDtk1lAMkt9+QlsYVdn9G++7PfgqFeyKwYuBetLCiE6dHxNmLN8h8O2YPxRqBLc5nRjKczozYxw7XMYxLnb5HQueppHION+AfnDVsPbvId24r901u2m948BxuFzujbpiyK90tLwTvb8B7f6AB74vD34yABvw9laQ14G8NadLwAY0urzFfXxkHGpRo5JNXrxRVAz7b1J4U7vVjxNSAz/21Z950hHqLOjbgM7FOkfXSVYmqAZ8Xp2lNBddSaB8ZXP8U+YpIcJ0RR0Zwry9u34Br8LSFX82IrQHXp2oLBRpw7TaqNOC6hlRpwDU/qdKA6+G2dfHK+RRowLWi7StcFEKFBoTf/aG5oEFxQAM0IKABGhDQAA0IaIAGBDRAAwIaoAEBDcjlGslQBFqSjJEJqkBLTBiZoQq0xIwRroUy0JFaTDSw2QS9Q/yeYTJjXgNCTf4GOcfNdaK3+DwAAAAASUVORK5CYII=\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchBase.vue?vue&type=style&index=0&id=25f5924c&prod&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB6CAMAAACfrkT1AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADAFBMVEXy8vLX19cWNYJbq/9vb29+fn4WFhb////V1dVwcHDU//+rWxY1Fhb/1ILf398WW6vj4+NbFhb//6vv7++AgIB2dnbq6uqoqKiTk5Pk5OT6+vrt7e3a2tqdnZ2C1P8WFjV7e3s1gtT//9XVgjW9vb3///nZ2dmDg4OCNRa2trbw8PDp6en19fXz8/P29vb8/PyxsbFycnKOjo7i4uL5////q1saFhb//+7n5+cXKXQWGSTE//8WFhm/v7/kkEP2//+sWxmWlpaLi4uYmJisrKzT09N6MRaXl5cWFisjGxbLy8siabr///aGhoYkFhigoKAWF0JNnO+q/f8WFlovHxnc8vvEcykrdsiPQhYWGB+6//8WIGgXQ5GlpaX/757IyMj9y3j//87Pz8/Ozs6SkpIrFhb/+dvh9v/m//9oIBZZPCNEkeT/xHP7z4A6c7f45LtVkcodJTwXJE2cThZgode85fnO+P+Q5P9Bj98WFzr/+eX5p1hzxP+GOxhzKRb//8QfGBb//7r/umh6zP9SGBaG2f/b29vc3Nzvn08jFiDDw8P2y5bFxcWlbUWX0vA6GRmrWyT/9u4rQm3//+RcLxxFMSEWM300dr4zUIKkYTLXl1Bquf81gM3w+f/en1oXJmuHVDe6aCAiRXr/+c3/4o4iNVT74ayIs72+8f///99BFhbN//9WpOiQ3//5//hlqd7w0qLos2dlMh1bJhYrICMWFk4aIyuc7/k8JiIrFjUWPIlUFzFjXkKUlJTIl23lvIKCq+tzOh+l2/lOFhbe///525yCz/lfS4z27M3NuJi1ZSCgUBmiYzwyFhaMvOXw8Pa4///28PD/65wfL0WCYkVzQjhHgrc8WYzLeTVigq3AeEWt0vBbq+vlvIzXom1tRS+34fbLjEf/76+1bTx4rdLL16IWJFur6/9OnKulVhYZOnP/68AsUJC8jFkZX69ltfljODg1NRb/+cQyPz+6hjpzxPkgFjpotavZ///Io4LUynj/+aU4T2FQgsB3jaSkpIoeAJWIAAAHO0lEQVR42u2cd1RTVxzHg5D3uMpQQwizhmVkhREEpCAKAiJDaRWlVdwb96ijbm3VTme1rqp1tFpna13de++999579977khjIQ6MnOdxz8v38keTAy+Oc3+f97u/3u4/zNLLrtGnVWnY77dvFyMCGRq5/qIJ/GjJyfPOHLV5YcT46Et4Zly3lvTajyY9vG9DnDug4u441Ay6/jH2Kcw4Vo7Pkq54dcR0uavash6sn9ks4tHb2o6rpEAwdzeuQu/a8kl+56tf+hehYM6DLxfTtxcdmQsd567j19v4ye6Vh+eqWcmnK5EIW+U/eW5j/9Uw5TqLEyIEBvoqOOd8cl6Rj/4yR27Bf0B9eMy47f8rBLJkeMv3p8ksvYSeN7bR+n01anyuY8CWyPJfqo2cIDKDfoycadV1fKW/DXqpj87vrsntOzoILRUdsJ3bVd6XRip335YzKrdU1NPL5Uz/eMiRgvC077Dp2f3+wsPIw+4WSHRNumDi68ubqWeyQvFdHW0vHk/mr9/TjHxtG+so50yQqvJZmDDuDkh05N069Pmv3kZsK27fL3/HWgdeZNcB08MDmTOuyT1684jsaqGkD6bW/ba8sDy0NdtIhK1d/sFVHQje2LPHXwIAa+1lHbcyW8l96gxpZNLa/XH/qdKvWsfOCsxx0BAbMsi1WFTQbJzzjCxdWHaynql9KL+A4vtbU0tLOI8+j3lTHnD9OH79zoU0HP4Sm1uxlyiF2Vj3xcl/p08+o3JO/L2/154mL/lpaIzvo6NxhiWPtaPxl79axYP7AMXNZPe8mcaiUZnX8WFr397//HbXpsNblzvSzU0QrP6iuyJK73nV3t5ihpTGLf13mqMPeCEBHUx1yLQ0ZW3RqlUpsa6LUdHTt+YvjYsXXM7XsYAwtpV9oWPHbqSVy7cmf2R84o2MudDSro2Hk52PZLLjc3rue0aEEyq6Dr2c7eVFxrB10fXOIaMJ998vWrKPF4yd6SMOJH761nlZZ3+yVBjqcdCwae2zFJvr+4dEd78uTXple6KCjfunmrBey7DqW1+0/cOiIFMwqzv6E5xp1VvaI7pyXN7mf/PjGvLepmi9YW7VgvlRj1ZHz1PqZq7bwzmrSA6yzgo4mOuTtkjKZT6JzR96GGY7ZkbC1r7TtebuOnI/K83ftYdmR82a5NPBhZe6gAhtFdM6967Klul3PsmFCmTK3806Wn/aRtdl5m/jcUbf6QWSHig4AHQA6oANAB3QA6IAOAB3QAVpGR5o5VQNamFRzmqIjArEQgwimIw1xEIU0qsOMMIiCmepA3RCnflAdiII4QAd0AOiADgAd0AEugFyTX0Y6dIiCyY8SDx1icDWz4dcdOkTSUQwdgpDJdPSCDkHQ9TZqh6OUo9EF6tlRNQw6RKE7aodAtEVnJRJRmDuEIgRTuUiEh/iRHijlaHSBGiXFg8KhQxR60NKhD4IOMUjmnVU0dKDRBU7o9ExHOnQIwuAMP78iHXSIQqQlHI0u5g4AHdABWkaHzpKLyImio8RECDH6I3Y2coM6+qvRMSjX8zp6EI4+GR444T7+zeMT7mEdBYRoS3Q+epIOE2x4iPI/O1GRHtVhJCPYKDmCdIcLjSaUh9ySFCHLEUkWdSGhHtQxjBC+KRxGwiBDE8nCHZRie2RCSpCqj0jP6YgnIfy9N3RQ2EplcXyGhWqCRHlAR9swPS3gBpsOA3TQKs5yo/EzRVTzI9ztOvwzeD9lsC1WyRg9NBrWU6U01pGi2l+5XUcY0aevtFiSaSk3GaM7agaXGTMNXt7r5jZdqppdrnLdrSOEJGqsqxSfOvhrRqJX62ALU1JTHUlqOoI8pSM5g2jLtFRFZlkZdWLwZh1sFo9oqiNCdT53/2KVaZ0C9TqNTk/Yv8/pMklGkBfrYIF2fkCYaq/rbh3XElLA3hOJlr5qlVzRGUlv6GgJHZpMQoqjLMPpOmWw0PpRYi0kJi/X4dpi5X4dkVXEgTDbBlaIl9cO10q522sHXZkSWTtVNDyaTSBKIYkcQaq8vLNyrdENcr8O3mkrr7SQWNKNvNn15laXzR0ujYHunzsUoo3p/N1ICvj84fwUB6+byl3ZJHH/VG5rdw22KcQ/Pj4+Soc9Kxe2ED2wZ2XTwWs4nTtWYsdKo+zonnuD3RM7uo460kkGbs3yXsbfhdtPnrvfYSBGPgqSaKjghPqfG8/dDSwhRJ9JOyqTDias+dGi98qV/dxi2HCo5y35nyQ+hrJ43HhqMn+05P9ZAQ8CHdABGINCTL2gQxR6abVaE3SIQgHVoY2EDlH6sSqtNhrZIc7AEj9YBx3orIAzbUNo6cADlEThKlbJUTtEIbQIOoQCOqADQAd0gAso5aZB0CFQo6stgg6BxkDtPdAhMtABHQA6oANAB3QA6IAOAB3QAaADQAd0gLPrSEUURCGV6jAjDKJgpjrSEAZRSKM65AjEQQwiZKZDTjOjfrR83TCnURX/AxepQftdyPl3AAAAAElFTkSuQmCC\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=style&index=0&id=104f6b50&prod&lang=scss&scoped=true&\"","import { toSeconds } from '@/utils/utilsFunctions';\n\nexport function isDot(method) {\n return method === '*' || method === '/';\n}\n\nexport function isVariable(calculationElement) {\n return calculationElement.agg !== undefined && calculationElement.agg !== null;\n}\n\nexport function isView(chartOptions) {\n return chartOptions?.seriesType !== 'Calculation';\n}\n\nexport function isCalculation(chartOptions) {\n return chartOptions?.seriesType === 'Calculation';\n}\n\nexport function isNumber(number) {\n return !Number.isNaN(number);\n}\n\nexport function calc(val1, val2, method) {\n switch (method) {\n case '+': return val1 + val2;\n case '-': return val1 - val2;\n case '*': return val1 * val2;\n case '/': return val1 / val2;\n default: return 0;\n }\n}\n\n/**\n * Returns an alternative name for the series to display in the chart legend.\n * @param {number} index\n * @param {object} device device data\n * @return {string|unknown}\n */\nexport function getAlternativeVariableName(index, device) {\n if (device.data.mappings) {\n // old chart mappings -> return mapped variable as name\n return Object.values(device.data.mappings)[index];\n }\n\n if (isView(device.data.chartOptions[index])) {\n // dealing with new chartoptions and type is view -> return mapped variable name\n return device.data.chartOptions[index].var;\n }\n\n // dealing with new chartoptions and type is calc -> return \"calc_{index}\"\n return `Calculation_${index}`;\n}\n\n/**\n * Returns the respective object containing the chart options.\n * For older charts, this is the data.options object's values (an array).\n * For newer charts, it is data.chartOptions (an array).\n * @param {object} device device data\n * @return {unknown[]|*}\n */\nexport function getChartOptions(device) {\n return device.data.options\n ? Object.values(device.data.options)\n : device.data.chartOptions;\n}\n\n/**\n * Returns live period bounds\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getLiveBounds() {\n const date = new Date();\n const now = toSeconds(date.getTime());\n const start = now - 900;\n\n return { start, end: now, endChart: now };\n}\n\n/**\n * Returns hour period bounds\n * @param {Date} date\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getHourBounds(date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n const hour = date.getHours();\n const minute = date.getMinutes();\n\n const start = toSeconds(new Date(year, month, day, hour, minute).getTime());\n const end = toSeconds(new Date(year, month, day, hour + 1, minute).getTime());\n\n return { start, end, endChart: end };\n}\n\n/**\n * Returns day period bounds\n * @param {Date} date\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getDayBounds(date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n const day = date.getDate();\n\n const start = toSeconds(new Date(year, month, day).getTime());\n const end = toSeconds(new Date(year, month, day + 1).getTime());\n\n return { start, end, endChart: end };\n}\n\n/**\n * Returns week period bounds\n * @param {Date} date\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getWeekBounds(date) {\n const month = date.getMonth();\n const year = date.getFullYear();\n const firstDayOfWeek = date.getDate() - date.getDay() + 1;\n const start = toSeconds(new Date(year, month, firstDayOfWeek).getTime());\n const end = toSeconds(new Date(year, month, firstDayOfWeek + 7).getTime());\n\n return { start, end, endChart: end };\n}\n\n/**\n * Returns month period bounds\n * @param {Date} date\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getMonthBounds(date) {\n const year = date.getFullYear();\n const month = date.getMonth();\n\n const start = toSeconds(new Date(year, month, 1).getTime());\n const end = toSeconds(new Date(year, month + 1, 1).getTime());\n const endChart = toSeconds(new Date(year, month + 1).getTime());\n\n return { start, end, endChart };\n}\n\n/**\n * Returns year period bounds\n * @param {Date} date\n * @return {{start: number, end: number, endChart: number}}\n */\nexport function getYearBounds(date) {\n const year = date.getFullYear();\n\n const start = toSeconds(new Date(year, 0).getTime());\n const end = toSeconds(new Date(year + 1, 0).getTime());\n\n return { start, end, endChart: end };\n}\n\nexport function getRoundedDate(minutes, d) {\n const ms = 1000 * 60 * minutes; // convert minutes to ms\n const roundedDate = new Date(Math.round(d.getTime() / ms) * ms);\n\n return roundedDate;\n}\n\nexport function checkAllScalingsEqual(chartOptions) {\n const allMinScalings = chartOptions.map((e) => e.scaling.min);\n const allMaxScalings = chartOptions.map((e) => e.scaling.max);\n const allUnits = chartOptions.map((e) => e.unit);\n const allEqual = arr => arr.every(val => val !== null && val === arr[0]);\n\n return allEqual(allMinScalings) && allEqual(allMaxScalings) && allEqual(allUnits);\n}\n\nexport const Periods = {\n LIVE: 'live',\n HOUR: 'hour',\n DAY: 'day',\n WEEK: 'week',\n MONTH: 'month',\n YEAR: 'year',\n FORECAST6H: 'forecast6h',\n FORECAST24H: 'forecast24h',\n};\n\n/**\n * Dict of periodConfigurations. Access with periodConfigurations[\"day\"] etc.\n */\nexport const periodConfigurations = {\n live: {\n title: Periods.LIVE,\n interval: '10s',\n intervalInSeconds: 10,\n period: () => {\n const date = new Date();\n const now = Math.trunc(date.getTime() / 1000);\n const start = now - 900;\n\n return {\n start,\n end: now,\n endChart: now,\n };\n },\n tickInterval: 2 * 60 * 1000,\n tooltipFormat: '%H:%M:%S',\n format: '%H:%M',\n },\n hour: {\n calendarType: 'date',\n title: Periods.HOUR,\n interval: '5s',\n intervalInSeconds: 5,\n period: () => {\n const date = new Date();\n const now = Math.trunc(date.getTime() / 1000);\n const start = now - 3600;\n\n return {\n start,\n end: now,\n endChart: now,\n };\n },\n tickInterval: 5 * 60 * 1000,\n format: '%H:%M',\n multiSelectFormat: '%H:%M',\n tooltipFormat: '%H:%M:%S',\n multiSelectTooltipFormat: '%H:%M:%S',\n },\n day: {\n calendarType: 'date',\n title: Periods.DAY,\n interval: '5m',\n intervalInSeconds: 300,\n period: () => {\n const date = new Date();\n const now = Math.trunc(date.getTime() / 1000);\n const start = Math.trunc(date.setHours(0, 0, 0, 0) / 1000);\n\n return {\n start,\n end: now,\n endChart: start + 90000,\n };\n },\n tickInterval: 4 * 3600 * 1000,\n format: '%H:%M',\n multiSelectFormat: '%H:%M',\n tooltipFormat: '%H:%M',\n multiSelectTooltipFormat: '%H:%M',\n },\n week: {\n calendarType: 'date',\n title: Periods.WEEK,\n interval: '1h',\n intervalInSeconds: 3600,\n period: () => {\n const date = new Date();\n let selectedDay = null;\n let now = null;\n let start = null;\n if (date.getDay() === 0) {\n selectedDay = (date.getDay());\n now = Math.trunc(date.getTime() / 1000); // day from sunday on, mon = 1\n start = Math.trunc(date.setHours(0, 0, 0, 0) / 1000);\n start -= (86400 * 7);\n } else {\n selectedDay = (date.getDay()) - 1;\n now = Math.trunc(date.getTime() / 1000); // day from sunday on, mon = 1\n start = Math.trunc(date.setHours(0, 0, 0, 0) / 1000);\n start -= (86400 * selectedDay);\n }\n\n return {\n start,\n end: now,\n endChart: start + (86400 * 7), // 1 week\n };\n },\n tickInterval: 24 * 3600 * 1000,\n format: '%a %d. %b',\n multiSelectFormat: '%a',\n tooltipFormat: '%A, %H:%M',\n multiSelectTooltipFormat: '%A',\n },\n month: {\n calendarType: 'month',\n title: Periods.MONTH,\n interval: '6h',\n intervalInSeconds: 21600,\n period: () => {\n const date = new Date();\n const start = new Date(date.getFullYear(), date.getMonth(), 1);\n const end = new Date(date.getFullYear(), date.getMonth() + 1, 1);\n\n return {\n start: Math.trunc(start.getTime() / 1000),\n end: Math.trunc(date.getTime() / 1000),\n endChart: Math.trunc(end.getTime() / 1000),\n };\n },\n tickInterval: 24 * 3600 * 1000,\n format: '%d.%b',\n multiSelectFormat: '%d',\n tooltipFormat: '%d.%m',\n multiSelectTooltipFormat: '%d',\n },\n year: {\n title: Periods.YEAR,\n interval: '1d',\n intervalInSeconds: 86400,\n period: () => {\n const date = new Date();\n const now = Math.trunc(date.getTime() / 1000);\n\n const start = new Date(date.getFullYear(), 0);\n const endChart = new Date(date.getFullYear() + 1, 0);\n\n return {\n start: Math.trunc(start.getTime() / 1000),\n end: now,\n endChart: Math.trunc(endChart.getTime() / 1000),\n };\n },\n format: '%B %Y',\n multiSelectFormat: '%B',\n tickInterval: 30 * 24 * 3600 * 1000,\n tooltipFormat: '%m.%y',\n multiSelectTooltipFormat: '%m',\n },\n forecast6h: {\n title: Periods.FORECAST6H,\n interval: '5m',\n intervalInSeconds: 300,\n period: () => {\n let date = new Date();\n\n date = getRoundedDate(15, date);\n const start = Math.trunc(date.getTime() / 1000);\n\n const end = start + 21600; // 6 hours after start\n\n return {\n start,\n end,\n endChart: end,\n };\n },\n tickInterval: 0.5 * 3600 * 1000, // 1/2 h interval\n format: '%H:%M',\n multiSelectFormat: '%H:%M',\n tooltipFormat: '%H:%M',\n multiSelectTooltipFormat: '%H:%M',\n },\n forecast24h: {\n title: Periods.FORECAST24H,\n interval: '5m',\n intervalInSeconds: 300,\n period: () => {\n let date = new Date();\n\n date = getRoundedDate(15, date);\n const start = Math.trunc(date.getTime() / 1000);\n\n const end = start + 21600 * 4; // 24 hours after start\n\n return {\n start,\n end,\n endChart: end,\n };\n },\n tickInterval: 0.5 * 3600 * 1000, // 1/2 h interval\n format: '%H:%M',\n multiSelectFormat: '%H:%M',\n tooltipFormat: '%H:%M',\n multiSelectTooltipFormat: '%H:%M',\n },\n};\n\nexport const langLoadingTexts = {\n 'de': 'Laden...',\n 'en': 'Loading...',\n 'it': 'Caricamento...',\n};\n\nexport function getDateBoundsByPeriod(date, period) {\n const inputDate = new Date(date * 1000);\n switch (period) {\n case Periods.HOUR:\n return getHourBounds(inputDate);\n case Periods.DAY:\n return getDayBounds(inputDate);\n case Periods.WEEK:\n return getWeekBounds(inputDate);\n case Periods.MONTH:\n return getMonthBounds(inputDate);\n case Periods.YEAR:\n return getYearBounds(inputDate);\n default: throw new Error('Invalid period.');\n }\n}\n","import moment from 'moment-timezone';\nimport { clamp, isNil } from 'lodash';\nimport { TranslateResult } from 'vue-i18n';\nimport i18n from '@/ui/plugins/i18n';\nimport { IRule, IRuleActions, IRuleActionsEmailParams } from '@/types/rules.types';\nimport { IMember } from '@/types/members.types';\nimport { IDragNDropElementPosition } from '@/types/app.types';\nimport { HasId } from '@/types/common.types';\n\n/**\n * This function converts a time parameter to the time in minutes. Starting from 00:00 = 0 to 24:00 = 1.440.\n * Times will be in UTC Time !\n * @param time is a string in the format of HH:MM\n * @returns time in minutes as number\n */\nexport function timeToMinutes(time: string) {\n const splitElement: string[] = time.split(':');\n\n if (splitElement.length !== 2) {\n return 0;\n } else {\n const hours = Number.parseInt(splitElement[0], 10);\n const minutes = Number.parseInt(splitElement[1], 10);\n\n return (hours * 60) + minutes;\n }\n}\n\n/**\n * This function converts a time in minutes to the time in format HH:MM. Starting from 00:00 = 0 to 24:00 = 1.440.\n * Times will be in UTC Time !\n * @param minutes as number\n * @returns time is a string in the format of HH:MM\n */\nexport function minutesToTime(minutes: number) {\n const hours: any = Math.trunc(minutes / 60);\n const min = minutes - hours * 60;\n return `${hours < 10 ? `0${hours}` : hours}:${min < 10 ? `0${min}` : min}`;\n}\n\n/**\n * Calculates the number of pages from the given itemCount and itemsPerPage.\n * @param itemCount number of items in the complete list\n * @param itemsPerPage number of items that should be shown per page\n * @returns number of pages\n */\nexport function calculatePageCount(itemCount: number, itemsPerPage: number) {\n if (itemCount === 0) {\n return 0;\n }\n\n if (itemCount % itemsPerPage === 0) {\n return Math.trunc(itemCount / itemsPerPage);\n } else {\n return Math.trunc(itemCount / itemsPerPage + 1);\n }\n}\n\n/**\n * Formats the given date according to the passed format and returns it as a string.\n * @param date Date object\n * @param format Date format string, e.g. \"dd.MM.yyyy\"\n */\nexport function formatDate(date?: any, format = 'DD.MM.yyyy'): string {\n if (date instanceof Date) {\n return moment(date as Date).format(format);\n }\n\n return '';\n}\n\n/**\n * Converts the given date object to seconds since epoch.\n * @param date Date object\n */\nexport function toSecondsSinceEpoch(date?: Date): number | undefined {\n if (date instanceof Date) {\n return Math.floor(date.getTime() / 1000);\n }\n\n return undefined;\n}\n\n/**\n * Converts the given timestamp in milliseconds to seconds.\n * @param timestamp timestamp in milliseconds\n */\nexport function toSeconds(timestamp: number): number {\n return Math.floor(timestamp / 1000);\n}\n\n/**\n * Converts a date string form the v-datepicker with format 'yyyy-MM-DD'\n * into a JavaScript Date object.\n * @param dateString The date string from the date picker with format 'yyyy-MM-DD'\n */\nexport function fromDatePickerString(dateString: string): Date {\n return moment(dateString).toDate();\n}\n\n/**\n * Formats the given Array of date strings into a proper string, respecting\n * the given period. Normally, `dateArray` contains only one element, which is the date.\n * Only in the case of week, `dateArray` contains two elements, which are used to\n * display \" - \" of the week.\n * @param periodName name of the period. [\"hour\", \"day\", \"week\", \"month\", \"year\"]\n * @param dateArray array of string dates, e.g. [\"2022-01-01\", \"2020-04-21\"]\n * @returns a string containing the formatted date output.\n */\nexport function formatDateForPeriod(periodName: string, dateArray: string[]): string {\n let format: string;\n switch (periodName) {\n case 'hour':\n format = 'HH:mm - DD. MMM yyyy';\n break;\n case 'week':\n format = 'DD. MMM';\n break;\n case 'month':\n format = 'MMM yyyy';\n break;\n case 'year':\n format = 'yyyy';\n break;\n default:\n format = 'DD. MMM yyyy';\n break;\n }\n\n return dateArray.map((d) => formatDate(fromDatePickerString(d), format)).join(' - ');\n}\n\n/**\n * Retrieve the array key corresponding to the largest element in the array.\n *\n * @param {Array.} array Input array\n * @return {number} Index of array element with largest value\n */\nexport function argMax(array: any[]) {\n return array.map((x, i) => [x, i]).reduce((r, a) => (a[0] > r[0] ? a : r))[1];\n}\n\n/**\n * Call time_is_out message if promise not return something in 15 seconds\n * @param promisesList array of promises\n * @param reportFn setReport function\n * @param reportArgs report message options\n */\ntype Report = {\n type: string;\n message: TranslateResult;\n value: boolean;\n}\n\nexport async function requestWithTimer(\n promisesList: Promise[],\n reportFn: Function,\n reportArgs: Report,\n) {\n const delay = new Promise((resolve) => {\n setTimeout(() => resolve('time_is_out'), 15000);\n });\n await Promise.race([delay, Promise.allSettled(promisesList)])\n .then((res) => {\n if (res === 'time_is_out') reportFn(reportArgs);\n });\n}\n\n/**\n * Round to n decimal places\n * @param value numeric value to round\n * @param decimal_places number of decimal places\n */\nexport function roundNumber(value: number, decimal_places = 2) {\n return Math.round(value * (10 ** decimal_places)) / (10 ** decimal_places);\n}\n\n/**\n * map measurements list,\n * remove all measurements which name length = 0,\n * set value rounded if it has to many numbers after comma,\n * if the value is a string and is longer than 30 characters, truncates it\n */\nexport function mapMeasurementsList(measurements: any) {\n return Object.entries(measurements).map((meas: any) => {\n const value: any = meas[1];\n const roundedValue = (value: any) => {\n return Math.round(value * 1e2) / 1e2;\n };\n const actualValue = (value: any) => {\n if (typeof value === 'number') return roundedValue(value);\n if (typeof value === 'string') return value.slice(0, 30);\n return value;\n };\n return { name: meas[0], value: actualValue(value) };\n }).filter((meas: {name: string; value: string}) => meas.name.length);\n}\n\n/**\n * Change date by direction and period\n * @param timestamp Original timestamp\n * @param direction Either 'next' or 'prev'\n * @param period To change timestamp by this period\n */\nexport function changeDate(timestamp: number, direction: string, period: string): number {\n let newTimestamp = 0;\n const operator = direction === 'next' ? 1 : -1;\n const date = new Date(timestamp * 1000);\n switch (period) {\n case 'hour':\n newTimestamp = date.setHours(date.getHours() + 1 * operator);\n break;\n case 'day':\n newTimestamp = date.setDate(date.getDate() + 1 * operator);\n break;\n case 'week':\n newTimestamp = date.setDate(date.getDate() + 7 * operator);\n break;\n case 'month':\n newTimestamp = date.setMonth(date.getMonth() + 1 * operator);\n break;\n case 'year':\n newTimestamp = date.setFullYear(date.getFullYear() + 1 * operator);\n break;\n }\n return toSeconds(newTimestamp);\n}\n\n/**\n * @param deviceName name of the Rules as string\n * @param variableName name of the Variable for the condition of the rule as string\n * @param actionsBody Text that should be displayed inside the Action of the Rule as string\n * @returns returns array with one warning rule and one error rule\n */\nexport function getDefaultRulesObject(\n deviceName: string, variableName: string, actionsBody: string,\n): IRule[] {\n return [\n {\n id: '',\n name: `${deviceName} Warning Rule`,\n active: true,\n timeout: 240,\n conditions: [\n {\n variable: variableName,\n and_or: false,\n condition: 'equals',\n target: 1,\n },\n ],\n actions: [{\n type: 'alert',\n params: { type: 1, body: `{{rule}} - ${actionsBody} has a Warning` },\n }],\n created_at: '',\n },\n {\n id: '',\n name: `${deviceName} Error Rule`,\n active: true,\n timeout: 240,\n conditions: [\n {\n variable: variableName,\n and_or: false,\n condition: 'equals',\n target: 2,\n },\n ],\n actions: [{\n type: 'alert',\n params: { type: 2, body: `{{rule}} - ${actionsBody} has an Error` },\n }],\n created_at: '',\n },\n ];\n}\n\n/**\n * @param deviceName name of the Rules as string\n * @param variableName name of the Variable for the condition of the rule as string\n * @param actionsBodyText Text that should be displayed inside the Action of the Rule as string\n * @param conditionTarget target of condition as number. If this function is used for Error Warning. (1 = Warning, 2 = Error)\n * @returns Returns one basic Rule Object\n */\nexport function getSingleRuleObject(deviceName: string, variableName: string, actionsBodyText: string, conditionTarget: number) {\n return {\n id: '',\n name: `${deviceName}`,\n active: true,\n timeout: 240,\n conditions: [\n {\n variable: variableName,\n and_or: false,\n condition: 'equals',\n target: conditionTarget,\n },\n ],\n actions: [{ type: 'alert', params: { type: 1, body: `{{rule}} - ${actionsBodyText}` } }],\n created_at: '',\n };\n}\n\n/**\n * @param systemName access key for allSystems\n * @param allSystems all available systems containing a \"count\"\n * @return array of Projects that have all selected Tags\n */\nexport function hasSystem(systemName: string, allSystems: any) {\n return allSystems?.[systemName]?.count > 0;\n}\n\n/**\n * Formats the given numerical value as a string, with max 2 decimal places.\n * @param value the numerical value to format\n * @param maximumFractionDigits the maximum number of decimal places to display\n * @return the formatted value\n */\nexport function formatValue(value: number, maximumFractionDigits = 2): string {\n return Intl.NumberFormat('de-GE', { maximumFractionDigits }).format(value);\n}\n\n/**\n * Validates a given value within a range from min to max\n * @param value the numerical value to validate\n * @param min the minimum valid number\n * @param max the maximum valid number\n * @return true or the error message\n */\nexport function minMaxValidation(value: number | string, min: number | null, max: number | null) {\n let errorMessage = '';\n if (isNil(min) && isNil(max) && value) return true;\n if (!isNil(min) && !isNil(max)) errorMessage = `Value must be in the range of ${min} to ${max}`;\n else if (!isNil(min) && isNil(max)) errorMessage = `Value must be above or equal to ${min}`;\n else if (isNil(min) && !isNil(max)) errorMessage = `Value must be below or equal to ${max}`;\n return [\n (value: number | null) => (value !== null && (!isNil(min) ? value >= min : true) && (!isNil(max) ? value <= max : true)) ||\n errorMessage,\n ];\n}\n\nexport function itemsContainValue(items: any[], value: any) {\n return [items.includes(value) || 'Value must be one of the available options'];\n}\n\n/**\n * This function sorts an array of devices based on their positions.\n * The position of each device is looked up in the provided positions map.\n * If a device is not in the positions map, it's considered to have maximum x and y values, hence will be sorted last.\n *\n * @param devicesList - The list of devices to be sorted. Each device must at least have an 'id' property.\n * @param positions - A map where the key is the id of a device and the value is its position.\n * @return An array of devices sorted by their positions.\n */\nexport function sortElementsByPosition(\n { elementsList, positions }: { elementsList: T[]; positions: Record },\n): T[] {\n return elementsList.sort((a: T, b: T) => {\n const positionA = positions[a.id] || { x: Number.MAX_VALUE, y: Number.MAX_VALUE };\n const positionB = positions[b.id] || { x: Number.MAX_VALUE, y: Number.MAX_VALUE };\n // Sort by y first, then by x if y is equal\n if (positionA.y !== positionB.y) return positionA.y - positionB.y;\n else return positionA.x - positionB.x;\n });\n}\n\n/**\n * Takes an array of elements and validated if the sum is 100.\n * Each element in the array is has to have a value property.,\n *\n * @param objArray - An array of objects containing a value property.\n * @param property - name of the value property to add up.\n * @return boolean - true if all values combine to 100, false otherwise.\n */\nexport function valuesAddTo100(objArray: any[], property: string) {\n let sum = 0;\n for (let i = 0; i < objArray.length; i++) {\n if (objArray[i][property] !== undefined) {\n sum += objArray[i][property];\n } else {\n throw Error(`Object does not have a value property called: '${property}'`);\n }\n }\n return sum === 100;\n}\n\n/**\n * Takes an array of elements and converts it to an object.\n * Each element in the array is transformed into a key-value pair in the object,\n * where the key is the 'i' property of the element, and the value is the element itself.\n *\n * @param list - An array of elements.\n * @return A Record where each key is the 'i' property of an element from the array, and each value is the corresponding IDragNDropElementPosition element.\n */\nexport function convertElementsPositionsToObject(list: IDragNDropElementPosition[]) {\n return list.reduce((acc: Record, el: IDragNDropElementPosition) => {\n return { ...acc, [el.i]: el };\n }, {});\n}\n\n/**\n * Generates a comma-separated string based on the given list of string segments and a minimum length requirement.\n *\n * - Starts with the first string in the list (if available).\n * - Appends each subsequent string from the list, separated by a comma, until the generated string meets or exceeds the specified minimum length.\n *\n * @example\n * buildCommaSeparatedString(['apple', 'banana', 'cherry'], 10) // returns 'apple,banana'\n * buildCommaSeparatedString(['a', 'b', 'c'], 5) // returns 'a,b,c'\n * buildCommaSeparatedString([], 5) // returns ''\n *\n * @param {string[]} list - The list of string segments to generate the string from.\n * @param {number} minLength - The minimum length that the generated string should have.\n *\n * @returns {string} The generated comma-separated string based on the conditions specified.\n */\nexport function buildCommaSeparatedString(list: string[], minLength: number): string {\n let str = list[0] || '';\n let index = 1;\n\n while (str.length < minLength && index < list.length) {\n const nextStr = list[index];\n str = `${str},${nextStr}`;\n index++;\n }\n\n return str;\n}\n\n/**\n * Calculates the minimum power percentage based on the given ampere and maxPower values.\n * The calculated percentage is clamped between 0 and 100.\n * @param {number} ampere - The initial ampere value to be used for the calculation.\n * @param {number} maxPower - The maximum power.\n * @returns {number} The minimum power percentage, clamped between 0 and 100.\n */\nexport function calculateMinPowerPercent(ampere: number, maxPower: number) {\n if (maxPower === 0) return 0;\n\n const kw = ampere * 692 / 1000;\n const rounded = Math.round(kw / maxPower * 100);\n return clamp(rounded, 0, 100);\n}\n\n/**\n * Get the amount of decimal places of a number\n * @param number any number\n * @returns amount of decimal places\n */\nexport function countDecimalPlaces(number: number) {\n if ((number % 1) !== 0) {\n return number.toString().split('.')[1].length;\n }\n return 0;\n}\n\nexport function convertNegativeZero(value: any): any {\n if (typeof value === 'number') {\n return Object.is(value, -0) ? 0 : value;\n } else return value;\n}\n\n/**\n * @param date date as string in format yyyy-MM-dd\n * @returns date as string in format dd.MM.yyyy\n */\nexport function formatIsoDate(date: string) {\n const datePart: any = date.match(/\\d+/g);\n const year = datePart[0];\n const month = datePart[1];\n const day = datePart[2];\n\n return `${day}.${month}.${year}`;\n}\n\nexport function convertTimestampToDate(timestamp: number) {\n const date = new Date(timestamp * 1000);\n\n // Get day, month, and year components\n const day = date.getDate().toString();\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n\n // Format the date string\n return `${day}.${month}.${year}`;\n}\n\n/**\n * @param arr1 any array\n * @param arr2 any array\n * @returns boolean if the arrays are equal, regardless of the order of the elements\n */\nexport function checkUnsortedArrayEqual(arr1: any[], arr2: any[]) {\n const sortedArr1 = [...arr1].sort();\n const sortedArr2 = [...arr2].sort();\n return sortedArr1.every((element, index) => element === sortedArr2[index]);\n}\n\n/**\n * Converts a binary number to a decimal number\n * @param binaryNumber binary number as number\n * @returns decimal number as number\n */\nexport function convertBinaryNumberToDecimal(binaryNumber: number) {\n const binaryString = binaryNumber.toString();\n return parseInt(binaryString, 2);\n}\n\n/**\n * Converts a decimal number to a binary number\n * @param decimalNumber decimal number as number\n * @returns binary number as number\n */\nexport function convertDecimalNumberToBinary(decimalNumber: number) {\n return parseInt(decimalNumber.toString(2), 10);\n}\n\n/**\n * Converts a decimal number to a bit example: input [1, 3, 8] -> output '10000101'\n * @param array array of numbers\n * @returns bit string as string\n */\nexport function convertArrayToBit(array: number[]) {\n // Find the maximum number in the array to determine the size of the bit string\n const maxNum = Math.max(...array);\n // Create a bit string filled with 0s of length maxNum\n const bitString = Array(maxNum).fill('0');\n\n // Iterate through the array and set the corresponding bit position to 1\n array.forEach(num => {\n bitString[maxNum - num] = '1';\n });\n\n // Join the bit string array back into a single string\n return bitString.join('');\n}\n\n/**\n * Converts a bit string to an array of numbers example: input '10000101' -> output [1, 3, 8]\n * @param bitString bit string as string\n * @returns array of numbers\n */\nexport function convertBitToArray(bitString: string) {\n // Reverse the bit string to iterate from right to left\n const reversedBitString = bitString.split('').reverse();\n const array: number[] = [];\n\n // Iterate through the bit string and add the position of each 1 to the array\n reversedBitString.forEach((bit, index) => {\n if (bit === '1') {\n array.push(index + 1);\n }\n });\n\n return array;\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BigConsumerSettings.vue?vue&type=style&index=0&id=94d8c08a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=style&index=0&id=53c935e2&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=style&index=0&id=14b300f2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=style&index=0&id=5139b9fe&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClient.vue?vue&type=style&index=0&id=fa24f53c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=style&index=0&id=f367a644&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartLoader.vue?vue&type=style&index=0&id=8d1f0a22&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"700\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(!_vm.handleAsEdit)?_c('v-btn',{attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.manageWorker.addWorker'))+\" \")]):_c('v-btn',{attrs:{\"icon\":\"\",\"color\":\"accent\"}},[_c('lynus-icon',{attrs:{\"color\":\"theme\",\"name\":\"settings\",\"size\":\"20\"}})],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.manageWorker.editWorker'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [(_vm.onDialogStatusChange)?_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 my-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[(!_vm.handleAsEdit)?_c('v-autocomplete',{attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"search-input\":_vm.search,\"clearable\":\"\",\"hide-no-data\":\"\",\"item-text\":\"email\",\"item-value\":\"email\",\"color\":\"blue\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.permissions.searchFieldLabel'),\"hide-details\":\"\"},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"blur\":_vm.clearItems},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}},{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}}],null,false,2653870012),model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}}):_vm._e(),(_vm.wasSelected)?_c('div',{staticClass:\"mt-1\"},[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.manageWorker.selectedUser'))+\": \"+_vm._s(_vm.currentWorker.first_name)+\" \"+_vm._s(_vm.currentWorker.last_name))]):_c('div',{staticClass:\"mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.manageWorker.noUserSelected'))+\" \")])],1),_c('v-col',{staticClass:\"pb-0 mb-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-btn',{attrs:{\"color\":\"accent\",\"disabled\":!_vm.valid || _vm.wasSelected === false},on:{\"click\":_vm.handleSave}},[_vm._v(\" \"+_vm._s(!_vm.handleAsEdit ? _vm.$t('partners.partnerWorkspace.manageWorker.addWorker') : _vm.$t('partners.partnerWorkspace.manageWorker.editWorker'))+\" \")])],1)],1)],1)],1):_vm._e()]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IWorker } from '@/types/partnerWorkspace.types';\nimport { formatIsoDate } from '@/utils/utilsFunctions';\nimport UserService from '@/services/UserService';\nimport { IFetchPermissionUserResponse } from '@/types/common.types';\nimport { IMember } from '@/types/members.types';\nimport { Mutation } from 'vuex-class';\n\n@Component({\n methods: { formatIsoDate },\n components: {\n ModalWindow,\n },\n})\nexport default class CreatePartnerProject extends mixins(Validation) {\n @Prop({ default: () => false }) handleAsEdit!: boolean;\n @Prop({ default: () => ({}) }) worker!: IWorker;\n @Mutation('app/setReport') setReport!: (payload: any) => void;\n\n currentWorker: IWorker = {\n id: '',\n first_name: '',\n last_name: '',\n email: '',\n role: 1001,\n }\n valid = false;\n\n // User Search\n model = null;\n search = '';\n items: IFetchPermissionUserResponse[] = [];\n loading = false;\n selectedUserObject: IMember | null = null;\n wasSelected = false;\n\n @Watch('model')\n async onSelected(val: IMember | null) {\n if (val === null) return;\n\n this.selectedUserObject = { ...(this.items[0] as any) };\n if (this.selectedUserObject === null) return;\n\n this.currentWorker.first_name = this.selectedUserObject.first_name;\n this.currentWorker.last_name = this.selectedUserObject.last_name;\n this.currentWorker.email = this.selectedUserObject.email;\n this.currentWorker.role = 1001;\n this.currentWorker.id = this.selectedUserObject.id;\n this.wasSelected = true;\n\n // clear the autocomplete\n this.model = null;\n this.items = [];\n this.search = '';\n }\n\n @Watch('search')\n async fetchUsers(val?: string) {\n if (this.loading || val == null) return;\n if (!this.isEmailValid(val)) {\n this.items = [];\n return;\n }\n this.loading = true;\n try {\n this.items = await UserService.fetchUserByEmail(val);\n } catch (e) {\n this.setReport({ type: 'error', message: e.message, value: true });\n } finally {\n this.loading = false;\n }\n }\n\n // clear items @blur, otherwise it will still show\n // the old result when focusing the autocomplete\n clearItems() {\n this.items = [];\n this.search = '';\n }\n\n /**\n * Validates email\n * @param {string} s email\n */\n isEmailValid(s: string): boolean {\n // https://stackoverflow.com/a/574698\n if (s.length < 3 || s.length > 254) return false;\n\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(s.toLowerCase());\n }\n // end User Search\n\n handleSave() {\n if (!this.handleAsEdit) {\n this.$emit('addWorker', this.currentWorker);\n } else {\n this.$emit('editWorker', this.currentWorker);\n }\n (this.$refs.ModalWindowInstance as ModalWindow).onConfirmationDialogClose();\n }\n\n async onDialogStatusChange(status: boolean) {\n if (status) {\n if (this.worker && this.handleAsEdit) {\n this.currentWorker = { ...this.worker };\n this.wasSelected = true;\n } else {\n this.wasSelected = false;\n }\n await this.$nextTick();\n this.validate();\n } else {\n this.currentWorker = {\n id: '',\n first_name: '',\n last_name: '',\n email: '',\n role: 1001,\n };\n }\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageWorker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageWorker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageWorker.vue?vue&type=template&id=3bb486bc&\"\nimport script from \"./ManageWorker.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageWorker.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/EnergyIO.c6dd3fe5.png\";","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=cd5e2c04&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"battery-level\"},[_c('div',{staticClass:\"battery-level-cap\"}),_c('div',{staticClass:\"battery-level-body\"},[_c('div',{staticClass:\"battery-level-content\"},[_c('div',{staticClass:\"battery-level-value\"},[_c('span',[_vm._v(_vm._s(_vm.boundedBatteryState))]),_c('span',[_vm._v(\"%\")])]),_c('div',{staticClass:\"battery-level-scale\",style:(`width: ${_vm.batteryState}%`)})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent battery\n * Used in EMS, EnergyView device\n */\n@Component\nexport default class BatteryLevel extends Vue {\n @Prop({ default: 0 }) batteryState!: any;\n\n /**\n * Checks if the battery value is outside the limits and sets to agreed boundaries\n * @return {number} battery level\n */\n get boundedBatteryState() {\n if (this.batteryState > 100) {\n return 100;\n } else if (this.batteryState < 0) {\n return 0;\n } else {\n return Math.trunc(this.batteryState);\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryLevel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryLevel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryLevel.vue?vue&type=template&id=2f6f7662&scoped=true&\"\nimport script from \"./BatteryLevel.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryLevel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatteryLevel.vue?vue&type=style&index=0&id=2f6f7662&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f6f7662\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=style&index=0&id=3e0c112c&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"feedback-provider\"},[_c('v-overlay',{attrs:{\"absolute\":\"\",\"value\":_vm.isOverlayActive,\"opacity\":0.8,\"color\":\"deviceBackground\"}},[_c('div',{staticClass:\"feedback-provider__loaders\"},[_c('transition-group',{attrs:{\"name\":\"feedback-animation\"}},[(_vm.sendingState === 'sending')?_c('div',{key:\"1\",staticClass:\"feedback-loading\"},[_c('CircleSpinner',{attrs:{\"size\":30,\"color\":\"accent\"}})],1):_vm._e(),(_vm.sendingState === 'success')?_c('div',{key:\"2\",staticClass:\"feedback-success\"},[_c('lynus-icon',{attrs:{\"name\":\"ok\",\"color\":\"green\"}})],1):_vm._e(),(_vm.sendingState === 'error')?_c('div',{key:\"3\",staticClass:\"feedback-error\"},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"red\"}})],1):_vm._e()])],1)]),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { SendingState } from '../devices/BasicControl';\nimport { FeedbackAnimationClass } from '@/types/common.types'\n\n@Component({\n components: {\n CircleSpinner,\n },\n})\nexport default class FeedbackProvider extends Vue {\n @Prop({ default: false }) sendingState!: SendingState;\n\n feedbackAnimationClass: FeedbackAnimationClass = {\n success: false,\n error: false,\n }\n animationTimer: any = null;\n\n get isOverlayActive() {\n return this.sendingState !== SendingState.None;\n }\n\n handleAnimation(animationType: string) {\n clearTimeout(this.animationTimer);\n this.feedbackAnimationClass[animationType as keyof FeedbackAnimationClass] = true;\n this.animationTimer = setTimeout(() => {\n this.feedbackAnimationClass[animationType as keyof FeedbackAnimationClass] = false;\n }, 2000);\n this.$emit('onLastFeedbackDone');\n }\n\n onFeedbackStart() {\n console.log('start');\n }\n\n beforeDestroy() {\n clearTimeout(this.animationTimer);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackProvider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackProvider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FeedbackProvider.vue?vue&type=template&id=8283cebe&\"\nimport script from \"./FeedbackProvider.vue?vue&type=script&lang=ts&\"\nexport * from \"./FeedbackProvider.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FeedbackProvider.vue?vue&type=style&index=0&id=8283cebe&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=style&index=0&id=64e8aa3f&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e51f2e5a&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=style&index=0&id=087471e8&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',_vm._g(_vm._b({class:['navigation-mapping-tab', { 'navigation-mapping-tab-active': _vm.isActive }],attrs:{\"color\":_vm.color,\"x-small\":\"\"}},'v-btn',_vm.$attrs,false),_vm.$listeners),[_vm._v(\" \"+_vm._s(_vm.tabTitle)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport VueI18n from 'vue-i18n';\n\n/**\n * Navigation tab component, used in manage modals form for navigation\n */\n@Component\nexport default class NavigationTab extends Vue {\n @Prop({ default: '' }) tabTitle!: string | VueI18n.TranslateResult;\n @Prop({ default: false }) isActive!: boolean;\n @Prop({ default: 'accent' }) color!: string;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationTab.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationTab.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NavigationTab.vue?vue&type=template&id=853a9d6e&scoped=true&\"\nimport script from \"./NavigationTab.vue?vue&type=script&lang=ts&\"\nexport * from \"./NavigationTab.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NavigationTab.vue?vue&type=style&index=0&id=853a9d6e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"853a9d6e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{class:['mpc-layout', 'primary', `device-size-${_vm.deviceSize}`],attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"mpc-layout__header\"},[_c('div',[_vm._v(_vm._s(_vm.isPreview ? _vm.previewData.name : _vm.deviceData.name))])]),_c('div',{staticClass:\"mpc-layout__body\"},[(!_vm.isPreview && _vm.showEvent)?_c('ShowEventBase',{attrs:{\"variable-data\":_vm.showEventVariable,\"instance\":\"ShowEvent\"}}):_vm._e(),_c('div',{staticClass:\"left-device-bar\"},[_c('div',{class:['device-icon', { 'align-start': _vm.deviceSize !== 'default' }]},[(_vm.deviceIcon)?_c('lynus-icon',{attrs:{\"name\":_vm.deviceIcon,\"size\":_vm.deviceIconSize,\"color\":_vm.deviceIconTheme}}):_vm._e(),_vm._t(\"custom-icon\")],2),_c('div',{staticClass:\"ml-1 error-warning-tooltip\"},[(_vm.showErrorTooltip && _vm.errorMessage)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',_vm._b({},'lynus-icon',{ ..._vm.errorIcon },false))]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.errorMessage)+\" \")]},proxy:true}],null,false,1790728406)}):_vm._e()],1)]),_c('div',{staticClass:\"device-basic-controls\"},[_vm._t(\"basic-controls\")],2),_c('div',{staticClass:\"device-actions\"},[(_vm.deviceData)?_c('DeviceActions',{attrs:{\"device\":_vm.deviceData,\"is-settings-view\":_vm.isSettingsView},on:{\"switchSettingsView\":_vm.switchSettingsView,\"rerenderDevice\":function($event){return _vm.$emit('rerenderDevice', $event)},\"toggleLoading\":function($event){return _vm.$emit('toggleLoading', $event)}}}):_vm._e(),(_vm.previewData)?_c('PreviewActions',{attrs:{\"is-settings-view\":_vm.isSettingsView,\"device-type\":_vm.previewData.type},on:{\"switchSettingsView\":_vm.switchSettingsView}}):_vm._e(),_c('div',{staticClass:\"device-actions-additional\"},[_vm._t(\"additional-actions\"),(_vm.isPreview)?_c('div',{staticClass:\"pt-2 d-flex justify-center\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.$t(`mlModelsDescriptions.${_vm.previewData.type}`) },false))],1):_vm._e(),(!_vm.isPreview)?_c('div',{staticClass:\"pb-2 d-flex justify-center\"},[_vm._t(\"dnd\")],2):_vm._e(),(_vm.isCharts)?_c('ModalWindow',{attrs:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"fab\":\"\",\"x-small\":\"\"},on:{\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[_c('v-icon',[_vm._v(\"fa-chart-line\")])],1)]}}],null,false,4106980493),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('devices.EnergyView.ChartsWindow.iconHoverText')))])])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.EnergyView.ChartsWindow.titleForTab'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_vm._t(\"charts-view\")]},proxy:true}],null,true)}):_vm._e()],2)],1)],1),_c('SettingsView',_vm._b({attrs:{\"modal-width\":_vm.settingsModalWidth},on:{\"switchSettingsView\":_vm.switchSettingsView},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_vm._t(\"settings-view\")]},proxy:true}],null,true)},'SettingsView',{ isSettingsView: _vm.isSettingsView, deviceData: _vm.isPreview ? _vm.previewData : _vm.deviceData },false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport VueI18n from 'vue-i18n';\nimport { IDevice } from '@/types/devices.types';\nimport { ILocaleEnum } from '@/types/common.types';\n\n/**\n * Component that defines the structure of the MPC device\n */\n@Component({\n components: {\n SettingsView,\n DeviceActions: () => import('@/ui/components/devices/actions/DeviceActions.vue'),\n ShowEventBase,\n PreviewActions,\n DeviceDescription,\n InfoTooltip,\n ModalWindow,\n },\n})\nexport default class MPCLayout extends Vue {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: null }) fullDeviceData!: any;\n @Prop({ default: null }) previewData!: { name: string | VueI18n.TranslateResult; type: string };\n @Prop({ default: false }) isPreview!: boolean;\n @Prop({ default: true }) showEvent!: boolean;\n @Prop({ default: 'default' }) deviceSize!: 'default' | 'x2h' | 'x4h' | 'x5h';\n @Prop({ default: null }) deviceIcon!: string; // class name from icons lib\n @Prop({ default: '30' }) deviceIconSize!: string | number;\n @Prop({ default: 'theme' }) deviceIconTheme!: string;\n @Prop({ default: null }) showEventVariable!: { ShowEvent_errorWarningState: string };\n @Prop({ default: false }) isCharts!: boolean; // is mpc charts visible\n @Prop({ default: '1750' }) chartsModalWidth!: string | number;\n @Prop({ default: 'x-small' }) chartsButtonSize!: 'x-small' | 'small' | 'large' | 'x-large';\n @Prop({ default: null }) settingsModalWidth!: string | number;\n @State('measurements') measurementsState!: IVariablesState;\n\n isSettingsView = false;\n dialogOpen = false;\n isTooltip = false;\n localeEnum: ILocaleEnum = {\n en: 'english',\n de: 'german',\n it: 'italian',\n };\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n get showErrorTooltip() {\n return this.fullDeviceData?.data?.meta?.error_messages?.english?.length;\n }\n\n get errorMessage() {\n const currentSelectedLang = this.localeEnum[this.$i18n.locale as keyof ILocaleEnum];\n return this.showErrorTooltip ? this.fullDeviceData.data.meta.error_messages[currentSelectedLang][0] : '';\n }\n\n get errorStatus() {\n if (this.fullDeviceData?.data?.meta?.controllerMappings?.errorWarning === undefined) return 0;\n return this.measurementsState.measurements.get(this.fullDeviceData?.data?.meta?.controllerMappings?.errorWarning);\n }\n\n get errorIcon() {\n return [\n {},\n { name: 'warning', size: '24', color: 'orange' },\n { name: 'fault', size: '24', color: 'red' },\n ][this.errorStatus as number];\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MPCLayout.vue?vue&type=template&id=c35e7b0c&scoped=true&\"\nimport script from \"./MPCLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./MPCLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MPCLayout.vue?vue&type=style&index=0&id=c35e7b0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c35e7b0c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=style&index=0&id=40fc654e&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","import { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\n\n/**\n * Defines system variable value\n * @param target {object}\n * @param system {string} system name. Example: battery\n * @param instance {string} system instance name. Example: battery_1\n * @param variable {string} one of the variables of system\n */\nexport const getVariableValue = (target: any, system: string, instance: string, variable: string) => {\n return target[system].components[instance][variable];\n};\n\n/**\n * Division of group systems into subgroups depending on the value of the separator.\n * @param {array} system list of systems example: ['pv', { components: { pv1: {}, pv2: {} }, count: 2 }]\n * @param {number} splitter Separator determining the number of elements in a subgroup\n * @param {null|string} filterBy\n * @param {null|object} target\n */\nexport const defineInstancesGroups = (\n system: [string, { components: any; count: number }],\n splitter: number,\n filterBy: null | string = null,\n target: any | null = null,\n) => {\n // sorts map of components by the numeric part of the key. example for component key: 'battery1', 'battery2'\n const sortedSystemsArr = Object.entries(system[1].components)\n .sort(([a], [b]) => {\n const aNum = Number(a.slice(system[0].length));\n const bNum = Number(b.slice(system[0].length));\n return aNum - bNum;\n });\n\n // creates new object with right order for systems\n system[1].components = Object.fromEntries(sortedSystemsArr);\n\n const instancesArr: any = Object.keys(system[1].components).filter((instance: string) => {\n if (filterBy && target) return getVariableValue(target, system[0], instance, filterBy as string);\n else return true;\n });\n\n const count: any = Math.ceil(instancesArr.length / splitter);\n let instancesArrGrouped: any = [];\n const initChartList = (n: number, arr: any) => {\n if (n > 0 && arr.length) {\n initChartList(n - 1, arr);\n instancesArrGrouped = [...instancesArrGrouped, arr.slice(n * splitter - splitter, n * splitter)];\n } else {\n return null;\n }\n };\n initChartList(count, instancesArr);\n\n return [system[0], instancesArrGrouped];\n};\n\nexport function defineIoSystemType(type: string) {\n if (type.includes('hybrid')) return IOEnergyCircleType.hybrids;\n if (type.includes('output')) return IOEnergyCircleType.outputs;\n else return IOEnergyCircleType.inputs;\n}\n\n/**\n * Defines system name\n * @param target {object}\n * @param system {string} system name. Example: battery\n * @param instance {string} system instance name. Example: battery_1\n * @param variable {string} one of the variables of system\n */\nexport const getChartSystemInstanceName = (target: any, system: string, instance: string, variable: string) => {\n const { title } = target[system].components[instance];\n const variableName = target[system].components[instance][variable];\n return title || variableName;\n};\n\n/**\n * Defines system name\n * @param target {object}\n * @param system {string} system name. Example: battery\n * @param instance {string} system instance name. Example: battery_1\n * @param variable {string} one of the variables of system\n * @param type\n */\nexport const getChartSystemIOInstanceName = (target: any, system: string, instance: string, variable: string, type: IOEnergyCircleType) => {\n const { title } = target[type].components[system];\n const variableName = target[type].components[system].energy_counter[instance];\n return title || variableName;\n};\n\n/**\n * Generates a list of systems with forecast data\n * @param keys list of created systems instances names\n * @param data forecast data for systems\n * @param variable with which the access key to the forecast data is created\n */\nexport const generateForecastSystems = (keys: string[], data: { [key: string]: [number, number][] }, variable = 'power') => {\n return keys.reduce((acc: { [key: string]: [number, number][] }, el: string) => {\n const system = `${el}_${variable}`;\n return { ...acc, ...{ [system]: data[system] || [] } };\n }, {});\n};\n","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=style&index=0&id=aec12b2a&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1750\",\"isConfirmationDialog\":_vm.isConfirmationDialog},on:{\"dialogStatus\":_vm.handleModalWindowStatus},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('v-container',{staticStyle:{\"height\":\"85vh\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"fill-height\"},[(!_vm.deviceFormView)?_c('v-col',{staticClass:\"d-flex flex-column py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c('div',{staticClass:\"flex-grow-1 d-flex align-center\"},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"offset-lg\":_vm.deviceType.value ? 4 : 6,\"lg\":_vm.deviceType.value ? 4 : 6}},[_c('v-combobox',{staticClass:\"items-list-background\",style:(_vm.deviceType.value ? 'margin-top: 58px;' : null),attrs:{\"items\":_vm.mlModelsTypesArrayList,\"label\":_vm.$t('modals.manageMLModel.form.type'),\"item-value\":\"value\",\"item-text\":\"title\",\"outlined\":\"\",\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"cache-items\":\"\"},model:{value:(_vm.deviceType),callback:function ($$v) {_vm.deviceType=$$v},expression:\"deviceType\"}})],1)],1)],1)],1),_c('div',[_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.typeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.typeValidation},on:{\"click\":function($event){_vm.deviceFormView = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}],null,false,3095024692)},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.type')))])])],1)]):_vm._e(),(_vm.deviceFormView)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c(_vm.currentMLModelType.manageSchema,{tag:\"component\",attrs:{\"device-data\":_vm.mlModelDataWithType,\"is-edit-modal\":_vm.isEditModal,\"active-room-id\":_vm.activeRoomId},on:{\"closeDialog\":_vm.closeDialog,\"handleControl\":_vm.handleControl,\"backToChoosingType\":function($event){_vm.deviceFormView = false},\"onFormUnchanged\":_vm.onFormUnchanged}})],1):_vm._e(),(!_vm.$vuetify.breakpoint.mobile)?_c('v-col',{staticClass:\"d-flex align-center justify-center py-0\",attrs:{\"cols\":\"4\"}},[(_vm.currentPreviewImage)?_c('PreviewImage',{attrs:{\"src\":_vm.currentPreviewImage,\"maxHeight\":_vm.imageMaxHeight,\"maxWidth\":'30vw'}}):_vm._e()],1):_vm._e()],1)],1)]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.inputMappings')))]),_c('div',_vm._l((_vm.mappingsByColumns.inputMappings),function(inputField,inputFieldIndex){return _c('div',{key:inputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[inputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[inputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[inputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[inputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.label`),\"optional\":_vm.mlModelMappings[inputField].optional},on:{\"datePickerCustomClearDate\":function($event){return _vm.datePickerCustomClearDate(inputField)}},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[inputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, inputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[inputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.description`))+\" \")])],1)])}),0)])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"}),_c('div',_vm._l((_vm.mappingsByColumns.middleMappings),function(middleField,middleFieldIndex){return _c('div',{key:middleFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[middleField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[middleField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[middleField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[middleField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.label`),\"optional\":_vm.mlModelMappings[middleField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[middleField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, middleField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[middleField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.description`))+\" \")])],1)])}),0)])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.outputMappings')))]),_c('div',_vm._l((_vm.mappingsByColumns.outputMappings),function(outputField,outputFieldIndex){return _c('div',{key:outputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[outputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[outputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[outputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[outputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.label`),\"optional\":_vm.mlModelMappings[outputField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[outputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, outputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[outputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.description`))+\" \")])],1)])}),0)])])],1)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageMLModel.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":\"6\"}},[_c('div',[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageMLModel.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1),_c('div',{staticClass:\"mt-4\"},[_c('InputFieldNumber',{attrs:{\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.scaling`),\"step\":0.01,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.localDeviceData.data.meta.chartScaling),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta, \"chartScaling\", $$v)},expression:\"localDeviceData.data.meta.chartScaling\"}})],1)])],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { cloneDeep } from 'lodash';\nimport InputFieldNumber from '@/ui/components/components/InputFieldNumber.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport DatePickerCustom from '@/ui/components/modals/components/DatePickerCustom.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport {\n FormUpdateTracker,\n} from '@/ui/mixins/formUpdateTracker';\nimport { mixins } from 'vue-class-component';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { IRoom } from '@/types/rooms.types';\n\n/**\n * Scheme to create, modify a specific ML Model device.\n * Specified in the ML Model device type definition in store/mpc/mlModelTypes.ts\n */\n@Component({\n components: {\n ComboboxField,\n InputFieldNumber,\n DatePickerCustom,\n },\n})\nexport default class ServicesSchema extends mixins(Validation, FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData!: any;\n @Prop({}) isEditModal!: any;\n @Prop({ default: '' }) activeRoomId!: string;\n @State('variables') variablesState!: any;\n @Getter('mpc/mlModelTypes') mlModelTypes!: any;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: any;\n @Getter('measurements/measurementsKeys') measurementsKeys!: any;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: any) => any;\n @Action('rules/deleteRule') deleteRule!: (payload: any) => any;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n\n stage = 1\n localDeviceData: any = null\n showOptionalFields = false\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n // steps validation\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.mlModelMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n const isOptionalFieldsFilled = optionalFields.map((el: any) => this.localDeviceData.data.meta.controllerMappings[el]).every((el: any) => el);\n return isOptionalFieldsFilled;\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length\n && !!this.localDeviceData.data?.meta?.chartScaling?.length;\n }\n\n get mlModelSchema() {\n return this.mlModelTypes[this.deviceData.data.type];\n }\n get mlModelMappings() {\n return this.mlModelSchema.controllerMappings;\n }\n get mappingsByColumns() {\n if (this.localDeviceData?.data?.type) {\n return this.mlModelSchema.mappingsByColumns;\n } else {\n return [];\n }\n }\n\n /**\n * Clear date picker value on press button cancel on calendar\n * @param formField date picker field key\n */\n datePickerCustomClearDate(formField: any) {\n this.localDeviceData.data.meta.controllerMappings[formField] = this.deviceData.data.meta?.controllerMappings?.startDate || '';\n }\n\n /**\n * Checks incoming parameter and return list of measurements or some array according to parameter\n * @param key any type\n * @return if parameter array return this array else return list of measurements\n */\n listDefinition(key: any) {\n if (Array.isArray(key)) {\n return key;\n } else {\n return this.variablesForComboBox;\n }\n }\n\n /**\n * Goes through the list and creates an option object for each item\n */\n initMappingsForDevice() {\n let mappingsSchema: any = {};\n Object.keys(this.mlModelMappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for Ml Model device according to errorWarning field,\n * save ids of created rules in current ML Model device object\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenCreateDevice(deviceData: any) {\n if (!deviceData.data.meta.controllerMappings.errorWarning.length) {\n deviceData.data.meta.warningRule = null;\n deviceData.data.meta.errorRule = null;\n } else {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when errorWarning field is changed\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenEditDevice(deviceData: any) {\n const oldErrorWarningVar = this.deviceData.data.meta.controllerMappings.errorWarning;\n const newErrorWarningVar = deviceData.data.meta.controllerMappings.errorWarning;\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // if errorWarning was changed\n if (oldErrorWarningVar !== newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // create new rules\n if (newErrorWarningVar) {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n }\n\n /**\n * Save Ml Model data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true); // disable confirmation dialog when save\n const copy = cloneDeep(this.localDeviceData);\n copy.project_id = this.project.id;\n\n // rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n this.$emit('handleControl', copy);\n\n this.$emit('closeDialog');\n }\n\n async created() {\n this.localDeviceData = cloneDeep(this.deviceData);\n\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n\n // init mappings if create new ml model\n this.$set(this.localDeviceData.data.meta, 'controllerMappings', this.initMappingsForDevice());\n\n // if edit device\n if (this.isEditModal) {\n // load current mappings\n this.localDeviceData.data.meta.controllerMappings = {\n ...this.localDeviceData.data.meta.controllerMappings,\n ...this.deviceData.data.meta.controllerMappings,\n };\n } else {\n this.$set(this.localDeviceData.data.meta, 'chartScaling', null);\n this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServicesSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ServicesSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ServicesSchema.vue?vue&type=template&id=4d619f8b&\"\nimport script from \"./ServicesSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./ServicesSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.inputMappings')))]),_c('div',[_c('div',{staticClass:\"mt-2\"},[_c('div',{staticClass:\"optional\"}),_c('DatePickerCustom',{attrs:{\"label\":_vm.$t('modals.manageMLModel.startDate')},on:{\"datePickerCustomClearDate\":_vm.datePickerCustomClearDate},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v},expression:\"startDate\"}}),_c('div',{staticStyle:{\"height\":\"14px\"}}),_c('div',{staticClass:\"description\"})],1),_c('div',[_vm._l((_vm.additionalAreasKeys),function(additionalItem,additionalIndex){return _c('div',{key:`i-${additionalIndex}`,staticClass:\"mt-2 flex flex-nowrap\"},[_c('div',{staticClass:\"optional\"}),_c('v-combobox',{tag:\"component\",attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('mlModel.HeatingCircuitOptimization.controllerMappings.additionalRoomTemperature.label'),\"outlined\":\"\",\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\"},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('div',[_c('v-btn',{staticClass:\"ml-1 mt-1\",attrs:{\"fab\":\"\",\"color\":\"red\",\"elevation\":\"0\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.removeAdditionalArea(additionalItem)}}},[_c('lynus-icon',{attrs:{\"name\":\"x\",\"color\":\"white\"}})],1)],1)]},proxy:true}],null,true),model:{value:(_vm.additionalAreas[additionalItem]),callback:function ($$v) {_vm.$set(_vm.additionalAreas, additionalItem, $$v)},expression:\"additionalAreas[additionalItem]\"}}),_c('div',{staticStyle:{\"height\":\"14px\"}}),_c('div',{staticClass:\"description\"})],1)}),_vm._l((_vm.mappingsByColumns.inputMappings),function(inputField,inputFieldIndex){return _c('div',{key:inputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[inputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[inputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[inputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[inputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.label`),\"optional\":_vm.mlModelMappings[inputField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[inputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, inputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[inputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.description`))+\" \")])],1)])})],2)])])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"}),_c('div',_vm._l((_vm.mappingsByColumns.middleMappings),function(middleField,middleFieldIndex){return _c('div',{key:middleFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[middleField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[middleField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[middleField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[middleField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.label`),\"optional\":_vm.mlModelMappings[middleField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[middleField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, middleField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[middleField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.description`))+\" \")])],1)])}),0)])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.outputMappings')))]),_c('div',_vm._l((_vm.mappingsByColumns.outputMappings),function(outputField,outputFieldIndex){return _c('div',{key:outputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[outputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[outputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[outputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[outputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.label`),\"optional\":_vm.mlModelMappings[outputField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[outputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, outputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[outputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.description`))+\" \")])],1)])}),0)])])],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex justify-end\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.addAdditionalArea}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" fa-plus \")]),_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.addRoomTempButton'))+\" \")],1)],1)],1)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageMLModel.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageMLModel.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1)],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { VCombobox } from 'vuetify/lib';\nimport DatePickerCustom from '@/ui/components/modals/components/DatePickerCustom.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport SelectField from '@/ui/components/modals/components/form/SelectField.vue';\nimport {\n FormUpdateTracker,\n} from '@/ui/mixins/formUpdateTracker';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { IRoom } from '@/types/rooms.types';\n\n/**\n * Scheme to create, modify a specific ML Model device.\n * Specified in the ML Model device type definition in store/mpc/mlModelTypes.ts\n */\n@Component({\n components: {\n 'v-combobox': VCombobox,\n ComboboxField,\n SelectField,\n DatePickerCustom,\n },\n})\nexport default class HCOSchema extends mixins(Validation, FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData!: any;\n @Prop({}) isEditModal!: any;\n @Prop({ default: '' }) activeRoomId!: string;\n @State('variables') variablesState!: any;\n @Getter('mpc/mlModelTypes') mlModelTypes!: any;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: any;\n @Getter('measurements/measurementsKeys') measurementsKeys!: any;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: any) => any;\n @Action('rules/deleteRule') deleteRule!: (payload: any) => any;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n\n stage = 1\n localDeviceData: any = null\n showOptionalFields = false;\n\n additionalAreasKeys: any = []\n additionalAreas: any = {}\n\n startDate: any = ''\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n // steps validation\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.mlModelMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n const isOptionalFieldsFilled = optionalFields.map((el: any) => this.localDeviceData.data.meta.controllerMappings[el]).every((el: any) => el);\n return (!!this.startDate && isOptionalFieldsFilled);\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n\n get mlModelSchema() {\n return this.mlModelTypes[this.deviceData.data.type];\n }\n get mlModelMappings() {\n return this.mlModelSchema.controllerMappings;\n }\n get mappingsByColumns() {\n if (this.localDeviceData?.data?.type) {\n return this.mlModelSchema.mappingsByColumns;\n } else {\n return [];\n }\n }\n\n /**\n * Clear date picker value on press button cancel on calendar\n */\n datePickerCustomClearDate() {\n this.startDate = this.deviceData.data.meta?.controllerMappings?.startDate || '';\n }\n\n /**\n * Init addition areas object\n * @param item key of additional area\n * @return object with prop additional area key and value empty string\n */\n initAdditionalAreasItem(item: string) {\n return { [item]: '' };\n }\n\n /**\n * Crates new additional areas field\n */\n addAdditionalArea() {\n const newItem = `item_${Date.now()}`;\n this.additionalAreasKeys.push(newItem);\n this.additionalAreas = { ...this.additionalAreas, ...this.initAdditionalAreasItem(newItem) };\n }\n\n /**\n * Removes selected additional areas field\n */\n removeAdditionalArea(key: string) {\n this.additionalAreasKeys = this.additionalAreasKeys.filter((item: any) => item !== key);\n delete this.additionalAreas[key];\n }\n\n /**\n * Checks incoming parameter and return list of measurements or some array according to parameter\n * @param key any type\n * @return if parameter array return this array else return list of measurements\n */\n listDefinition(key: any) {\n if (Array.isArray(key)) {\n return key;\n } else {\n return this.variablesForComboBox;\n }\n }\n\n /**\n * Goes through the list and creates an option object for each item\n */\n initMappingsForDevice() {\n let mappingsSchema: any = {};\n Object.keys(this.mlModelMappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for Ml Model device according to errorWarning field,\n * save ids of created rules in current ML Model device object\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenCreateDevice(deviceData: any) {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n\n /**\n * Replacing existing rules with new ones when errorWarning field is changed\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenEditDevice(deviceData: any) {\n const oldErrorWarningVar = this.deviceData.data.meta.controllerMappings.errorWarning;\n const newErrorWarningVar = deviceData.data.meta.controllerMappings.errorWarning;\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // if errorWarning was changed\n if (oldErrorWarningVar !== newErrorWarningVar) {\n // delete old rules\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n // create new rules\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n\n /**\n * Save Ml Model data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true); // disable confirmation dialog when save\n const copy = JSON.parse(JSON.stringify(this.localDeviceData));\n\n copy.project_id = this.project.id;\n copy.data.meta.controllerMappings.startDate = this.startDate;\n copy.data.meta.additionalAreas = this.additionalAreas;\n\n // rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n async created() {\n this.localDeviceData = JSON.parse(JSON.stringify(this.deviceData));\n\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n\n // load mappings if create new ml model\n this.localDeviceData.data.meta.controllerMappings = this.initMappingsForDevice();\n\n // if edit device\n if (this.isEditModal) {\n // load current mappings\n this.localDeviceData.data.meta.controllerMappings = {\n ...this.localDeviceData.data.meta.controllerMappings,\n ...this.deviceData.data.meta.controllerMappings,\n };\n\n // load additional areas\n this.additionalAreasKeys = Object.keys(this.deviceData.data.meta.additionalAreas);\n this.additionalAreas = { ...this.deviceData.data.meta.additionalAreas };\n\n // load start date\n this.startDate = this.deviceData.data.meta.controllerMappings.startDate;\n } else {\n this.dataSnapshot = JSON.parse(JSON.stringify(this.localDeviceData));\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HCOSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HCOSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HCOSchema.vue?vue&type=template&id=4d544330&\"\nimport script from \"./HCOSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./HCOSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.inputMappings')))]),_c('div',_vm._l((_vm.mappingsByColumns.inputMappings),function(inputField,inputFieldIndex){return _c('div',{key:inputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[inputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[inputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[inputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[inputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.label`),\"optional\":_vm.mlModelMappings[inputField].optional,\"starting-date\":_vm.defineStartDate(inputField)},on:{\"datePickerCustomClearDate\":function($event){return _vm.datePickerCustomClearDate(inputField)}},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[inputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, inputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[inputField]\"}}),(['endDate', 'startDate'].some(e => e === inputField))?_c('div',{staticStyle:{\"height\":\"14px\"}}):_vm._e(),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${inputField}.description`))+\" \")])],1)])}),0)])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"}),_c('div',_vm._l((_vm.mappingsByColumns.middleMappings),function(middleField,middleFieldIndex){return _c('div',{key:middleFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[middleField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[middleField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[middleField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[middleField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.label`),\"optional\":_vm.mlModelMappings[middleField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[middleField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, middleField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[middleField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${middleField}.description`))+\" \")])],1)])}),0)])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"mappings-title\"},[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.outputMappings')))]),_c('div',_vm._l((_vm.mappingsByColumns.outputMappings),function(outputField,outputFieldIndex){return _c('div',{key:outputFieldIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.mlModelMappings[outputField].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[outputField].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[outputField].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.listDefinition(_vm.mlModelMappings[outputField].items),\"label\":_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.label`),\"optional\":_vm.mlModelMappings[outputField].optional},model:{value:(_vm.localDeviceData.data.meta.controllerMappings[outputField]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.controllerMappings, outputField, $$v)},expression:\"localDeviceData.data.meta.controllerMappings[outputField]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.localDeviceData.data.type}.controllerMappings.${outputField}.description`))+\" \")])],1)])}),0)])])],1)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageMLModel.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":\"6\"}},[_c('div',[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageMLModel.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1)])],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { cloneDeep } from 'lodash';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport DatePickerCustom from '@/ui/components/modals/components/DatePickerCustom.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport { mixins } from 'vue-class-component';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { IRoom } from '@/types/rooms.types';\n\n/**\n * Scheme to create, modify a specific ML Model device.\n * Specified in the ML Model device type definition in store/mpc/mlModelTypes.ts\n */\n@Component({\n components: {\n ComboboxField,\n DatePickerCustom,\n },\n})\nexport default class DefaultSchema extends mixins(Validation, FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData!: any;\n @Prop({}) isEditModal!: any;\n @Prop({ default: '' }) activeRoomId!: string;\n @Getter('mpc/mlModelTypes') mlModelTypes!: any;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: any;\n @Getter('measurements/measurementsKeys') measurementsKeys!: any;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: any) => any;\n @Action('rules/deleteRule') deleteRule!: (payload: any) => any;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n\n stage = 1\n localDeviceData: any = null\n showOptionalFields = false\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n // fetch measurements for mappings when go to stage 2\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n // steps validation\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.mlModelMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n const isOptionalFieldsFilled = optionalFields.map((el: any) => this.localDeviceData.data.meta.controllerMappings[el]).every((el: any) => el);\n return isOptionalFieldsFilled;\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n\n get mlModelSchema() {\n return this.mlModelTypes[this.deviceData.data.type];\n }\n get mlModelMappings() {\n return this.mlModelSchema.controllerMappings;\n }\n get mappingsByColumns() {\n if (this.localDeviceData?.data?.type) {\n return this.mlModelSchema.mappingsByColumns;\n } else {\n return [];\n }\n }\n\n /**\n * Checks incoming parameter and return list of measurements or some array according to parameter\n * @param key any type\n * @return if parameter array return this array else return list of measurements\n */\n listDefinition(key: any) {\n if (Array.isArray(key)) {\n return key;\n } else {\n return this.variablesForComboBox;\n }\n }\n\n /**\n * Goes through the list and creates an option object for each item\n */\n initMappingsForDevice() {\n let mappingsSchema: any = {};\n Object.keys(this.mlModelMappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Clear date picker value on press button cancel on calendar\n * @param formField date picker field key\n */\n datePickerCustomClearDate(formField: any) {\n this.localDeviceData.data.meta.controllerMappings[formField] = this.deviceData.data.meta?.controllerMappings?.[formField] || '';\n }\n defineStartDate(formField: any) {\n if (formField === 'endDate') {\n return this.localDeviceData.data.meta.controllerMappings.startDate;\n } else {\n return null;\n }\n }\n\n /**\n * Creates rules for Ml Model device according to errorWarning field,\n * save ids of created rules in current ML Model device object\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenCreateDevice(deviceData: any) {\n if (!deviceData.data.meta.controllerMappings.errorWarning.length) {\n deviceData.data.meta.warningRule = null;\n deviceData.data.meta.errorRule = null;\n } else {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n // create error, warning rules\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n // save in current Ml Model device data object ids of created error, warning rules\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when errorWarning field is changed\n * @param deviceData current Ml Model data object\n */\n async addRulesWhenEditDevice(deviceData: any) {\n const oldErrorWarningVar = this.deviceData.data.meta.controllerMappings.errorWarning;\n const newErrorWarningVar = deviceData.data.meta.controllerMappings.errorWarning;\n if (oldErrorWarningVar && !newErrorWarningVar) {\n // remove old warning, error rules if errorWarning variable was cleared\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // if errorWarning was changed\n if (oldErrorWarningVar !== newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n // create new rules\n if (newErrorWarningVar) {\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.meta.controllerMappings.errorWarning, 'Device');\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n }\n\n /**\n * Save Ml Model data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true); // disable confirmation dialog when save\n const copy = JSON.parse(JSON.stringify(this.localDeviceData));\n copy.project_id = this.project.id;\n\n // handle rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n\n this.$emit('closeDialog');\n }\n\n async created() {\n this.localDeviceData = cloneDeep(this.deviceData);\n\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n\n // init mappings if create new ml model\n this.$set(this.localDeviceData.data.meta, 'controllerMappings', this.initMappingsForDevice());\n\n // if edit device\n if (this.isEditModal) {\n // load current mappings\n this.localDeviceData.data.meta.controllerMappings = {\n ...this.localDeviceData.data.meta.controllerMappings,\n ...this.deviceData.data.meta.controllerMappings,\n };\n } else {\n this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultSchema.vue?vue&type=template&id=74c44570&\"\nimport script from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport HeatingCircuitOptimizationPreview from '@/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue';\nimport PVProductionServicePreview from '@/ui/components/devices/previews/mpc/PVProductionService/index.vue';\nimport ConsumptionServicePreview from '@/ui/components/devices/previews/mpc/ConsumptionService/index.vue';\nimport HppProductionServicePreview from '@/ui/components/devices/previews/mpc/HeatingProduction/index.vue';\nimport PVMonitoringServicePreview\n from '@/ui/components/devices/previews/mpc/PVMonitoringService/index.vue';\nimport EMSPreview from '@/ui/components/devices/previews/mpc/EMS/index.vue';\nimport ServicesSchema from '@/ui/components/modals/ManageMLModel/schemas/ServicesSchema.vue';\nimport HCOSchema from '@/ui/components/modals/ManageMLModel/schemas/HCOSchema.vue';\nimport EMSSchema from '@/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue';\nimport DefaultSchema from '@/ui/components/modals/ManageMLModel/schemas/DefaultSchema.vue';\nimport PreviewImage from '@/ui/components/components/PreviewImage.vue';\nimport i18n from '@/ui/plugins/i18n';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { IMlModelSchemas } from '@/types/mpc/mlModelSchemas.types';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * A component that allows to create or modify Ml Model device\n */\n@Component({\n components: {\n PreviewImage,\n PVMonitoringServicePreview,\n EMSPreview,\n HCOSchema,\n ServicesSchema,\n HeatingCircuitOptimizationPreview,\n PVProductionServicePreview,\n ConsumptionServicePreview,\n EMSSchema,\n DefaultSchema,\n HppProductionServicePreview,\n ModalWindow,\n },\n})\nexport default class ManageMLModel extends Vue {\n @Prop({ default: '' }) formTitle?: string;\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData?: IMLModel;\n @Prop({ default: '' }) activeRoomId!: string;\n @Getter('mpc/mlModelsTypesWithLocaleNamesList') mlModelsTypesWithLocaleNamesList!: { title: string; value: string }[];\n @Getter('mpc/mlModelTypes') mlModelTypes!: IMlModelSchemas;\n @Getter('mpc/lastCreatedModel') lastCreatedModel!: string;\n\n isTooltip = false;\n deviceType = { title: '', value: '' }\n deviceFormView = false\n currentSelectedTheme = '';\n imageMaxHeight = window.innerHeight * 0.7;\n mlModelsTypesArrayList = [];\n isConfirmationDialog = false;\n\n /**\n * Controls deviceFormView status, deviceType, currentSelectedTheme according to dialog status\n * @param status dialog status\n */\n handleModalWindowStatus(status: boolean) {\n if (status) {\n this.deviceFormView = !!this.deviceData?.data.type;\n if (this.deviceData?.created_at) {\n this.deviceType.value = this.deviceData.data.type;\n }\n this.mlModelsTypesArrayList = JSON.parse(JSON.stringify(this.mlModelsTypesWithLocaleNamesList));\n } else {\n this.deviceFormView = false;\n this.$store.commit('mpc/setLastCreatedModel', this.deviceType.value);\n this.mlModelsTypesArrayList = [];\n }\n this.currentSelectedTheme = this.$vuetify.theme.dark ? 'themeDark' : 'themeLight';\n }\n\n get isEditModal() {\n return !!this.deviceData?.data.type;\n }\n\n get lastCreatedModelType() {\n return this.lastCreatedModel;\n }\n\n /**\n * Define ML Model preview image according to type\n * @return path to preview image or null if Ml Model don`t have it\n */\n get currentPreviewImage() {\n this.currentSelectedTheme = this.$vuetify.theme.dark ? 'themeDark' : 'themeLight';\n const currentImgPreview = this.deviceType.value;\n if (currentImgPreview) {\n try {\n return require(`../../../assets/images/previews/${this.currentSelectedTheme}/${currentImgPreview}.png`);\n } catch (e) {\n // maybe load fallback image?\n console.log(e);\n return null;\n }\n } else {\n return null;\n }\n }\n\n // steps validation\n get typeValidation() {\n return !!this.deviceType?.value?.length;\n }\n\n get currentMLModelType() {\n if (this.deviceType.value) {\n return this.mlModelTypes[this.deviceType.value as keyof IMlModelSchemas];\n }\n return { manageSchema: '' };\n }\n get mlModelDataWithType() {\n const clone = JSON.parse(JSON.stringify(this.deviceData));\n clone.data.type = this.deviceType.value;\n return clone;\n }\n\n onFormUnchanged(value: boolean) {\n this.isConfirmationDialog = !value;\n }\n\n closeDialog() {\n (this.$refs.ModalWindowInstance as ModalWindow).closeDialog();\n }\n\n handleControl(device: IMLModel) {\n this.$emit('handleControl', device);\n }\n\n created() {\n this.deviceType.value = this.lastCreatedModelType;\n this.deviceType.title = this.deviceType.value\n ? i18n.t(`mlModel.${this.deviceType.value}.previewName`).toString()\n : '';\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=54e79d22&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=54e79d22&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/HppProductionService.e7e81fd6.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewReport.vue?vue&type=style&index=0&id=102a65e4&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectWithProject.vue?vue&type=style&index=0&id=04c03412&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/Mieterstrom.ac9da110.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=style&index=0&id=222a353a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicTenantModelEditor.vue?vue&type=style&index=0&id=9f8ac41c&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","/**\n * This file can/should be used to disable certain features in the installation wizard\n * I added the IS_PRODUCTION check to none can be accidentally enabled in production\n * just use FULL_DEV to disable every check\n */\nconst FULL_DEV = false;\nexport const IS_PRODUCTION = process.env.NODE_ENV === 'production';\n\nexport const CHECKS_DISABLED = !IS_PRODUCTION && (FULL_DEV || false);\nexport const SEND_MQTT_DISABLED = !IS_PRODUCTION && (FULL_DEV || false);\nexport const IGNORE_FEEDBACK = !IS_PRODUCTION && (FULL_DEV || false);\nexport const IGNORE_INVERTER_CHECK = !IS_PRODUCTION && (FULL_DEV || false);\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{ref:\"customField\",staticClass:\"custom-text-field\",attrs:{\"value\":_vm.value,\"label\":_vm.label,\"rules\":[_vm.customRules],\"color\":\"accent\",\"outlined\":\"\",\"maxlength\":_vm.maxLength},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport VueI18n from 'vue-i18n';\n\n/**\n * Text field component which used in manage modal forms\n */\n@Component\nexport default class TextField extends Vue {\n @Prop() value!: string;\n @Prop({ default: null }) label!: null | string | VueI18n.TranslateResult;\n @Prop({ default: true }) optional!: boolean;\n @Prop() maxLength!: number | string;\n\n get customRules() {\n if (!this.optional) return (value: number) => (value === 0 || !!value) || this.$t('validationRules.required');\n else return true;\n }\n\n mounted() {\n (this.$refs.customField as any).validate(true);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextField.vue?vue&type=template&id=5a7e8cc5&\"\nimport script from \"./TextField.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TextField.vue?vue&type=style&index=0&id=5a7e8cc5&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB5CAMAAADyDY1YAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC8VBMVEXy8vJ8fHxXV1dvb2/p6e0WFhajo6P///9+fn6+vr4zMzNwcHBbq//Jyck1Fhb/1ILZ2dkYGRn8/fz/q1sWW6vFxcXT09MbGxvj5ORSUlLq6urs7Oz39/erWxampqYWNYKxsbHV///f39/a2t2CNRb//9RoaGjQ0NDDw8P5///9/f0WF1yMjIyVlZX7+/ubm5tbFhbw8PA1gtSAqNiPj51wcZLHx8+YmJitra3IyMgWFx2AgICs//////nUgjWDg4N2dnaJiYm2trb//6vo5+crKysnJyZcXFzA8vL09PTyv5OogHDy8thqamr/+eagoKAhGhYZFhZxcXUvLy9iYmLi4uKRkpJDQ0MZFic3NzceICEtGhdHR0e5ubnU1Nc8PDxfX1/u//94MBa14vft7e0gMVB4cXBLS0tSKhpzxP4WQo/f9//J/f+Ghob/+Mnw+f9Gk+Xy8edwcoL//PDm5uYxe8xPGBbjtHPw0aLh//9xkLrWnlwYFi9FLx98uOQXI2nL6PKxsbt6enr/7586IxskFiJAQEDGoIEWK3a46fTz7MUcOnMsLCySu+XmvZMuR3bvn09EFhZQldP+45FdotagURc7eb/5q1sWTpz6w3SHc3DMfDT//+heNxlVVVW5ZyDMzMx/f3/Vpn7o8vKbd3Dh7PBygKOr+f+0i3SgfXG/czS2bzzy78+Am8EjaLmAOhm4+P8XFkD/+alnufms0+6N4f+C0f38zHrtrVz/9rP/+8/u266RRRZouv///8FNgr14jKVqqt+4///28PA8Y6SWWTz215eXnajNzc26glDIm3YfJjzrwIJ1fIqCwOuiaEDZ7/LZpG1tRTGQenI6htkZIUT58N0bLEUsTY7/umi8jFn/4KuCt7f5tWVlIBZWouXkkENjODgbIzOkpIo8KipsYU84T2Gvo5fXx7yJhHu1ws7y7dLlvII0Hzqo2PLB2e2JsdxZjMDv6dfBqJ0ZUKCGeK3crYbL16LlsG1oIBZztqBnwanUAAAKKklEQVR42u2deXwTxxXHZ+Xujg6EJWNbsiRUV4AtGVm2CSAfMT7AdpvWB9g42GAwYDCBcJorgRICxCRAbqClQCBNCDlK0hIaSpqzV66mTZMmadomve8rvY+/+mZXslaWvcY20q7g/T4frXbl0ezs+3reezM7XhMq1/iPfowmXqljx1AUE6Hj+LDGxJHGo/yt1yONoWkwjePHjLpvhOsY8Pi5/7bPuw5paITGe/P+t3kT0hgujX+/2VT6A/Ap5d/79OzSO5cyUx38btPk0+xtPr//tj+umP32U1ByzTeb+PZvrIKCW6Dgsh2+GczXTaENP9zD8z9/fjENHUsqP3Hr9eNFVzWzcBPUvP0eX6SkREOq5zus9LdXwKmPqxLCtEXD+vZVa8+PXUfpV265x7fvCTBg6th5z69iFis9vOreu237lzY8s/IG+vQT+5fSb62AvfPzD69teAwASnX86Gcv+sq3sBrkfePCB5vo+7c8K9Kw3nkucPRLX5aVFGnACdc2PDrvSUqPzD+8qmHbfKQx/qYvUvr0knR6jJmcHgEDpjJ7MYut89FJE1cCmKOTr6afEaMA247b/lSMZ5o0MT2axvtQ6MIHj4s0HvdRej7sm8SSjMakiZ9dTMVtzyHWCJXSO+3FDWYhcChwuHvzurBTF99E29EZQIO9KL337u/Da9mZnbI6Gvb+6pe1TdE0yscztieYlWcWTgnX1leSHUmf0xOTr35uSboPaUTRSB0rJb1TBqExXqQhmhC8PP/uDl+ojjVLSn/9wi9WRNM4WyhWVvqknEakJDtKHSvSgLpnFqZTpBFFY/fmKdEJTz8aR/v6BuidvcchDkh1/HT7dbGe6q7Jp2F77BlwUhEakZLs6Gxf35BOgjRkNELuYlAaobhR+mykkFRQdGFrlqTL89aeQywmsJ+dltGILhmOGytvKBeTr/JDSKOPBp2x/eDanm2Q4g5MI5JTHfnTDl8Py5F2b97k+7rvrtKfpG09zqfT0DEVw4/U0d5rGiOjESkZm1OtfecVzKlkNMq37ZnNv3bQNwiNyHij4ZU9vDhOKN82n7/pa8cea+KX/XhJevhYdFShYfjZwn8sjtCIlJSNNyD+0PL/7OHfffEK9lTaU88hpKEJXfjnTl/PFmmYgzTU1tY3m3j+tb8uRhoopIFCGkgDhTSQBgppXAY00lwEpbpcaSKNAFpCGwoAjTQ0g1aURii6Ke04K0LRCBoS0kAaKKSBNFBIA2mgkEbSqnpOSoUdaWhDGSkgDmloQ0FGI8WCNDREYwLS0IRyGYwq9FRawbF6V0EX0sAMFzVQ32gsQhrakMWketxw5SXdwoE8xbtxJfn6i1N+Sb9vNqqeU7mSciGHAo4S/cWrH4581ccbeUlJI2/wC8ofBo386K964zIW9w8nY0jSVU6DStn+rdGH/b6bbUop84yIhq6XEOMgP7pMaHykn0ZLI1hSZFakMfIMV9edDTQEmy1IjGVGob62WbDmkDKrzY00BuwVJUXg4YKKNLqKg94R0uhoAxpGi+cAMbqJ0OtoKXN2E68zW3e50ZgwYdQ0Wr1dgIJSh16JxqxKiBvukdEwc4KR+SpxI3CEMwOGqkVtI6fhbcm6bxf8BtHclixdUCs0pk+dOn0wGmX8AueQNPyGrjwasHghffQq0hDEnMo+MhrOtnDfiNBoJu4R03DVd9BP1HOUbryvmHrqBG3QmD715ukhHDE0LAuclfC7fHIRzzcXDEzD3+EAFJ5ifbbLZc/zK9IYRYarM5MqMW4Ichqd1pTRearGHOlF3Z3aoDH1ZkZEiYbHmuIgxTWegWjkwrpmezHsAIzGwEa9Io1sBqOySMXxRn8LVOyC12rYMWcRTdBYKIYOJU9VZVTwVO6NeXSjW4RhiHFU/WgU+VNSTCVEOzQsWQZKcxphz5PlSZKcSlenGDeCnjzaBTD0noBfmQYh9rldRDs0iuoqaPLR4IbIqVrBX7n1+sBc/VA01J5Rj7r8QH1lgCaTpxJVpxsyw62mJ/UGakgqGiEYyRPFJVXVihFdcfRX5NLPjXVUWqYRhpE8GW7I2bdDTiVYO5RoGGjGAI5qBDRmhYcj6+eeiisNT5aoHGn015gMo7/QLbtrrXyzW3lmxBUYwFENm8a+R0ym188xFnuXm0wv7OwbN7KnEnKK1Zh1w8+pLtOZEb3eTAP6UdP41CdNoGkA4VW2Y3rojcg4niOeGr4S5gz54CJbppBlq8109vJZhKu0mTv5djfPG6GMIMCMogCjxI4retbQ7/KMnsbW5RvOffVzptsJbM6cumM57MlocAXOBU6jO/OApVUQ6pwFKUIlycngWpxOL/Fz0DckGr0O0uuxZF3Zc7i5htHTuMY07ePQP64Sd8j6h2FPRkMH3spsZDc0wOYcuCYOPhA4gZCc3uYIDXBo8Lnxyr7bFNRfQhrQSZaSLzwSTaMlm7xMwjRynK1clZ9kOoEGDBbu52CTUe/oFmkYHY6FeO/vktEAEBta3zJt+LOcRkYN39lHo9dW4/G08b2MBllkq+dIs9VeW1sp0qhis4t4X1z5vvjF02CBw2Sa8+GgXxI4XDMyyjUjw6BB/vb34Et/IZeaBq6nGhkNlDpCGkgDhTSQBgppXAY0/iXROPMAWkV9GjBN+NBOmJ3CzqEBGvveMt34Bru1YYJJKpS6NIruME27jb1HzRaiVOobnzfd+EB4B82iGRqvIg31aVwjeSqy70HTh2gW1aP4g5BSEfKHh0NUUGpnuHNe/x1sbkerqE+jaCu7x2TagDA0MRYn63/7m5d+fwptog0aKKSBShQNe67X4M21a/j6Z2V6DQZv5qyEn9hSpQ8m9hk8mQZJmZqFYQm10GBJ9JnZkxY6EkkjDKMPR3UNb4tebgJrFDsrNAAjjEMHK8GEmBXe8WhiFdAoTiANe+RSDaKzsluLiaX35X401HRTshYaZg1Mw2yMz7mz9foySwJp5MouNZd9IHRLP8ixwnMxpC3Q4GCNb0WN1U8yaq0LjAmlkSmnkSmjkdHOt3mc3by1zMyWH8eliScNExIZxb2ySxUfqcFJXqoYFuoas6VtiMa1luo2sqiA5CeWhryFUhPZ2m9eR4xeUlbmcBOLVewbCWtiHGnIL9Ugo8HeOE7ahmgI7KL5+LmFi2mhQdY3JCYLC+ra+2hc4ibC383qyxxq0nB3Jw0N0bMf6LA0x4tGAVsPOkFNT2VvF4ilrXgATyVeqrHA6VfdU0k0wCO5c/PrSHY7sdQ6nXFoYnVFgmnERHFS3SxmuLFRXLzUYpu1RStRvIY3euw11jnQniy+Kh5NzE4wjZgMd6jk30EK6lTOcBPXxETTiB39Ket+G1+TofLoL3FNTDgNnBnRFA2cNVSO4qvxPz5oQ2KGq89AGpqQW/rDcqShYSENpIFCGkgDhTSQBgppIA0U0kAaKKSBNFBIA4U0NEzDhTbQilyEpqEVtKI0eEZtAM2gDQXo/wEwxaYzBSl5mQAAAABJRU5ErkJggg==\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=style&index=0&id=10c37a9e&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/PVMonitoringService.d1565ec7.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/TSGLadestationNotAus.a006106b.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusPopup.vue?vue&type=style&index=0&id=5f07aaf3&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/MotorWithVFD.ae958322.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=style&index=0&id=4fa1630e&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"500\",\"padding\":false},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"areas\",\"color\":\"theme\",\"size\":\"20\"}})],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCollectionsModal.modalWindowTitle'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('v-card',{staticClass:\"pa-2\",staticStyle:{\"border-radius\":\"10px\"},attrs:{\"elevation\":\"0\",\"color\":\"deviceBackground\"}},[_c('v-card-title',[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageCollectionsModal.user'))+\":\")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.memberObject.first_name))]),_c('span',[_vm._v(_vm._s(_vm.memberObject.last_name))])]),_c('v-card-text',[_c('v-list',{attrs:{\"color\":\"deviceBackground\"}},[_c('v-list-item-group',{attrs:{\"multiple\":\"\",\"active-class\":\"\"}},_vm._l((_vm.collectionList),function(collection,index){return _c('v-list-item',{key:index,staticStyle:{\"z-index\":\"30\"},on:{\"click\":function($event){return _vm.handleItemClick(collection, index)}}},[[_c('v-list-item-action',[_c('v-checkbox',{staticStyle:{\"z-index\":\"-5\"},attrs:{\"hide-details\":\"\",\"true-value\":true,\"false-value\":false,\"color\":\"accent\"},model:{value:(collection.selected),callback:function ($$v) {_vm.$set(collection, \"selected\", $$v)},expression:\"collection.selected\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(collection.name))])],1)]],2)}),1)],1)],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.updateCollections}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCollectionsModal.saveAction'))+\" \")])],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { IRoom } from '@/types/rooms.types';\nimport { ICollectionItem } from '@/types/common.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * Component where Collection/Room Access can be selected for a specific user\n */\n@Component({\n components: {\n ModalWindow,\n },\n})\nexport default class ManageCollectionsAccessModal extends Vue {\n @Prop({ default: {} }) memberObject!: IMember;\n @Prop({ default: true }) updateMemberInModal!: boolean;\n @Prop({ default: undefined }) useCustomProjectId!: string;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Action('members/updateMemberCollections') updateMemberCollections!: (\n { project_id, member, collectionsList }: { project_id: string; member: IMember; collectionsList: string[] }\n ) => Promise;\n\n collectionList: ICollectionItem[] = [];\n\n get selectedCollections() {\n return this.collectionList\n .filter((item: ICollectionItem) => item.selected)\n .map((item: ICollectionItem) => item.id);\n }\n\n get projectIdToUse() {\n return this.useCustomProjectId ? this.useCustomProjectId : this.$route.params.id;\n }\n\n updateCollections() {\n if (this.updateMemberInModal) {\n this.updateMemberCollections({\n project_id: this.projectIdToUse,\n member: this.memberObject,\n collectionsList: this.selectedCollections,\n });\n } else {\n this.$emit(\n 'selectedCollections',\n { id: this.memberObject.id, selections: this.selectedCollections },\n );\n }\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n handleItemClick(item: ICollectionItem, index: number) {\n this.collectionList[index].selected = !item.selected;\n }\n\n async initCollectionList() {\n this.collectionList = Object.values(this.rooms).map((room: IRoom) => {\n const selectedStatus = Array.isArray(this.memberObject?.collections)\n ? this.memberObject.collections.includes(room.id)\n : false;\n return { id: room.id, name: room.name, selected: selectedStatus };\n });\n }\n\n onDialogStatusChange(status: boolean) {\n if (status) this.initCollectionList();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageCollectionsAccessModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageCollectionsAccessModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageCollectionsAccessModal.vue?vue&type=template&id=eb47a370&\"\nimport script from \"./ManageCollectionsAccessModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageCollectionsAccessModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasser.vue?vue&type=style&index=0&id=306e0582&prod&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYwAAAB8CAMAAABNAnfVAAAAqFBMVEUxMTFNSELl6evRlRdRUlLq///5+vkXFxf////GxsYXbrY4Q09DOTPv7+8vMz/T/v9SUUwiIiJJUVH65bf+0JVtbW29vbz/+dCtbSffq2i35/3+/emjo6MXF5V8fHwjltJttOeVlZVeXl6FhYUXH2hqGhfkvYvR0dEnUZgXFziW0f3g4N5ciLiVFxeQxOdUMxc0FxcvLy/X19eJUCSpqakXF32HKRfGiReaQLewAAAEYUlEQVR42u2da1faQBCGQxp2N9KAEQOCiBAwXELBeKn//591ZhNAEdpij3TA9zknuIENH+ZhZ3aTgI4GYnAQAsgA22TcmiXfEA0JI+P2n0Xc1C4RS8g4URmTmWtU/VHrs3JrXjb1x1nNXF/xbtJWpk4tPaTnr5OF1tM6vdjiI+whZ2VKc/W7szK/T48Ouqkl8zL95Q7NK4R5bxm3qnU/btfvKLQqWYxrFOVhvnvdWozbzUc9mTavJrNyQjIoxPfkhsTYQ/KR8VqGubRak8VwSkeC/WTYwOsz9cIj4553aQT0mj+KENOTekwbP/dTT2lbwn3ey0juqWm7jWstxHlPGTc2Zhw5G9Nh+1K/lsHhvuWsZR+nLI4zm+8GaqsMfjN6D1Ly3EY92VeGzfvEb2T08h4rGZOeaTb67Z0yKFlZIGNfGets8oeRweQyxmVORr2dMjAmPirj2eaUnTK4ZuSttQy7P+E+ee98f76SMSmyGdh7NtWjSVO1ZyeqGzJo5mTnTMM2tSrz5G45MmqXi8rcUB8Oe5VmYAl1NCsZNEFLFpNZirntB9YZAdUDmki9k5EUCxCayypqXS1Hhp7xsmNOfciLUS+THu231iPDLl3yhQn4Wxk54Y4u6+QEDiZDQwZkgD1kAMiADAAZADIgA0DGkcgIw8wB/5swZBkhAiFEh3bgQgpZCBmChoaDegEAAAAAAAD4OLFrVANhkIHLt70+IQ4S6Np7kB8QCAFkuYwRIiGClGX0EQcRlPwggAsAtowMFyNDCA+oGWKIMJvCOgNsI8AKXFCeIhs4NyVlDY4QCGIw8iNEQQYNKhkKNkQQY2qLqS3YQkmxDEynZNAnG2kJcZCBF6F8Y6kBAADgNKl43vl3hEGKCwI2JFC98Eq8IRIiZFCOqkAGZADIgIzPYBCYNIaMQ9JNlVEjj1pZxE3fK17IVMfx7SWCDv8niXQAGZ9N3wQRPbjUjJUbOV3lLi0Z2gKHL2k2YidKTQcyPpnSA5969s2geHCeVrcfBTQyRpStjG87pl3IOAgN/ti7PAyceHUpuagZvllayCDjENiAm9S2V3mqIFUo4IckNjwoigv6QfD2xc19yPjcuuHaalHIcDeC756MDO8IZJAL+82GHWnqVGRUvVyGaBte4eJdAS+q9sicxqX+Sn4toyL5JHoUqMGyiudT287mSiS/H8k/7qlt9aKQIDhRdVVQfPAzu+gbbGYpxxmZhufEoyO/R6yyvMhHDbkrjAIaD/npkPefmyf+MYhj//5itZCRCZbxpjw4J8wxpKmvwzEU8C8DDQ3vnDYMDCk24EKOjkoJKQoAAEDfb+DbMkKIfAJhkHHuYMAyMFOSQanh+x2EQQjngy4GhqRchRCIwOOSgV/Fk0HMMlAzZCQort+QIcVGBhmCgAzIAJAhfgEOG0Lqt53a+vjxLzmLPh8/MgwAAAAAAAAAAAAAAACiwZ1UglSECIIUQsiQJEPDhhQX2tE6DFE3BKgItf4FRKVcqXzgNHwAAAAASUVORK5CYII=\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=de60dfa2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=7cf393d3&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=style&index=0&id=67ca3dbe&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAusPreview.vue?vue&type=style&index=0&id=5a3fd0f4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StringInverterComponentSettings.vue?vue&type=style&index=0&id=6545eaeb&prod&lang=css&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=style&index=0&id=465d0b73&prod&lang=scss&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ded5cbe6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnChart.vue?vue&type=style&index=0&id=75306474&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{attrs:{\"background-color\":\"transparent\",\"color\":\"accent\",\"centered\":\"\"}},_vm._l((_vm.pages),function(page,index){return _c('v-tab',{key:index,on:{\"click\":function($event){return _vm.updateSelectedPage(page[0] - 1)}}},[_c('span',{staticClass:\"pr-1\"},[_vm._v(_vm._s(page[0]))]),(page[0] !== page[1])?_c('span',[_vm._v(\"- \"+_vm._s(page[1]))]):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class PaginationTabs extends Vue {\n @Prop({ default: 10 }) elementsPerPage!: number;\n @Prop({ default: 0 }) totalElements!: number;\n\n // splits pages into groups of [[start, end], [start, end], ...\n get pages() {\n const pagesCount = Math.ceil(this.totalElements / this.elementsPerPage);\n const pages = [];\n\n for (let i = 0; i < pagesCount; i++) {\n const first = i * this.elementsPerPage + 1;\n const last = Math.min((i + 1) * this.elementsPerPage, this.totalElements);\n pages.push([first, last]);\n }\n\n return pages;\n }\n\n updateSelectedPage(index: number) {\n this.$emit('updatePage', index);\n }\n mounted() {\n this.updateSelectedPage(0);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaginationTabs.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaginationTabs.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaginationTabs.vue?vue&type=template&id=60c567c1&scoped=true&\"\nimport script from \"./PaginationTabs.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaginationTabs.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60c567c1\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComponentsPage.vue?vue&type=style&index=0&id=310b893c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a5a52454&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/WeatherStation.b00d9651.png\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=style&index=0&id=15c46062&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=style&index=0&id=5fd4ffa2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartDevice.vue?vue&type=style&index=0&id=cd5d72a2&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"label\":\"Icon\",\"outlined\":_vm.outlined,\"hint\":_vm.$t('uiComponents.iconList.iconNameLimits'),\"persistent-hint\":\"\"},model:{value:(_vm.input),callback:function ($$v) {_vm.input=$$v},expression:\"input\"}}),(_vm.loading)?_c('div',{staticClass:\"loading\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"blue\"}})],1):_c('div',{staticClass:\"icon-list v-card\"},_vm._l((_vm.icons),function(icon,index){return _c('div',{key:index,staticClass:\"icon-item\",class:{'icon-item--active': _vm.selected.id === icon.id},on:{\"click\":function($event){return _vm.change(icon)}}},[_c('img',{class:{ 'img-white': _vm.$vuetify.theme.dark },attrs:{\"alt\":icon.term,\"src\":`https://static.lynus.io/icons/${icon.id}.svg`}})])}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IReportBox } from '@/types/app.types';\nimport {\n Component, Prop, Vue, Watch,\n} from 'vue-property-decorator';\nimport { Mutation } from 'vuex-class';\nimport { Icon } from '@/types/common.types';\n\n// IconList is a general component that can be used with\n// any icon library. It implements a typing timeout to\n// improve search performance.\n// When clicking on an icon, the event @selected will be\n// emitted and will return the icon\n//\n// Example:\n// \n// icons: Icon[] = []\n//\n// search(q: string) {\n// // clear icons if the query is smaller than 3 chars\n// if (q.length < 3) {\n// return new Promise((res) => {\n// this.icons = [];\n// res();\n// });\n// }\n//\n// return IconService.fetchIcons(q)\n// .then(icons => this.icons = icons.map((icon: any) => ({ term: icon.term, url: icon.icon_url })));\n// }\n//\n// onSelected(icon: Icon) {\n// console.log(icon);\n// }\n@Component\nexport default class IconList extends Vue {\n // https://stackoverflow.com/a/4220182\n // searchTimeout is the time a user has stopped typing\n // which is needed to trigger the @search event. This\n // prevents sending too much api requests\n @Prop({ default: 350 }) searchTimeout!: number\n // search is a prop func that returns the icons as a Promise\n @Prop({ required: true }) search!: (q: string) => Promise\n // icons list. This is exposed as prop so that we can take out\n // the icon handling logic from IconList\n @Prop({ required: true }) icons!: Icon[]\n @Prop() outlined?: boolean;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n\n typingTimer?: number;\n loading = false;\n input = '';\n selected: Icon = { term: '', id: '' };\n\n @Watch('input')\n async onSearch(q: string) {\n clearTimeout(this.typingTimer);\n\n this.loading = true;\n this.typingTimer = window.setTimeout(() => {\n this.search(q)\n .catch((e) => this.setReport({ type: 'error', message: e.message, value: true }))\n .finally(() => this.loading = false);\n }, this.searchTimeout);\n }\n\n change(icon: Icon) {\n this.selected = icon;\n this.$emit('selected', icon);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconList.vue?vue&type=template&id=4be71c5d&scoped=true&\"\nimport script from \"./IconList.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IconList.vue?vue&type=style&index=0&id=4be71c5d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4be71c5d\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBaseMock.vue?vue&type=style&index=0&id=238440f4&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":_vm.modalWidth,\"overlay-opacity\":\"0.8\"},model:{value:(_vm.isSettingsView),callback:function ($$v) {_vm.isSettingsView=$$v},expression:\"isSettingsView\"}},[(_vm.isSettingsView)?_c('v-card',{staticClass:\"settings-view\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"settings-view-header\"},[_c('div',{staticClass:\"settings-view-title\"},[_vm._v(_vm._s(_vm.deviceData.name))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$emit('switchSettingsView', false)}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1),_c('div',{staticClass:\"settings-view-body\"},[_vm._t(\"content\")],2)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent settings view for device, MPC\n */\n@Component\nexport default class SettingsView extends Vue {\n @Prop() isSettingsView!: boolean;\n @Prop() deviceData!: any;\n @Prop({ default: '600' }) modalWidth!: number | string;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsView.vue?vue&type=template&id=e8dda2f0&\"\nimport script from \"./SettingsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsView.vue?vue&type=style&index=0&id=e8dda2f0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerComponentsPage.vue?vue&type=style&index=0&id=f2f9ca3c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=style&index=0&id=14cc09e2&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=style&index=0&id=070be439&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=style&index=0&id=044484fa&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsInstanceControlsTemplate.vue?vue&type=style&index=0&id=7cbb2e22&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44a6e1b8&prod&lang=scss&scoped=true&\"","import { IDevice } from '@/types/devices.types';\n\nexport const SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE = ['EMSV2', 'EMS', 'SetpointOptimizer'];\nexport const SYSTEMS_WHERE_EXTERNAL_ENERGY_MEASUREMENTS_WORKS = ['charge_station', 'electric_heating', 'heating_pump', 'big_consumer', 'battery', 'pv', 'generator', 'chp'];\nexport const SYSTEMS_WHERE_CALCULATE_AS_EXTERNAL_DEVICE_WORKS = ['charge_station'];\nexport const EXTERNAL_ENERGY_MEASUREMENTS = ['power', 'energy_counter'];\nexport const EXTERNAL_ENERGY_MEASUREMENTS_FOR_HYBRID_SYSTEMS = ['power', 'energy_counter', 'reverse_energy_counter'];\n\nexport const externalEnergyMeasurementsSelected = (\n { system, systemInstance, device }: { system: string; systemInstance: string; device: IDevice },\n) => {\n const isSystemWithExternalMeasurements = SYSTEMS_WHERE_EXTERNAL_ENERGY_MEASUREMENTS_WORKS.includes(system);\n if (!isSystemWithExternalMeasurements) return false;\n return device.data.meta.controllerMappings[system].components?.[systemInstance]?.external_energy_measurement;\n};\n","import _ from 'lodash';\nimport store from '@/store';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IMappedIds } from '@/types/common.types';\nimport { IMember, IMemberMetaMapElement } from '@/types/members.types';\nimport { getDefaultRulesObject } from './utilsFunctions';\n\nconst autoRuleIdList: any = [];\nexport async function sortRoom(originalElement: any, newElement: any, mappings: any): Promise {\n if (\n Object.keys(mappings[originalElement.id]).length !== 0 &&\n newElement.meta.devicesPositions !== undefined\n ) {\n newElement.meta.devicesPositions.forEach((position: any, index: any) => {\n newElement.meta.devicesPositions[index].i = mappings[originalElement.id].devices[position.i];\n });\n newElement.id = mappings[originalElement.id].room;\n const payload: any = { room: newElement };\n await store.dispatch('rooms/updateRoom', payload);\n return newElement;\n }\n return newElement;\n}\n\n/**\n * @param member Member object as IMember\n * @param project Original project object as IProject\n * @param newProject Copied project object as IProject\n * @param mappings Mapped Devices\n * @returns Status of the update (false if failed/true if successful)\n */\nexport async function updateMemberOrders(member: IMember, project: IProject, newProject: IProject, mappings: any) {\n if (member.meta.area_positions === undefined) return true;\n const roomOrder = member.meta.area_positions;\n const deviceOrder = member.meta.device_positions;\n const favoriteOrder = member.meta.favorite_positions;\n const favoriteDevices = member.meta.favorite_devices;\n const newRoomOrder: any = [];\n const newFavoriteOrder: any = [];\n const newFavoriteDevices: any = [];\n const newDeviceOrder: any = {};\n\n const allDevices = Object.values(mappings)\n .flatMap((obj: any) => Object.entries(obj.devices).map(([key, value]) => ({ [key]: value }))).reduce((acc, curr) => Object.assign(acc, curr), {});\n\n // Update params for member room order\n if ((roomOrder !== undefined) && ((Object.keys(roomOrder).length > 0))) {\n Object.entries(roomOrder).forEach((room: any) => {\n if (Object.keys(mappings).includes(room[1].i)) {\n const newRoom = _.cloneDeep(room);\n newRoom[1].i = mappings[room[1].i].room;\n if (newRoom !== undefined) {\n // filter for undefined values\n newRoomOrder.push(newRoom[1]);\n }\n }\n });\n }\n\n // Update params for member device order\n if (deviceOrder !== undefined) {\n if (Object.keys(deviceOrder).length > 0) {\n Object.entries(deviceOrder).forEach((room: any) => {\n if (Object.keys(mappings).includes(room[0])) {\n const newRoom = _.cloneDeep(room);\n const newDevicePosition: any = [];\n newRoom[1].forEach((device: any) => {\n const newPosition = _.cloneDeep(device);\n newPosition.i = mappings[room[0]].devices[device.i];\n if (newPosition !== undefined) {\n // filter out undefined values\n // can appear if area is sorted but one device gets deleted\n newDevicePosition.push(newPosition);\n }\n });\n newDeviceOrder[mappings[room[0]].room] = newDevicePosition;\n }\n });\n }\n }\n // Update favorite devices positions\n const favoriteOrderIDs = (favoriteOrder ?? []).map((favorite: any) => favorite.i);\n (favoriteDevices ?? []).forEach((device: any) => {\n if (device in allDevices) {\n // check if device is in favorite order\n if (favoriteOrderIDs.includes(device)) {\n const dev = favoriteOrder.find((favorite: any) => favorite.i === device);\n const newPosition: any = _.cloneDeep(dev);\n newPosition.i = allDevices[device];\n newFavoriteOrder.push(newPosition);\n newFavoriteDevices.push(newPosition.i);\n } else {\n newFavoriteDevices.push(allDevices[device]);\n }\n }\n });\n\n member.meta.area_positions = newRoomOrder;\n member.meta.device_positions = newDeviceOrder;\n member.meta.favorite_positions = newFavoriteOrder;\n member.meta.favorite_devices = newFavoriteDevices;\n\n function gridSortCallback(a: any, b: any) {\n if (a.y === b.y) {\n // If the y values are the same, sort by x\n return a.x - b.x;\n }\n // Otherwise, sort by y\n return a.y - b.y;\n }\n\n // App Order\n member.meta.app_area_order = [...newRoomOrder].sort(gridSortCallback).map((room: any) => room.i).filter((room: any) => room !== undefined);\n const newAppDeviceOrder: any = { ...newDeviceOrder };\n // eslint-disable-next-line guard-for-in,no-restricted-syntax\n for (const key in newAppDeviceOrder) {\n // sort devices and remove undefined values\n newAppDeviceOrder[key] = newAppDeviceOrder[key].sort(gridSortCallback).map((item: IMemberMetaMapElement) => item.i).filter((item: any) => item !== undefined);\n }\n member.meta.app_area_device_order = newAppDeviceOrder;\n\n const positionStatus = await store.dispatch('members/updateMemberMeta', { project_id: newProject.id, member });\n\n return positionStatus;\n}\n\nexport async function copyDevices(devicesList: IDevice[], resultRoom: IRoom, resultNewProject: IProject): Promise {\n const localResultObject: any = {};\n // eslint-disable-next-line no-restricted-syntax\n for (const device of devicesList) {\n if (Object.keys(device).includes('project_id')) {\n const mpc: any = {\n collection_id: resultRoom.id,\n data: device.data,\n name: device.name,\n project_id: resultNewProject.id,\n };\n if (mpc.data.meta.controllerMappings.errorWarning && mpc.data.meta.controllerMappings.errorWarning !== '') {\n // put id's of current rules inside autoRuleIdList to make the rules that are already duplicated\n autoRuleIdList.push(device.data.meta.errorRule);\n autoRuleIdList.push(device.data.meta.warningRule);\n // ems general rules\n const generalRulesMPC: any = getDefaultRulesObject(mpc.name, mpc.data.meta.controllerMappings.errorWarning, 'Device');\n // create new rules\n const res: any = await store.dispatch('rules/addRules', {\n project_id: resultNewProject.id,\n rulesList: generalRulesMPC,\n });\n\n mpc.data.meta.warningRule = res[0].id;\n mpc.data.meta.errorRule = res[1].id;\n }\n const newMPC: any = await store.dispatch('mpc/createMCCInstance', mpc);\n if (newMPC === null) {\n localResultObject[device.id] = undefined;\n } else {\n if (device.favorite) {\n await store.dispatch('mpc/addMPCToFavorites', newMPC.id);\n }\n localResultObject[device.id] = newMPC.id;\n }\n } else {\n const newDeviceObject: any = {\n collection_id: resultRoom.id,\n data: device.data,\n name: device.name,\n };\n const isChart = device.data.type !== 'chart';\n const isDeviceHasErrorWarning = device.data?.mappings?.ShowEvent_errorWarningState;\n if (isChart && isDeviceHasErrorWarning) {\n // put id's of current rules inside autoRuleIdList to make the rules that are already duplicated\n autoRuleIdList.push(device.data.meta.errorRule);\n autoRuleIdList.push(device.data.meta.warningRule);\n // add rules to newDeviceObjects\n const rulesList: any = getDefaultRulesObject(device.name, device.data.mappings.ShowEvent_errorWarningState, 'Device');\n const res = await store.dispatch('rules/addRules', {\n project_id: resultNewProject.id,\n rulesList,\n });\n newDeviceObject.data.meta.warningRule = res[0].id;\n newDeviceObject.data.meta.errorRule = res[1].id;\n }\n\n if (newDeviceObject.data.type === 'ElectricChargingStationV2') {\n // remove all users from Charging Station Device\n newDeviceObject.data.meta.selectedUsers = [];\n }\n\n const newDevice = await store.dispatch('devices/createDevice', newDeviceObject);\n if (newDevice === null) {\n localResultObject[device.id] = undefined;\n } else {\n if (device.favorite) {\n await store.dispatch('devices/addDeviceToFavorites', newDevice.id);\n }\n localResultObject[device.id] = newDevice.id;\n }\n }\n }\n\n return localResultObject;\n}\n\nexport async function copyRoomWithDevices(roomItem: any, resultNewProject: any, mappings: any) {\n const newRoomObject = _.cloneDeep(roomItem);\n const devicesToCreate = await store.dispatch('devices/getAllDevicesByCollectionID', roomItem.id);\n const mpcToCreate = await store.dispatch('mpc/getMpcList', roomItem.id);\n\n delete newRoomObject.id;\n delete newRoomObject.created_at;\n\n // contains resultRoom in order to be able to add deivces to the right room\n const resultRoom = await store.dispatch('rooms/copyRoom', {\n room: newRoomObject,\n cover: newRoomObject.meta.cover,\n });\n\n const fullDeviceList = [...devicesToCreate, ...mpcToCreate].sort((a: any, b: any) => {\n const first = new Date(a.created_at).getTime();\n const second = new Date(b.created_at).getTime();\n if (first > second) return 1;\n if (first < second) return -1;\n return 0;\n });\n\n const resultDevices = await copyDevices(fullDeviceList, resultRoom, resultNewProject);\n\n mappings[roomItem.id] = {};\n mappings[roomItem.id].devices = { ...resultDevices };\n mappings[roomItem.id].room = resultRoom.id;\n\n if (resultRoom?.error !== undefined) {\n resultRoom.name = roomItem[1].name;\n }\n\n return { resultRoom, resultDevices };\n}\n\nexport async function duplicateSingleRoom(roomData: any, project: IProject, member: IMember) {\n const room: any = roomData;\n room.name = `${room.name} (copy)`;\n const mappedDevices: any = {};\n const oldMember = { ...member };\n const originalProject = { ...project };\n const roomMeta: any = {};\n /* copies room with devices */\n if (room !== undefined) {\n await copyRoomWithDevices(room, originalProject, mappedDevices);\n\n // Sorts new room the same way as the old one\n const newElement = _.cloneDeep(room);\n roomMeta[newElement.room] = await sortRoom(\n room,\n newElement,\n mappedDevices,\n );\n\n // Update members meta\n await updateMemberOrders(oldMember, originalProject, originalProject, mappedDevices);\n }\n}\n","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusChart.vue?vue&type=style&index=0&id=1b3dd40c&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/HistoryAnomalyDetection.0eb59bf4.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerInformation.vue?vue&type=style&index=0&id=7b6d600c&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"header-navigation-wrapper pt-2\",staticStyle:{\"z-index\":\"9999\",\"width\":\"100%\",\"display\":\"grid\",\"grid-template-columns\":\"repeat(3, 1fr)\"}},[_c('PeriodSelection',{staticStyle:{\"grid-column\":\"2\"},attrs:{\"navigation-items-to-exclude\":_vm.navigationItemsToExclude,\"disable-nav-button\":_vm.disableNavButton,\"count-columns\":_vm.localCountColumns,\"count-lines\":_vm.localCountLines,\"period\":_vm.currentPeriod,\"modularDefaultPeriod\":_vm.modularDefaultPeriod},on:{\"selected\":_vm.handleNavigation}}),(_vm.currentProject.meta?.projectCurrency === undefined)?_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\"}},[_c('v-btn',{staticStyle:{\"width\":\"60%\",\"height\":\"80%\"},on:{\"click\":function($event){_vm.changeCurrency = !_vm.changeCurrency}}},[_vm._v(\" \"+_vm._s(this.$t('mlModel.EMS.systems.EnergyFlowView.switchCurrency'))+\" \"+_vm._s(!_vm.changeCurrency ? 'CHF' : '€')+\" \")])],1):_vm._e()],1),_c('div',{style:(`height: ${_vm.energyVisualisationHeight}; margin-top:16px`)},[_c('EnergyVisualisation',{attrs:{\"centralEndPointText\":`${_vm.$t('mlModel.EMS.charts.autarchy')} 100%`,\"circlesDisplayData\":_vm.localCirclesDisplayData,\"linesDisplayData\":_vm.localLinesDisplayData,\"view\":\"EnergyFlowView\"}})],1),(_vm.showDialog && _vm.openedSystem)?_c('ActualViewSystemDialog',{attrs:{\"device-data\":_vm.data,\"opened-system\":_vm.openedSystem},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e(),_c('div',{staticClass:\"pb-2 device-background\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-around\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"flex-direction\":\"column\",\"justify-content\":\"center\"}},[_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(`mlModel.EMS.systems.EnergyFlowView.savings`)))]),_vm._v(\": \"+_vm._s(_vm.changeCurrency ? (_vm.costSavings * _vm.currentExchangeRate).toFixed(2) : _vm.costSavings.toFixed(2))+\" \"+_vm._s(_vm.changeCurrency ? 'CHF' : '€')+\" \")])]),_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(`mlModel.EMS.systems.EnergyFlowView.reduction`)))]),_vm._v(\": \"+_vm._s(_vm.emissionReduction.toFixed(2))+\" \"+_vm._s(_vm.currentPeriod !== 'year' ? 'kg' : 't')+\" \")]),_c('div',[_c('span',{staticStyle:{\"font-weight\":\"bold\"}},[_vm._v(_vm._s(_vm.$t(`mlModel.EMS.systems.EnergyFlowView.inHouseConsumption`)))]),_vm._v(\": \"+_vm._s(_vm.totalConsumption.toFixed(2))+\" \"+_vm._s(_vm.currentPeriod !== 'year' ? 'kWh' : 'MWh')+\" \")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"central-endpoint\"},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.charts.autarchy')))]),(typeof _vm.value === 'number')?_c('div',[_vm._v(_vm._s(_vm.value)+\"%\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component represent central circle which used in EMS, EnergyView...\n */\n@Component\nexport default class AutarkiegradCircle extends Vue {\n @Prop({ default: null }) value!: any;\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutarkiegradCircle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutarkiegradCircle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutarkiegradCircle.vue?vue&type=template&id=57bc0819&scoped=true&\"\nimport script from \"./AutarkiegradCircle.vue?vue&type=script&lang=ts&\"\nexport * from \"./AutarkiegradCircle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AutarkiegradCircle.vue?vue&type=style&index=0&id=57bc0819&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"57bc0819\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hour-picker\",style:({ backgroundColor: _vm.devBaseBGColor})},[_c('div',{key:_vm.reRenderKey,staticClass:\"d-flex\"},[_c('v-date-picker',{staticClass:\"hour-picker-date-field\",attrs:{\"color\":\"accent\",\"max\":_vm.datePickerMax,\"full-width\":\"\"},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}),_c('v-time-picker',{staticClass:\"hour-picker-time-field\",attrs:{\"color\":\"accent\",\"format\":\"24hr\",\"max\":_vm.timePickerMax(),\"ampm-in-title\":false,\"use-seconds\":false,\"disabled\":!_vm.date,\"full-width\":\"\",\"scrollable\":\"\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}}),_c('div',[_c('h4',{staticClass:\"px-2 pt-2 pb-4 titleList\"},[_vm._v(\"Selected Dates\")]),_c('v-data-table',{staticClass:\"elevation-0 primary calendarList-table\",attrs:{\"items\":_vm.formattedDateList,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item,index){return _c('tr',{key:index,style:({ backgroundColor: _vm.devBaseBGColor})},[_c('td',[_vm._v(_vm._s(item))]),_c('td',[_c('v-btn',{staticStyle:{\"height\":\"20px\",\"width\":\"20px\"},attrs:{\"fab\":\"\",\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.handleRemoval(index)}}},[_vm._v(\" X \")])],1)])}),0)]}}])})],1)],1),_c('v-btn',{attrs:{\"disabled\":_vm.disableMoreDates,\"color\":\"accent\",\"block\":\"\"},on:{\"click\":function($event){return _vm.addCurrentDate()}}},[_vm._v(\" Select another Date \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\n\n@Component\nexport default class HourPickerMultiSelect extends Vue {\n @Prop() value!: any;\n @Prop() enableMultiSelect!: boolean;\n\n date: any = null;\n time: any = '';\n dateList: any = [];\n disableMoreDates = false;\n formattedDateList: string[] = [];\n devBaseBGColor = this.$vuetify.theme.dark ? '#424242' : '#ffffff';\n reRenderKey = 1;\n\n @Watch('dateList')\n onDateTimeChange(val: any) {\n const returnValue = this.convertTimeToMs(val);\n this.$emit('input', returnValue);\n }\n\n handleRemoval(index: any) {\n this.formattedDateList.splice(index, 1);\n }\n\n convertTimeToMs(currentValue: any) {\n if (this.dateList.length >= 5) {\n this.disableMoreDates = true;\n }\n const val = currentValue;\n const returnArray: any = [];\n let d: any = '';\n let formatedDateSting = '';\n val.forEach((element: any, index: number) => {\n if (Number.isInteger(element) === false) {\n // date need to have the following format ['yyyy-mm-dd'] or ['yyyy-mm-dd', 'yyyy-mm-dd']\n d = new Date(element.year, element.month - 1, element.day, element.hour, element.minute);\n formatedDateSting = `${element.hour}:${element.minute} ${element.day}.${element.month}.${element.year}`;\n if (!this.formattedDateList.includes(formatedDateSting)) {\n this.formattedDateList.push(formatedDateSting);\n }\n const newVal = Math.trunc(d.getTime() / 1000);\n returnArray.push(newVal);\n }\n });\n return returnArray;\n }\n\n addCurrentDate() {\n this.dateList.push(this.fullDateTime);\n this.date = null;\n this.time = '';\n this.reRenderKey += 1;\n }\n\n get fullDateTime() {\n if (this.date && this.time) {\n this.disableMoreDates = false;\n const [year, month, day] = this.date.split('-');\n const [hour, minute] = this.time.split(':');\n return { year, month, day, hour, minute };\n } else {\n this.disableMoreDates = true;\n return null;\n }\n }\n\n get datePickerMax() {\n return new Date().toISOString();\n }\n\n timePickerMax() {\n const d: any = new Date();\n const local = `${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}`;\n const isToday: boolean = local === this.date;\n return isToday ? `${d.getHours()}:${d.getMinutes()}` : null;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HourPickerMultiSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HourPickerMultiSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HourPickerMultiSelect.vue?vue&type=template&id=5874ae7e&\"\nimport script from \"./HourPickerMultiSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./HourPickerMultiSelect.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HourPickerMultiSelect.vue?vue&type=style&index=0&id=5874ae7e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide, Vue } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport _ from 'lodash';\nimport { INavigationState } from '@/store/modules/navigation/types';\nimport AutarkiegradCircle from '@/ui/components/devices/components/EnergyParts/AutarkiegradCircle.vue';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport HourPicker from '@/ui/components/devices/charts/components/HourPicker.vue';\nimport HourPickerMultiSelect from '@/ui/components/devices/charts/components/HourPickerMultiSelect.vue';\nimport DefaultCalendar from '@/ui/components/devices/charts/components/DefaultCalendar.vue';\nimport MultiSelectionCalendar from '@/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport PeriodSelection from '@/ui/components/devices/charts/components/PeriodSelection.vue';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport { kilogramUnit, kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport EnergyVisualisation from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport ActualViewSystemDialog from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue';\nimport { circlesDisplayDataMock, linesDisplayDataMock} from '@/ui/components/devices/previews/mockObjects/energyDevicesMockObjects';\nimport { EnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent EMS EnergyFlow view\n */\n@Component({\n components: {\n CircleSpinner,\n AutarkiegradCircle,\n RotatingBacklight,\n PeriodSelection,\n HourPicker,\n HourPickerMultiSelect,\n DefaultCalendar,\n MultiSelectionCalendar,\n EnergyVisualisation,\n ActualViewSystemDialog,\n },\n})\nexport default class EnergyFlowView extends Vue {\n @Prop() data!: IDevice;\n @Prop({ default: '650px' }) energyVisualisationHeight!: string;\n @State('navigation') navigationState!: INavigationState;\n @State('mpc') mpcState!: any;\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('projects/startOfTheProject') createdAt!: number;\n @Getter('projects/project') currentProject!: IProject;\n @Getter('projects/projectCurrency') projectCurrency!: '€' | 'CHF' | undefined;\n\n readonly multiSelectLimit: number = 5;\n\n @Provide('onCircleClick') onCircleClick = this.onCircleClickCallback;\n\n showDialog = false;\n showSystemSettingsDialog = false;\n openedSystem?: EnergyCircleType;\n\n onCircleClickCallback(circleData: EnergyCircleDisplayData) {\n this.openedSystem = circleData.id as EnergyCircleType;\n this.showDialog = true;\n }\n\n reRenderKey = 0;\n canvasSize: any = null;\n canvasCenter: any = null;\n canvasLines: any = {};\n power = '';\n\n currentPeriod: string = Periods.DAY;\n tabsTimer: any = null;\n\n startDate = periodConfigurations[this.currentPeriod].period().start;\n endDate = periodConfigurations[this.currentPeriod].period().end;\n\n localCountColumns = 0;\n localCountLines = 0;\n modularDefaultPeriod = 'day';\n\n date: number[] = [];\n costSavings = 0;\n emissionReduction = 0;\n totalConsumption = 0;\n\n dataLoaded = false;\n\n changeCurrency = false;\n currentExchangeRate = 0.97;\n direction = 1;\n\n navigationItemsToExclude = ['live', 'hour'];\n calculatedConsumerSystems: any = [];\n calculatedProducerSystems: any = [];\n calculatedBattery: any = {};\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n disableNavButton = false;\n\n localCirclesDisplayData = circlesDisplayDataMock;\n localLinesDisplayData = linesDisplayDataMock;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get now() {\n return new Date().toISOString();\n }\n\n get start() {\n return new Date(this.createdAt).toISOString();\n }\n\n customApproximationValue() {\n return { day: 4, week: 1, month: 1, year: 1 };\n }\n\n get groups() {\n return this.mpcState.mlModelTypes.EMS.groups;\n }\n\n changeDirection() {\n this.direction = this.direction === 1 ? 2 : 1;\n }\n\n async mounted() {\n this.dataLoaded = true;\n if (this.projectCurrency !== undefined) {\n this.changeCurrency = this.projectCurrency === 'CHF';\n }\n this.updateData('day');\n }\n\n async handleNavigation(period: string) {\n if (period === this.currentPeriod) {\n return;\n }\n this.disableNavButton = true;\n setTimeout(async () => {\n await this.updateData(period);\n this.currentPeriod = period;\n this.disableNavButton = false;\n this.reRenderKey += 1;\n }, 500);\n }\n\n updateData(period: string) {\n const defaultCostSavings = (Math.random() * 20 + 1);\n const defaultEmissionReduction = (Math.random() * 20 + 1);\n const defaultTotalConsumption = (Math.random() * 20 + 1);\n let mulilpicator = 1;\n switch (period) {\n case 'day': {\n mulilpicator = 1;\n break;\n }\n case 'week': {\n mulilpicator = 7;\n break;\n }\n case 'month': {\n mulilpicator = 30;\n break;\n }\n case 'year': {\n mulilpicator = 117;\n break;\n }\n }\n\n this.costSavings = parseFloat(defaultCostSavings.toFixed(2)) * mulilpicator;\n this.emissionReduction = parseFloat(defaultEmissionReduction.toFixed(2)) * mulilpicator;\n this.totalConsumption = parseFloat(defaultTotalConsumption.toFixed(2)) * mulilpicator;\n }\n\n get periodConfigurations() {\n const periodConfigs: any = _.cloneDeep(periodConfigurations); // copy default periodConfigurations\n periodConfigs[this.currentPeriod].interval = '15m';\n return periodConfigs;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowView.vue?vue&type=template&id=45ea2bf4&\"\nimport script from \"./EnergyFlowView.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyFlowView.vue?vue&type=style&index=0&id=45ea2bf4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/MotionSensor.787e692f.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldBase.vue?vue&type=style&index=0&id=4bf2401e&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/PumpWithVFD.ca750541.png\";","module.exports = \"data:image/png;base64,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\"","import api from '@/services/api';\n\nexport default {\n async fetchIcons(q: string) {\n return api.fetch(`/icons?q=${q}`, 'GET');\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.power]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.pv.settings.actualPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualValue,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\n\n/**\n * PV single system settings.\n */\n@Component({\n components: {\n AnimatedLine,\n OutputFieldBase,\n LabelUnitWrapper,\n },\n})\nexport default class PVSystemSettings extends Vue {\n @Prop({ default: null }) instanceData!: any;\n\n get outputFieldActualValue() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=465b9315&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3d4d2b16&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('svg',{attrs:{\"version\":\"1.1\",\"id\":\"Ebene_1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"64px\",\"height\":\"64px\",\"viewBox\":\"0 0 64 64\",\"enable-background\":\"new 0 0 64 64\",\"xml:space\":\"preserve\",\"fill\":_vm.fillColor}},[_c('g',[_c('path',{attrs:{\"d\":\"M2,55h60c1.104,0,2-0.896,2-2V11c0-1.104-0.896-2-2-2H2c-1.104,0-2,0.896-2,2v42C0,54.104,0.896,55,2,55z M4,51v-3.115\\n l19.934-18.122l10.652,10.651c0.41,0.41,0.974,0.617,1.556,0.581c0.579-0.041,1.11-0.331,1.458-0.795l4.688-6.251L60,49.891V51H4z\\n M60,13v31.51L43.338,29.514c-0.417-0.375-0.971-0.562-1.532-0.504c-0.559,0.054-1.069,0.341-1.406,0.79l-4.616,6.155\\n l-10.37-10.369c-0.755-0.755-1.969-0.784-2.759-0.065L4,42.479V13H60z\"}}),_c('path',{attrs:{\"d\":\"M51,29c3.86,0,7-3.141,7-7s-3.14-7-7-7s-7,3.141-7,7S47.14,29,51,29z M51,19c1.654,0,3,1.346,3,3s-1.346,3-3,3\\n s-3-1.346-3-3S49.346,19,51,19z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n/**\n * Component that represent PlaceHolderImage which show when no image\n */\n@Component({})\nexport default class PlaceHolderImage extends Vue {\n get fillColor() {\n return this.$vuetify.theme.dark ? '#fff' : '#000';\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlaceHolderImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlaceHolderImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlaceHolderImage.vue?vue&type=template&id=292b98d2&\"\nimport script from \"./PlaceHolderImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlaceHolderImage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemInstance.vue?vue&type=style&index=0&id=07677c5d&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicBillingInformation.vue?vue&type=style&index=0&id=5dc87b4e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=04ccecaa&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/EMSV2.95d38e91.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.circlesDisplayData.length > _vm.elementsPerPage)?_c('PaginationTabs',{attrs:{\"elementsPerPage\":_vm.elementsPerPage,\"totalElements\":_vm.circlesDisplayData.length},on:{\"updatePage\":_vm.updatePage}}):_vm._e(),_c('div',{staticStyle:{\"height\":\"600px\"}},[_c('EnergyVisualisation',{key:_vm.startIndex,ref:\"EnergyVisualisation\",attrs:{\"circles-display-data\":_vm.sortedCirclesDisplayData,\"lines-display-data\":_vm.sortedLinesDisplayData,\"view\":_vm.view}})],1),(_vm.showChart)?_c('div',{staticClass:\"d-flex justify-end\"},[_c(_vm.chartInformations[_vm.openedSystem].component,{tag:\"component\",attrs:{\"device-data\":_vm.deviceData,\"start-index\":_vm.startIndex,\"max-of-chart-series\":_vm.elementsPerPage,\"deviceData\":_vm.deviceData}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1200\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"fab\":\"\",\"small\":\"\"},on:{\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false},\"click\":function($event){return _vm.generateChartSeriesData()}}},[_c('v-icon',[_vm._v(\"fa-chart-line\")])],1)]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('devices.EnergyView.ChartsWindow.iconHoverText')))])])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.EnergyView.ChartsWindow.legend.electric_heating.systemDialogChart.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('BaseChartWrapper',{staticClass:\"py-3 px-3\",attrs:{\"chart-width\":_vm.chartConfig().chartWidth,\"settings-wrapper-height\":_vm.chartConfig().chartHeight,\"chart-data\":_vm.chartConfig().chartData,\"settingsWrapperHeight\":_vm.chartConfig().chartHeight,\"navigation-items-to-exclude\":['live', 'hour']}})],1)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { IDevice } from '@/types/devices.types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n@Component({\n components: {\n BaseChartWrapper,\n ModalWindow,\n },\n})\nexport default class ElectricHeatingTemperatureChart extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: 1 }) startIndex!: number; // start index of the current page opened in the SystemDialog\n @Prop({ default: 10 }) maxOfSystemsVisible!: number; // max amount of systems visible in the SystemDialog\n\n chartSeriesArray: any = [];\n isTooltip = false;\n variablesToCheck = ['temperature']; // variables that will be added to the chartSeriesArray and shown as chart series\n\n /**\n * Generates chart series data based on the startIndex of the current page opened in the SystemDialog and the maxOfSystemsVisible\n */\n generateChartSeriesData() {\n this.chartSeriesArray = [];\n const electricHeatingComponents = this.deviceData.data.meta.controllerMappings.electric_heating.components;\n for (let index = this.startIndex; index <= this.startIndex + this.maxOfSystemsVisible; index++) {\n if (electricHeatingComponents[`electric_heating${index}`]) {\n const mappings = electricHeatingComponents[`electric_heating${index}`];\n const name = `${this.$t('devices.EnergyView.ChartsWindow.legend.electric_heating.temperature')} - ${mappings.title}`;\n this.chartSeriesArray.push({\n agg: 'avg',\n name,\n scaling: {\n max: 120,\n min: 0,\n },\n type: 'line',\n unit: '°C',\n var: mappings.temperature,\n });\n }\n }\n }\n\n /**\n * returns chart config\n */\n chartConfig() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: {\n name: '',\n data: {\n chartOptions: this.chartSeriesArray,\n selectedStackingOptions: null,\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricHeatingTemperatureChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricHeatingTemperatureChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricHeatingTemperatureChart.vue?vue&type=template&id=3c41c74d&scoped=true&\"\nimport script from \"./ElectricHeatingTemperatureChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricHeatingTemperatureChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c41c74d\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Inject, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport PaginationTabs from '@/ui/components/components/PaginationTabs.vue';\nimport { CirclePosition, EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport ElectricHeatingTemperatureChart from '@/ui/components/devices/components/EnergyParts/EMS/components/charts/ElectricHeatingTemperatureChart.vue';\nimport { EnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { IDevice } from '@/types/devices.types';\nimport EnergyVisualisation from './index.vue';\nimport SystemDialog from './SystemDialog.vue';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n PaginationTabs,\n EnergyVisualisation,\n SystemDialog,\n ElectricHeatingTemperatureChart,\n },\n})\nexport default class SystemDialogView extends mixins(EnergyComponent) {\n @Prop() circlesDisplayData!: EnergyCircleDisplayData[];\n @Prop() linesDisplayData!: Partial[];\n @Prop() openedSystem!: EnergyCircleType;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: 'ActualView' }) view!: 'ActualView' | 'EnergyFlowView';\n\n @Provide('onCircleClick') onCircleClick = this.onSingleSystemClickCallback;\n @Inject({ from: 'onSingleCircleClick', default: () => {} }) onSingleCircleClick?: (\n circleData: EnergyCircleDisplayData,\n ) => void;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n @Inject({ from: 'onDialogLineAnimationEnd', default: () => {} }) onDialogLineAnimationEnd!: (id: string) => void;\n\n readonly elementsPerPage = 10;\n startIndex = 0;\n\n onLineAnimationEndCallback(id: string) {\n this.onDialogLineAnimationEnd?.(id);\n }\n\n onSingleSystemClickCallback(circleData: EnergyCircleDisplayData) {\n this.onSingleCircleClick?.(circleData);\n }\n\n /**\n * Object that contains chart information for each system\n * If yes, what component should be shown,\n * and in what device types it should be shown\n */\n get chartInformations() {\n return {\n pv: { show: false },\n generator: { show: false },\n chp: { show: false },\n battery: { show: false },\n grid: { show: false },\n house: { show: false },\n charge_station: { show: false },\n heating_pump: { show: false },\n big_consumer: { show: false },\n electric_heating: {\n show: true,\n component: ElectricHeatingTemperatureChart,\n visibleDeviceTypes: ['EMS', 'EMSV2'],\n },\n };\n }\n get showChart() {\n // fix for tests\n if ((this.chartInformations as any)[this.openedSystem] === undefined) {\n return false;\n }\n return (this.chartInformations as any)[this.openedSystem].show &&\n (this.chartInformations as any)[this.openedSystem].visibleDeviceTypes.includes(this.deviceData.data.type);\n }\n get circleKeys() {\n return this.circlesDisplayData.map((el: EnergyCircleDisplayData) => el.id);\n }\n get circlesDisplayDataMap() {\n return new Map(this.circlesDisplayData.map((el: EnergyCircleDisplayData) => [el.id, el]));\n }\n get linesDisplayDataMap() {\n return new Map(this.linesDisplayData.map((el: Partial) => [el.id, el]));\n }\n get circleKeysSorted() {\n const sortedArray = this.circleKeys\n .sort((a, b) => {\n // extract numbers from system keys\n const aNum = Number(a.match(/\\d+/)?.[0]);\n const bNum = Number(b.match(/\\d+/)?.[0]);\n return aNum - bNum;\n });\n return sortedArray.slice(this.startIndex, this.startIndex + this.elementsPerPage);\n }\n get sortedCirclesDisplayData() {\n return this.circleKeysSorted.map((key: string, index: number) => {\n const circleData = this.circlesDisplayDataMap.get(key);\n return {\n ...circleData,\n position: index < 5 ? CirclePosition.top : CirclePosition.bottom,\n } as EnergyCircleDisplayData;\n });\n }\n get sortedLinesDisplayData() {\n return this.circleKeysSorted.map((key: string) => {\n const lineData = this.linesDisplayDataMap.get(key);\n return { ...lineData } as EnergyLineDisplayData;\n });\n }\n\n updatePage(index: number) {\n this.startIndex = index;\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.EnergyVisualisation as any).updateCircles();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialogView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialogView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemDialogView.vue?vue&type=template&id=56e6389d&\"\nimport script from \"./SystemDialogView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemDialogView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/StreamAnomalyDetection.1071511c.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectItem.vue?vue&type=style&index=0&id=6c7443f8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=style&index=0&id=7aa7169a&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceDescription.vue?vue&type=style&index=0&id=8dba99f8&prod&lang=scss&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=fed791c2&prod&lang=scss&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValue.vue?vue&type=style&index=0&id=710b7f9a&prod&scoped=true&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=style&index=0&id=88cff50e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44e2ed95&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=style&index=0&id=1e143fd2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesTable.vue?vue&type=style&index=0&id=41c7ee76&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.exportData}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fa-file-download\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.csv')))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { argMax } from '@/utils/utilsFunctions';\nimport _, { cloneDeep } from 'lodash';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { getAlternativeVariableName, getChartOptions } from './ChartUtils';\n\n/**\n * Component that represent data export button\n */\n@Component\nexport default class DataExport extends Vue {\n @Prop() dataToExport!: any;\n @Prop() periodTitle!: string;\n @Prop({ default: false }) isThresholdLine!: boolean;\n @Prop({ default: () => ({ data: { type: '' } }) }) chartData?: any;\n @Prop({ default: false }) enableMultiSelect!: boolean;\n @Prop() multiSelectData!: any;\n @Prop() seriesSuffixes!: any;\n @Prop({ default: () => {} }) chartScores!: Record;\n\n /**\n * Preparation of data for export into csv\n */\n exportData() {\n let localDataToExport: any = JSON.parse(JSON.stringify(this.dataToExport));\n const localChartData: any = JSON.parse(JSON.stringify(this.chartData));\n\n if (this.isThresholdLine) {\n localDataToExport = localDataToExport.slice(1);\n }\n\n let fileName = '';\n const doc = 'data:text/csv;charset=utf-8,';\n let tableHeader = '';\n let sumForMultiselect = 0;\n\n // if chart has a name use that for Filename\n if (localChartData.name !== undefined && localChartData.name !== '') {\n fileName = localChartData.name;\n } else {\n fileName = 'export';\n }\n if (!this.enableMultiSelect) {\n tableHeader = 'time';\n // get name of all Variables for the filename\n getChartOptions(localChartData).forEach((optionsItem: any, index: number) => {\n let { name } = optionsItem;\n\n if (!name || name.length === 0) {\n // name not set\n name = getAlternativeVariableName(index, localChartData);\n }\n\n tableHeader += `;${name}`;\n });\n } else {\n tableHeader = `time ${this.seriesSuffixes[0]}`;\n this.multiSelectData.forEach((chart: any, index: number) => {\n chart.forEach((element: any) => {\n if (index < this.seriesSuffixes.length) {\n if (sumForMultiselect !== 0) {\n tableHeader += `;time ${this.seriesSuffixes[index]}`;\n }\n tableHeader += `;${element.name} ${this.seriesSuffixes[index]}`;\n sumForMultiselect++;\n }\n });\n });\n }\n\n if (this.chartScores !== null) {\n // if chart has scores, all scores names will be added into the frist row\n Object.keys(this.chartScores).forEach((name: string) => {\n tableHeader += `;${name}`;\n });\n }\n\n let table = doc + tableHeader;\n\n // get length of longest array\n let len = 0;\n if (localDataToExport !== undefined) {\n Object.values(localDataToExport).forEach((value: any) => {\n if (value.length > len) {\n len = value.length;\n }\n });\n // get the amount of Variables in dataToExport\n let numVariables = localDataToExport.length;\n if (this.enableMultiSelect === true) {\n numVariables = sumForMultiselect;\n }\n\n if (this.enableMultiSelect === false) {\n // Load one Value from each Variable and get the time from the first one\n for (let index = 0; index < len; index++) {\n const rowArray = [];\n // gets Current time\n const curTime = this.convertTimestamp(localDataToExport[0][index][0]);\n rowArray.push(curTime);\n for (let i = 0; i < numVariables; i++) {\n const num = localDataToExport[i][index][1];\n if (localDataToExport[i][index][1] !== null) {\n // change to \",\" for format in the csv\n rowArray.push(num.toString().replace('.', ','));\n }\n }\n // puts all the data of an row into one string and joins it with ';' in order to be displayed in seperate cells\n let item = rowArray.join(';');\n if (this.chartScores !== null && index === 0) {\n item = this.addScoresValues(item);\n }\n // put the item + new line into the table of the csv\n // eslint-disable-next-line prefer-template\n table += '\\r\\n' + item;\n }\n } else {\n // will contain an array with all the chart series of all the charts inside of it\n const seriesDataArray: any = [];\n this.dataToExport.forEach((currentChart: any) => {\n currentChart.forEach((singleSeries: any) => {\n seriesDataArray.push(singleSeries);\n });\n });\n const seriesLengths = seriesDataArray.map((series: any) => series.length);\n const indexLargestArray = argMax(seriesLengths);\n // contains an array of all the timestamps of the series with the most values inside of it\n const timeStampsArray = cloneDeep(seriesDataArray[indexLargestArray].map((element: any) => element[0]));\n timeStampsArray.forEach((timeStamp: number, timeStampIndex: number) => {\n const rowArray = [];\n\n for (let i = 0; i < seriesDataArray.length; i++) {\n const series = seriesDataArray[i];\n // converts the unix timestamp to the needed format (e.x. hh:mm)\n const curTime = this.convertTimestamp(series[timeStampIndex]?.[0]);\n if (curTime !== 'NaN:NaN') {\n rowArray.push(curTime);\n } else {\n // if there is no datevalue there will be an empty cell added\n rowArray.push(' ');\n }\n // gets the current value of the current series to add it in the csv\n const num = series[timeStampIndex]?.[1];\n if (num !== undefined) {\n // change to \",\" for format in the csv\n rowArray.push(num.toString().replace('.', ','));\n } else {\n rowArray.push('');\n }\n }\n // puts all the data of an row into one string and joins it with ';' in order to be displayed in seperate cells\n let item = rowArray.join(';');\n if (this.chartScores !== null && timeStampIndex === 0) {\n item = this.addScoresValues(item);\n }\n // put the item + new line into the table of the csv\n // eslint-disable-next-line prefer-template\n table += '\\r\\n' + item;\n });\n }\n } else {\n table += '\\r\\n No Data for Variables found';\n }\n\n const data = encodeURI(table);\n const link = document.createElement('a');\n link.setAttribute('href', data);\n link.setAttribute('download', `${fileName}.csv`);\n link.click();\n }\n\n /**\n * Converts time from milliseconds to string format\n * @param {number} timestamp time in milliseconds\n * @return {string} time in format according to period\n */\n convertTimestamp(timestamp: number): string {\n // fill in value that is passed\n const timestampToConvert = new Date(timestamp);\n const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n const year = timestampToConvert.getFullYear();\n const month = timestampToConvert.getMonth() + 1;\n const date = timestampToConvert.getDate();\n let hour = timestampToConvert.getHours();\n const min = timestampToConvert.getMinutes();\n const sec = timestampToConvert.getSeconds();\n let time = '';\n\n // format date for different chases based on Navigation Button selected\n switch (this.periodTitle) {\n case 'hour':\n time = `${hour}:${min}:${sec}`;\n break;\n case 'day':\n time = `${hour}:${min}`;\n break;\n case 'week':\n time = `${date}.${month}.${year} ${hour}:00`;\n break;\n case 'month':\n hour -= 1;\n time = `${date}.${month}.${year}, ${hour}:${min}0`;\n break;\n case 'year':\n time = `${date}.${month}.${year}`;\n break;\n case 'live':\n time = `${hour}:${min}:${sec}`;\n break;\n }\n\n return time;\n }\n\n /**\n * Adds values with unit to the first row of series values\n * @param {string} item current row item with values of normal series\n * @return {string} current row item with values of normal series, with values of each score\n */\n addScoresValues(item: string) {\n Object.values(this.chartScores).forEach((score: {value: number; unit: string}) => {\n item += `;${score.value.toFixed(2).replace('.', ',')}${score.unit}`;\n });\n return item;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataExportNew.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataExportNew.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataExportNew.vue?vue&type=template&id=3ab06758&\"\nimport script from \"./DataExportNew.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataExportNew.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"label-unit-wrapper\"},[_c('div',{class:[\n 'label-unit-wrapper__wrapper',\n { [_vm.view]: _vm.isDefaultView },\n { 'disabled': _vm.disabled || _vm.isControlDisabled }\n ]},[(_vm.isLabel)?_c('div',{class:['label', { 'label-overflow': _vm.labelHideTextThatDoesNotFit }]},[_vm._t(\"label\")],2):_vm._e(),(_vm.isValue)?_c('div',{staticClass:\"value\"},[_vm._t(\"value\")],2):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component is used in many areas of the project to give uniformity to the form fields.\n * Also performs validation if the variable value has not been filled.\n */\n@Component\nexport default class LabelUnitWrapper extends Vue {\n @Prop({ default: true }) isDefaultView!: boolean;\n @Prop({ default: 'line' }) view!: string;\n @Prop({ default: false }) disabled!: boolean;\n @Prop({ default: null }) variablesListForCheck!: any;\n @Prop({ default: false }) labelHideTextThatDoesNotFit!: boolean;\n @Prop({ default: true }) isValue!: any;\n @Prop({ default: true }) isLabel!: any;\n\n get isControlDisabled() {\n if (this.variablesListForCheck) return this.variablesListForCheck.some((el: string) => !el?.length);\n else return false;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelUnitWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelUnitWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LabelUnitWrapper.vue?vue&type=template&id=56cc6c0b&scoped=true&\"\nimport script from \"./LabelUnitWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./LabelUnitWrapper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LabelUnitWrapper.vue?vue&type=style&index=0&id=56cc6c0b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56cc6c0b\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=style&index=0&id=d365f7c8&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/battery_on_2_inputs.f270c484.png\";","module.exports = __webpack_public_path__ + \"img/TSGBrauchwasser.f87c9129.png\";","export enum SearchType {\n projects = 'projects',\n devices = 'devices',\n measurements = 'measurements',\n events = 'events',\n rules = 'rules',\n reports = 'reports',\n workspaces = 'workspaces',\n serialNumbers = 'serialNumbers',\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestationPreview.vue?vue&type=style&index=0&id=0c5611ea&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicateRoomModal.vue?vue&type=style&index=0&id=5011f82d&prod&lang=scss&scoped=true&\"","var map = {\n\t\"./2_batteries_on_2_inputs.png\": \"675d\",\n\t\"./Batterie.png\": \"bf2f\",\n\t\"./Inverter.png\": \"70e8\",\n\t\"./Mieterstrom.png\": \"2227\",\n\t\"./Regelung.png\": \"8223\",\n\t\"./StringInverter.png\": \"0a97d\",\n\t\"./acpv_on_grid.png\": \"eb0d\",\n\t\"./acpv_on_load.png\": \"7bf8\",\n\t\"./battery_on_1_input.png\": \"f407\",\n\t\"./battery_on_2_inputs.png\": \"3c51\",\n\t\"./logger.png\": \"a13c\",\n\t\"./master_slave.png\": \"6356\",\n\t\"./multiple_chp.png\": \"9c4c\"\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 = \"3f13\";","import { CirclePosition, EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyCircleType, isConsumer, isHybrid, isProducer } from '@/types/energyVisualisation/EnergyCircleType';\nimport { ArrowDirection, EnergyLineColors, EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport {\n energyConsumerColors,\n energyGreyColors,\n energyHybridColors,\n energyProducerColors,\n energyHeatingColors,\n energyCoolingColors,\n energyGrey,\n energyRed,\n energyGreen,\n energyYellow,\n heatingRed,\n coolingBlue,\n} from '../constants';\n\nexport function getDefaultSpinnerColor(type: EnergyCircleType, value?: number): string {\n if (!value) return energyGrey;\n\n if (type === EnergyCircleType.electric_heating && value > 0) {\n return energyGreen;\n }\n\n if (isProducer(type)) {\n return energyYellow;\n }\n if (isConsumer(type)) {\n return energyGreen;\n }\n\n // hybrid\n return value > 0 ? energyRed : energyGreen;\n}\n\nexport function getDefaultSpinnerColorSetpointOptimizer(type: EnergyCircleType, value?: number): string {\n if (!value) return energyGrey;\n\n if (isProducer(type)) {\n return heatingRed;\n }\n if (isConsumer(type)) {\n return coolingBlue;\n }\n\n // hybrid\n return value > 0 ? heatingRed : coolingBlue;\n}\n\nexport function getDefaultLineColors(type: EnergyCircleType, displayData: EnergyCircleDisplayData): EnergyLineColors {\n const value: any = displayData.bottomValue ?? displayData.alternativeValue;\n\n // used to force animation for consumers\n if (isConsumer(type) && displayData.additionalDisplayData?.forceAnimation) return energyConsumerColors;\n\n if (!value) {\n return energyGreyColors;\n }\n if (isProducer(type)) {\n return energyProducerColors;\n }\n if (isConsumer(type)) {\n return energyConsumerColors;\n }\n\n // hybrid\n if (value > 0) {\n return energyHybridColors;\n }\n if (value < 0) {\n return energyConsumerColors;\n }\n return energyGreyColors;\n}\n\nexport function getDefaultLineColorsSetpointOptimizer(type: EnergyCircleType, displayData: EnergyCircleDisplayData): EnergyLineColors {\n\n if (displayData.bottomValue === 0) return energyGreyColors;\n\n if (isProducer(type)) {\n return energyHeatingColors;\n }\n if (isConsumer(type)) {\n return energyCoolingColors;\n }\n if (displayData.bottomValue !== undefined) {\n if (displayData.bottomValue > 0) {\n return energyHeatingColors;\n } else {\n return energyCoolingColors;\n }\n }\n return energyGreyColors;\n}\n\nexport function getDefaultArrowDirection(type: EnergyCircleType, displayData: EnergyCircleDisplayData): ArrowDirection {\n const value: any = displayData.bottomValue ?? displayData.alternativeValue;\n\n // used to force animation for consumers\n if (isConsumer(type) && displayData.additionalDisplayData?.forceAnimation) return ArrowDirection.awayFromCenter;\n\n if (!value) {\n return ArrowDirection.none;\n }\n if (isProducer(type)) {\n return ArrowDirection.toCenter;\n }\n if (isConsumer(type)) {\n return ArrowDirection.awayFromCenter;\n }\n\n // hybrid\n if (value > 0) {\n return ArrowDirection.toCenter;\n }\n if (value < 0) {\n return ArrowDirection.awayFromCenter;\n }\n return ArrowDirection.none;\n}\n\nexport function getDefaultArrowDirectionSetpointOptimizer(type: EnergyCircleType, displayData: EnergyCircleDisplayData): ArrowDirection {\n const value: any = displayData.bottomValue ?? displayData.alternativeValue;\n if (!value) {\n return ArrowDirection.none;\n }\n\n // hybrid\n if (value > 0) {\n if (isHybrid(type)) {\n return ArrowDirection.awayFromCenter;\n }\n return ArrowDirection.toCenter;\n }\n if (value < 0) {\n if (isHybrid(type)) {\n return ArrowDirection.toCenter;\n }\n return ArrowDirection.awayFromCenter;\n }\n return ArrowDirection.none;\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalLoggerPage.vue?vue&type=style&index=0&id=8ca3c628&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=style&index=0&id=577524be&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderMock.vue?vue&type=style&index=0&id=552e5ad0&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetection.vue?vue&type=style&index=0&id=61daf12e&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"chp-system-instance-view-content-wrapper\"},[_c('div',{staticClass:\"left-side\"},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.state_enable, _vm.instanceData.switch_enable]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.switch_enable'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchEnableVariables,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.switch_activate_cooling, _vm.instanceData.state_activate_cooling]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.activateCooling'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VActivateCooling,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.switch_activate_heating, _vm.instanceData.state_activate_heating]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.activateHeating'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VActivateHeating,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldActivateSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":89,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.activateSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDeactivateSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":90,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.deactivateSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldParallelGridMode,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":10,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.parallel_grid_mode')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldParallelGridTargetPower,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.parallel_grid_target_power')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldBufferStorageCapacity,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":1,\"max\":100000,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.buffer_storage_capacity')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldThermalPowerInput,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":10000,\"description-styles\":{ width: '350px', paddingTop: '5px' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.thermal_power_input')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kWth\")]},proxy:true}])})],1)],1),_c('div',{staticClass:\"right-side\"},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.status'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.operation],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.operation'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotOperation,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.flow_temperature'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.return_temperature'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.buffer_temperature_top],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.buffer_temperature_top'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldBufferTemperatureTop,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.buffer_temperature_bottom],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.buffer_temperature_bottom'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldBufferTemperatureBottom,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.target_power'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTargetPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.actual_electric_power'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldEnergyCounter,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.thermal_power_output],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.systems.chp.settings.actual_thermal_power'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldEnergyCounterThermal,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":10000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\n\n/**\n * CHP single system settings.\n */\n@Component({\n components: {\n OutputFieldBase,\n Switch2VBase,\n InputFieldBase,\n LabelUnitWrapper,\n ShowEventDotBase,\n },\n})\nexport default class CHPSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n\n get switchEnableVariables() {\n return {\n Switch2V_onOff: this.instanceData.switch_enable,\n Switch2V_state: this.instanceData.state_enable,\n };\n }\n get switch2VActivateCooling() {\n return {\n Switch2V_onOff: this.instanceData.switch_activate_cooling,\n Switch2V_state: this.instanceData.state_activate_cooling,\n };\n }\n get switch2VActivateHeating() {\n return {\n Switch2V_onOff: this.instanceData.switch_activate_heating,\n Switch2V_state: this.instanceData.state_activate_heating,\n };\n }\n\n get inputFieldActivateSOC() {\n return {\n InputField_targetValue: this.instanceData.enable_soc,\n };\n }\n get inputFieldDeactivateSOC() {\n return {\n InputField_targetValue: this.instanceData.disable_soc,\n };\n }\n get inputFieldParallelGridMode() {\n return {\n InputField_targetValue: this.instanceData.parallel_grid_mode,\n };\n }\n get inputFieldParallelGridTargetPower() {\n return {\n InputField_targetValue: this.instanceData.parallel_grid_target_power,\n };\n }\n get inputFieldBufferStorageCapacity() {\n return {\n InputField_targetValue: this.instanceData.buffer_storage_capacity,\n };\n }\n get inputFieldThermalPowerInput() {\n return {\n InputField_targetValue: this.instanceData.thermal_power_input,\n };\n }\n\n get showEventDotStatus() {\n return {\n ShowEventDot_errorWarningState: this.instanceData.status,\n };\n }\n get showEventDotOperation() {\n return {\n ShowEventDot_errorWarningState: this.instanceData.operation,\n };\n }\n\n get outputFieldFlowTemperature() {\n return {\n OutputField_actualValue: this.instanceData.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n OutputField_actualValue: this.instanceData.return_temperature,\n };\n }\n get outputFieldBufferTemperatureTop() {\n return {\n OutputField_actualValue: this.instanceData.buffer_temperature_top,\n };\n }\n get outputFieldBufferTemperatureBottom() {\n return {\n OutputField_actualValue: this.instanceData.buffer_temperature_bottom,\n };\n }\n get outputFieldTargetPower() {\n return {\n OutputField_actualValue: this.instanceData.target_power,\n };\n }\n get outputFieldEnergyCounter() {\n return {\n OutputField_actualValue: this.instanceData.power,\n };\n }\n get outputFieldEnergyCounterThermal() {\n return {\n OutputField_actualValue: this.instanceData.thermal_power_output,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=fed791c2&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=fed791c2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyPrice.vue?vue&type=style&index=0&id=32ef92ec&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=style&index=0&id=566a6988&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=style&index=0&id=83a2c2ce&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Heating.vue?vue&type=style&index=0&id=1bc6cccd&prod&lang=scss&scoped=true&\"","import api from '@/services/api';\nimport { IRule } from '@/types/rules.types';\n\nexport default {\n async fetchRules(projectId: string) {\n return api.fetch(`/projects/${projectId}/rules`, 'GET');\n },\n\n async createRule(projectId: string, rule: IRule) {\n return api.fetch(`/projects/${projectId}/rules`, 'POST', rule);\n },\n\n async createRules(projectId: string, rules: IRule[]) {\n return api.fetch(`/projects/${projectId}/rules`, 'POST', rules);\n },\n\n async updateRule(projectId: string, ruleId: string, rule: IRule) {\n return api.fetch(`/projects/${projectId}/rules/${ruleId}`, 'PUT', rule);\n },\n\n async deleteRule(projectId: string, ruleId: string) {\n return api.fetch(`/projects/${projectId}/rules/${ruleId}`, 'DELETE');\n },\n};\n","import { IRulesState } from '@/store/modules/rules/types';\nimport { RootState } from '@/store/types';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { IRule } from '@/types/rules.types';\nimport RuleService from '@/services/RuleService';\n\nconst state: IRulesState = {\n rulesList: [],\n rulesFilter: '',\n};\n\nconst getters: GetterTree = {\n rulesList: (state: IRulesState) => state.rulesList,\n findRuleById: (state: IRulesState) => (id: string) => state.rulesList.find((rule: IRule) => rule.id === id),\n rulesLength: (state: IRulesState) => state.rulesList.length,\n};\n\nconst mutations: MutationTree = {\n setRules(state: IRulesState, rules: IRule[]) {\n state.rulesList = rules;\n },\n setRule(state: IRulesState, rule: IRule) {\n state.rulesList.push(rule);\n },\n updateRule(state: IRulesState, rule: IRule) {\n state.rulesList = state.rulesList.map((r: IRule) => {\n if (r.id === rule.id) return rule;\n else return r;\n });\n },\n deleteRuleFromList(state: IRulesState, ruleId: string) {\n state.rulesList = state.rulesList.filter((el: IRule) => el.id !== ruleId);\n },\n setRulesFilter(state: IRulesState, name: string) {\n state.rulesFilter = name;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load project rules\n * @param commit\n * @param project_id project id\n */\n async loadRules({ commit }, project_id) {\n const result = await RuleService.fetchRules(project_id);\n commit('setRules', result);\n return result;\n },\n\n /**\n * Create new rule\n * @param commit\n * @param payLoad rule data\n */\n async addRule({ commit }, payLoad: { id: string; ruleModel: IRule }) {\n const res = await RuleService.createRule(payLoad.id, payLoad.ruleModel);\n commit('setRule', res);\n return res;\n },\n\n /**\n * Create new rules list\n * @param commit\n * @param project_id\n * @param rulesList rules list\n */\n async addRules({ commit }, { project_id, rulesList }) {\n const res = RuleService.createRules(project_id, rulesList);\n return res;\n },\n\n /**\n * Update selected rule\n * @param commit\n * @param payLoad rule data\n */\n async modifyRule({ commit }, payLoad: { id: string; rule_id: string; ruleModel: IRule }) {\n const res = await RuleService.updateRule(payLoad.id, payLoad.rule_id, payLoad.ruleModel);\n commit('updateRule', res);\n commit('app/setReport', {\n type: 'success',\n message: 'rule updated',\n value: true,\n }, { root: true });\n },\n\n /**\n * Delete selected rule\n * @param commit\n * @param state\n * @param project_id project id\n * @param rule_id rule id\n */\n async deleteRule({ commit, state }, { project_id, rule_id }) {\n await RuleService.deleteRule(project_id, rule_id);\n commit('deleteRuleFromList', rule_id);\n commit('app/setReport', {\n type: 'success',\n message: 'rule deleted',\n value: true,\n }, { root: true });\n },\n};\n\nexport const rules: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MembersWidget.vue?vue&type=style&index=0&id=756a50ce&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=style&index=0&id=19096613&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('SystemDialog',{attrs:{\"value\":_vm.value,\"max-width\":_vm.openedSettingsWidth},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.circleDataTitle))]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\",staticStyle:{\"min-height\":\"100px\",\"font-weight\":\"500\",\"font-size\":\"20px\"}},[(_vm.openedSettings)?_c(_vm.openedSettings,{tag:\"component\",staticClass:\"flex-grow-1\",attrs:{\"instance-data\":_vm.openedSystemComponent,\"device-data\":_vm.deviceData,\"system\":_vm.openedSystem,\"system-instance\":_vm.circleData.id,\"controls\":_vm.controls,\"bottomValue\":_vm.circleData.bottomValue},scopedSlots:_vm._u([{key:\"additional-settings\",fn:function(){return [(_vm.isHeatingBufferMappingFilled)?_c('HeatingBufferInput',{attrs:{\"device-data\":_vm.deviceData,\"system-key\":_vm.openedSystem,\"system-instance-key\":_vm.circleData.id}}):_vm._e()]},proxy:true}],null,false,3036120252)}):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"battery-system-instance-view-content-wrapper\"},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_reset, _vm.instanceData.state_reset],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.reset')))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.pushButtonReset,\"instance\":\"PushButton\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_p14a, _vm.instanceData.state_p14a],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.battery.settings.disableP14A')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchP14A,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldPriorityEMS,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":255,\"description-styles\":{ width: '400px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.priorityEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMaxSizeBatteryCapacity,\"instance\":\"InputField1\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.01,\"min\":0,\"max\":1000,\"disabled\":_vm.isSolarmax,\"description-styles\":{ width: '400px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.maxSizeOfBatteryCapacity')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kWh\")]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.soc],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.actualBatterySOC')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualBatterySOC,\"instance\":\"OutputField\",\"is-decimal\":false,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.actualBatteryPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.capacity],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.totalCapacityOfAllBatteries')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualBattery,\"instance\":\"OutputField\",\"is-decimal\":true}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.targetBatteryPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.targetPowerCapacityBattery,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-100,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PreviewMQTTControls\n from '@/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Getter } from 'vuex-class';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Battery single system settings.\n */\n@Component({\n components: {\n InputFieldBase,\n PushButtonBase,\n OutputFieldBase,\n Switch2VBase,\n PreviewMQTTControls,\n LabelUnitWrapper,\n },\n})\nexport default class BatterySystemSettings extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @Prop({ default: null }) instanceData!: any;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get outputFieldActualBatterySOC() {\n return {\n 'OutputField_actualValue': this.instanceData.soc,\n };\n }\n get outputFieldActualBattery() {\n return {\n 'OutputField_actualValue': this.instanceData.capacity,\n };\n }\n get targetPowerCapacityBattery() {\n return {\n 'OutputField_actualValue': this.instanceData.target_power,\n };\n }\n get pushButtonReset() {\n return {\n 'PushButton_onOff': this.instanceData.switch_reset,\n 'PushButton_state': this.instanceData.state_reset,\n };\n }\n get inputFieldPriorityEMS() {\n return {\n 'InputField_targetValue': this.instanceData.priority,\n };\n }\n get inputFieldMaxSizeBatteryCapacity() {\n return {\n 'InputField1_targetValue': this.instanceData.size_capacity,\n };\n }\n get switchP14A() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_p14a,\n 'Switch2V_state': this.instanceData.state_p14a,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=7cf393d3&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=7cf393d3&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"grid-system-instance-view-content-wrapper\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldSize,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.1,\"min\":0.1,\"max\":2000,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', paddingTop: '5px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.grid.settings.sizeGridConnection')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.grid.settings.actualGridPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-2000,\"max\":2000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Inject, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PreviewMQTTControls\n from '@/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Grid single system settings.\n */\n@Component({\n components: {\n AnimatedLine,\n InputFieldBase,\n OutputFieldBase,\n PreviewMQTTControls,\n LabelUnitWrapper,\n },\n})\nexport default class GridSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get inputFieldSize() {\n return {\n 'InputField_targetValue': this.instanceData.size,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=60408580&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=60408580&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"house-consumption-system-instance-view-content-wrapper\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.house.settings.enableHouseConsumption')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VEnable,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.house.settings.actualHouseConsumption')))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.actualValue))]),_c('div',{staticClass:\"pl-2 pr-3\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport PreviewMQTTControls\n from '@/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { formatValue } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Settings for single house system.\n */\n@Component({\n components: {\n OutputFieldBase,\n Switch2VBase,\n PushButtonBase,\n PreviewMQTTControls,\n LabelUnitWrapper,\n },\n})\nexport default class HouseSystemSettings extends mixins(EnergyComponent) {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() bottomValue!: number | undefined;\n\n get originalValue() {\n return this.measurements[this.instanceData.power];\n }\n\n get actualValue() {\n const value = this.bottomValue;\n return typeof value === 'number' ? formatValue(value) : undefined;\n }\n\n get switch2VEnable() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_enable,\n 'Switch2V_state': this.instanceData.state_enable,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=03a69a60&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=03a69a60&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charge-station-system-instance-view-content-wrapper\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_manual, _vm.instanceData.state_manual],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.manualON')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VManualOn,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_emergency, _vm.instanceData.state_emergency],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.atEmergencyPowerOff')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VOnEmergencyPowerOff,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.enableChargingStation')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableChargingStation,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_p14a, _vm.instanceData.state_p14a],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.charge_station.settings.disableP14A')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchP14A,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.slider_target_power, _vm.instanceData.slider_manual],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.manualPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"charge-station-slider\"},[_c('div',{staticClass:\"slider\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.sliderManual,\"instance\":\"Slider\",\"is-active\":_vm.sliderManualIsActive,\"state\":_vm.sliderManualActualValueState}})],1)])]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.min_power, _vm.instanceData.slider_min_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.chargeMode')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ChargeStationMinPowerSelection',{attrs:{\"input-unit\":\"A\",\"device-data\":_vm.deviceData,\"system\":_vm.system,\"system-instance\":_vm.systemInstance,\"input-min\":6,\"input-max\":32}})]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldPriorityEMS,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":255,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.priorityEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEnableSoc,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},on:{\"send\":function($event){return _vm.$emit('publish', $event)}},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.enableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},on:{\"send\":function($event){return _vm.$emit('publish', $event)}},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.disableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMaxPower,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.01,\"min\":0,\"max\":500,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},on:{\"send\":function($event){return _vm.$emit('publish', $event)}},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.maxPower')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.actualPowerChargingStation')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.charging_time],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.chargingTime')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldChargingTime,\"instance\":\"OutputField\",\"is-decimal\":true}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"min\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.targetPowerChargingStation')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTargetPower,\"instance\":\"OutputField\",\"is-decimal\":false,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.car_connected],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.carConnected')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotCarConnected,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.state_charging_station],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.charge_station.settings.stateChargingStation')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStateCharging,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport ChargeStationMinPowerSelection from '@/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Charge station system settings.\n */\n@Component({\n components: {\n ChargeStationMinPowerSelection,\n DropDownBase,\n OutputFieldBase,\n ShowEventDotBase,\n SliderBase,\n PushButtonBase,\n Switch2VBase,\n InputFieldBase,\n LabelUnitWrapper,\n },\n})\nexport default class ChargeStationSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() systemInstance!: string;\n @Prop() system!: EnergyCircleType;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get showEventDotCarConnected() {\n return {\n 'ShowEventDot_errorWarningState': this.instanceData.car_connected,\n };\n }\n get outputFieldChargingTime() {\n return {\n 'OutputField_actualValue': this.instanceData.charging_time,\n };\n }\n get outputFieldTargetPower() {\n return {\n 'OutputField_actualValue': this.instanceData.target_power,\n };\n }\n get showEventDotStateCharging() {\n return {\n 'ShowEventDot_errorWarningState': this.instanceData.state_charging_station,\n };\n }\n get inputFieldPriorityEMS() {\n return {\n 'InputField_targetValue': this.instanceData.priority,\n };\n }\n get inputFieldEnableSoc() {\n return {\n 'InputField_targetValue': this.instanceData.enable_soc,\n };\n }\n get inputFieldDisableSOC() {\n return {\n 'InputField_targetValue': this.instanceData.disable_soc,\n };\n }\n get inputFieldMaxPower() {\n return {\n 'InputField_targetValue': this.instanceData.max_power,\n };\n }\n\n get sliderManual() {\n return {\n 'Slider_targetValue': this.instanceData.slider_manual,\n };\n }\n get sliderManualActualValue() {\n return {\n 'OutputField_actualValue': this.instanceData.slider_target_power,\n };\n }\n get sliderManualActualValueState() {\n return this.measurements.get(this.instanceData.slider_target_power);\n }\n get sliderManualIsActive() {\n return true;\n }\n\n get switchP14A() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_p14a,\n 'Switch2V_state': this.instanceData.state_p14a,\n };\n }\n get switch2VManualOn() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_manual,\n 'Switch2V_state': this.instanceData.state_manual,\n };\n }\n get switch2VOnEmergencyPowerOff() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_emergency,\n 'Switch2V_state': this.instanceData.state_emergency,\n };\n }\n get switch2VEnableChargingStation() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_enable,\n 'Switch2V_state': this.instanceData.state_enable,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=79d86cae&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=79d86cae&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"electric-heating-system-instance-view-content-wrapper\"},[_c('div',{staticClass:\"left-side\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldTargetTempOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":120,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.temperatureOn')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldTargetTempOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":120,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.temperatureOff')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldTargetTempMax,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":120,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.temperatureMax')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.actualPowerHeatingElement')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.temperatureBoiler')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTemperatureBoiler,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.targetPowerHeatingElement')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTargetPowerHeating,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.state_electric_heating],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.stateHeatingElement')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStateHeating,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"right-side\"},[_c('LabelUnitWrapper',{attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.switch_manual, _vm.instanceData.state_manual]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.manualON')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VManualOn,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_emergency, _vm.instanceData.state_emergency],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.atEmergencyPowerOff')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VOnEmergencyPowerOff,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_time, _vm.instanceData.state_time],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.activateTimeControl')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VActivateTimeControl,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_disable_protection, _vm.instanceData.state_disable_protection],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.disableLegionellaProtection')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VDisableLegionellaProtection,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.enableHeatingElement')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableHeatingElement,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_p14a, _vm.instanceData.state_p14a],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.battery.settings.disableP14A')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchP14A,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.slider_target_power, _vm.instanceData.slider_manual],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.manualPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"electric-heating-slider\"},[_c('div',{staticClass:\"slider\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.sliderMappings,\"instance\":\"Slider\",\"is-active\":_vm.sliderIsActive,\"state\":_vm.sliderActualValueState}})],1)])]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldPriorityEMS,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":255,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.priorityEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEnableSoc,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.enableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.disableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticStyle:{\"display\":\"flex !important\",\"justify-content\":\"space-between\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.maxPower'))+\" \")]),_c('ModalWindow',{attrs:{\"width\":\"100%\",\"maxWidth\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"}},[_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.openList')))])])]},proxy:true},{key:\"body\",fn:function(){return _vm._l((_vm.maxPowerList),function(mpItem,mpIndex){return _c('div',{key:mpIndex,staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":{ 'InputField_targetValue': _vm.instanceData.max_power[mpItem] },\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.01,\"min\":0,\"max\":500,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},on:{\"send\":function($event){return _vm.$emit('publish', $event)}},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.electric_heating.settings.maxPower'))+\" (\"+_vm._s(mpIndex + 1)+\")\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}],null,true)})],1)})},proxy:true}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport PreviewMQTTControls\n from '@/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n/**\n * Electric heating single system settings.\n */\n@Component({\n components: {\n InputFieldBase,\n OutputFieldBase,\n ShowEventDotBase,\n SliderBase,\n Switch2VBase,\n PreviewMQTTControls,\n LabelUnitWrapper,\n ModalWindow,\n },\n})\nexport default class ElectricHeatingSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get outputFieldTemperatureBoiler() {\n return {\n 'OutputField_actualValue': this.instanceData.temperature,\n };\n }\n get showEventDotStateHeating() {\n return {\n 'ShowEventDot_errorWarningState': this.instanceData.state_electric_heating,\n };\n }\n get outputFieldTargetPowerHeating() {\n return {\n 'OutputField_actualValue': this.instanceData.target_power,\n };\n }\n\n get switchP14A() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_p14a,\n 'Switch2V_state': this.instanceData.state_p14a,\n };\n }\n\n get inputFieldHourOn() {\n return {\n 'InputField_targetValue': this.instanceData.hour_on,\n };\n }\n get inputFieldMinOn() {\n return {\n 'InputField_targetValue': this.instanceData.minute_on,\n };\n }\n get inputFieldHourOff() {\n return {\n 'InputField_targetValue': this.instanceData.hour_off,\n };\n }\n get inputFieldMinOff() {\n return {\n 'InputField_targetValue': this.instanceData.minute_off,\n };\n }\n get inputFieldTargetTempOn() {\n return {\n 'InputField_targetValue': this.instanceData.target_temp_on,\n };\n }\n get inputFieldTargetTempOff() {\n return {\n 'InputField_targetValue': this.instanceData.target_temp_off,\n };\n }\n get inputFieldTargetTempMax() {\n return {\n 'InputField_targetValue': this.instanceData.target_temp_max,\n };\n }\n\n get sliderMappings() {\n return {\n 'Slider_targetValue': this.instanceData.slider_manual,\n };\n }\n get sliderActualValueState() {\n return this.measurements.get(this.instanceData.slider_target_power);\n }\n get sliderIsActive() {\n return true;\n }\n\n get inputFieldPriorityEMS() {\n return {\n 'InputField_targetValue': this.instanceData.priority,\n };\n }\n get inputFieldEnableSoc() {\n return {\n 'InputField_targetValue': this.instanceData.enable_soc,\n };\n }\n get inputFieldDisableSOC() {\n return {\n 'InputField_targetValue': this.instanceData.disable_soc,\n };\n }\n\n get switch2VManualOn() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_manual,\n 'Switch2V_state': this.instanceData.state_manual,\n };\n }\n get switch2VOnEmergencyPowerOff() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_emergency,\n 'Switch2V_state': this.instanceData.state_emergency,\n };\n }\n get switch2VActivateTimeControl() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_time,\n 'Switch2V_state': this.instanceData.state_time,\n };\n }\n get switch2VDisableLegionellaProtection() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_disable_protection,\n 'Switch2V_state': this.instanceData.state_disable_protection,\n };\n }\n get switch2VEnableHeatingElement() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_enable,\n 'Switch2V_state': this.instanceData.state_enable,\n };\n }\n\n get maxPowerList() {\n return Object.keys(this.instanceData.max_power);\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=d6156a66&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=d6156a66&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heating-pump-system-instance-view-content-wrapper\"},[_c('div',{staticClass:\"left-side\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.actualPowerHeatingPump')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.flowTemperature')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.returnTemperature')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.inlet_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.sourceInletTemperature')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldSourceInlet,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.outlet_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.sourceOutletTemperature')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldSourceOutlet,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.boiler_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.boilerTempHeatingSystem')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldBoilerTempHeatingSystem,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.boiler_water_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.boilerTempServiceWater')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldBoilerTempServiceWater,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.targetPowerHeatingPump')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTargetPowerHeatingPump,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.state_heating_pump],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.stateHeatingPump')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotState,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"right-side\"},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.switch_manual, _vm.instanceData.state_manual]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.manualON')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VManualOn,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.instanceData.switch_emergency,\n _vm.instanceData.state_emergency,\n ],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.atEmergencyPowerOff')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VOnEmergencyPowerOff,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_time, _vm.instanceData.state_time],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.activateTimeControl')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VActivateTimeControl,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.enableHeatingPump')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableHeatingPump,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_p14a, _vm.instanceData.state_p14a],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.battery.settings.disableP14A')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchP14A,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_reset, _vm.instanceData.state_reset],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.reset')))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.pushButtonReset,\"instance\":\"PushButton\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.manual_power, _vm.instanceData.slider_manual]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.manualPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"heating-pump-slider\"},[_c('div',{staticClass:\"slider\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.slider1Mappings,\"instance\":\"Slider\",\"is-active\":_vm.slider1IsActive,\"state\":_vm.slider1ActualValueState}})],1)])]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[\n _vm.instanceData.state_time_power,\n _vm.instanceData.slider_power,\n ],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.powerWhenTimeControlActive')))]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"heating-pump-slider\"},[_c('div',{staticClass:\"slider\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.slider2Mappings,\"instance\":\"Slider\",\"is-active\":_vm.slider2IsActive,\"state\":_vm.slider2ActualValueState}})],1)])]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldPriorityEMS,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":255,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.priorityEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEnableSoc,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.enableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.disableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.maxPower'))+\" \")]),_c('ModalWindow',{attrs:{\"width\":\"100%\",\"maxWidth\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"}},[_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.openList')))])])]},proxy:true},{key:\"body\",fn:function(){return _vm._l((_vm.maxPowerList),function(mpItem,mpIndex){return _c('div',{key:mpIndex,staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":{ InputField_targetValue: _vm.instanceData.max_power[mpItem] },\"instance\":\"InputField\",\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"is-decimal\":true,\"step\":0.01,\"min\":0,\"max\":500,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.maxPower'))+\" (\"+_vm._s(mpIndex + 1)+\")\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}],null,true)})],1)})},proxy:true}])})],1),_vm._t(\"additional-settings\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n/**\n * Heating pump single system settings.\n */\n@Component({\n components: {\n OutputFieldBase,\n ShowEventDotBase,\n PushButtonBase,\n SliderBase,\n Switch2VBase,\n InputFieldBase,\n LabelUnitWrapper,\n ModalWindow,\n },\n})\nexport default class HeatingPumpSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get outputFieldActualPower() {\n return {\n OutputField_actualValue: this.instanceData.power,\n };\n }\n get showEventDotState() {\n return {\n ShowEventDot_errorWarningState: this.instanceData.state_heating_pump,\n };\n }\n get switchP14A() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_p14a,\n 'Switch2V_state': this.instanceData.state_p14a,\n };\n }\n get outputFieldFlowTemperature() {\n return {\n OutputField_actualValue: this.instanceData.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n OutputField_actualValue: this.instanceData.return_temperature,\n };\n }\n get outputFieldSourceInlet() {\n return {\n OutputField_actualValue: this.instanceData.inlet_temperature,\n };\n }\n get outputFieldSourceOutlet() {\n return {\n OutputField_actualValue: this.instanceData.outlet_temperature,\n };\n }\n get outputFieldBoilerTempHeatingSystem() {\n return {\n OutputField_actualValue: this.instanceData.boiler_temperature,\n };\n }\n get outputFieldBoilerTempServiceWater() {\n return {\n OutputField_actualValue: this.instanceData.boiler_water_temperature,\n };\n }\n get outputFieldTargetPowerHeatingPump() {\n return {\n OutputField_actualValue: this.instanceData.target_power,\n };\n }\n get inputFieldHourOn() {\n return {\n InputField_targetValue: this.instanceData.hour_on,\n };\n }\n get inputFieldMinOn() {\n return {\n InputField_targetValue: this.instanceData.minute_on,\n };\n }\n get inputFieldHourOff() {\n return {\n InputField_targetValue: this.instanceData.hour_off,\n };\n }\n get inputFieldMinOff() {\n return {\n InputField_targetValue: this.instanceData.minute_off,\n };\n }\n\n get inputFieldPriorityEMS() {\n return {\n InputField_targetValue: this.instanceData.priority,\n };\n }\n get inputFieldEnableSoc() {\n return {\n InputField_targetValue: this.instanceData.enable_soc,\n };\n }\n get inputFieldDisableSOC() {\n return {\n InputField_targetValue: this.instanceData.disable_soc,\n };\n }\n\n get slider1Mappings() {\n return {\n Slider_targetValue: this.instanceData.slider_manual,\n };\n }\n get slider1ActualValueState() {\n return this.measurements.get(this.instanceData.manual_power);\n }\n get slider1IsActive() {\n return true;\n }\n\n get slider2Mappings() {\n return {\n Slider_targetValue: this.instanceData.slider_power,\n };\n }\n get slider2ActualValueState() {\n return this.measurements.get(this.instanceData.state_time_power);\n }\n get slider2IsActive() {\n return true;\n }\n\n get switch2VManualOn() {\n return {\n Switch2V_onOff: this.instanceData.switch_manual,\n Switch2V_state: this.instanceData.state_manual,\n };\n }\n get switch2VOnEmergencyPowerOff() {\n return {\n Switch2V_onOff: this.instanceData.switch_emergency,\n Switch2V_state: this.instanceData.state_emergency,\n };\n }\n get switch2VActivateTimeControl() {\n return {\n Switch2V_onOff: this.instanceData.switch_time,\n Switch2V_state: this.instanceData.state_time,\n };\n }\n get switch2VEnableHeatingPump() {\n return {\n Switch2V_onOff: this.instanceData.switch_enable,\n Switch2V_state: this.instanceData.state_enable,\n };\n }\n get pushButtonReset() {\n return {\n PushButton_onOff: this.instanceData.switch_reset,\n PushButton_state: this.instanceData.state_reset,\n };\n }\n\n get maxPowerList() {\n return Object.keys(this.instanceData.max_power);\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=233546e0&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=233546e0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"big-consumer-system-instance-view-content-wrapper\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_manual, _vm.instanceData.state_manual],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.manualON')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchManualOn,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_emergency, _vm.instanceData.state_emergency],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.atEmergencyPowerOff')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchOnEmergencyPowerOff,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.enableBigConsumer')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchEnable,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_p14a, _vm.instanceData.state_p14a],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.big_consumer.settings.disableP14A')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switchP14A,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.slider_target_power, _vm.instanceData.slider_manual],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.manualPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"big-consumer-slider\"},[_c('div',{staticClass:\"slider\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.sliderMappings,\"instance\":\"Slider\",\"is-active\":_vm.sliderIsActive,\"state\":_vm.sliderActualValueState}})],1)])]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldPriorityEMS,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":255,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.priorityEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEnableSoc,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.enableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableSOC,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":100,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.disableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableMaxPower,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.01,\"min\":0,\"max\":500,\"description-styles\":{ width: '400px', paddingTop: '5px' },\"input-field-styles\":{ width: '400px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.maxPower')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.actualPowerBigConsumer')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.target_power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.targetPowerBigConsumer')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldTargetPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.state_consumer],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.big_consumer.settings.stateBigConsumer')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotState,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\n\n/**\n * Big consumer single system settings.\n */\n@Component({\n components: {\n InputFieldBase,\n OutputFieldBase,\n SliderBase,\n ShowEventDotBase,\n Switch2VBase,\n LabelUnitWrapper,\n },\n})\nexport default class BigConsumerSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get sliderMappings() {\n return {\n 'Slider_targetValue': this.instanceData.slider_manual,\n };\n }\n get sliderActualValue() {\n return {\n 'OutputField_actualValue': this.instanceData.slider_target_power,\n };\n }\n get sliderActualValueState() {\n return this.measurements.get(this.instanceData.slider_target_power);\n }\n get sliderIsActive() {\n return true;\n }\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get showEventDotState() {\n return {\n 'ShowEventDot_errorWarningState': this.instanceData.state_consumer,\n };\n }\n get switchManualOn() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_manual,\n 'Switch2V_state': this.instanceData.state_manual,\n };\n }\n get switchOnEmergencyPowerOff() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_emergency,\n 'Switch2V_state': this.instanceData.state_emergency,\n };\n }\n get switchEnable() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_enable,\n 'Switch2V_state': this.instanceData.state_enable,\n };\n }\n get outputFieldTargetPower() {\n return {\n 'OutputField_actualValue': this.instanceData.target_power,\n };\n }\n\n get inputFieldPriorityEMS() {\n return {\n 'InputField_targetValue': this.instanceData.priority,\n };\n }\n get inputFieldEnableSoc() {\n return {\n 'InputField_targetValue': this.instanceData.enable_soc,\n };\n }\n get inputFieldDisableSOC() {\n return {\n 'InputField_targetValue': this.instanceData.disable_soc,\n };\n }\n get inputFieldDisableMaxPower() {\n return {\n 'InputField_targetValue': this.instanceData.max_power,\n };\n }\n get switchP14A() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_p14a,\n 'Switch2V_state': this.instanceData.state_p14a,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=247b47a1&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=247b47a1&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pt-4 input-field-base\",attrs:{\"id\":\"heatingBuffer\"}},[_c('div',{staticClass:\"input-field-base__description\",staticStyle:{\"width\":\"300px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.systems.heating_pump.settings.heatingBuffer'))+\" \")]),_c('div',{staticClass:\"input-field-base__field\",staticStyle:{\"width\":\"250px\"}},[_c('v-text-field',{attrs:{\"step\":1,\"type\":\"number\",\"solo\":\"\",\"height\":\"30\",\"hide-details\":\"\",\"flat\":\"\",\"color\":\"#000\",\"min\":0,\"max\":100,\"background-color\":\"#fff\"},model:{value:(_vm.heatingPumpBufferInstance),callback:function ($$v) {_vm.heatingPumpBufferInstance=_vm._n($$v)},expression:\"heatingPumpBufferInstance\"}})],1),_c('div',{staticStyle:{\"flex-grow\":\"1\"}}),_c('div',{staticClass:\"input-field-base__button\"},[_c('v-btn',{attrs:{\"color\":\"accent\",\"depressed\":\"\",\"disabled\":!_vm.isHeatingBufferSendButtonValid},on:{\"click\":_vm.sendValue}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\nimport { IEMSTariffSettings } from '@/types/mpc/devices/ems.types';\nimport { IDevice } from '@/types/devices.types';\n\nconst DEFAULT_HEATING_PUMP_BUFFER = 50;\n\n@Component\nexport default class HeatingBufferInput extends Vue {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() systemKey!: string;\n @Prop() systemInstanceKey!: string;\n\n @Action('mpc/updateTariffSettings') updateHeatingBufferSettings!: (\n { mpc_id, settings }: { mpc_id: string; settings: IEMSTariffSettings },\n ) => void;\n\n heatingPumpBufferInstance = null;\n\n get isHeatingBufferSendButtonValid() {\n return typeof this.heatingPumpBufferInstance === 'number';\n }\n\n async sendValue() {\n const settings = this.deviceData.data?.meta?.settings ? {\n mode: this.deviceData.data?.meta?.settings?.mode,\n energyPrice: {\n ...this.deviceData.data?.meta?.settings?.energyPrice,\n heating_pump_buffer: {\n ...this.deviceData.data?.meta?.settings?.energyPrice?.heating_pump_buffer,\n [this.systemInstanceKey]: this.heatingPumpBufferInstance,\n },\n },\n } : {\n mode: null,\n energyPrice: {\n start_low: null,\n end_low: null,\n start_high: null,\n end_high: null,\n price_low: null,\n price_high: null,\n timezone: null,\n heating_pump_buffer: { [this.systemInstanceKey]: this.heatingPumpBufferInstance },\n },\n };\n\n await this.updateHeatingBufferSettings({ mpc_id: this.deviceData.id, settings });\n }\n\n created() {\n this.heatingPumpBufferInstance =\n this.deviceData.data?.meta?.settings?.energyPrice?.heating_pump_buffer?.[this.systemInstanceKey]\n || DEFAULT_HEATING_PUMP_BUFFER;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingBufferInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingBufferInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingBufferInput.vue?vue&type=template&id=c21d2662&\"\nimport script from \"./HeatingBufferInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingBufferInput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeatingBufferInput.vue?vue&type=style&index=0&id=c21d2662&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"cooling-air-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"max_flow_temperature\", $$v)},expression:\"settings.max_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"min_flow_temperature\", $$v)},expression:\"settings.min_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"set_point_temperature\", $$v)},expression:\"settings.set_point_temperature\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mb-6\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.out_in_flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.out_in_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldOutToInFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.in_out_flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.in_out_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldInToOutReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_air_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.blue]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"display\":\"flex\",\"margin-top\":\"40px\",\"justify-content\":\"space-between\",\"font-weight\":\"bold\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.averageDescription')))]),_c('div',[_vm._v(\" \"+_vm._s(_vm.averageOfRoomTemps)+\" °C \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { State } from 'vuex-class';\nimport _ from 'lodash';\n\n@Component({\n components: {},\n})\nexport default class AverageRoomTemps extends Vue {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: undefined }) roomTemperatures!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get averageOfRoomTemps(): any {\n const valuesArray = this.roomTemperatures.map((element: any) => {\n const controlsObject = this.controls.room_temperatures[element];\n return this.measurements.get(controlsObject.variable);\n });\n return _.mean(valuesArray).toFixed(2);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AverageRoomTemps.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AverageRoomTemps.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AverageRoomTemps.vue?vue&type=template&id=aec840aa&\"\nimport script from \"./AverageRoomTemps.vue?vue&type=script&lang=ts&\"\nexport * from \"./AverageRoomTemps.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents CoolingAir form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n OutputFieldBase,\n InputFieldExternal,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class CoolingAirControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Prop({ default: null }) mpcId!: any;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings = {\n identifier: '',\n max_flow_temperature: 0,\n min_flow_temperature: 0,\n set_point_temperature: 0,\n }\n\n get colors() {\n return colors;\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get outputFieldOutToInFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.out_in_flow_temperature,\n };\n }\n get outputFieldInToOutReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.in_out_flow_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n initTemperatureSettings() {\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = this.controls?.max_flow_temperature;\n this.settings.min_flow_temperature = this.controls?.min_flow_temperature;\n this.settings.set_point_temperature = this.controls?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoolingAirControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoolingAirControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoolingAirControls.vue?vue&type=template&id=445308a6&\"\nimport script from \"./CoolingAirControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoolingAirControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"cooling-water-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"max_flow_temperature\", $$v)},expression:\"settings.max_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"min_flow_temperature\", $$v)},expression:\"settings.min_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"set_point_temperature\", $$v)},expression:\"settings.set_point_temperature\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mb-6\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.cooling_water_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.blue]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter } from 'vuex-class';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents CoolingWater form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n InputFieldExternal,\n OutputFieldBase,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class CoolingWaterControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Prop({ default: null }) mpcId!: any;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings = {\n identifier: '',\n max_flow_temperature: 0,\n min_flow_temperature: 0,\n set_point_temperature: 0,\n }\n\n get colors() {\n return colors;\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n initTemperatureSettings() {\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = this.controls?.max_flow_temperature;\n this.settings.min_flow_temperature = this.controls?.min_flow_temperature;\n this.settings.set_point_temperature = this.controls?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoolingWaterControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoolingWaterControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CoolingWaterControls.vue?vue&type=template&id=56eaaeb8&\"\nimport script from \"./CoolingWaterControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./CoolingWaterControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heating-air-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"max_flow_temperature\", $$v)},expression:\"settings.max_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"min_flow_temperature\", $$v)},expression:\"settings.min_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"set_point_temperature\", $$v)},expression:\"settings.set_point_temperature\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mb-6\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.out_in_flow_temperature],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.out_in_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldOutToInFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.in_out_flow_temperature],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.in_out_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldInToOutReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.red]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter } from 'vuex-class';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents HeatingAir form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n InputFieldExternal,\n OutputFieldBase,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class HeatingAirControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Prop({ default: null }) mpcId!: any;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings = {\n identifier: '',\n max_flow_temperature: 0,\n min_flow_temperature: 0,\n set_point_temperature: 0,\n }\n\n get colors() {\n return colors;\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get outputFieldOutToInFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.out_in_flow_temperature,\n };\n }\n get outputFieldInToOutReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.in_out_flow_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n initTemperatureSettings() {\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = this.controls?.max_flow_temperature;\n this.settings.min_flow_temperature = this.controls?.min_flow_temperature;\n this.settings.set_point_temperature = this.controls?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingAirControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingAirControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingAirControls.vue?vue&type=template&id=40a83916&\"\nimport script from \"./HeatingAirControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingAirControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heating-water-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"max_flow_temperature\", $$v)},expression:\"settings.max_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"min_flow_temperature\", $$v)},expression:\"settings.min_flow_temperature\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature),callback:function ($$v) {_vm.$set(_vm.settings, \"set_point_temperature\", $$v)},expression:\"settings.set_point_temperature\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mb-6\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_water_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.red]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter } from 'vuex-class';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents HeatingWater form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n InputFieldExternal,\n OutputFieldBase,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class HeatingWaterControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) mpcId!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings = {\n identifier: '',\n max_flow_temperature: 0,\n min_flow_temperature: 0,\n set_point_temperature: 0,\n }\n\n get colors() {\n return colors;\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n initTemperatureSettings() {\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = this.controls?.max_flow_temperature;\n this.settings.min_flow_temperature = this.controls?.min_flow_temperature;\n this.settings.set_point_temperature = this.controls?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingWaterControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingWaterControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingWaterControls.vue?vue&type=template&id=06f3a8d3&\"\nimport script from \"./HeatingWaterControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingWaterControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hybrid-air-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"d-flex flex-grow-1 flex-column\"},[_c('div',{staticClass:\"d-flex justify-end pb-2\"},[_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.heating'))+\" \")]),_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\",\"margin-right\":\"15px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.cooling'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.max_flow_temperature, \"heating\", _vm._n($$v))},expression:\"settings.max_flow_temperature.heating\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.min_flow_temperature, \"heating\", _vm._n($$v))},expression:\"settings.min_flow_temperature.heating\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.set_point_temperature, \"heating\", _vm._n($$v))},expression:\"settings.set_point_temperature.heating\"}})],1),_c('div',[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.max_flow_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.max_flow_temperature.cooling\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.min_flow_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.min_flow_temperature.cooling\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.set_point_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.set_point_temperature.cooling\"}})],1)])]),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.out_in_flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.out_in_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldOutToInFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.in_out_flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.in_out_flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldInToOutReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.red], [2, _vm.colors.blue]],\"is-multiple-colors\":true,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter } from 'vuex-class';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents HybridAir form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n InputFieldExternal,\n OutputFieldBase,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class HybridAirControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) mpcId!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings = {\n identifier: '',\n max_flow_temperature: {\n cooling: 0,\n heating: 0,\n },\n min_flow_temperature: {\n cooling: 0,\n heating: 0,\n },\n set_point_temperature: {\n cooling: 0,\n heating: 0,\n },\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get outputFieldOutToInFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.out_in_flow_temperature,\n };\n }\n get outputFieldInToOutReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.in_out_flow_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n get colors() {\n return colors;\n }\n\n initTemperatureSettings() {\n const copy: any = JSON.parse(JSON.stringify(this.controls));\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = copy?.max_flow_temperature;\n this.settings.min_flow_temperature = copy?.min_flow_temperature;\n this.settings.set_point_temperature = copy?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridAirControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridAirControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HybridAirControls.vue?vue&type=template&id=d526b3de&\"\nimport script from \"./HybridAirControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./HybridAirControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hybrid-water-controls\"},[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"d-flex flex-grow-1 flex-column\"},[_c('div',{staticClass:\"d-flex justify-end pb-2\"},[_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.heating'))+\" \")]),_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\",\"margin-right\":\"15px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.cooling'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.max_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.max_flow_temperature, \"heating\", _vm._n($$v))},expression:\"settings.max_flow_temperature.heating\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.min_flow_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.min_flow_temperature, \"heating\", _vm._n($$v))},expression:\"settings.min_flow_temperature.heating\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.set_point_temperature.label'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature.heating),callback:function ($$v) {_vm.$set(_vm.settings.set_point_temperature, \"heating\", _vm._n($$v))},expression:\"settings.set_point_temperature.heating\"}})],1),_c('div',[_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.max_flow_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.max_flow_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.max_flow_temperature.cooling\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.min_flow_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.min_flow_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.min_flow_temperature.cooling\"}}),_c('InputFieldExternal',{attrs:{\"step\":0.01,\"min\":0,\"max\":100,\"field-rules\":[_vm.rules.required],\"is-decimal\":true,\"height\":24,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.settings.set_point_temperature.cooling),callback:function ($$v) {_vm.$set(_vm.settings.set_point_temperature, \"cooling\", _vm._n($$v))},expression:\"settings.set_point_temperature.cooling\"}})],1)])]),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"accent\",\"small\":\"\"},on:{\"click\":_vm.handleTemperatureSettings}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.flow_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.flow_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldFlowTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.return_temperature],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.return_temperature.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReturnTemperature,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.controls.status],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_water_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotStatus,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.colors.red], [2, _vm.colors.blue]],\"is-multiple-colors\":true,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l((_vm.roomTemperatures),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"label-hide-text-that-does-not-fit\":true,\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.controls.room_temperatures[item].title || _vm.controls.room_temperatures[item].variable)+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":{ 'OutputField_actualValue': _vm.controls.room_temperatures[item].variable },\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)}),_c('AverageRoomTemps',{attrs:{\"controls\":_vm.controls,\"roomTemperatures\":_vm.roomTemperatures}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter } from 'vuex-class';\nimport colors from '@/ui/components/devices/mpc/colors';\nimport AverageRoomTemps from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/AverageRoomTemps.vue';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that represents HybridWater form controls\n */\n@Component({\n components: {\n LabelUnitWrapper,\n InputFieldExternal,\n OutputFieldBase,\n ShowEventDotBase,\n SystemsInstanceControlsTemplate,\n AverageRoomTemps,\n },\n})\nexport default class HybridWaterControls extends mixins(Validation) {\n @Prop({ default: null }) controls!: any;\n @Prop({ default: null }) mpcId!: any;\n @Prop({ default: null }) systemInstanceId!: string;\n @Getter('mpc/getMPCControllerById') getMPCControllerById!: (id: string) => IMLModel;\n @Action('mpc/updateSetpointSystemInstanceTemperatureSettings') updateSetpointSystemInstanceTemperatureSettings: any;\n\n settings: any = {\n identifier: '',\n max_flow_temperature: {\n cooling: 0,\n heating: 0,\n },\n min_flow_temperature: {\n cooling: 0,\n heating: 0,\n },\n set_point_temperature: {\n cooling: 0,\n heating: 0,\n },\n }\n\n get roomTemperatures() {\n return Object.keys(this.controls.room_temperatures);\n }\n\n get outputFieldFlowTemperature() {\n return {\n 'OutputField_actualValue': this.controls.flow_temperature,\n };\n }\n get outputFieldReturnTemperature() {\n return {\n 'OutputField_actualValue': this.controls.return_temperature,\n };\n }\n get showEventDotStatus() {\n return {\n 'ShowEventDot_errorWarningState': this.controls.status,\n };\n }\n\n get colors() {\n return colors;\n }\n\n initTemperatureSettings() {\n const copy: any = JSON.parse(JSON.stringify(this.controls));\n this.settings.identifier = this.systemInstanceId;\n this.settings.max_flow_temperature = copy?.max_flow_temperature;\n this.settings.min_flow_temperature = copy?.min_flow_temperature;\n this.settings.set_point_temperature = copy?.set_point_temperature;\n }\n\n async handleTemperatureSettings() {\n await this.updateSetpointSystemInstanceTemperatureSettings({ mpc_id: this.mpcId, settings: this.settings });\n this.$emit('updateLocalMPCData', this.getMPCControllerById(this.mpcId));\n }\n\n created() {\n this.initTemperatureSettings();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridWaterControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridWaterControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HybridWaterControls.vue?vue&type=template&id=628c1872&\"\nimport script from \"./HybridWaterControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./HybridWaterControls.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { EnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport SystemDialog from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport PVSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue';\nimport GeneratorSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue';\nimport BatterySystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Actual/Settings.vue';\nimport GridSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Actual/Settings.vue';\nimport HouseSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Actual/Settings.vue';\nimport ChargeStationSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Actual/Settings.vue';\nimport ElectricHeatingSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Actual/Settings.vue';\nimport HeatingPumpSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Actual/Settings.vue';\nimport BigConsumerSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Actual/Settings.vue';\nimport HeatingBufferInput\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/HeatingBufferInput.vue';\nimport CHPSystemSettings\n from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue';\nimport { IDevice } from '@/types/devices.types';\nimport CoolingAirControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingAirControls.vue';\nimport CoolingWaterControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/CoolingWaterControls.vue';\nimport HeatingAirControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingAirControls.vue';\nimport HeatingWaterControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HeatingWaterControls.vue';\nimport HybridAirControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridAirControls.vue';\nimport HybridWaterControls from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/HybridWaterControls.vue';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n SystemDialog,\n HeatingBufferInput,\n },\n})\nexport default class ActualViewSystemSettingsDialog extends mixins(EnergyComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() openedSystem!: EnergyCircleType;\n @Prop() circleData!: EnergyCircleDisplayData;\n @Prop({ default: null }) controls!: any;\n\n systemToSettingsMapping = {\n // EMS, EnergyView\n [EnergyCircleType.pv]: {\n component: PVSystemSettings,\n width: 450,\n },\n [EnergyCircleType.chp]: {\n component: CHPSystemSettings,\n width: 1200,\n },\n [EnergyCircleType.generator]: {\n component: GeneratorSystemSettings,\n width: 800,\n },\n [EnergyCircleType.battery]: {\n component: BatterySystemSettings,\n width: 1000,\n },\n [EnergyCircleType.grid]: {\n component: GridSystemSettings,\n width: 750,\n },\n [EnergyCircleType.house]: {\n component: HouseSystemSettings,\n width: 580,\n },\n [EnergyCircleType.charge_station]: {\n component: ChargeStationSystemSettings,\n width: 1000,\n },\n [EnergyCircleType.electric_heating]: {\n component: ElectricHeatingSystemSettings,\n width: 1500,\n },\n [EnergyCircleType.heating_pump]: {\n component: HeatingPumpSystemSettings,\n width: 1500,\n },\n [EnergyCircleType.big_consumer]: {\n component: BigConsumerSystemSettings,\n width: 1000,\n },\n // setpoint optimizer\n [EnergyCircleType.cooling_air_systems]: {\n component: CoolingAirControls,\n width: 1000,\n },\n [EnergyCircleType.heating_water_systems]: {\n component: HeatingWaterControls,\n width: 1000,\n },\n [EnergyCircleType.heating_air_systems]: {\n component: HeatingAirControls,\n width: 1000,\n },\n [EnergyCircleType.cooling_water_systems]: {\n component: CoolingWaterControls,\n width: 1000,\n },\n [EnergyCircleType.hybrid_air_systems]: {\n component: HybridAirControls,\n width: 1000,\n },\n [EnergyCircleType.hybrid_water_systems]: {\n component: HybridWaterControls,\n width: 1000,\n },\n };\n\n get circleDataTitle() {\n return this.circleData?.title;\n }\n\n get openedSettings() {\n return this.systemToSettingsMapping[this.openedSystem as EnergyCircleType].component;\n }\n get openedSettingsWidth() {\n return this.systemToSettingsMapping[this.openedSystem as EnergyCircleType].width;\n }\n\n // get opened single system's component data\n get openedSystemComponent() {\n return this.getSystemComponents(this.deviceData, this.openedSystem as EnergyCircleType)[\n this.circleData.id\n ];\n }\n\n get isHeatingBufferMappingFilled() {\n return this.deviceData.data.meta?.controllerMappings?.[this.openedSystem]?.components?.[this.circleData.id]?.heating_buffer;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemSettingsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemSettingsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActualViewSystemSettingsDialog.vue?vue&type=template&id=297d9292&\"\nimport script from \"./ActualViewSystemSettingsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActualViewSystemSettingsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=style&index=0&id=8d48ac58&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=style&index=0&id=bfca29d0&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-combobox',{style:(_vm.fieldWidth),attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required],\"items\":_vm.timezones,\"label\":_vm.$t('uiComponents.timezoneChooser.labelText'),\"disabled\":_vm.disabled},on:{\"input\":_vm.onChange},model:{value:(_vm.localValue),callback:function ($$v) {_vm.localValue=$$v},expression:\"localValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { clone } from 'lodash';\nimport moment from 'moment-timezone';\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\n\n/**\n * Component that represent TimezoneChooser\n */\n@Component({\n components: {\n Validation,\n },\n})\nexport default class TimezoneChooser extends mixins(Validation) {\n @Prop() currentValue!: string;\n @Prop({ default: false }) fullSize!: boolean;\n @Prop({ default: false }) disabled!: boolean;\n\n localValue!: string;\n timezones = moment.tz.names();\n\n get fieldWidth() {\n return this.fullSize ? {} : { width: '200px!important' };\n }\n\n created() {\n this.localValue = clone(this.currentValue);\n }\n\n onChange() {\n this.$emit('onChange', this.localValue);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimezoneChooser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimezoneChooser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimezoneChooser.vue?vue&type=template&id=65f83b47&\"\nimport script from \"./TimezoneChooser.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimezoneChooser.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Vue, Component } from 'vue-property-decorator';\nimport VueI18n from 'vue-i18n';\nimport { isValidIBAN } from 'ibantools';\n\nexport type ValidationRule = (value: number | string) => boolean | VueI18n.TranslateResult;\n\n@Component\nexport class Validation extends Vue {\n fieldMoreThan(num: number) {\n return (v: number) => v >= num || this.$t('validationRules.fieldMoreThan', { n: num });\n }\n fieldLessThan(num: number) {\n return (v: number) => v <= num || this.$t('validationRules.fieldLessThan', { n: num });\n }\n /**\n * Rules which used in different form fields of project\n */\n get rules() {\n return {\n required: (value: number) => (value === 0 || !!value) || this.$t('validationRules.required'),\n notEmptyString: (value: string) => (value !== '') || this.$t('validationRules.required'),\n\n fieldNotValidIban: (value: string, codeLength: number) => isValidIBAN(value) || this.$t('validationRules.fieldNotValidIban'),\n\n // time\n fieldTimeInHHMM: (value: string) => /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(value) || this.$t('validationRules.fieldTimeInHHMM'),\n\n // email\n email: (value: string) => /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/.test(value) || this.$t('validationRules.email'),\n\n // specific\n threeCommas: (value: any) => {\n const pattern = /^\\-?\\d+(?:\\.\\d{1,3})?$/;\n return pattern.test(value) || this.$t('validationRules.threeCommas');\n },\n twoCommas: (value: any) => {\n const pattern = /^\\-?\\d+(?:\\.\\d{1,2})?$/;\n return pattern.test(value) || this.$t('validationRules.twoCommas');\n },\n oneComma: (value: any) => {\n const pattern = /^\\-?\\d+(?:\\.\\d{1})?$/;\n return pattern.test(value) || this.$t('validationRules.oneComma');\n },\n onlyNumbersRule: (value: any) => /^[+-]?\\d+(\\.\\d+)?$/.test(value) || this.$t('modals.manageReport.errorMessages.onlyNumbersRule'),\n noCommas: (value: any) => /^[-+]?\\d+$/.test(value) || this.$t('validationRules.noCommas'),\n\n noSpace: (value: any) => /^[a-zA-Z0-9._%+-]+$/.test(value) || this.$t('validationRules.noSpace'),\n\n // text\n counter: (value: { length: number }) => value?.length <= 30 || this.$t('validationRules.counter'),\n noEmptyString: (value: string) => value !== '' || this.$t('validationRules.required'),\n timeFormat: (v: any) => /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(v) || this.$t('validationRules.timeFormat'),\n\n // special rule for fields that are required and should be numbers only to show the correct error message\n requiredNumber: (value: number | undefined | string) => {\n // if field is empty value is undefined/empty string\n if (value === undefined) {\n return this.$t('validationRules.required') as string;\n }\n // check if value is allowed number input\n if (/^[+-]?\\d+(\\.\\d+)?$/.test(value.toString())) {\n return true;\n }\n // check if value is string\n if (typeof value === 'string') {\n return this.$t('modals.manageReport.errorMessages.onlyNumbersRule') as string;\n }\n },\n\n // Rule that checks string that can have a varying amount of serial numbers separated by space and each serial number can have only numbers and have a length of 10 characters\n serialNumbers: (value: string) => {\n const replacedString = value.split('\\n');\n let valid = true;\n replacedString.forEach((serialNumber) => {\n if (!/^[0-9]{10}$/.test(serialNumber)) {\n valid = false;\n }\n });\n return valid || this.$t('validationRules.serialNumbers');\n },\n };\n }\n}\n","import { Vue, Component, Watch, Prop } from 'vue-property-decorator';\nimport { isEqual } from 'lodash';\nimport { IMLModel } from '@/types/mpc/mpc.types';\nimport { IDevice } from '@/types/devices.types';\n\n@Component\nexport class FormUpdateTracker extends Vue {\n @Prop() isEditModal!: boolean;\n @Prop() deviceData!: IMLModel | IDevice | any;\n\n localDeviceData: any = null;\n dataSnapshot: any = {}; // need to save empty object schema when create device\n\n // Temporary solution. Need until do refactor in ManageChartNew.\n get isEditModalProp() {\n return this.isEditModal;\n }\n\n get isFormUnchanged() {\n if (this.isEditModalProp) return isEqual(this.deviceData, this.localDeviceData);\n else return isEqual(this.dataSnapshot, this.localDeviceData);\n }\n\n @Watch('isFormUnchanged', { immediate: true })\n onFormUnchanged(value: boolean) {\n this.$emit('onFormUnchanged', value);\n }\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=style&index=0&id=5bc7e961&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=style&index=0&id=12ed2f82&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TotalValuesWindow.vue?vue&type=style&index=0&id=5a765684&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4afb5f04&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=style&index=0&id=16727da6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tenant.vue?vue&type=style&index=0&id=f5511772&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Robot.vue?vue&type=style&index=0&id=6cd0264d&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec5\",\n\t\"./cv.js\": \"03ec5\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb718\",\n\t\"./de-ch.js\": \"bb718\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\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 = \"4678\";","import { BatteryType } from './systemTypes';\n\n// Contains all the variable names that should be send based on what system type is selected inside the project settings\nexport const variablesForBatteryTypes: Record = {\n [BatteryType.AZZURRO]: [\n 'prgEnergy.fbI.rMaxPowerInverter',\n 'prgEnergy.fbI.bPVPowerExt',\n ],\n [BatteryType.DEYE]: [\n ],\n [BatteryType.STANDALONE]: [\n ],\n [BatteryType.SOLARMAX]: [\n ],\n [BatteryType.MobileBatteryDeye]: [\n ],\n};\n\nexport function shouldSendVariableForType(type: BatteryType | undefined | string, variableName: string) {\n return type !== undefined && variablesForBatteryTypes[type as BatteryType].includes(variableName);\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=style&index=0&id=5482d48f&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/ElectricChargingStationV2.e0ef3861.png\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValueIO.vue?vue&type=style&index=0&id=334625ea&prod&scoped=true&lang=scss&\"","import Unit from '@/utils/unit/unit';\n\nexport const emptyUnit = new Unit('');\nexport const kiloWattUnit = new Unit('kW', new Map([[1000, 'MW']]));\nexport const kiloWattHourUnit = new Unit('kWh', new Map([[1000, 'MWh']]));\nexport const kilogramUnit = new Unit('kg', new Map([[1000, 't']]));\nexport const celsiusUnit = new Unit('°C');\n","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=style&index=0&id=3506230a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldMock.vue?vue&type=style&index=0&id=888d1ee0&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a6a5f6c4&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/MotorWithVFD.aadb7bbb.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=style&index=0&id=cdd5c8e8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemCharts.vue?vue&type=style&index=0&id=3565bca0&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStationV2.vue?vue&type=style&index=0&id=5e82a562&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=style&index=0&id=507ff9dd&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModeSettings.vue?vue&type=style&index=0&id=c0628ec8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=f2e4ee0c&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/Ventilation.b1598195.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{class:[\n 'lynus-icon',\n `icon-${_vm.name}`,\n _vm.scaleClass,\n `icon-color-class-${_vm.color}`,\n { 'icon-animation': _vm.animation },\n ],style:(_vm.sizeValue)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent Lynus icon custom library\n * List off icons placed in public/icons.css\n */\n@Component\nexport default class LynusIcon extends Vue {\n @Prop({ default: '' }) name!: string;\n @Prop({ default: 'md' }) scale!: string;\n @Prop({ default: null }) size!: number | string;\n @Prop({ default: null }) color!: string;\n @Prop({ default: false }) animation!: string | boolean;\n\n get scaleClass() {\n return this.scale && !this.size ? `icon-size-${this.scale}` : null;\n }\n get sizeValue() {\n return this.size ? `font-size: ${this.size}px` : null;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusIcon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusIcon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LynusIcon.vue?vue&type=template&id=16099ca8&scoped=true&\"\nimport script from \"./LynusIcon.vue?vue&type=script&lang=ts&\"\nexport * from \"./LynusIcon.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LynusIcon.vue?vue&type=style&index=0&id=16099ca8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16099ca8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=style&index=0&id=2692c2c8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=style&index=0&id=a938f354&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-preview-circle-mqtt-controls\"},[_c('ShowEventBase',{attrs:{\"variable-data\":_vm.errorWarning,\"instance\":\"ShowEvent\"}}),_c('RotatingBacklight',{attrs:{\"color\":_vm.rotatingBacklightColor,\"no-data\":_vm.noData}}),(_vm.systemCount)?_c('div',{staticClass:\"system-count\"},[_c('v-btn',{attrs:{\"color\":\"#525252\",\"outlined\":\"\",\"fab\":\"\",\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.systemCount)+\" \")])],1):_vm._e(),_c('v-tooltip',{staticStyle:{\"z-index\":\"100\"},attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.previewTitle)?_c('div',_vm._g(_vm._b({class:['ems-preview-circle-mqtt-controls-title', _vm.previewTitlePosition],attrs:{\"data-testid\":\"circle-title\"}},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.previewTitle)+\" \")]):_vm._e()]}}])},[_c('span',[_vm._v(_vm._s(_vm.previewTitle))])]),_c('div',{staticClass:\"ems-preview-circle-mqtt-controls-value\"},[(!_vm.isBatterySOC)?_c('lynus-icon',{attrs:{\"name\":_vm.previewIcon,\"color\":\"theme\",\"size\":_vm.previewIconSize}}):_vm._e(),(_vm.isBatterySOC)?_c('BatteryLevel',{attrs:{\"battery-state\":_vm.batterySOCValue}}):_vm._e(),(_vm.showActualValue)?_c('div',{staticClass:\"value\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.actualValue,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":_vm.actualValueMin,\"max\":_vm.actualValueMax}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.valueUnit.unit))])],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport BatteryLevel from '@/ui/components/devices/components/EnergyParts/BatteryLevel.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\nimport Unit from '@/utils/unit/unit';\n\n/**\n * Component that represent circle system view.\n * Used in EMS, EnergyView, Setpoint Optimizer.\n * Different from Preview.vue is has a flashing frame (ShowEventBase).\n */\n@Component({\n components: {\n RotatingBacklight,\n BatteryLevel,\n OutputFieldBase,\n ShowEventBase,\n },\n})\nexport default class PreviewMQTTControls extends Vue {\n @Prop({ default: null }) actualValue!: any; // {'OutputField_actualValue': variable}\n @Prop({ default: null }) actualValueMin!: number;\n @Prop({ default: null }) actualValueMax!: number;\n @Prop({ default: () => kiloWattUnit }) actualValueUnit!: Unit;\n @Prop({ default: true }) showActualValue!: boolean;\n @Prop({ default: false }) isBatterySOC!: boolean;\n @Prop({ default: null }) batterySOCValue!: number;\n @Prop({ default: null }) previewTitle!: string;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n @Prop({ default: 'photovoltaic' }) previewIcon!: string;\n @Prop({ default: '30' }) previewIconSize!: string | number;\n @Prop({ default: '#525252' }) rotatingBacklightColor!: string;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: null }) errorWarning!: any; // {'ShowEvent_errorWarningState': variable}\n @Prop({ default: false }) noData!: boolean;\n\n get valueUnit() {\n return this.actualValueUnit?.unitForValue(this.actualValue);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewMQTTControls.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewMQTTControls.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PreviewMQTTControls.vue?vue&type=template&id=6028d6d4&scoped=true&\"\nimport script from \"./PreviewMQTTControls.vue?vue&type=script&lang=ts&\"\nexport * from \"./PreviewMQTTControls.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PreviewMQTTControls.vue?vue&type=style&index=0&id=6028d6d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6028d6d4\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/ConsumptionService.e7314f5e.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=style&index=0&id=6693d3a6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TariffSettingsTooltip.vue?vue&type=style&index=0&id=45a81ccf&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/PumpWithoutVFD.700ffaf0.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"energy-lines\"},_vm._l((_vm.displayData),function(item){return _c('AnimatedLine',{key:`${item.id}-${item.arrowDirection}`,attrs:{\"display-data-item\":item,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"is-line-active\":!!item.arrowDirection}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"animated-line-canvas\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}},[(_vm.displayDataItem.showCross)?_c('LineCross',{attrs:{\"display-data-item\":_vm.displayDataItem,\"width\":_vm.width,\"height\":_vm.height}}):_vm._e(),_c('canvas',{ref:\"line\",attrs:{\"width\":_vm.width,\"height\":_vm.height}}),_c('AnimatedLineArrow',{key:_vm.displayDataItem.arrowDirection,attrs:{\"display-data-item\":_vm.displayDataItem,\"width\":_vm.width,\"height\":_vm.height}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-canvas-arrow\"},[_c('canvas',{ref:\"arrow\",attrs:{\"width\":_vm.width,\"height\":_vm.height}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\nimport {\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\n\n/**\n * Components that represents arrows for animated line\n */\n@Component\nexport default class AnimatedLineArrow extends Vue {\n @Prop({}) displayDataItem!: EnergyLineDisplayData;\n @Prop({ default: 0 }) width!: number;\n @Prop({ default: 0 }) height!: number;\n\n @Inject({ from: 'onLineAnimationEnd', default: () => {} }) onLineAnimationEnd?: (id: string) => void;\n\n ctx: CanvasRenderingContext2D | null = null\n reqFunc: number | null = null\n\n get speed() {\n return this.displayDataItem.oneArrowOnly ? 300 : 600;\n }\n\n /**\n * Define line length\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @return {number} length\n */\n lineLength(x1: number, y1: number, x2: number, y2: number) {\n return Math.hypot(x2 - x1, y2 - y1);\n }\n\n /**\n * Define angle\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @return {object} angle in radians and degrees\n */\n currentAngle(x1: number, y1: number, x2: number, y2: number) {\n const radians: number = Math.atan2(y2 - y1, x2 - x1);\n const degrees: number = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;\n return { radians, degrees };\n }\n\n /**\n * Rotate arrow according to angle\n * @param {object} context canvas context object\n * @param {number} cx context x position\n * @param {number} cy context y position\n * @param {number} angle current angle\n */\n rotateArrow(context: CanvasRenderingContext2D, cx: number, cy: number, angle: number) {\n context.translate(cx, cy);\n context.rotate(angle);\n context.translate(-cx, -cy);\n }\n\n /**\n * Define arrow movement speed\n * @param {number} lineLength line length\n * @return {number} speed\n */\n movementSpeed(lineLength: number) {\n return lineLength / this.speed;\n }\n\n /**\n * Set arrow color\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n arrowColor(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n const grad: any = context.createLinearGradient(x1, y1, x2, y2);\n grad.addColorStop(0, color1);\n grad.addColorStop(1, color2);\n context.strokeStyle = grad;\n context.lineWidth = 2;\n }\n\n /**\n * Draw arrow body\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} angle current angle\n */\n arrowBody(context: CanvasRenderingContext2D, x1: number, y1: number, angle: number) {\n this.rotateArrow(context, x1, y1, angle);\n if (this.displayDataItem.arrowDirection !== 0) {\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x1 - 10, y1 - 10);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x1 - 10, y1 + 10);\n context.stroke();\n }\n }\n\n /**\n * Draw arrow\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n * @param {number} angle current angle\n */\n drawArrow(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string, angle: any) {\n let mx: number = x1;\n let my: number = y1;\n let mx2: number = x1;\n let my2: number = y1;\n let mainStep = 0;\n let stepArrow1 = 0;\n let stepArrow2 = 0;\n\n const lineLength: number = this.lineLength(x1, y1, x2, y2);\n const speed = this.movementSpeed(lineLength);\n this.arrowColor(context, x1, y1, x2, y2, color1, color2);\n\n // function that defines the drawing location of arrow\n const run = () => {\n mainStep += 0.1;\n if (mainStep > 0) stepArrow1 += 1;\n if (mainStep > 30) stepArrow2 += 1;\n if (mainStep > 6000) {\n mainStep = 0;\n stepArrow1 = 0;\n stepArrow2 = 0;\n mx = x1;\n my = y1;\n mx2 = x1;\n my2 = y1;\n }\n\n context.clearRect(0, 0, this.width, this.height);\n context.lineWidth = 2;\n\n // draw first arrow\n context.save();\n if (stepArrow1 > 0) {\n this.arrowBody(context, mx, my, angle.radians);\n mx += speed * Math.cos(angle.radians);\n my += speed * Math.sin(angle.radians);\n }\n if (stepArrow1 > this.speed) {\n // sends outside when animation ends\n this.onLineAnimationEnd?.(this.displayDataItem.id);\n stepArrow1 = 0;\n mx = x1;\n my = y1;\n }\n context.restore();\n\n if (!this.displayDataItem.oneArrowOnly) {\n // draw second arrow\n context.save();\n if (stepArrow2 > 0) {\n this.arrowBody(context, mx2, my2, angle.radians);\n mx2 += speed * Math.cos(angle.radians);\n my2 += speed * Math.sin(angle.radians);\n }\n if (stepArrow2 > this.speed) {\n stepArrow2 = 0;\n mx2 = x1;\n my2 = y1;\n }\n context.restore();\n }\n this.reqFunc = requestAnimationFrame(run);\n };\n\n // Indicates to the browser that you want to produce an animation.\n // Number of draws coincides with the refresh rate of the screen.\n this.reqFunc = requestAnimationFrame(run);\n }\n\n /**\n * Drawing arrow pointing in the opposite direction\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n * @param {number} angle current angle\n */\n drawArrowReverse(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string, angle: any) {\n let mx: number = x2;\n let my: number = y2;\n let mx2: number = x2;\n let my2: number = y2;\n let mainStep = 0;\n let stepArrow1 = 0;\n let stepArrow2 = 0;\n\n const lineLength: number = this.lineLength(x1, y1, x2, y2);\n const speed = this.movementSpeed(lineLength);\n this.arrowColor(context, x1, y1, x2, y2, color1, color2);\n\n // function that defines the drawing location of arrow\n const run = () => {\n mainStep += 0.1;\n if (mainStep > 0) stepArrow1 += 1;\n if (mainStep > 30) stepArrow2 += 1;\n if (mainStep > 6000) {\n mainStep = 0;\n stepArrow1 = 0;\n stepArrow2 = 0;\n mx = x1;\n my = y1;\n mx2 = x1;\n my2 = y1;\n }\n\n context.clearRect(0, 0, this.width, this.height);\n context.lineWidth = 2;\n\n context.save();\n if (stepArrow1 > 0) {\n this.arrowBody(context, mx, my, angle.radians + 180 * Math.PI / 180);\n mx -= speed * Math.cos(angle.radians);\n my -= speed * Math.sin(angle.radians);\n }\n if (stepArrow1 > this.speed) {\n this.onLineAnimationEnd?.(this.displayDataItem.id);\n stepArrow1 = 0;\n mx = x2;\n my = y2;\n }\n\n context.restore();\n\n if (!this.displayDataItem.oneArrowOnly) {\n // draw second arrow\n context.save();\n if (stepArrow2 > 0) {\n this.arrowBody(context, mx2, my2, angle.radians + 180 * Math.PI / 180);\n mx2 -= speed * Math.cos(angle.radians);\n my2 -= speed * Math.sin(angle.radians);\n }\n if (stepArrow2 > this.speed) {\n stepArrow2 = 0;\n mx2 = x2;\n my2 = y2;\n }\n context.restore();\n }\n\n this.reqFunc = requestAnimationFrame(run);\n };\n\n // Indicates to the browser that you want to produce an animation.\n // Number of draws coincides with the refresh rate of the screen.\n this.reqFunc = requestAnimationFrame(run);\n }\n\n mounted() {\n const canvas = this.$refs.arrow as HTMLCanvasElement;\n this.ctx = canvas.getContext('2d');\n const angle = this.currentAngle(\n this.displayDataItem.endPoint.x,\n this.displayDataItem.endPoint.y,\n this.displayDataItem.startPoint.x,\n this.displayDataItem.startPoint.y,\n );\n if (this.displayDataItem.arrowDirection === 1) {\n this.drawArrowReverse(\n this.ctx as CanvasRenderingContext2D,\n this.displayDataItem.endPoint.x,\n this.displayDataItem.endPoint.y,\n this.displayDataItem.startPoint.x,\n this.displayDataItem.startPoint.y,\n this.displayDataItem.colors.colorAtCenter,\n this.displayDataItem.colors.colorAtCircle,\n angle,\n );\n }\n if (this.displayDataItem.arrowDirection === 2 || this.displayDataItem.arrowDirection === 0) {\n this.drawArrow(\n this.ctx as CanvasRenderingContext2D,\n this.displayDataItem.endPoint.x,\n this.displayDataItem.endPoint.y,\n this.displayDataItem.startPoint.x,\n this.displayDataItem.startPoint.y,\n this.displayDataItem.colors.colorAtCenter,\n this.displayDataItem.colors.colorAtCircle,\n angle,\n );\n }\n }\n beforeDestroy() {\n cancelAnimationFrame(this.reqFunc as number);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnimatedLineArrow.vue?vue&type=template&id=8a0c77ee&scoped=true&\"\nimport script from \"./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnimatedLineArrow.vue?vue&type=style&index=0&id=8a0c77ee&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8a0c77ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"animated-cross-canvas\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}},[_c('div',{ref:\"offGridText\",style:(`position: absolute; left: ${_vm.xPositionCrossText}px; top: ${_vm.yPositionCrossText}px`)},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.mainView.offGrid'))+\" \")]),_c('canvas',{ref:\"cross\",attrs:{\"width\":_vm.width,\"height\":_vm.height}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\n\n@Component({\n})\nexport default class LineCross extends Vue {\n @Prop({}) displayDataItem!: EnergyLineDisplayData;\n @Prop({ default: null }) width!: number;\n @Prop({ default: null }) height!: number;\n @Prop({ default: true }) isLineActive!: boolean;\n\n ctx: CanvasRenderingContext2D | null = null\n widthOffGridText = 0;\n\n // xPosition - 50, yPosition + 30\n get yPositionCrossText() {\n const yPosition = this.displayDataItem.startPoint.y > this.displayDataItem.endPoint.y ?\n (this.displayDataItem.startPoint.y + this.displayDataItem.endPoint.y) / 2 :\n (this.displayDataItem.endPoint.y + this.displayDataItem.startPoint.y) / 2;\n return yPosition + 25;\n }\n get xPositionCrossText() {\n const xPosition = this.displayDataItem.startPoint.x > this.displayDataItem.endPoint.x ?\n (this.displayDataItem.startPoint.x + this.displayDataItem.endPoint.x) / 2 :\n (this.displayDataItem.endPoint.x + this.displayDataItem.startPoint.x) / 2;\n return xPosition - this.widthOffGridText / 2;\n }\n\n @Watch('$i18n.locale')\n handleChange() {\n this.$nextTick(() => {\n this.widthOffGridText = (this.$refs.offGridText as HTMLDivElement).clientWidth;\n });\n }\n\n /**\n * Draw red cross in middle of line\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n */\n drawCross(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number) {\n const yPosition = y1 > y2 ? (y1 + y2) / 2 : (y2 + y1) / 2;\n const xPosition = x1 > x2 ? (x1 + x2) / 2 : (x2 + x1) / 2;\n context.beginPath();\n context.moveTo(xPosition - 17, yPosition - 17);\n context.lineTo(xPosition + 17, yPosition + 17);\n\n context.moveTo(xPosition + 17, yPosition - 17);\n context.lineTo(xPosition - 17, yPosition + 17);\n context.lineWidth = 4;\n context.strokeStyle = '#ff0000';\n context.lineCap = 'round';\n\n context.stroke();\n context.closePath();\n }\n\n changeDirection() {\n this.$emit('changeDirection');\n }\n\n mounted() {\n const canvas = this.$refs.cross as HTMLCanvasElement;\n this.ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n\n this.drawCross(\n this.ctx,\n this.displayDataItem.endPoint.x,\n this.displayDataItem.endPoint.y,\n this.displayDataItem.startPoint.x,\n this.displayDataItem.startPoint.y,\n );\n\n this.$nextTick(() => {\n this.widthOffGridText = (this.$refs.offGridText as HTMLDivElement).clientWidth;\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineCross.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineCross.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LineCross.vue?vue&type=template&id=0584eeb8&scoped=true&\"\nimport script from \"./LineCross.vue?vue&type=script&lang=ts&\"\nexport * from \"./LineCross.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LineCross.vue?vue&type=style&index=0&id=0584eeb8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0584eeb8\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLineArrow\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/AnimatedLineArrow.vue';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport LineCross from './LineCross.vue';\n\n@Component({\n components: { AnimatedLineArrow, LineCross },\n})\nexport default class AnimatedLine extends Vue {\n @Prop({}) displayDataItem!: EnergyLineDisplayData;\n @Prop({ default: null }) width!: number;\n @Prop({ default: null }) height!: number;\n @Prop({ default: true }) isLineActive!: boolean;\n\n ctx: CanvasRenderingContext2D | null = null\n\n /**\n * Set line color\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n lineColor(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n const grad: any = context.createLinearGradient(x1, y1, x2, y2);\n grad.addColorStop(0, color1);\n grad.addColorStop(1, color2);\n context.strokeStyle = grad;\n context.lineWidth = 2;\n }\n\n /**\n * Draw line body\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n */\n lineBody(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number) {\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n context.stroke();\n context.closePath();\n }\n\n /**\n * Draw line\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n drawLine(context: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n this.lineColor(context, x1, y1, x2, y2, color1, color2);\n this.lineBody(context, x1, y1, x2, y2);\n }\n\n changeDirection() {\n this.$emit('changeDirection');\n }\n\n mounted() {\n const canvas = this.$refs.line as HTMLCanvasElement;\n this.ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n\n this.drawLine(\n this.ctx,\n this.displayDataItem.endPoint.x,\n this.displayDataItem.endPoint.y,\n this.displayDataItem.startPoint.x,\n this.displayDataItem.startPoint.y,\n this.displayDataItem.colors.colorAtCenter,\n this.displayDataItem.colors.colorAtCircle,\n );\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnimatedLine.vue?vue&type=template&id=aa607158&scoped=true&\"\nimport script from \"./AnimatedLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnimatedLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnimatedLine.vue?vue&type=style&index=0&id=aa607158&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aa607158\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport AnimatedLine from './AnimatedLine.vue';\n\n@Component({\n components: {\n AnimatedLine,\n },\n})\nexport default class EnergyLines extends Vue {\n @Prop({}) displayData!: EnergyLineDisplayData[];\n @Prop({ default: null }) canvasSize!: { width: number; height: number };\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyLines.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyLines.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyLines.vue?vue&type=template&id=f8ca0372&\"\nimport script from \"./EnergyLines.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyLines.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB7CAMAAABU8pdQAAAA3lBMVEUxMTHHx8c+Pj5GOzD///9HSkgzMzYXFxdFRUW9vb07Rk1xt+k8MTExPUhDQ0P/6bf+/9NwcHBNQziX0v7U/f+26v/9/vg4OTn9+eZOT07v/P5sFxcXF22zcSaVFxeho6Xqt3D90ZUyFxeSkpJNIxeVQBfp7fGuraraoVFfX18mJiYXHJXLjiX62qf88ssXFzSJYDyPxO4ZF0zU1NYidbkqVoZhlckejcsZTZ/On2zasoZNpNyt0+ZNeqfF4/IaO2m0t7oXMkwXGn/k0bVwMxff49nCwsKIZZ6IFxdvRTGfGCBfAAAFvUlEQVR42u2cCVPiShSFDQYCZkRjQoCMDBIQcEEWFRFkkRl13v//Q+92JyEh8DQal/ZxTtWIS9NW3a/PXZKMW0ocqfu/Xv8mfe+nAq3XFv94fWfJZmFYezsOvsNFyQ4t6JrnL+BQCyX20tMv/jqb/O5sOo4rq9VRpl2r9fOtOAbGXseeds0je3XRYW7ZDss4buQmezkzKvbAKJTssXFxvNk45rm9P/TSVof2W3GMTHbGe3cl5bU45kaLmfKGbNRTmZVG8vlm47iymv43WMIo3Nosak8T2WwxUOMJS0TsCA9Vq1AiH8nOmgUON+W4caUPTbbtOVtwZsiyTOva/bqzS2Bjdgi6+8wNzkfHLkebjUMNJHg6yp12n/HRKeI1TurKGtamOsWLIlv5h+g8lOx7/qYFjhu5MOzYTtqiaKoyHfkRvYMtcN3RN29r0+7ecWBjn9+ccpX79ca7wz/abnB6OkVTZzn8MFehk8s+GxhNwuHXhjMedg8HESTDsCrcy7Vq89wloWBJycfhpyx/Y8WrGgGDznP7x8BBB5riWaL48dRBbY7uBLHC/tksTBUHAWlavqzX5aOlRrc9nlEyavLvXe0/GeeHOXeBA8J7r+Jv7Ij3VKrHoKebTWXTk1VpUQB0mYuiuIgaT/6kBY6BYf5ulK2jlbmDd0U3Zkmt9PTKwDgP4riy/gMHtQGEruU02b2ueWtvOA4vUip3x69w1OaBvMIX8rK7nKwCQ8TAGOaayuiiz1ZFcAerNl6uutc3m0aw0eXBHC3qyCJqvUVn6oaUfz1YwnHdqHk79HIFAjEw6mwVX+Du5BpgBQft33V+6zRX2ORMFRwD7fvxhJ/tvY5yPaEz6ketbw7/tPsPHQ8HBb3dN4K1o62abIe+Vam5bVVP5/0qX0CF4X6bd1b3vLMK4aBsZXFU15NCCRdJ3GHDaYz8CxV+1NrjOv10WPNwTO9ogHha7qzGE8tZ483ZI9498wXXE1bj2dzBp5UVHAPDmcxvZFdHG44DAg4IOIADAg7ggIADOCDgAA7oq3CcbkFfrlMXB2CIodQpx4FAiCKGA+YQJ19twRxi+QM4gAMCDuCAgAM4IOD43jqpy+YMOERRnT3C1AAOMaTxJ8ougUMI5YFDKKUeGI4qcAiipFSvV1HK0ehCcIfoukTtQKMLAcc36HMxlQtmD+KRQSlHowutU/XyUQMOUZSh0mFqwCGGTnhnJQGHEMIVXbGUNBmOGXAIMnhUicdDEjhEUVHT0Ohi7oCA4/vjyCfC+oH4fBmO3WIyrCJ4fB2Og5VmLAkcUUa6RDabXlU2m8jHw5HKBqyxDRyRYKxDsUCSj4Nj5yBQOJLbwPHyNPccDA4kFQPHduAnO8ARzRpZrdrIZBpV7R0MsgZHKgscr/DGSTnjqnwS2x9rcOw6FIDjRTEaWiagtQbJAsfnpCrmjcyS1vojHwtHHjiim6O8jKMc0x5wRyxzaJmQtHj2WOeONEp5FCUo0NUwjuo6HAk0up+TqxphHI142SqEI+ULOCLgyKzoPXEsXT8EjueVjowjjWT1v0hWvJQn0FlFxRGtlMfAkdpJZovbwBGps8pGa3RjdFbstgfnABwR5o5IY2CcuQM4XpWtolwkiTOVs5l8Fzgi2+PlS4jxrlntFov8HjlwRLLHixfY417RRaMbVe69wGdvP8W+3wEc0dMVvxvoxf297wayPLVQ8gdwRPXHx9wrD/8u4IhokA95kiQVUh44IgH5kOesUumVpxAPEOtPFh6ZBg6IVJbwH5nFkSZJ0iNwiFL/GQ4pARyCqJiRpDLcIYySVS0PHOisoDW5ipUO/C1EUXTCcKB2iKL0DDiEEnAABwQcwAG9oZQ/loFDmEb3UZJmwCHQGCjhzxqLLeAADgg4gAMCDuCAgAM4IOAADgg4IOAADgg4vg+OUwRBFJ0SDthDFKUUhgP2EMUcHAeACAJDcXFAguhf2tWiEneBZzoAAAAASUVORK5CYII=\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=41c00c32&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapBanner.vue?vue&type=style&index=0&id=8a39e1be&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/PVProductionService.3dd79c2c.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"show-event-dot-base\"},[_c('div',{staticClass:\"show-event-dot-base-indicator\",style:(`background: ${_vm.warningColor}; width: ${_vm.width}px; height: ${_vm.height}px`)}),(_vm.activeMessage || _vm.inactiveMessage)?_c('div',{staticClass:\"show-event-dot-base-label pl-1\"},[_vm._v(\" \"+_vm._s(_vm.errorStatus ? _vm.activeMessage : _vm.inactiveMessage)+\" \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent ShowEventDot Basic Control\n */\n@Component\nexport default class ShowEventDotBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: 20 }) width!: number | string;\n @Prop({ default: 20 }) height!: number | string;\n @Prop({ default() {\n return [[251, (this as any).$vuetify.theme.currentTheme.green]];\n } }) items!: any; // example: [[1, red], [2, blue]]\n @Prop({ default: '#bebebe' }) inactiveColor!: string;\n @Prop({ default: null }) activeMessage!: string;\n @Prop({ default: null }) inactiveMessage!: string;\n @Prop({ default: 'errorWarningState' }) mappingExtension!: string;\n\n get errorStatus() {\n return this.measurements.get(this.mappingsClean[this.mappingExtension]);\n }\n get warningColor() {\n const map: any = new Map(this.items);\n return map.get(this.errorStatus) || this.inactiveColor;\n }\n get isNotMapped(): boolean {\n return this.mappingsClean[this.mappingExtension] === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShowEventDotBase.vue?vue&type=template&id=30d4872e&scoped=true&\"\nimport script from \"./ShowEventDotBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShowEventDotBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShowEventDotBase.vue?vue&type=style&index=0&id=30d4872e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30d4872e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=36c8291e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutarkiegradCircle.vue?vue&type=style&index=0&id=57bc0819&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FillLevelDisplayBase.vue?vue&type=style&index=0&id=5cf445ba&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatsInformation.vue?vue&type=style&index=0&id=8570ed7e&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{ref:\"customField\",staticClass:\"input-field-number\",attrs:{\"type\":\"number\",\"outlined\":\"\",\"color\":\"accent\",\"value\":_vm.value,\"step\":_vm.step,\"rules\":_vm.rulesList,\"height\":_vm.small ? 28 : 56,\"min\":_vm.min,\"max\":_vm.max,\"disabled\":_vm.disabled,\"label\":_vm.label},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keypress\":_vm.handleKeypress}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Validation, ValidationRule } from '@/ui/mixins/validation';\nimport { TranslateResult } from 'vue-i18n';\nimport { mixins } from 'vue-class-component';\n\n/**\n * Form field which used in manage modals forms\n */\n@Component\nexport default class InputFieldNumber extends mixins(Validation) {\n @Prop() value!: number;\n @Prop() isDecimal?: boolean;\n @Prop({ default: false }) disabled?: boolean;\n @Prop({ default: 0.01 }) step?: number;\n @Prop() min?: number;\n @Prop() max?: number;\n @Prop({ default: () => [] }) fieldRules?: ValidationRule[];\n @Prop({ default: false }) small!: boolean;\n @Prop({ default: null }) label!: string | TranslateResult;\n\n state = 24\n\n get rulesList() {\n const min = typeof this.min === 'number' ? this.fieldMoreThan(this.min) : true;\n const max = typeof this.max === 'number' ? this.fieldLessThan(this.max) : true;\n return [...this.fieldRules as ValidationRule[], min, max];\n }\n\n handleKeypress(e: KeyboardEvent) {\n const isDecimalSymbol = /[0-9]|,/.test(e.key);\n const isInteger = /[0-9]/.test(e.key);\n if (this.isDecimal) {\n if (!isDecimalSymbol) e.preventDefault();\n }\n if (!this.isDecimal) {\n if (!isInteger) e.preventDefault();\n }\n }\n\n mounted() {\n (this.$refs.customField as any).validate(true);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldNumber.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldNumber.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputFieldNumber.vue?vue&type=template&id=fd8e211c&\"\nimport script from \"./InputFieldNumber.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputFieldNumber.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputFieldNumber.vue?vue&type=style&index=0&id=fd8e211c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=style&index=0&id=4001862d&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/Robot.2a776de8.png\";","module.exports = __webpack_public_path__ + \"img/HeatingCircuitOptimization.e474ae3d.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=style&index=0&id=7384bdac&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariablePreview.vue?vue&type=style&index=0&id=3e121adb&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=445bbaaa&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotMock.vue?vue&type=style&index=0&id=509cd3e7&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/TSGBrauchwasser.c31f2ad6.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBase.vue?vue&type=style&index=0&id=91415e16&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAACUUlEQVR4nO3aTYiNURjA8f81ykc+RykWVuzERllIysZQYmnH2oKi2Ngoa9kqydpGLDQjq1nYCGVBTREWjHwtRETSW2dqRvfeuh/nnMfc/69ud/We53nvc8+5zz3nRZIkSZIkSZIkSZIkSZIkSZIkSZIWrVbOG5uYODTI5TuBaWAN8LWP61cDn4G9wLNBEvnX5OTdYQ63wNJsIw9ufyoG6cPtx3gaZ6gFySlyQa4Cu4FtwJc+rl8PzADXM+SWTeSCfAeOBcijqCUjdK//BQsSTMklaxdwCfgN/Cz8MaxKHdcp4EPh2D0pWZAzwIGC8dp5A5yvnENXJQtyD9gDfEyzpKRlwApgqnDcnpUsyI30Uhf+qAdjQYKJ+sdwHXAEWFmhI+uk+fIuBx4Aj3MFiVqQC8DZAHm0MwtsyjV41CXrbYAcOnmXc/CoM+QycDu1qqVb5E6ao4ox4HXOIJE3F18EyKE4u6xgcs+Q7cDBtJX+J8itt9LBV7MkPg+QzwK5C3IL2Jo5Rr8Op62cUHIvWTPRbniel2EymSf3DDkK7Eibe1G6pbkv4dPKebSVuyC/gEeZYywqdlnB1P4fshY4DWxInVgErfT40E3gful8ahfkCnCicg6dHAe2AO9LBq29ZL2qHL+b5rj3U+mgtWfIReAOsBn4UTmXOa3UFT6s0RlG2Mt6kl4jD7useKLu9m4ETqalY9gnhmPpJPLaKO5l9as5LTyXOUbz4N6+zDF6FrUgs+n9W4Zd4lZ6kjFyhydJkiRJkiRJkiRJkiRJkiRJkiRpYMBfS4pFdt7boNAAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAADe0lEQVR4nO3cWahNURzH8a8picg1hqLEC4UMGe6DKfMDhaQkojwpRZQHxZs3PChSui+elGSWkHnMTB5MV0mUISQUrSy6xO24Z6//f+38PnW6t+5t/9Y5v3P2uPZBRERERERERERERERERERERERERMRMM6ugl8tnFLWoGqAWGAoMBHoAHePfmgNvgBfATeA6cAZ4XERw5837ilhMo1omTyhGf2AiMB6YArStYKlTG/x+Agiv5mngQs5PNPdC+gDrgQVVLmdsfATHgbXAuQLGV7jmOQ4K6ALUAQ8KKON344CzwDFgeMHLrlqOhcwD7sQiUm7jwurvIrAqYcY/y62QbcCusP00zNwInMpl9Z1TIYeApU7ZtfFT2dsp/6ccCmkZN7STncfRL67CXEvJoZDDDfaAvHUFznuuvrwL2R43rjnpDlwCWnmMybOQWcASx/zGDAY2eAR7FdIe2OmUXanVHqtSr0K2x1JyZ/6m8SikEzDXIbcpwh7XdMtAj0K2OmRWYwfQwirMupDwjptjnFmtbsAkqzDrQqZW8D85mmY1JutCphjnFWW+1cGiZSHtrDeQBaqJp+2TsyxkbImuUP6JyafbspCRhlkpDLEIsSxkgGFWCl0sQiwL6WmYlUIlEyuqZllIB8OsFFpbhFgW8tUwq7QsC8l1hktWLF+k9yV4PRrzxSLEspBnhlkpvLMIsSzknmFWCq8tQiwLuWyYlcIdixDLQo4ZZqVw1CLEspDncfZ5GX2KE/mSs94V3VvSQnYDby2CrAsx+dgnsN8qyLqQa3G6Zpl8Bg5Yjdfj6HmxQ2Y1wu0Kr6zCPAq5XaJd4A/AJstAr/NLi5xy/9Vy60CvQm4Ba5yyK7Unzsky5XkGdmO81y9H4dbqZR7j8iwkXB8ZA9Q7juFvRsUDWXM5XKMYHb5XIINx/BDu5LrrFZ5DIU+BEcCjDMYS5o0d8RxALlfxHsZZKVed8sNxxiDLA8C/yemyatjnHxm/ucFSXbxj6obv0/8ut+vc4TTFujhL8ErirPp4nLEQeJI4q2K5TjwId+YOA2YD9wtedjhruxLoC2wpeNlVy32u7e74mAlMiD97NWE57+KBXthgH8xsr+4XZZn8vCc+VjT4mqYhcXpnmFXfJv5f+G6Uj3F79DJedj0Zr1ZmW4KIiIiIiIiIiIiIiIiIiIiIiIjI/wH4BqdEdDZEJK4oAAAAAElFTkSuQmCC\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionRightBase.vue?vue&type=style&index=0&id=690b4d64&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableInputField.vue?vue&type=style&index=0&id=8dc29c18&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/PumpWithVFD.0d7a1965.png\";","module.exports = __webpack_public_path__ + \"img/EMS.7109bba3.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_c('v-icon',[_vm._v(\"fa-ellipsis-v\")])],1)]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',{staticClass:\"primary\"},[_vm._l((_vm.items),function(item,index){return [(item.visible)?_c('v-list-item',{key:index},[_c('v-list-item-title',{staticStyle:{\"cursor\":\"pointer\"},on:{\"click\":item.handle}},[_c('span',{on:{\"click\":function($event){_vm.isMenuOpen = false}}},[_vm._v(_vm._s(_vm.$t(item.locale)))])])],1):_vm._e()]})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\n\n/**\n * Component that represent devices actions list for previews\n */\n@Component\nexport default class PreviewActions extends Vue {\n @Prop() deviceType!: string;\n @Getter('mpc/mlModelIsSettings') mlModelIsSettings!: any;\n @Getter('devices/devicesIsSettings') devicesIsSettings!: any;\n\n isMenuOpen = false\n isCloseOnClick = true\n\n /**\n * List of all possible actions\n */\n get items() {\n return [\n {\n name: 'Add To Favorites',\n locale: 'uiComponents.deviceActions.addToFavorites',\n handle: () => {},\n visible: true,\n },\n {\n name: 'Settings',\n locale: 'uiComponents.deviceActions.settings',\n handle: () => this.$emit('switchSettingsView', true),\n visible: this.isSettings,\n },\n {\n name: 'Edit',\n locale: 'uiComponents.deviceActions.edit',\n handle: () => {},\n visible: true,\n },\n {\n name: 'Delete',\n locale: 'uiComponents.deviceActions.delete',\n handle: () => {},\n visible: true,\n },\n ];\n }\n\n get allDevices() {\n return [...this.mlModelIsSettings, ...this.devicesIsSettings];\n }\n\n /**\n * Defines for which devices preview show settings item\n */\n get isSettings() {\n const map: any = new Map(this.allDevices);\n return map.get(this.deviceType);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewActions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PreviewActions.vue?vue&type=template&id=30ac2f8c&scoped=true&\"\nimport script from \"./PreviewActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./PreviewActions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30ac2f8c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=style&index=0&id=195dbf06&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtraCosts.vue?vue&type=style&index=0&id=5e6baff2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4f92d1ac&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasserPreview.vue?vue&type=style&index=0&id=3e6ec442&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitorGaugeMock.vue?vue&type=style&index=0&id=5996ae6a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=5ee3961a&prod&lang=scss&\"","export class MQTTFeedbackError extends Error {\n variable: string;\n\n constructor(message: string, variable: string) {\n super(message);\n this.variable = variable;\n }\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB8CAMAAACiwBzrAAAAjVBMVEUxMTFvb282NjZdXV29vb3Gxsb///8XFxdFRUXe3t4ZbbT/0ZWmpqbq//9BQUHS/v9lZ2k7OzsXGpZQT1D//dNvtOcvIB+Qjo626v/+57YXF2/7+/PptW3QlBiVGBeW0v5rFxfTomLk6u6rbTQXFzxiNxnX1dNVj8LpvoW3t7eWUCKjzOgcO1WbYJEXF5GuHufwAAAEwElEQVR42u2cD1eiTBSHGQYGdHEEUahl233NLC3f9/t/vHfuYInFCsRRL57fc05tEnbyPt4/M7A5AeCDgxAMw8Zi/hvxubiN2fRH+fVYbRptjCdKqeJ+lQXBz7v5CgE8m42/5kbljPHkV/AUvxVLhI6JjSB4+jN/RezOXKkmDybQLxNVPNOhxfzfN6XuX8vqdP9PxYYpaiY5/phj48nybWJOenlUVLfMc+5UsQkX5tjanGcO2+Oz6WYxKVDYutp4KZbZbqHIhiqW6zF980tumH827zaKjTmpuH/d3ZmH9JzMfKJjS3vaekd5NJuqH2tEu6uNnxRT89nmxopqknn81YY9ss+NjJ60Liubfc7+GJ1BxW5mvJjcyBDszjZmU4r23gb1jUYbD/vT9zZ+B4dj5iMrvyp/LOhoo4x2o41KpTph47+pssDGeXOj0sVP58bHVAYb3+ob78WlYuMQ1aMJt9GGbTqw0XOmSt/UkQ0T1fUuq67+1K+shQ3zwzbrp5fRCjY62LDFvViV6w2zVJjnx7kRjKeqeKjsjIxoZ6SFjSdabxgjsNHaRg2V0gSuaWO8TIPdYp8J4Mo2qLaoxyXWanwqFYANABuwAWADNgBsDNpG5oDrU9qACyZkZANhYJMdDmTw8gFgA8AGbADYgA0AG7AB+hI/KrWFDSbQ7Qcqgg0WCHsP2zNscMCFDVY6RmQjhw0ehH7xmKOLY8IFyA3WPKNvYMIFsMF+wsVanBO0T+Whi2PCBV/Jn/0YNpjg0f9mFbDBAmlnKh82WIxUmHA5kRZkYwsbTJq4kTEKYYNJrUpFjAkX6w0AG7ABYAM2wMd0lOiwDp24sHFhkvAUCWxcMi90eBrtwkZvYtlOho24yCPP2+ai3ocLG30RsrUMaVSURLK3Dtg4Jq3Y0Pr0uVSmhFehNj00bHxbRulBkpREiKSpgUvvCNmzlV/ERhz5vhfFQ2jL8qNIGRnpyXMp0tGxjai2Vp3JhpvKtPsQ7eR+ST6E7KC0CKU09SVOG7uG8D4h+nWOoFMaE2nnzPDfiQdRrVz7Mhv7OBWq/LONvF+p6mBDCxEmoRC646uLPmxEg5ARC5nouFEHxXn72ca2X6nqYENaD/rzr+l3YMSUoyjbF2ictLDhfeFiNva/n4hv1kZMBSotk1+agepkXeZp44YqlZSmh6cifLdhHoddRqreQ1WnSpUeJvLb7eLavt1045tOt+7i+hw2TOLG0iRz5xl3UBMuveuENB9N7+ik9YR7lpmKlkbmF/3GgoNWf/4gVn8myG45yWsnabbRbvV3Hht0ZcV1bpvEVih6mbqpJIctd0bOtRa/fXRlipINrcMmR/OuIbt9qiGlhpWx3zuM3cY+3ryjjj3cHitx52Cj8dzwcLUp+tvVJlzf6I3ocu3vNLj215u0ZXnBdXFmjQb3jPDqNLif6kaBDdgATuR7Aja4zNC0jQobTLD72ho2eBB6dRffYONaC8y85t452MBMhcyovxYKG1dB1t+0ARvXaeJb2OAEbMAGgA3YAB27uI+/wMpowvXx18IYrf6QG7yBDdgAsAEbADZgA8AGbADYgA0AG7ABYAPABmMbGWLAhcwJkBxccANjA8nBJTXIBnww6RlB8D+EjXC45NmgbQAAAABJRU5ErkJggg==\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionLeftBase.vue?vue&type=style&index=0&id=750fc850&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary map-banner\",attrs:{\"flat\":\"\",\"height\":\"40vh\"}},[_c('div',{staticStyle:{\"height\":\"100%\",\"width\":\"100%\"}},[(_vm.showMap)?_c('l-map',{attrs:{\"zoom\":_vm.zoom,\"center\":_vm.center,\"options\":_vm.mapOptions,\"min-zoom\":_vm.minZoom,\"worldCopyJump\":true},on:{\"update:center\":_vm.centerUpdate,\"update:zoom\":_vm.zoomUpdate}},[_c('l-tile-layer',{attrs:{\"zIndex\":100,\"url\":_vm.url,\"attribution\":_vm.attribution,\"noWrap\":false}}),_vm._l((_vm.filteredGroupedMarkerArr),function(group,index){return _c('l-marker',{key:index,attrs:{\"lat-lng\":group.coords,\"icon\":_vm.icons[group.status],\"visible\":group.visible}},[_c('l-popup',[_c('div',{staticClass:\"marker-tooltip\"},_vm._l((group.projects),function(project,projectIndex){return _c('div',{key:projectIndex,staticClass:\"marker-tooltip-item\",on:{\"click\":function($event){return _vm.handleTooltip(project, group)}}},[_c('InfoTooltip',{attrs:{\"customOpenDelay\":50},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('div',[_c('div',{staticClass:\"d-flex\"},[_c('div',{class:[_vm.projectStatusClass(project), 'mr-2']}),_c('h2',{staticClass:\"map-banner-title\"},[_vm._v(_vm._s(project.name))])]),(_vm.isInHome)?_c('p',{staticStyle:{\"padding-left\":\"24px !important\"}},[_vm._v(_vm._s(project.meta.description))]):_vm._e()])]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(project.name)+\" \")]},proxy:true}],null,true)})],1)}),0)])],1)})],2):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { icon, latLng } from 'leaflet';\nimport {\n LIcon, LMap, LMarker, LPopup, LTileLayer, LTooltip,\n} from 'vue2-leaflet';\nimport { Action, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IProject, IProjectLocation } from '@/types/project.types';\nimport { CenterCoords, GroupedMarkedArray } from '@/types/common.types';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\n/**\n * Component that represent map on Home page\n */\n@Component({\n components: {\n LMap,\n LTileLayer,\n LMarker,\n LPopup,\n LTooltip,\n LIcon,\n InfoTooltip,\n },\n})\nexport default class MapBanner extends Vue {\n @Prop({ default: [] }) projects!: IProject[];\n @Prop({ default: true }) isInHome!: boolean;\n\n @State('projects') projectsState!: any;\n @Action('members/fetchMember') fetchMember!: (payload: { memberId: string; projectId: string }) => Promise;\n @State('app') appState!: IAppState;\n\n zoom = 7\n center = latLng(47.128733, 10.468258)\n url = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n attribution = '© OpenStreetMap contributors'\n currentZoom = 11.5\n // maxZoom = 9\n minZoom = 2.3\n currentCenter: CenterCoords = latLng(47.41322, -1.219482)\n mapOptions = {\n zoomSnap: 0.5,\n }\n showMap = true\n icons = {\n error: icon({\n iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png',\n shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41],\n }),\n ok: icon({\n iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-green.png',\n shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41],\n }),\n suspend: icon({\n iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-orange.png',\n shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41],\n }),\n }\n\n groupedMarkerArr: GroupedMarkedArray[] = [];\n intervalVar: any;\n\n get filterProjectByStatus() {\n return this.projectsState.projectFilters.projectStatus;\n }\n\n get filteredGroupedMarkerArr() {\n if (!this.isInHome) {\n // filter by project status is only needed in home page\n return this.groupedMarkerArr;\n }\n if (this.filterProjectByStatus === '' || this.filterProjectByStatus === undefined) {\n // if no filter is selected return all groups and show group status like it is when initialy grouped\n return this.groupedMarkerArr.map((group: GroupedMarkedArray) => {\n const groupCopy = group;\n let status: 'error' | 'ok' | 'suspend' = 'ok';\n if (group.projects.some((project: IProject) => this.projectStatusClass(project, true) === 'error')) {\n status = 'error';\n } else if (group.projects.some((project: IProject) => this.projectStatusClass(project, true) === 'suspend')) {\n status = 'suspend';\n }\n groupCopy.status = status;\n return groupCopy;\n });\n } else {\n const updateGroupStatus = this.groupedMarkerArr.map((group: GroupedMarkedArray) => {\n const groupCopy = group;\n if (group.projects.some((project: IProject) => this.projectStatusClass(project, true) === this.filterProjectByStatus)) {\n groupCopy.status = this.filterProjectByStatus;\n }\n return group;\n });\n const filteredGroupsByOverallStatus = this.groupedMarkerArr.filter((group: GroupedMarkedArray) => group.status === this.filterProjectByStatus);\n\n // filter out projects in group by project status\n return filteredGroupsByOverallStatus.map((group: GroupedMarkedArray) => {\n const filteredProjectList = group.projects.filter((project: IProject) => this.projectStatusClass(project, true) === this.filterProjectByStatus);\n return { ...group, projects: filteredProjectList };\n });\n }\n }\n get filteredProjectsByCoords() {\n return this.projects.filter((project: IProject) => project.meta.location);\n }\n get projectsCoords() {\n return this.filteredProjectsByCoords.length\n ? this.filteredProjectsByCoords.map((project: IProject) => project.meta.location)\n : [];\n }\n get uniqueCoords() {\n return this.projectsCoords.filter((item: IProjectLocation | undefined, index: number) => {\n return this.projectsCoords.findIndex((obj: IProjectLocation | undefined) => obj?.lat === item?.lat && obj?.lon === item?.lon) === index;\n });\n }\n\n projectStatusClass(project: IProject, noDot = false) {\n if (!this.isInHome || !project.stats) return 'ok-dot';\n\n if (project.stats.warnings === 0 && project.stats.errors === 0) return !noDot ? 'ok-dot' : 'ok';\n if (project.stats.warnings !== 0 && project.stats.errors === 0) return !noDot ? 'warning-dot' : 'suspend';\n else return !noDot ? 'error-dot' : 'error';\n }\n\n /**\n * Group projects which has equal coordinates\n */\n async initProjectsGroups() {\n this.groupedMarkerArr = [];\n this.uniqueCoords.forEach((item: IProjectLocation | undefined) => {\n const projects = this.filteredProjectsByCoords\n .filter((project: IProject) => {\n const { location } = project.meta;\n return item?.lat === location?.lat && item?.lon === location?.lon;\n });\n\n if (this.isInHome) {\n let errors = 0;\n let warnings = 0;\n projects.map((p: IProject) => p.stats).forEach((el: any) => {\n errors += el.errors;\n warnings += el.warnings;\n });\n const getStatus = () => {\n if (errors) return 'error';\n if (!errors && warnings) return 'suspend';\n return 'ok';\n };\n this.groupedMarkerArr.push({\n coords: latLng(Number(item?.lat), Number(item?.lon)),\n status: getStatus(),\n visible: true,\n projects,\n });\n } else {\n this.groupedMarkerArr.push({\n coords: latLng(Number(item?.lat), Number(item?.lon)),\n status: 'ok',\n visible: true,\n projects,\n });\n }\n });\n }\n\n get user() {\n return this.appState.user;\n }\n\n async handleTooltip(project: IProject, group: GroupedMarkedArray) {\n if (!this.isInHome) {\n await this.$router.push({ path: `/partner-workspace/${project.id}` });\n return;\n }\n // Member needed when pushing into room with limited access like eventlist\n if (project.id) {\n await this.fetchMember({ memberId: this.user.id, projectId: project.id });\n }\n if (group.status !== 'ok') {\n await this.$router.push({ path: `/projects/${project.id}/eventlist` });\n } else {\n await this.$router.push({ path: `/projects/${project.id}/favorites` });\n }\n }\n zoomUpdate(zoom: number) {\n this.currentZoom = zoom;\n }\n centerUpdate(center: CenterCoords) {\n this.currentCenter = center;\n }\n\n async created() {\n await this.initProjectsGroups();\n\n // updates project groups every 60 seconds\n this.intervalVar = setInterval(async () => {\n await this.initProjectsGroups();\n }, defaultFeedbackTimeoutMilliSeconds);\n }\n\n destroyed() {\n clearInterval(this.intervalVar);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MapBanner.vue?vue&type=template&id=8a39e1be&\"\nimport script from \"./MapBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./MapBanner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MapBanner.vue?vue&type=style&index=0&id=8a39e1be&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/master_slave.af5893de.png\";","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=b3738526&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=54dfb288&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/2_batteries_on_2_inputs.454765e9.png\";","export interface IPilotMappings {\n ctRelationship: number;\n lineConfig: {\n device: { text: string; value: string };\n name: string;\n disabled: boolean;\n }[];\n}\n\nexport interface ILineConfig {\n device: { text: string; value: string };\n name: string;\n disabled: boolean;\n}\n\nexport interface Page {\n [key: string]: IMQTTVariable | Function;\n}\n\nexport interface InstallationWizardVariables {\n [pageName: string]: Page;\n}\n\nexport enum NavigationDirection {\n backward = 0,\n forward = 1,\n}\n\nexport enum WizardPath {\n INSTALLATION,\n INSTALLATION_TENANT,\n TENANT_INSTALLATION_NO_BATTERY,\n TENANT,\n STRING_INVERTER,\n TENANT_STRING_INVERTER\n}\n\nexport interface IWizardPage {\n title: string;\n view: string;\n step: number;\n page: number;\n availableFrom?: number;\n dependencies: string[];\n}\n\nexport interface IMQTTVariable {\n value: number | string;\n variable: string;\n /**\n * For variables that require feedback from the controller\n * E.g. a slider variable that requires a certain state update from the controller\n * to be interpreted as transferred successfully.\n */\n feedbackVariable?: string;\n // For feedback variables of type boolean, so that the workaround with sending the opposite value can be used\n isBoolean?: boolean;\n // send with minimal delay 200ms\n quickSend?: boolean;\n // set custom timeout in seconds. Enables timer for user to see\n customTimeout?: number;\n // Set custom expected value for feedback variables. Default is the same as the value of the variable\n customExpectedValue?: number;\n}\n\nexport interface IBatterySystem {\n size: { value: number };\n priority: { value: number };\n reserve: { value: number };\n maximumCharge: { value: number };\n updateTime: { value: number };\n chargeFromGrid: { value: number };\n prioritizedCharging: { value: number };\n minimumChargeState: { value: number };\n switchBackTimeFromEmergencyPower?: { value: number };\n smartMeterType?: { value: number };\n gridMeasurementViaCHINT?: { value: number };\n}\n\nexport interface IChargeStationSystem {\n min_power: IMQTTVariable;\n priority: IMQTTVariable;\n enable_soc: IMQTTVariable;\n disable_soc: IMQTTVariable;\n}\nexport interface IElectricHeatingElementSystem {\n priority: IMQTTVariable;\n temperature_on: IMQTTVariable;\n temperature_off: IMQTTVariable;\n temperature_max: IMQTTVariable;\n legionella_protection: IMQTTVariable;\n timeEnabled: IMQTTVariable;\n enableSOC: IMQTTVariable;\n disableSOC: IMQTTVariable;\n}\nexport interface IHeatingPumpSystem {\n priority: IMQTTVariable;\n power: IMQTTVariable;\n}\nexport interface IIncludedSystemsTypes {\n battery: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsBatteryDefinition[];\n systems: IBatterySystem[];\n };\n electric_heating: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsElectricHeatingDefinition[];\n systems: IElectricHeatingElementSystem[];\n };\n charge_station: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsChargeStationDefinition[];\n systems: IChargeStationSystem[];\n };\n pv: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsPvDefinition[];\n };\n generator: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsGeneratorDefinition[];\n };\n big_consumer: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsBigConsumerDefinition[];\n };\n heating_pump_consumer: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsHeatingPumpDefinition[];\n };\n heating_pump: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsHeatingPumpDefinition[];\n systems: IHeatingPumpSystem[];\n };\n load_shedding: {\n isSelected: boolean;\n count: number;\n definition: IIncludedSystemsLoadSheddingDefinition[];\n };\n chp: {\n isSelected: boolean;\n count: number;\n definition: any[];\n };\n}\n\nexport interface IIncludedSystemsBatteryDefinition {\n systemType: string;\n batteryCapacity: string;\n inverterPower: string;\n batteryType: string;\n}\n\nexport interface IIncludedSystemsElectricHeatingDefinition {\n systemType: string;\n modelType: number;\n title: string;\n}\n\nexport interface IIncludedSystemsChargeStationDefinition {\n systemType: string;\n connectWithLine: string | number;\n noFreeLoading: boolean;\n webastoType: number;\n occupiedByTwinPoint: boolean;\n title: string;\n}\n\nexport interface IIncludedSystemsPvDefinition {\n inverter: number;\n}\n\nexport interface IIncludedSystemsHeatingPumpDefinition {\n connectWithLine: string | number;\n systemType: string;\n power?: string | number;\n priority?: string | number;\n title: string;\n}\n\nexport interface IIncludedSystemsHeatingPumpConsumerDefinition {\n connectWithLine: string | number;\n powerSGR1?: string | number;\n powerSGR2?: string | number;\n title: string;\n}\n\nexport interface IIncludedSystemsLoadSheddingDefinition {\n maxBatteryPower: string | number;\n powerConsumer1: string | number;\n powerConsumer2: string | number;\n}\n\nexport interface IIncludedSystemsBigConsumerDefinition {\n connectWithLine: string | number;\n power: string | number;\n title: string;\n}\n\nexport interface IIncludedSystemsGeneratorDefinition {\n connectWithLine?: string | number;\n power: string | number;\n}\n\nexport type ISystemsDefinitionsProps = IMQTTVariable & {\n systemsIndex: number;\n key: string;\n}\n\nexport type WaitForMQTTFeedbackAction =\n (variableToCheck?: { name: string; sentVariable: string; expectedValue: string | number; isBoolean?: boolean }) => Promise;\n\nexport interface IHandleStatusChangeParams {\n system: 'battery' | 'charge_station' | 'electric_heating' | 'deyeConsumer' | 'deyeProducer';\n status: boolean;\n}\n\nexport interface Definitions {\n pv: any;\n battery: IIncludedSystemsBatteryDefinition;\n charge_station: IIncludedSystemsChargeStationDefinition;\n electric_heating: IIncludedSystemsElectricHeatingDefinition;\n heating_pump: IIncludedSystemsHeatingPumpDefinition;\n heating_pump_consumer: IIncludedSystemsHeatingPumpConsumerDefinition;\n big_consumer: IIncludedSystemsBigConsumerDefinition;\n load_shedding: IIncludedSystemsLoadSheddingDefinition;\n generator: IIncludedSystemsGeneratorDefinition;\n chp: any;\n}\nexport const DEFINITIONS: Definitions = {\n pv: { inverter: 0 },\n battery: { systemType: '', batteryCapacity: '', inverterPower: '', batteryType: '' },\n charge_station: { systemType: '', connectWithLine: '', noFreeLoading: false, occupiedByTwinPoint: false, webastoType: 0, title: '' },\n electric_heating: { systemType: '', modelType: 0, title: '' },\n heating_pump_consumer: { connectWithLine: '', powerSGR1: '', powerSGR2: '', title: '' },\n heating_pump: { connectWithLine: '', systemType: '', power: 0, priority: 2, title: '' },\n big_consumer: { connectWithLine: '', power: '', title: '' },\n load_shedding: { maxBatteryPower: '', powerConsumer1: '', powerConsumer2: '' },\n generator: { power: 0, connectWithLine: '' },\n chp: {},\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetectionTable.vue?vue&type=style&index=0&id=11ce1b88&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"base-chart\"},[_c('CalendarNavigation',{ref:\"calendarDialog\",attrs:{\"disable-nav-button\":_vm.disableNavButton,\"enable-multi-select\":_vm.enableMultiSelect,\"modular-default-period\":_vm.modularDefaultPeriod,\"navigation-items-to-exclude\":_vm.navigationItemsToExclude},on:{\"handleCalendar\":function($event){return _vm.handleCalendar($event)},\"handleNavigation\":function($event){return _vm.handleNavigation($event)},\"next\":function($event){return _vm.handleNexPrevButtonClick('next')},\"prev\":function($event){return _vm.handleNexPrevButtonClick('prev')}},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-end\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleFullScreen()}}},on),[_c('v-icon',[_vm._v(\"fa-expand\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.fullscreen')))])]),(_vm.currentPeriod !== 'live')?_c('TotalValuesWindow',{attrs:{\"current-selected-period\":_vm.currentPeriod,\"objects-difference-series-stats\":_vm.differenceSeriesStats,\"objects-other-series-stats\":_vm.otherSeriesStats}}):_vm._e(),_c('DataExportNew',{attrs:{\"period-title\":_vm.currentPeriod,\"chart-data\":_vm.chartData,\"data-to-export\":_vm.dataToExport,\"is-threshold-line\":_vm.isThresholdLine,\"enableMultiSelect\":_vm.enableMultiSelect,\"multiSelectData\":_vm.localLegendItems,\"chartScores\":_vm.chartScores}}),(!_vm.enableMultiSelect)?_c('CompareModal',{attrs:{\"deviceData\":_vm.chartData,\"chartWidth\":_vm.chartWidth,\"currentPropInChart\":_vm.currentPeriod}}):_vm._e(),(_vm.numberOfColumns > 1)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"disabled\":!_vm.isStackingButtonActive},on:{\"click\":_vm.handleStackingOptions}},on),[_c('lynus-icon',{attrs:{\"name\":\"chart_stacking\",\"color\":\"theme\",\"size\":\"26\"}})],1)]}}],null,false,937854784)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.switchColumn')))])]):_vm._e(),(_vm.numberOfLines > 0)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":_vm.handleLineOptionsToggle}},on),[_c('i',{staticClass:\"material-icons\"},[_vm._v(\"area_chart\")])])]}}],null,false,575868977)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.changeLineDisplay')))])]):_vm._e(),(_vm.showDeviceActions)?_c('DeviceActions',{attrs:{\"device\":_vm.chartData}}):_vm._e()],1)]},proxy:true}])},[_c('div',{staticClass:\"base-chart__reload d-flex justify-end\"},[(_vm.errorStatus)?_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":_vm.handleReloadButton}},on),[_c('lynus-icon',{attrs:{\"name\":\"push_reset\",\"size\":\"25\",\"color\":\"accent\"}})],1)]}}],null,false,1224901749)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.reload')))])])],1):_vm._e()]),_c('v-lazy',[_c('div',{style:(`overflowX: ${_vm.overflow}`)},[_c('LynusChartBasicView',{key:_vm.reRenderKey,ref:\"LynusChartBasicView\",attrs:{\"chart-data\":_vm.chartData,\"current-period\":_vm.currentPeriod,\"started-at\":_vm.projectStartedAtNumber,\"is-threshold-line\":_vm.isThresholdLine,\"chartHeight\":_vm.chartHeight},on:{\"chartLoaded\":_vm.chartLoaded,\"handleDataToExport\":_vm.setupDataForExport,\"onDataLoaded\":_vm.onDataLoaded,\"chartInitDone\":_vm.handleChartInitDone}})],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.showModal = true},\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[_c('lynus-icon',{attrs:{\"name\":\"compare\",\"size\":26,\"color\":\"theme\"}})],1)]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.manageChartsExtraButtons.showCompWindow')))])]),_c('v-dialog',{attrs:{\"max-width\":\"1750\",\"persistent\":\"\",\"overlay-opacity\":\"0.8\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"custom-icon\"},'div',attrs,false),on),[_vm._t(\"default\")],2)]}}],null,true),model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('div',{staticClass:\"compare-charts-modal\"},[_c('div',{staticClass:\"compare-charts-modal__header\"},[_c('h2',[_vm._v(\"Compare Charts\")]),_c('div',[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\"},on:{\"click\":function($event){_vm.showModal = false}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"compare-charts-modal__body\"},[_c('ComparisonCharts',{attrs:{\"chart-data\":_vm.deviceData,\"chart-width\":_vm.chartWidth,\"chart-height\":350,\"show-total-of-series\":true,\"show-device-actions\":false,\"navigationItemsToExclude\":['live'],\"modularDefaultPeriod\":_vm.currentPropInChart}})],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component({\n components: {\n ComparisonCharts: () => import('@/ui/components/devices/charts/charts/ComparisonCharts.vue'),\n },\n})\nexport default class CompareModal extends Vue {\n @Prop() deviceData!: any;\n @Prop() chartWidth!: number;\n @Prop({ default: 'day' }) currentPropInChart!: any;\n\n dialog = false;\n isTooltip = false;\n showModal = false;\n\n get currentPeriod() {\n return this.currentPropInChart;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompareModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompareModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CompareModal.vue?vue&type=template&id=24c25bfc&\"\nimport script from \"./CompareModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./CompareModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CompareModal.vue?vue&type=style&index=0&id=24c25bfc&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport LynusChartBasicView from '@/ui/components/devices/charts/charts/LynusChart.vue';\nimport DataExportNew from '@/ui/components/devices/charts/charts/DataExportNew.vue';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport TotalValuesWindow from '@/ui/components/devices/charts/components/TotalValuesWindow.vue';\nimport {\n getChartOptions,\n Periods,\n} from '@/ui/components/devices/charts/charts/ChartUtils';\nimport _ from 'lodash';\nimport CompareModal from '@/ui/components/devices/charts/components/CompareModal.vue';\nimport CalendarNavigation from '@/ui/components/devices/charts/charts/CalendarNavigation.vue';\nimport { ChartData, ChartOption } from '@/types/chart.types';\n\n/**\n * Component that represent chart core (Highcharts, Navigation...)\n */\n@Component({\n components: {\n CalendarNavigation,\n LynusChartBasicView,\n DataExportNew,\n DeviceActions,\n TotalValuesWindow,\n CompareModal,\n },\n})\nexport default class BaseChart extends Vue {\n @Prop() chartData!: ChartData;\n @Prop() chartWidth!: number;\n @Prop({ default: 0 }) parentComponentWidth!: number;\n @Prop({ default: undefined }) chartHeight!: number;\n @Prop({ default: true }) showDeviceActions!: boolean;\n @Prop({ default: null }) navigationItemsToExclude!: null | string[];\n @Prop({ default: false }) isThresholdLine!: boolean;\n @Prop({ default: 3 }) minNumberOfSeriesForWideChart!: number;\n @Prop({ default: false }) showTotalOfSeries!: number;\n @Prop({ default: false }) enableMultiSelect!: boolean;\n @Prop({ default: null }) modularDefaultPeriod!: string;\n @Prop({ default: null }) chartScores!: Record;\n @Getter('projects/projectStartedAtNumber') projectStartedAtNumber!: number;\n\n currentPeriod = Periods.DAY;\n reRenderKey = 0;\n\n overflow: any = 'hidden';\n disableNavButton: any = false;\n dataToExport: any = null;\n isStackingButtonActive = true;\n differenceSeriesStats: any = [];\n otherSeriesStats: any = [];\n localLegendItems = [];\n isTooltip = false;\n errorStatus = false;\n isInitChartDone = false;\n timer: NodeJS.Timeout|undefined;\n\n @Watch('chartData', { deep: true })\n handleChartDataChange() {\n this.reRenderKey += 1;\n }\n\n handleChartInitDone() {\n this.isInitChartDone = true;\n this.handlePeriodsForAutarkiegrad();\n }\n get chartOptions() {\n return getChartOptions(this.chartData);\n }\n\n get numberOfColumns() {\n const optionsList = this.chartOptions.filter((el: any) => ['column', 'diff'].includes(el.type));\n return optionsList.length;\n }\n get numberOfLines() {\n const optionsList = this.chartOptions.filter((el: any) => el.type === 'line' || el.type === 'area');\n return optionsList.length;\n }\n\n async handleReloadButton() {\n this.errorStatus = false;\n await (this.$refs.LynusChartBasicView as any).initChart();\n }\n\n async handleNexPrevButtonClick(direction: any) {\n this.disableNavButton = true;\n await (this.$refs.LynusChartBasicView as any).handlePrevNextButtonCalendar(direction, this.currentPeriod);\n this.handlePeriodsForAutarkiegrad();\n this.$emit('chartRangeChange', {\n start: (this.$refs.LynusChartBasicView as any).chart.chartBounds.start,\n end: (this.$refs.LynusChartBasicView as any).chart.chartBounds.end,\n period: this.currentPeriod,\n });\n this.disableNavButton = false;\n if (this.currentPeriod !== Periods.LIVE) {\n this.defineSeriesStatsSingleSelection();\n this.setupDataForExport();\n }\n }\n\n defineSeriesStatsSingleSelection() {\n const otherSeriesList = this.chartOptions.filter((ser: ChartOption) => ser.agg !== 'diff');\n const diffSeriesList = this.chartOptions.filter((ser: ChartOption) => ser.agg === 'diff');\n this.differenceSeriesStats = diffSeriesList.map((ser: ChartOption, inx: number) => {\n const values = this.getValuesOfSeries(inx, ser.type);\n const totalValue = _.sum(values) ?? 0;\n const seriesName = this.getSeriesNameForStats(ser, inx);\n return {\n name: seriesName,\n sum: totalValue,\n unit: ser.unit || null,\n };\n });\n this.otherSeriesStats = otherSeriesList.map((ser: ChartOption, inx: number) => {\n const values = this.getValuesOfSeries(inx, ser.type);\n const max: number = _.max(values) ?? 0;\n const min: number = _.min(values) ?? 0;\n const avg: number = _.mean(values) ?? 0;\n const seriesName = this.getSeriesNameForStats(ser, inx);\n return {\n name: seriesName,\n minValue: min.toFixed(2),\n maxValue: max.toFixed(2),\n avgValue: avg.toFixed(2),\n unit: ser.unit || null,\n };\n });\n }\n\n getSeriesNameForStats(series: ChartOption, index: number) {\n if (series.name !== '') {\n // if a series has a name, use it\n return series.name;\n }\n if (series.seriesType === 'View') {\n // if a series is a view, use the view name\n return series.var;\n }\n\n // if nothing matches, use the series type + index of the series\n return `${series.seriesType}_${index}`;\n }\n\n defineSeriesStatsMultiSelection() {\n this.differenceSeriesStats = [];\n this.otherSeriesStats = [];\n const chart = (this.$refs.LynusChartBasicView as any).getChartObject();\n chart.chart.series.forEach((seriesElement: any, seriesIndex: any) => {\n const currentChartOptionIndex = seriesIndex % this.chartOptions.length;\n let valuesArray;\n let seriesName = chart.chart.legend.allItems[seriesIndex].name;\n if (this.chartOptions[currentChartOptionIndex].agg === 'diff') {\n valuesArray = this.getValuesOfSeries(seriesIndex, this.chartOptions[currentChartOptionIndex].type);\n\n const totalValue = _.sum(valuesArray) ?? 0;\n if (seriesName === '') {\n seriesName = `${this.chartOptions[currentChartOptionIndex].seriesType}_${seriesIndex}`;\n }\n this.differenceSeriesStats.push({ name: seriesName, sum: totalValue.toFixed(2), unit: this.chartOptions[currentChartOptionIndex].unit });\n } else {\n valuesArray = this.getValuesOfSeries(seriesIndex, this.chartOptions[currentChartOptionIndex].type);\n\n const max: number = _.max(valuesArray) ?? 0;\n const min: number = _.min(valuesArray) ?? 0;\n const avg: number = _.mean(valuesArray) ?? 0; // return avg of all numbers in array: https://www.geeksforgeeks.org/lodash-_-mean-method/\n\n if (seriesName === '') {\n seriesName = `${this.chartOptions[currentChartOptionIndex].seriesType}_${seriesIndex}`;\n }\n this.otherSeriesStats.push({ name: seriesName, minValue: min.toFixed(2), maxValue: max.toFixed(2), avgValue: avg.toFixed(2), unit: this.chartOptions[currentChartOptionIndex].unit });\n }\n });\n }\n\n getValuesOfSeries(index: number, type: string) {\n const chart = (this.$refs.LynusChartBasicView as any).getChartObject();\n if (type !== 'column') {\n return chart.chart.series[index].data.map((dataElement: any) => {\n return dataElement.options.y;\n });\n } else {\n return (chart.chart.series[index] as any).yData;\n }\n }\n\n handleNavigation(period: string) {\n this.currentPeriod = period;\n if (this.isInitChartDone) {\n this.handlePeriodsForAutarkiegrad();\n this.disableNavButton = true;\n this.reRenderKey += 1;\n // generateObject for Total Sum (currently only for Difference Series)\n if (this.currentPeriod !== Periods.LIVE) {\n this.defineSeriesStatsSingleSelection();\n }\n }\n }\n\n chartLoaded() {\n this.disableNavButton = false;\n this.defineSeriesStatsSingleSelection();\n this.$emit('chartRangeChange', { start: (this.$refs.LynusChartBasicView as any).chart.chartBounds.start, end: (this.$refs.LynusChartBasicView as any).chart.chartBounds.end, period: this.currentPeriod });\n }\n\n handleFullScreen() {\n (this.$refs.LynusChartBasicView as any).handleFullScreen();\n }\n\n handleStackingOptions() {\n (this.$refs.LynusChartBasicView as any).toggleStacking();\n\n this.isStackingButtonActive = false;\n setTimeout(() => {\n this.isStackingButtonActive = true;\n }, 2000);\n }\n\n handleLineOptionsToggle() {\n (this.$refs.LynusChartBasicView as any).toggleLineOptionChange();\n }\n\n // loads chart by calendar state\n async handleCalendar(date: any) {\n this.disableNavButton = true;\n (this.$refs.calendarDialog as any).closeDialog();\n this.handlePeriodsForAutarkiegrad();\n await (this.$refs.LynusChartBasicView as any).handlePeriod(date);\n this.$emit('chartRangeChange', {\n start: (this.$refs.LynusChartBasicView as any).chart.chartBounds.start,\n end: (this.$refs.LynusChartBasicView as any).chart.chartBounds.end,\n period: this.currentPeriod,\n });\n this.disableNavButton = false;\n\n this.setupDataForExport(true);\n // generateObject for Total Sum (currently only for Difference Series)\n if (!this.enableMultiSelect) {\n if (this.currentPeriod !== Periods.LIVE) {\n this.defineSeriesStatsSingleSelection();\n }\n } else {\n this.defineSeriesStatsMultiSelection();\n }\n }\n\n setupDataForExport(fromHandleCalendar = false) {\n const chart = (this.$refs.LynusChartBasicView as any).getChartObject();\n if (fromHandleCalendar) {\n this.localLegendItems = chart.chart.legend.allItems;\n }\n this.dataToExport = chart.dataToExport;\n }\n\n handlePeriodsForAutarkiegrad() {\n const chart = (this.$refs.LynusChartBasicView as any);\n this.$emit('handleAutarkiegrad', chart.chart.chartBounds);\n }\n\n onDataLoaded(data: any, chart: any, period: any) {\n this.$emit('onDataLoaded', data, chart, period);\n this.errorStatus = (this.$refs.LynusChartBasicView as any).chart.loadingError;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseChart.vue?vue&type=template&id=10c37a9e&scoped=true&\"\nimport script from \"./BaseChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseChart.vue?vue&type=style&index=0&id=10c37a9e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10c37a9e\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayRangeSelectionModal.vue?vue&type=style&index=0&id=862f6648&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=4e2b17b7&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectionCalendar.vue?vue&type=style&index=0&id=31e81de4&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingPumpSettings.vue?vue&type=style&index=0&id=31f760b1&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldTextBase.vue?vue&type=style&index=0&id=7c5e680f&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolarCalculator.vue?vue&type=style&index=0&id=07cfe2dd&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleThemesButton.vue?vue&type=style&index=0&id=36cbe6d4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCTable.vue?vue&type=style&index=0&id=79c150e9&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorSettings.vue?vue&type=style&index=0&id=ce3cf040&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAADDElEQVR4nO3bT4hNYRjH8e8YIqPLICSR/NtoShQKK5qJbOxIig3Z+FuUWCglTFiIBSn/diwoGxY0SGOnxAIloUgyG8bI6K136qo73TO35znnPeP3qdnMnfu8zzm/O+e85z3nIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIqXW5NF8T89365ITgE3AamAu0AL0AR+BZ8B14Ln1oFlUKuNN66UeyFLgELAWaK7zty+A08Alq8Gz+J8COQAcb+B9T4H20IZFE/VYBzLCo0kDtxsMI1gGhE/E4qS2KKMUA7kJrDeocw+Yb1AnV6kFshPYYFSrFbhhVCs3KQXSBpwzrhkOW3uNa7pKKZAwrfVwBJhc7KZll0ogYUq70al2mAZ1ONU2l0og64CZjvWX1Phdc4qTmlQaWu5cf2AKvAi4AnTHq/z3wEPgAjDHuYdMRqbQBDDbuX4FOAwcrfHadGAVsB3YHJdhCpNKIOOc67fFn3quxQnAWed+BpXKIetrAj0MOAOsLGrwIgOZVHXc/lZgH7VsK2rgvBcXw7L5LmALMC9+IPqBX8Boj14a9BOYBXyu9/ayLi6OBU7GQ9MxYEHV2E2JhRGMGWSq7C6Pk3q4uXS/hKuvLUUM6h1ICOMVMNV5HA/vihjUM5BwJdxV0jA+xFvE4d5KL/AynlfceQayB1iYx0Y4mAg8iecS4t3HW8BF4LHnwF6zrFHAW2CGR/2CXa6eFpdllrV1mIZB3LYur33nFUi7U91UrABOePTiFUghc/ic7YsnfVNegbSmuAcd7LcumepjQGWRZQV5SLwC+VKq3dq4KdYFvQLpdqqbGvP95xXIXae6qemz7scrkKvAG6faKflk3YvnSb3TsXYqHln34RnIeeCBY/2i/QZOWffgPe3tKGoZOwcHgdfWw3gH0hvvDg63/5ROr0NyHheGIZQ18bko8++65ewHsNvjCn1A3g85hJtWO+KD1dOq7jf0e/RhIHxg/8SnYu7ELxH9880s6+V3ERERERERERERERERERERERERERERERGRoQD+AsqjaPphCrlmAAAAAElFTkSuQmCC\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=2a0f0acd&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpressionTextArea.vue?vue&type=style&index=0&id=403fe204&prod&lang=css&\"","import api from '@/services/api';\n\nexport default {\n async fetchLocations(location: string) {\n return api.fetch(`/places?q=${location}`, 'GET');\n },\n};\n","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=style&index=0&id=38d74aa9&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=46c76e2e&prod&lang=scss&\"","// Will contain all limits that the user when going through the installation wizard\n\nimport {\n plcVersionDate,\n newChargeStationLimitDate,\n hybridVersionDate, plcLevelVersionDate,\n} from '@/utils/versionManagementUtils';\nimport store from '@/store';\nimport { IProject } from '@/types/project.types';\nimport { BatteryType } from './systemTypes';\nimport { PlcPerformanceCategorie } from '@/utils/plcPerformanceLimits';\n\nconst azzurroSystemLimits: Record = {\n pv: 2,\n generator: 0,\n battery: 1,\n grid: 1,\n house: 1,\n charge_station: 4,\n electric_heating: 2,\n heating_pump: 0,\n big_consumer: 0,\n};\n\nconst defineChargeStationLimit = (project: IProject): number => {\n let chargeStationLimit = 4;\n if (plcVersionDate(project).getTime() > newChargeStationLimitDate.getTime()) {\n chargeStationLimit = 10;\n }\n // TODO: remove this when PLC performance level is implemented on SPS side\n // if (plcVersionDate(project).getTime() > plcLevelVersionDate.getTime() && project.meta.controller.plcPerformanceLevel === PlcPerformanceCategorie.high) {\n // chargeStationLimit = 100;\n // }\n return chargeStationLimit;\n};\nconst deyeSystemLimits = (project: IProject, isStandalone = false): Record => {\n const chargeStationLimit = defineChargeStationLimit(project);\n return {\n pv: 5,\n generator: 1,\n battery: !isStandalone ? 2 : 1,\n grid: 1,\n house: 1,\n charge_station: chargeStationLimit,\n electric_heating: 2,\n heating_pump_consumer: 1,\n heating_pump: 3,\n big_consumer: 2,\n emergencyPowerOperation: 1,\n avPv: 1,\n chp: plcVersionDate(project).getTime() > hybridVersionDate.getTime() ? 3 : 1,\n };\n};\n\nconst solarmaxSystemLimits = (project: IProject): Record => {\n return {\n pv: 3,\n generator: 1,\n battery: 1,\n grid: 1,\n house: 1,\n charge_station: 10,\n electric_heating: 2,\n heating_pump_consumer: 1,\n heating_pump: 3,\n big_consumer: 2,\n emergencyPowerOperation: 1,\n avPv: 1,\n chp: 1,\n };\n};\n\nexport function emsLimitsByType(type: BatteryType, project: IProject) {\n return {\n [BatteryType.AZZURRO]: azzurroSystemLimits,\n [BatteryType.DEYE]: deyeSystemLimits(project),\n [BatteryType.STANDALONE]: deyeSystemLimits(project, true),\n [BatteryType.SOLARMAX]: solarmaxSystemLimits(project),\n [BatteryType.MobileBatteryDeye]: deyeSystemLimits(project),\n }[type];\n}\n\n// maximum amount of Pilot Systems inside Project\nexport const pilotCountLimit = 1;\nexport const pilotLinesCount = 4;\nexport const externalVisualisationLimit = 4;\n\n// limits for charge station types\nexport const limitWebastoChargeStations = 2;\nexport const limitWaidmullerChargeStations = 2;\n\nexport const chargeStationLimit = 10;\n\nexport const pvStringLoggerLimit = 20;\n\nexport const limitStringInverter = 10;\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=style&index=0&id=2dcc274a&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBBase.vue?vue&type=style&index=0&id=2918e8ce&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/TSGModulLadestation.7f211416.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=style&index=0&id=0d2af2b4&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ab1b151a&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/Inverter.fa26ef26.png\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotatingBacklight.vue?vue&type=style&index=0&id=e6d65294&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/HeatingCircuitOptimization.66580f9f.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=style&index=0&id=83953b20&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=style&index=0&id=cbe41ce2&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=style&index=0&id=e4a88568&prod&lang=scss&scoped=true&\"","import {\n IMQTTVariable,\n InstallationWizardVariables,\n} from '@/types/wizards/installationWizard.types';\n\nconst buildVariable = (name: string, value: number | string, feedbackVariable: string, isBoolean = false): IMQTTVariable => {\n const variable: IMQTTVariable = {\n variable: name,\n value,\n isBoolean,\n };\n if (feedbackVariable) variable.feedbackVariable = feedbackVariable;\n return variable;\n};\n\nconst chargeStationVariables = (value: number | string) => {\n return {\n setWebastoNext: {\n variable: 'prgCS.wWebasto_Next',\n value,\n },\n setWebastoUnite: {\n variable: 'prgCS.wWebasto_Unite',\n value,\n },\n setWeidmüller: {\n variable: 'prgCS.wWeidmueller',\n value,\n },\n setSchneider: {\n variable: 'prgCS.wSchneider',\n value,\n },\n setMennekesSingleChargePoint: {\n variable: 'prgCS.wMennekes1CP',\n value,\n },\n setMennekesDoubleChargePoint: {\n variable: 'prgCS.wMennekes2CP',\n value,\n },\n setEnercharge: {\n variable: 'prgCS.wEnercharge',\n value,\n },\n chargeStationSession: (systemIndex: number) => {\n return {\n variable: `prgCS.byStartSession_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgCS.bStateStartSession_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n chargeStationEnable: (systemIndex: number) => {\n return {\n variable: `prgCS.bEnable_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgCS.bSEnabled_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n chargeStationFreeCharge: (systemIndex: number) => {\n return {\n variable: `prgCS.bUseNotFreeCharge_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgCS.bSUseNotFreeCharge_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n chargeStationEmergencyPowerOff: (systemIndex: number) => {\n return {\n variable: `prgCS.bOnEmergPowerOff_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgCS.bSOnEmergPowerOff_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n chargeStationMinPower: (systemIndex: number) => {\n return {\n variable: `prgCS.byMinPower_${systemIndex + 1}`,\n feedbackVariable: `prgCS.bySMinPower_${systemIndex + 1}`,\n value,\n };\n },\n chargeStationPriority: (systemIndex: number) => {\n return {\n variable: `prgCS.byPrio_${systemIndex + 1}`,\n value,\n };\n },\n chargeStationEnableSOC: (systemIndex: number) => {\n return {\n variable: `prgCS.byEnaSOC_${systemIndex + 1}`,\n value,\n };\n },\n chargeStationDisableSOC: (systemIndex: number) => {\n return {\n variable: `prgCS.byDisabSOC_${systemIndex + 1}`,\n value,\n };\n },\n chargeStationMaxPower: (systemIndex: number) => {\n return {\n variable: `prgCS.rMaxPower_${systemIndex + 1}`,\n value,\n };\n },\n };\n};\n\nconst heatingPumpVariables = (value: number | string) => {\n return {\n setLambda: {\n variable: 'prgHP.wLambdaEureka',\n value,\n },\n setSoltop: {\n variable: 'prgHP.wSoltopMTech',\n value,\n customTimeout: 5,\n quickSend: true,\n },\n heatingPumpReset: (systemIndex: number) => {\n return {\n variable: `prgHP.bReset_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgHP.bSReset_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n heatingPumpEnable: (systemIndex: number) => {\n return {\n variable: `prgHP.bEnable_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgHP.bSEnabled_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n heatingPumpOnEmergencyPowerOff: (systemIndex: number) => {\n return {\n variable: `prgHP.bOnEmergPowerOff_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgHP.bSOnEmergPowerOff_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n heatingPumpTimeEnabled: (systemIndex: number) => {\n return {\n variable: `prgHP.bTimeEnabled_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgHP.bSTimeEnabled_${systemIndex + 1}`,\n isBoolean: true,\n };\n },\n heatingPumpTimeEnabledPower: (systemIndex: number) => {\n return {\n variable: `prgHP.byTimeEnabledPwr_${systemIndex + 1}`,\n value,\n feedbackVariable: `prgHP.bySTimeEnabledPwr_${systemIndex + 1}`,\n };\n },\n heatingPumpHourOn: (systemIndex: number) => {\n return {\n variable: `prgHP.byHourOn_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpHourOff: (systemIndex: number) => {\n return {\n variable: `prgHP.byHourOff_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpMinuteOn: (systemIndex: number) => {\n return {\n variable: `prgHP.byMinuteOn_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpMinuteOff: (systemIndex: number) => {\n return {\n variable: `prgHP.byMinuteOff_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpPriority: (systemIndex: number) => {\n return {\n variable: `prgHP.byPrio_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpEnableSOC: (systemIndex: number) => {\n return {\n variable: `prgHP.byEnaSOC_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpDisableSOC: (systemIndex: number) => {\n return {\n variable: `prgHP.byDisabSOC_${systemIndex + 1}`,\n value,\n };\n },\n heatingPumpPower: (systemIndex: number) => {\n return {\n variable: `prgHP.rMaxPower_${systemIndex + 1}_1`,\n value,\n };\n },\n heatingPumpMaxPower1: (systemIndex: number) => {\n return {\n variable: `prgHP.rMaxPower_${systemIndex + 1}_1`,\n value,\n };\n },\n heatingPumpMaxPower2: (systemIndex: number) => {\n return {\n variable: `prgHP.rMaxPower_${systemIndex + 1}_2`,\n value,\n };\n },\n };\n};\n\nconst installationWizardVariables = (name: string, page: string, value: number | string = 0, systemIndex = 0) => {\n const pages = {\n componentsPage: {\n disableEMS: buildVariable('prgEMS.fbEMS.bEnable', 0, 'prgEMS.fbEMS.bStateEnable', true),\n enableEMS: {\n variable: 'prgEMS.fbEMS.bEnable',\n value: 1,\n feedbackVariable: 'prgEMS.fbEMS.bStateEnable',\n isBoolean: true,\n },\n setGridMeasurement: {\n variable: 'prgEnergy.wSetGridMessurement',\n value,\n isBoolean: true,\n },\n maxPowerInverter: {\n variable: 'prgEnergy.fbI.rMaxPowerInverter',\n value,\n },\n inverterCount: {\n variable: 'prgEnergy.byNumberOfInverters',\n value,\n },\n stringInverterCount: {\n variable: 'prgACPV.byNumberOfInverters',\n value,\n },\n acpvOnGrid: {\n variable: 'prgEnergy.fbI.bChrgACPVOnGrid',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_ChrgACPVOnGrid',\n isBoolean: true,\n },\n acpvOnLoad: {\n variable: 'prgEnergy.fbI.bChrgACPVOnLoad',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_ChrgACPVOnLoad',\n isBoolean: true,\n },\n isBattery: {\n variable: 'prgEnergy.fbI.bIsABattery',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_IsABattery',\n isBoolean: true,\n },\n batteryCapacity: (systemIndex: number) => {\n return { variable: `prgEnergy.lrMaxCapacityBattery${systemIndex + 1}`, value };\n },\n electricHeatingPower: (systemIndex: number) => {\n return { variable: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.rMaxPower1`, value };\n },\n chargeStationPower: (systemIndex: number) => {\n return { variable: `prgCS.fbCS${systemIndex}.stSetupECS.rMaxPower`, value };\n },\n useNotFreeCharge: (systemIndex: number) => {\n return {\n variable: `prgCS.bUseNotFreeCharge_${systemIndex}`,\n feedbackVariable: `prgCS.bS_UseNotFreeCharge_${systemIndex}`,\n value,\n isBoolean: true,\n };\n },\n heatingPump: (systemIndex: number) => {\n return { variable: `prgHP.fbHP.stSetupHP.rMaxPower${systemIndex + 1}`, value };\n },\n bigConsumerPower: (systemIndex: number) => {\n return { variable: `prgOBC.fbBC${systemIndex + 1}.stSetupOBC.rMaxPower`, value };\n },\n loadShedding: {\n variable: 'prgIO.rPowerLDrop',\n value,\n },\n maxPowerDrop: (systemIndex: number) => {\n return { variable: `prgIO.rMaxPowerLDrop_C${systemIndex}`, value };\n },\n disableBigConsumer: (systemIndex: number) => {\n return {\n variable: `prgOBC.fbBC${systemIndex}.bEnable`,\n value: 0,\n feedbackVariable: `prgOBC.fbBC${systemIndex}.stDataOBC.bEnabled`,\n isBoolean: true,\n };\n },\n disableLegionellaProtection: {\n variable: `prgEHE.bDisableLegionellaPr_${systemIndex}`,\n value,\n feedbackVariable: `prgEHE.bSDisableLegionellaPr_${systemIndex}`,\n isBoolean: true,\n },\n disableHeatingPump: {\n variable: 'prgHP.fbHP.bEnable',\n value: 0,\n feedbackVariable: 'prgHP.fbHP.stDataHP.bEnabled',\n isBoolean: true,\n },\n useAsGenerator: {\n variable: 'prgEnergy.fbI.bUseGenPortAsGen',\n value: 1,\n feedbackVariable: 'prgEnergy.fbI.bS_UseGenPortAsGen',\n },\n useAsBHKW: {\n variable: 'prgEnergy.fbI.bUseGenPortAsBHKW',\n value: 1,\n feedbackVariable: 'prgEnergy.fbI.bS_UseGenPortAsBHKW',\n },\n useAsACPV: {\n variable: 'prgEnergy.fbI.bUseGenPortAsPV',\n value: 1,\n feedbackVariable: 'prgEnergy.fbI.bS_UseGenPortAsPV',\n },\n isACPV: {\n variable: 'prgEnergy.fbI.bIsACPV',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_IsACPV',\n },\n numberOfBHKW: {\n variable: 'prgBHKW.fbBHKW.byNumberOfBHKW',\n value,\n },\n allBHKWOnOneBattery: {\n variable: 'prgBHKW.fbBHKW.bMoreXRGIToOneBattery',\n value,\n },\n powerOfGenerator: {\n variable: 'prgEnergy.fbI.dwPowerOfGen',\n value,\n },\n parallelControl: {\n variable: 'prgEnergy.fbI.bActivateParallelControl',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_ActivateParallelControl',\n },\n batteryInput: {\n variable: 'prgEnergy.fbI.bBatteryInput2InUse',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_BatteryInput2InUse',\n isBoolean: true,\n },\n oneBatteryInput: {\n variable: 'prgEnergy.fbI.bOneBatteryTo2Inputs',\n value,\n feedbackVariable: 'prgEnergy.fbI.bS_OneBatteryTo2Inputs',\n isBoolean: true,\n },\n pvPowerExt: {\n variable: 'prgEnergy.fbI.bPVPowerExt',\n value: 0,\n feedbackVariable: 'prgEnergy.fbI.bS_PVPowerExt',\n },\n internalPV: {\n variable: 'prgEnergy.fbI.bPVPowerIntern',\n value: 1,\n feedbackVariable: 'prgEnergy.fbI.bS_PVPowerIntern',\n },\n numberOfInverters: {\n variable: 'prgEnergy.fbI.byNumberOfInverters',\n value,\n },\n numberOfBatteries: {\n variable: 'prgEnergy.fbI.byNumberOfBatterys',\n value,\n },\n enableBattery: {\n variable: 'prgEnergy.fbI.bEnable',\n value,\n feedbackVariable: 'prgEnergy.fbI.stDataBattInverter.bEnabled',\n isBoolean: true,\n },\n enableEM: {\n variable: 'prgEM.bEnable',\n value,\n feedbackVariable: 'prgEM.bSEnable',\n isBoolean: true,\n },\n enableStringInverter: {\n variable: 'prgACPV.bEnable',\n value,\n feedbackVariable: 'prgACPV.bS_Enabled',\n isBoolean: true,\n },\n lastVariable: {\n variable: '',\n value: 0,\n customTimeout: 35,\n quickSend: true,\n },\n numberOfMeters: {\n variable: 'prgPilot.byNumberOfMeters',\n value,\n },\n disablePilot: {\n variable: 'prgPilot.bEnable',\n value: 0,\n },\n webastoType: (systemIndex: number) => {\n return {\n variable: `prgCS.byTypeECS_${systemIndex + 1}`,\n value,\n };\n },\n ...chargeStationVariables(value),\n ...heatingPumpVariables(value),\n },\n pilotPage: {\n enablePilot: {\n variable: 'prgPilot.bEnable',\n value: 1,\n },\n numberOfMeters: {\n variable: 'prgPilot.byNumberOfMeters',\n value,\n },\n ctRelationship: (systemIndex: number) => {\n return {\n variable: `prgPilot.wCT_${systemIndex + 1}`,\n value,\n };\n },\n deyeInverterSerialNumber: (systemIndex: number) => {\n return {\n variable: `prgEnergy.sI_SN${systemIndex + 1}`,\n value,\n };\n },\n stringInverterSerialNumber: (systemIndex: number) => {\n return {\n variable: `prgACPV.sI_SN${systemIndex + 1}`,\n value,\n };\n },\n serialNumbersConfirmed: {\n variable: 'prgEnergy.bCheckSNIOk_Enable',\n value,\n isBoolean: true,\n },\n stringInverterSerialNumberConfirmed: {\n variable: 'prgACPV.bCheckSNIOk_Enable',\n value,\n isBoolean: true,\n },\n },\n batteryGridPage: {\n enableHouse: {\n variable: 'prgEnergy.fbHouse.bEnable',\n value: 1,\n feedbackVariable: 'prgEnergy.fbHouse.stDataHouseC.bEnabled',\n isBoolean: true,\n },\n size: { value, variable: 'prgEnergy.fbGrid.rSizeGridConn' },\n priority: { value, variable: 'prgEnergy.fbI.byPriority' },\n reserve: { value, variable: 'prgEMS.fbEMS.stSetupEMS.byReserveSOCEPO' },\n switchBackTimeFromEmergencyPower: { value, variable: 'prgEnergy.fbI.wReconnTimeGrid' },\n gridMeasurementViaCHINT: {\n value,\n variable: 'prgEnergy.fbI.bUseSmartMeter',\n feedbackVariable: 'prgEnergy.fbI.bS_UseSmartMeter',\n },\n smartMeterType: { value, variable: 'prgEnergy.fbI.bySmartMeterType' },\n maximumCharge: { value, variable: 'prgEMS.fbEMS.stSetupEMS.byResChrgGridToBatt' },\n updateTime: { value, variable: 'prgEMS.fbEMS.stSetupEMS.uiUpdateTime' },\n chargeFromGrid: { value, variable: 'prgEMS.fbEMS.stSetupEMS.bAllowChrgFromGrid' },\n prioritizedCharging: { value, variable: 'prgEMS.fbEMS.stSetupEMS.byPrioChrgBattSOCInEPO' },\n minimumChargeState: { value, variable: 'prgEMS.fbEMS.stSetupEMS.byMaxDepthOfDischrgEPO' },\n },\n } as InstallationWizardVariables;\n return typeof pages[page][name] !== 'function' ? pages[page][name] : (pages[page][name] as Function)(systemIndex);\n};\nexport default installationWizardVariables;\n","// Contains System Types List for Selectfields\n// availableFrom contains UNIX Timestamp in milliseconds. If Project was created after this timestamp the user can select this product\n\nimport {\n mennekesEnerchargeDate,\n newChargeStationLimitDate,\n versionLimitedChargeStations\n} from '@/utils/versionManagementUtils';\nimport { ChargeStationType } from '@/types/project.types';\n\nexport enum deyeTypes {\n BatteryTower = 'Battery Tower',\n BatteryRackSystem = 'Battery Rack System',\n WecoBatteryStack = 'Weco Battery Stack',\n WecoSlimStack = 'Weco Slim Stack',\n}\nexport enum BatteryType {\n AZZURRO = 'AIOS (Azzurro)',\n DEYE = 'AIOS (Deye)',\n STANDALONE = 'Standalone (Deye)',\n SOLARMAX = 'Solarmax',\n MobileBatteryDeye = 'Mobiler Speicher Deye'\n}\nexport const deyeBatteryTypes = [BatteryType.DEYE, BatteryType.STANDALONE];\nexport const inverterPowers = {\n [BatteryType.AZZURRO]: [\n { name: '10 kW', value: '10 kW', availableFrom: new Date('1970-01-01') },\n { name: '20 kW', value: '20 kW', availableFrom: new Date('1970-01-01') },\n ],\n [BatteryType.DEYE]: [\n { name: '6 kW', value: '6 kW', availableFrom: new Date('1970-01-01') },\n { name: '8 kW', value: '8 kW', availableFrom: new Date('1970-01-01') },\n { name: '10 kW', value: '10 kW', availableFrom: new Date('1970-01-01') },\n { name: '12 kW', value: '12 kW', availableFrom: new Date('1970-01-01') },\n { name: '15 kW', value: '15 kW', availableFrom: new Date('1970-01-01') },\n { name: '20 kW', value: '20 kW', availableFrom: new Date('1970-01-01') },\n { name: '25 kW', value: '25 kW', availableFrom: new Date('1970-01-01') },\n { name: '30 kW', value: '30 kW', availableFrom: new Date('1970-01-01') },\n { name: '40 kw', value: '40 kw', availableFrom: new Date('1970-01-01') },\n { name: '50 kW', value: '50 kW', availableFrom: new Date('1970-01-01') },\n ],\n [BatteryType.STANDALONE]: [\n { name: '8 kW', value: '8 kW', availableFrom: new Date('1970-01-01') },\n { name: '12 kW', value: '12 kW', availableFrom: new Date('1970-01-01') },\n { name: '20 kW', value: '20 kW', availableFrom: new Date('1970-01-01') },\n ],\n [BatteryType.SOLARMAX]: [],\n [BatteryType.MobileBatteryDeye]: [],\n};\n\nexport const batteryCapacity = {\n [BatteryType.AZZURRO]: [\n { name: '20.4 kWh', value: '20.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '25.5 kWh', value: '25.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '30.6 kWh', value: '30.6 kWh', availableFrom: new Date('1970-01-01') },\n { name: '35.7 kWh', value: '35.7 kWh', availableFrom: new Date('1970-01-01') },\n { name: '40.8 kWh', value: '40.8 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [BatteryType.DEYE]: {\n [deyeTypes.BatteryTower]: [\n { name: '8.2 kWh', value: '8.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '12.3 kWh', value: '12.3Wh', availableFrom: new Date('1970-01-01') },\n { name: '16.4 kWh', value: '16.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '20.5 kWh', value: '20.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '24.6 kWh', value: '24.6 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [deyeTypes.BatteryRackSystem]: [\n { name: '20,5 kWh', value: '20,5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '25.6 kWh', value: '25.6 kWh', availableFrom: new Date('1970-01-01') },\n { name: '30.7 kWh', value: '30.7 kWh', availableFrom: new Date('1970-01-01') },\n { name: '35.8 kWh', value: '35.8 kWh', availableFrom: new Date('1970-01-01') },\n { name: '41 kWh', value: '41 kWh', availableFrom: new Date('1970-01-01') },\n { name: '46.1 kWh', value: '46.1 kWh', availableFrom: new Date('1970-01-01') },\n { name: '51.2 kWh', value: '51.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '56.2 kWh', value: '56.2 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [deyeTypes.WecoBatteryStack]: [\n { name: '21.2 kWh', value: '21.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '26.5 kWh', value: '26.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '31.8 kWh', value: '31.8 kWh', availableFrom: new Date('1970-01-01') },\n { name: '42.4 kWh', value: '42.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '47.7 kWh', value: '47.7 kWh', availableFrom: new Date('1970-01-01') },\n { name: '53 kWh', value: '53 kWh', availableFrom: new Date('1970-01-01') },\n { name: '58.3 kWh', value: '58.3 kWh', availableFrom: new Date('1970-01-01') },\n { name: '68.9 kWh', value: '68.9 kWh', availableFrom: new Date('1970-01-01') },\n { name: '74.2 kWh', value: '74.2 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [deyeTypes.WecoSlimStack]: [\n { name: '5.1 kWh', value: '5.1 kWh', availableFrom: new Date('1970-01-01') }, // 1701817200\n { name: '10.2 kWh', value: '10.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '15.3 kWh', value: '15.3 kWh', availableFrom: new Date('1970-01-01') },\n { name: '20.4 kWh', value: '20.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '25.5 kWh', value: '25.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '30.6 kWh', value: '30.6 kWh', availableFrom: new Date('1970-01-01') },\n ],\n },\n [BatteryType.STANDALONE]: [\n { name: '8.2 kWh', value: '8.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '12.3 kWh', value: '12.3 kWh', availableFrom: new Date('1970-01-01') },\n { name: '16.4 kWh', value: '16.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '20.5 kWh', value: '20.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '24.6 kWh', value: '24.6 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [BatteryType.SOLARMAX]: [],\n [BatteryType.MobileBatteryDeye]: [],\n};\n\nexport const chargeStationTypes = [\n { name: 'Webasto 11 kW', value: 'Webasto11', availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Webasto 22 kW', value: 'Webasto22', availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Value 11 kW', value: ChargeStationType.internalWeidmüller11, availableFrom: versionLimitedChargeStations.weidmueller11kWInternal, disabled: false },\n { name: 'Weidmüller AC Smart Value 22 kW', value: ChargeStationType.internalWeidmüller22, availableFrom: versionLimitedChargeStations.weidmueller22kWInternal, disabled: false },\n { name: 'Weidmüller AC Smart Eco 11 kW (externe Messung)', value: ChargeStationType.externalWeidmüller11, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Eco 22 kW (externe Messung)', value: ChargeStationType.externalWeidmüller22, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Advanced 11 kW (für Mieterstrom)', value: ChargeStationType.internalWeidmüllerMS11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Weidmüller AC Smart Advanced 22 kW (für Mieterstrom)', value: ChargeStationType.internalWeidmüllerMS22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Schneider EVlink Pro AC 11 kW', value: ChargeStationType.Schneider11, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Schneider EVlink Pro AC 22 kW', value: ChargeStationType.Schneider22, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'AMTRON Charge Control 11 kW', value: ChargeStationType.AmtronCC11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON Professional 11 kW', value: ChargeStationType.AmtronPro11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON Professional 22 kW', value: ChargeStationType.AmtronPro22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON TwinCharge 22 kW', value: ChargeStationType.AmtronTC22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMEDIO Professional 22 kW', value: ChargeStationType.AmedioPro22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Enercharge 50 kW', value: ChargeStationType.Enercharge50, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Enercharge 100 kW', value: ChargeStationType.Enercharge100, availableFrom: mennekesEnerchargeDate, disabled: false },\n];\n\nexport const electricHeatingTypes = [\n { name: 'Askoma 3.5 kW', value: 'Askoma 3.5 kW', availableFrom: new Date('1970-01-01'), rawValue: 3.5 },\n { name: 'Askoma 5.8 kW', value: 'Askoma 5.8 kW', availableFrom: new Date('1970-01-01'), rawValue: 5.8 },\n];\n\nexport const heatingPumpTypes = [\n { name: 'Lambda Eureka', value: 'Lambda Eureka', availableFrom: newChargeStationLimitDate, rawValue: 0 },\n { name: 'Soltop M-Tech', value: 'Soltop M-Tech', availableFrom: newChargeStationLimitDate, rawValue: 0 },\n];\n\nexport const webastoChargeStationTypes = [\n { name: 'Next', value: 0 },\n { name: 'Unite', value: 1 },\n];\n\nexport const heatingElementModelTypes = [\n { name: 'Askoma Askoheat', value: 0 },\n];\n\nexport function getRawValueBySystemTypeElectricHeating(system: string) {\n return electricHeatingTypes.find((item: any) => item.name === system)?.rawValue ?? system;\n}\n\nexport const availableExternalMeasurementTypes = ['big_consumer', 'electric_heating', 'charge_station', 'heating_pump'];\nexport const availableExternalMeasurementDeyeTypes = ['pv', 'generator', 'chp'];\n\nexport function getChargeStationNameByValue(value: string) {\n const foundItem = chargeStationTypes.find(item => item.value === value);\n return foundItem ? foundItem.name : null;\n}\n\nexport function getChargeStationPower(key: string) {\n const chargeStationPower: Record = {\n 'Webasto11': 11,\n 'Webasto22': 22,\n [ChargeStationType.WebastoNext11]: 11,\n [ChargeStationType.WebastoNext22]: 22,\n [ChargeStationType.WebastoUnite11]: 11,\n [ChargeStationType.WebastoUnite22]: 22,\n [ChargeStationType.internalWeidmüller11]: 11,\n [ChargeStationType.internalWeidmüller22]: 22,\n [ChargeStationType.externalWeidmüller11]: 11,\n [ChargeStationType.externalWeidmüller22]: 22,\n [ChargeStationType.internalWeidmüllerMS11]: 11,\n [ChargeStationType.internalWeidmüllerMS22]: 22,\n [ChargeStationType.Schneider11]: 11,\n [ChargeStationType.Schneider22]: 22,\n [ChargeStationType.AmtronCC11]: 11,\n [ChargeStationType.AmtronPro11]: 11,\n [ChargeStationType.AmtronPro22]: 22,\n [ChargeStationType.AmtronTC22]: 22,\n [ChargeStationType.AmedioPro22]: 22,\n [ChargeStationType.Enercharge50]: 50,\n [ChargeStationType.Enercharge100]: 100,\n };\n\n return chargeStationPower[key];\n}\n\nexport function getChargeStationTypeInformationBySystemType(name: string) {\n const chargeStationPower: Record = {\n 'Webasto11': { type: 'Webasto', isExternal: false },\n 'Webasto22': { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoNext11]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoNext22]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoUnite11]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoUnite22]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.internalWeidmüller11]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.internalWeidmüller22]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.externalWeidmüller11]: { type: 'Weidmüller', isExternal: true },\n [ChargeStationType.externalWeidmüller22]: { type: 'Weidmüller', isExternal: true },\n [ChargeStationType.internalWeidmüllerMS11]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.internalWeidmüllerMS22]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.Schneider11]: { type: 'Schneider', isExternal: false },\n [ChargeStationType.Schneider22]: { type: 'Schneider', isExternal: false },\n [ChargeStationType.AmtronCC11]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronPro11]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronPro22]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronTC22]: { type: 'AmtronTC', isExternal: false },\n [ChargeStationType.AmedioPro22]: { type: 'Amedio', isExternal: false },\n [ChargeStationType.Enercharge50]: { type: 'Enercharge', isExternal: false },\n [ChargeStationType.Enercharge100]: { type: 'Enercharge', isExternal: false },\n };\n\n return chargeStationPower[name.split('_')[0]];\n}\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SerialNumberManagement.vue?vue&type=style&index=0&id=03153dc8&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceLayout.vue?vue&type=style&index=0&id=579b9589&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=style&index=0&id=36e96f86&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EMSSchema.vue?vue&type=style&index=0&id=6361fc9e&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=style&index=0&id=29cc78f6&prod&lang=scss&\"","// Utils for version management inside project\nimport type { IProject } from '@/types/project.types';\n\n/**\n * @param project project object as IProject\n * @returns date of last update of plc or started_at if plcLastUpdate is not defined\n */\nexport function plcVersionDate(project: IProject) {\n const { started_at } = project;\n const { plcLastUpdate } = project.meta;\n let date: Date;\n\n // If plcLastUpdate is not defined, return started_at\n if (!plcLastUpdate) {\n date = new Date(started_at);\n } else {\n date = new Date(plcLastUpdate);\n }\n\n return date;\n}\n\n// contains all ChargeStations that are limited by version\n// (Used in InstallationWizard)\nexport const versionLimitedChargeStations = {\n weidmueller11kWInternal: new Date('2023-06-08'),\n weidmueller22kWInternal: new Date('2023-06-08'),\n};\n\n// limit display of project offline symbol\n// Used in (AppBar)\nexport const displayProjectOfflineStatus = new Date('2024-03-14');\n\n// limit display of installation wizard info popup\n// Used in (InstallationWizardInfoPopup)\nexport const showInstallationWizardInfoPopup = new Date('2023-10-06');\n\n// date on which legionella protection was added\nexport const legionellaProtectionDate = new Date('2024-03-20');\n\n// date on which hybrid version was introduced. This Includes\n// Master Slave on Deye Systems with up to 5 hybrid inverters\n// String Inverters\n// SN Check and Management\n// Added new systems to System Test Page\n// New Page for Wizard Path Definition\nexport const hybridVersionDate = new Date('2024-09-26');\n\n/*\n Version from 22.05.2024\n - Added Charge Station V2\n - Added limit for 10 Charge Stations and 3 Heating Pumps\n - Tenant Wago Counters\n */\nconst versionDate22052024 = new Date('2024-05-22');\nexport const newChargeStationLimitDate = versionDate22052024;\nexport const chargingStationV2Feature = versionDate22052024;\nexport const tenantUpdateWagoCounters = versionDate22052024;\nexport const tenantAcBatteryUpdate = versionDate22052024;\n\n/*\n Version from 24.10.2024\n - Paragraph 14A, Feed In Limitation and EMS Modes\n - Mennekes Charge Stations also with Twin Point Systems, new Weidmueller Types\n - High Plc Performance Version of the Wizards Charge Station Selection\n */\nconst versionDate24102024 = new Date('2024-10-28');\nexport const paragraph14Date = versionDate24102024;\nexport const mennekesEnerchargeDate = versionDate24102024;\nexport const plcLevelVersionDate = versionDate24102024;\n","/**\n * Direction of the flow of arrows on a certain energy line.\n */\nexport enum ArrowDirection {\n none,\n toCenter,\n awayFromCenter,\n}\n\nexport interface EnergyLineColors {\n /**\n * Start color of the line at the central energy point. Hex-string.\n */\n colorAtCenter: string;\n /**\n * End color of the line at the energy circle. Hex-string.\n * Also used for the energy circle's spinner.\n */\n colorAtCircle: string;\n}\n\nexport interface EnergyLineDisplayData {\n id: string;\n startPoint: {\n x: number;\n y: number;\n };\n endPoint: {\n x: number;\n y: number;\n };\n /**\n * Start/end color of the energy line.\n */\n colors: EnergyLineColors;\n /**\n * The arrow direction the circle's arrow currently has\n */\n arrowDirection: ArrowDirection;\n /**\n * Whether the line should just display one arrow (instead of two).\n */\n oneArrowOnly: boolean;\n /**\n * Show cross on Line\n */\n showCross?: boolean;\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=50d60966&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleChart.vue?vue&type=style&index=0&id=a0a3b8cc&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"base-chart\"},[_c('div',{staticClass:\"base-chart__header\"},[_c('div',{staticClass:\"header-navigation-wrapper\"},[_c('PeriodSelection',{style:({visibility: _vm.showNavigationButtons ? 'visible' : 'hidden'}),attrs:{\"countColumns\":_vm.localCountColumns,\"countLines\":_vm.localCountLines,\"disableNavButton\":_vm.disableNavButton,\"navigationItemsToExclude\":_vm.navigationItemsToExclude,\"period\":_vm.periodName,\"isMockChart\":true},on:{\"selected\":_vm.navigationChanged}})],1),_c('div',{staticClass:\"header-actions d-flex\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [(_vm.showFullscreenIcon)?_c('v-btn',_vm._g({attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.chart.handleFullScreen()}}},on),[_c('v-icon',[_vm._v(\"fa-expand\")])],1):_vm._e()]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.fullscreen')))])]),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [(_vm.showTotalValuesIcon)?_c('div',{on:{\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[(_vm.periodName !== 'live')?_c('TotalValuesWindow',{attrs:{\"currentSelectedPeriod\":_vm.periodName,\"objectsDifferenceSeriesStats\":_vm.objectsDifferenceSeriesStats,\"objectsOtherSeriesStats\":_vm.objectsOtherSeriesStats}}):_vm._e()],1):_vm._e()]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.modalButton')))])]),(_vm.showDataExportButton)?_c('DataExportNew',{attrs:{\"periodTitle\":this.periodName,\"chartData\":_vm.localChartData,\"dataToExport\":_vm.localDataToExport,\"is-threshold-line\":_vm.isThresholdLine}}):_vm._e(),(_vm.localCountColumns > 1)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\",\"disabled\":_vm.disableStackingButton},on:{\"click\":function($event){return _vm.updateStackingOptions()}}},on),[_c('v-icon',[_vm._v(\"fa-columns\")])],1)]}}],null,false,2147989027)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartTooltips.switchColumn')))])]):_vm._e()],1)]),_c('div',{staticClass:\"base-chart__body\"},[_c('div',{style:(`overflowX: ${_vm.overflow}`)},[_c('div',{ref:\"chart\",style:(`width: ${_vm.chartContainerWidth} !important; height: ${_vm.chartHeight}px; margin: 0 auto;`),attrs:{\"id\":\"fullscreen-div\"},on:{\"click\":_vm.chartClickHandler}})])]),_c('div',{staticClass:\"base-chart__footer\"},[(_vm.showKalendarButton)?_c('v-btn',{attrs:{\"disabled\":_vm.disableCalendar,\"outlined\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){_vm.datePicker = !_vm.datePicker}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.chartsCalendar.buttonName'))+\" \")]):_vm._e(),_c('v-dialog',{attrs:{\"width\":_vm.periodName === 'hour' ? 700 : 400,\"eager\":\"\"},model:{value:(_vm.datePicker),callback:function ($$v) {_vm.datePicker=$$v},expression:\"datePicker\"}},[(_vm.periodName === 'hour')?_c('div',[_c('HourPicker',{model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}),_c('v-btn',{attrs:{\"disabled\":_vm.hourPickerSelectButtonValidation,\"block\":\"\"},on:{\"click\":function($event){return _vm.handleCalendar()}}},[_vm._v(\" Select \")])],1):_c('div',[_c('v-date-picker',{ref:\"calendar\",attrs:{\"type\":_vm.calendarType,\"min\":_vm.projectStartedAt,\"max\":_vm.now,\"color\":\"accent\",\"header-color\":\"blue\",\"first-day-of-week\":\"1\",\"full-width\":\"\",\"range\":\"\"},on:{\"click:date\":function($event){return _vm.handleWeek($event)},\"click:month\":function($event){return _vm.handleMonth($event)},\"click:year\":function($event){return _vm.handleYear($event)}},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}),_c('v-btn',{attrs:{\"disabled\":_vm.disableCalendarButton,\"block\":\"\"},on:{\"click\":function($event){return _vm.handleCalendar()}}},[_vm._v(\" Select \")])],1)])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\n periodConfigurations,\n} from '@/ui/components/devices/charts/charts/ChartUtils';\n\n/**\n * @param {string} period Put Period for the right timerange to be inserted in the arrays\n * @param {number} start Put start in as UnixTimestamp\n * @param {number} end Put end in as UnixTimestamp\n * @param {any} generationOptions Parameter should contain an object like following {minValue: number, maxValue: number, seriescount: number}\n * @returns the mockdata for offline charts.\n */\nexport function getSeriesMockData(period, start, end, generationOptions) {\n const seriesArray = [];\n let seriesWithMockValues = [];\n const timeDiffForValues = periodConfigurations[period].intervalInSeconds;\n const countValues = Math.trunc((end - start) / timeDiffForValues);\n const rangeFactor = (generationOptions.maxValue - generationOptions.minValue) / 70;\n for (let i = 0; i < generationOptions.seriesCount; i++) {\n for (let x = 0; x < countValues; x++) {\n const timeValue = start + (timeDiffForValues * x);\n let newValue = Math.random() * (generationOptions.maxValue - generationOptions.minValue) + generationOptions.minValue;\n\n if (x !== 0) {\n const previousValue = seriesWithMockValues[x - 1][1];\n let difference = Math.random() * (rangeFactor - (rangeFactor * -1)) + (rangeFactor * -1);\n difference = parseFloat(difference.toFixed(2));\n newValue = previousValue + difference;\n if (newValue > generationOptions.maxValue) {\n // new Value cant get out of max bound\n newValue = generationOptions.maxValue - rangeFactor;\n }\n if (newValue < generationOptions.minValue) {\n // new Value cant get out of min bound\n newValue = generationOptions.minValue + rangeFactor;\n }\n }\n\n newValue = newValue.toFixed(2);\n seriesWithMockValues.push([timeValue * 1000, parseFloat(newValue, 10)]);\n }\n seriesArray.push(seriesWithMockValues);\n seriesWithMockValues = [];\n }\n return seriesArray;\n}\n","\nimport {\n Component, Prop, Vue, Watch,\n} from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport Highstock from 'highcharts/highstock';\nimport HSExporting from 'highcharts/modules/exporting';\nimport HSExportingData from 'highcharts/modules/export-data';\nimport PeriodSelection from '@/ui/components/devices/charts/components/PeriodSelection.vue';\nimport HourPicker from '@/ui/components/devices/charts/components/HourPicker.vue';\nimport DataExportNew from '@/ui/components/devices/charts/charts/DataExportNew.vue';\nimport { envApi } from '@/utils/env';\nimport TotalValuesWindow from '@/ui/components/devices/charts/components/TotalValuesWindow.vue';\nimport LynusChart from '@/ui/components/devices/charts/charts/LynusChart';\nimport { Periods, getChartOptions, periodConfigurations } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport _ from 'lodash';\nimport { getSeriesMockData } from '@/ui/components/devices/previews/charts/components/ChartVariableData';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\nimport { ChartData } from '@/types/chart.types';\n\nHSExporting(Highstock);\nHSExportingData(Highstock);\n\n@Component({\n components: {\n PeriodSelection,\n DataExportNew,\n HourPicker,\n TotalValuesWindow,\n },\n})\nexport default class OfflineChart extends Vue {\n @Prop() chartData!: ChartData;\n @Prop() chartWidth!: number;\n @Prop({ default: 0 }) parentComponentWidth!: number;\n @Prop({ default: 400 }) chartHeight!: number;\n @Prop({ default: null }) navigationItemsToExclude!: null | string[];\n @Prop({ default: false }) isThresholdLine!: boolean;\n @Prop({ default: 3 }) minNumberOfSeriesForWideChart!: number;\n @Prop({ default: false }) showTotalOfSeries!: number;\n @Prop({ default: 0 }) minValueMockData!: number;\n @Prop({ default: 50 }) maxValueMockData!: number;\n @Prop({ default: true }) showKalendarButton!: boolean;\n @Prop({ default: true }) showFullscreenIcon!: boolean;\n @Prop({ default: true }) showTotalValuesIcon!: boolean;\n @Prop({ default: true }) showDataExportButton!: boolean;\n @Prop({ default: true }) showNavigationButtons!: boolean;\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: any;\n @Getter('projects/projectStartedAt') projectStartedAt!: string;\n @Getter('projects/projectStartedAtNumber') projectStartedAtNumber!: number;\n\n localChartData!: ChartData;\n datePicker = false;\n date: any = null;\n intervalTimer: any = undefined;\n periodName: string = Periods.DAY;\n calendarType = 'date';\n createdAt: any = undefined;\n chartContainerWidth = '100%';\n overflow: any = 'hidden';\n disableNavButton = false;\n disableCalendar = false;\n chart?: LynusChart;\n // disables the Button from the Dialog of the Calendar to avoid Bugs\n disableCalendarButton = true;\n tempSelectedStacking: any;\n localCountColumns = 0;\n localCountLines = 0;\n disableStackingButton = false;\n objectsDifferenceSeriesStats: any = [];\n objectsOtherSeriesStats: any = [];\n isTooltip = false;\n localDataToExport = [];\n\n buttonStyle: any = {\n width: 50,\n }\n\n buttons: any = {\n contextButton: {\n enabled: false,\n },\n yearButton: {\n text: this.$t('uiComponents.chartNavigation.YEAR'),\n onclick: () => {\n this.navigationChanged('year');\n const textPrev = this.$t('uiComponents.chartNavigation.pervYear');\n const textNext = this.$t('uiComponents.chartNavigation.nextYear');\n this.updateFullscreenButtonText(textPrev.toString(), textNext.toString());\n },\n theme: this.buttonStyle,\n },\n monthButton: {\n text: this.$t('uiComponents.chartNavigation.MONTH'),\n onclick: () => {\n this.navigationChanged('month');\n const textPrev = this.$t('uiComponents.chartNavigation.pervMonth');\n const textNext = this.$t('uiComponents.chartNavigation.nextMonth');\n this.updateFullscreenButtonText(textPrev.toString(), textNext.toString());\n },\n theme: this.buttonStyle,\n },\n weekButton: {\n text: this.$t('uiComponents.chartNavigation.WEEK'),\n onclick: () => {\n this.navigationChanged('week');\n const textPrev = this.$t('uiComponents.chartNavigation.pervWeek');\n const textNext = this.$t('uiComponents.chartNavigation.nextWeek');\n this.updateFullscreenButtonText(textPrev.toString(), textNext.toString());\n },\n theme: this.buttonStyle,\n },\n dayButton: {\n text: this.$t('uiComponents.chartNavigation.DAY'),\n onclick: () => {\n this.navigationChanged('day');\n const textPrev = this.$t('uiComponents.chartNavigation.pervDay');\n const textNext = this.$t('uiComponents.chartNavigation.nextDay');\n this.updateFullscreenButtonText(textPrev.toString(), textNext.toString());\n },\n theme: this.buttonStyle,\n },\n };\n\n @Watch('$i18n.locale')\n onLocaleChange(locale: any) {\n this.chart?.setLocale(locale);\n\n this.chart?.buildChart(this.$refs.chart as HTMLElement);\n this.navigationChanged(this.periodName);\n }\n\n @Watch('periodName')\n periodChange() {\n if (this.chart?.chart.fullscreen.isOpen === false) {\n this.chart?.chart.update({\n exporting: {\n buttons: {},\n enabled: false,\n },\n });\n } else {\n let checkChanges = false;\n if (this.periodName === 'live') {\n if (this.buttons.nextButton !== undefined) {\n checkChanges = true;\n this.buttons.nextButton.enabled = false;\n }\n if (this.buttons.backButton !== undefined) {\n checkChanges = true;\n this.buttons.backButton.enabled = false;\n }\n } else {\n if (this.buttons.nextButton !== undefined) {\n checkChanges = true;\n this.buttons.nextButton.enabled = true;\n }\n if (this.buttons.backButton !== undefined) {\n checkChanges = true;\n this.buttons.backButton.enabled = true;\n }\n }\n\n if (checkChanges === true) {\n this.chart?.chart.update({\n navigation: {\n buttonOptions: {\n enabled: document.fullscreenElement !== null,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: (this.$vuetify.theme as any).currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n exporting: {\n buttons: this.buttons,\n enabled: true,\n },\n } as any);\n }\n }\n }\n\n @Watch('$vuetify.theme.dark')\n onThemeChange(val: boolean) {\n this.chart?.setIsDarkTheme(val);\n this.chart?.setChartColors(this.chartColors);\n this.chart?.onThemeChange(\n this.$vuetify.theme.currentTheme.deviceBackground?.toString() ?? '#ffffff'\n );\n }\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n get now() {\n return new Date().toISOString();\n }\n\n get periodConfigurations() {\n const periodConfigs: any = _.cloneDeep(periodConfigurations); // copy default periodConfigurations\n periodConfigs.day.interval = '15m';\n return periodConfigs;\n }\n\n get hourPickerSelectButtonValidation() {\n if (!this.date) return true;\n else {\n // avoid errors when switching period in fullscreen\n if (Array.isArray(this.date)) {\n const arr = this.date[0].split('-');\n // check if full date-time valid (year, month, date, hour, minute must be filled)\n return arr.some((el: string) => /\\D/.test(el));\n } else {\n return true;\n }\n }\n }\n\n testIsFullscreen() {\n if (this.chart?.chart.fullscreen.isOpen === false) {\n (this.chart?.chart as any).update({\n navigation: {\n buttonOptions: {\n enabled: document.fullscreenElement !== null,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n exporting: {\n buttons: {},\n enabled: false,\n },\n });\n }\n }\n\n onFavoriteUpdated(payload: ChartData) {\n this.localChartData = _.cloneDeep(payload);\n }\n\n // handle any Random clicks on the Chart that could cause the Darkmode to go away\n chartClickHandler() {\n this.chart?.updateTheme();\n }\n\n openFullscreen() {\n this.chart?.handleFullScreen();\n }\n\n updateFullscreenButtonText(backText: string, nextText: string) {\n this.buttons.nextButton.text = nextText;\n this.buttons.backButton.text = backText;\n\n (this.chart?.chart as any).update({\n navigation: {\n buttonOptions: {\n enabled: document.fullscreenElement !== null,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: this.$vuetify.theme.currentTheme.secondary,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n },\n exporting: {\n buttons: this.buttons,\n enabled: true,\n },\n });\n }\n\n updateChartFullscreen() {\n if (this.localCountColumns === 0) {\n // line chart\n this.buttons.hourButton = {\n text: this.$t('uiComponents.chartNavigation.HOUR'),\n onclick: () => {\n this.navigationChanged('hour');\n const textPrev = this.$t('uiComponents.chartNavigation.prevHour');\n const textNext = this.$t('uiComponents.chartNavigation.nextHour');\n this.updateFullscreenButtonText(textPrev.toString(), textNext.toString());\n },\n theme: this.buttonStyle,\n };\n this.buttons.liveButton = {\n text: 'Live',\n onclick: () => {\n this.navigationChanged(Periods.LIVE);\n },\n theme: this.buttonStyle,\n };\n } else {\n this.buttons.liveButton = undefined;\n this.buttons.hourButton = undefined;\n }\n\n let initNameBack = '';\n let initNameNext = '';\n if (this.periodName === 'day') {\n initNameBack = this.$t('uiComponents.chartNavigation.pervDay').toString();\n initNameNext = this.$t('uiComponents.chartNavigation.nextDay').toString();\n } else if (this.periodName === 'week') {\n initNameBack = this.$t('uiComponents.chartNavigation.pervWeek').toString();\n initNameNext = this.$t('uiComponents.chartNavigation.nextWeek').toString();\n } else if (this.periodName === 'month') {\n initNameBack = this.$t('uiComponents.chartNavigation.pervMonth').toString();\n initNameNext = this.$t('uiComponents.chartNavigation.nextMonth').toString();\n } else if (this.periodName === 'year') {\n initNameBack = this.$t('uiComponents.chartNavigation.pervYear').toString();\n initNameNext = this.$t('uiComponents.chartNavigation.nextYear').toString();\n } else if (this.periodName === 'hour') {\n initNameBack = this.$t('uiComponents.chartNavigation.prevHour').toString();\n initNameNext = this.$t('uiComponents.chartNavigation.nextHour').toString();\n }\n this.buttons.nextButton = {\n text: initNameNext,\n onclick: () => {\n this.changeDateFullscreen('next');\n },\n theme: {\n width: 100,\n },\n };\n this.buttons.backButton = {\n text: initNameBack,\n onclick: () => {\n this.changeDateFullscreen('back');\n },\n theme: {\n width: 100,\n },\n };\n\n (this.chart?.chart as any).update({\n navigation: {\n buttonOptions: {\n enabled: document.fullscreenElement !== null,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: this.$vuetify.theme.currentTheme.secondary,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n },\n exporting: {\n buttons: this.buttons,\n enabled: true,\n },\n });\n if (this.$vuetify.breakpoint.mobile === true) {\n this.chart?.chart.update(\n {\n exporting: {\n enabled: false,\n buttons: undefined,\n },\n }\n );\n }\n setTimeout(() => {\n this.testIsFullscreen();\n }, 100);\n }\n\n changeDateFullscreen(button: string) {\n const newDay = null;\n let newDateObj = null;\n let strs = null;\n let newDate = null;\n const currentTimeStampToControl = Math.floor(Date.now() / 1000);\n\n if (this.date === null) {\n // gets the current start of the chart to calculate new start and end\n if (this.chart?.start !== undefined) {\n const date = new Date(this.chart?.start * 1000);\n const dateString = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;\n const dateTimeString = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}-${date.getHours()}-${date.getMinutes()}`;\n this.date = this.periodName === 'hour' ? dateTimeString : dateString;\n }\n }\n if (button === 'back') {\n if (typeof this.date === 'string') {\n strs = this.date.split('-');\n } else {\n strs = this.date[0].split('-');\n }\n newDate = new Date(+strs[0], +strs[1] - 1, +strs[2]);\n if (this.periodName === 'day') {\n // go back one day -> day value -1\n newDate.setDate(newDate.getDate() - 1);\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n this.date = [newDateObj];\n this.handleCalendar();\n } else if (this.periodName === 'hour') {\n this.date = [this.date];\n this.handleCalendar();\n } else if (this.periodName === 'week') {\n // go back seven days of current day -> day value -7\n newDate.setDate(newDate.getDate() - 7);\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n this.date = [newDateObj];\n this.handleCalendar();\n } else if (this.periodName === 'month') {\n // go back one month -> month value -1\n if (newDate.getMonth() !== 0) {\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth()}-${newDate.getDate()}`;\n this.date = [newDateObj];\n this.handleCalendar();\n } else {\n newDateObj = `${newDate.getFullYear() - 1}-12-${newDate.getDate()}`;\n this.date = [newDateObj];\n this.handleCalendar();\n }\n } else if (this.periodName === 'year') {\n // go back one year -> year value -1\n newDateObj = `${newDate.getFullYear() - 1}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n this.date = [newDateObj];\n this.handleCalendar();\n }\n } else {\n if (typeof this.date === 'string') {\n strs = this.date.split('-');\n } else {\n strs = this.date[0].split('-');\n }\n newDate = new Date(+strs[0], +strs[1] - 1, +strs[2]);\n let testDate = new Date(newDate).getTime() / 1000;\n if (this.periodName === 'day') {\n // go next one day -> day value +1\n newDate.setDate(newDate.getDate() + 1);\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n testDate = new Date(newDate).getTime() / 1000;\n // checks if next day's timestamp is bigger than current Timestamp\n if (testDate - currentTimeStampToControl < 0) {\n this.date = [newDateObj];\n this.handleCalendar();\n }\n } else if (this.periodName === 'hour') {\n const currentTime = Math.trunc(new Date().getTime() / 1000);\n const endChartHour = (this.chart as any).end;\n const nextHourTimestamp = endChartHour + 3600;\n if (nextHourTimestamp < currentTime) {\n const nextHourTimestampInMilliseconds = nextHourTimestamp * 1000;\n const d = new Date(nextHourTimestampInMilliseconds);\n this.date = [`${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}-${d.getHours()}-${d.getMinutes()}`];\n this.handleCalendar();\n }\n } else if (this.periodName === 'week') {\n // go next one day -> day value +7\n newDate.setDate(newDate.getDate() + 7);\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n testDate = new Date(newDate).getTime() / 1000;\n // checks if next weeks's timestamp is bigger than current Timestamp\n if (testDate - currentTimeStampToControl < 0) {\n this.date = [newDateObj];\n this.handleCalendar();\n }\n } else if (this.periodName === 'month') {\n // go back one month -> month value +1\n if ((newDate.getMonth() + 2) !== 13) {\n newDateObj = `${newDate.getFullYear()}-${newDate.getMonth() + 2}-${newDate.getDate()}`;\n if (testDate - currentTimeStampToControl < 0) {\n this.date = [newDateObj];\n this.handleCalendar();\n }\n } else {\n // eslint-disable-next-line prefer-template\n newDateObj = `${newDate.getFullYear() + 1}-1-${newDate.getDate()}`;\n if (testDate - currentTimeStampToControl < 0) {\n this.date = [newDateObj];\n this.handleCalendar();\n }\n }\n } else if (this.periodName === 'year') {\n // go back one year -> year value +1\n newDateObj = `${newDate.getFullYear() + 1}-${newDate.getMonth() + 1}-${newDate.getDate()}`;\n // checks if next year's timestamp is bigger than current Timestamp\n if (testDate - currentTimeStampToControl < 0) {\n this.date = [newDateObj];\n this.handleCalendar();\n }\n }\n }\n }\n\n countColumnLineLocal() {\n this.localCountColumns = 0;\n this.localCountLines = 0;\n getChartOptions(this.localChartData).forEach((variable: any) => {\n if (variable.type === 'column' || variable.type === 'diff') {\n this.localCountColumns++;\n } else {\n this.localCountLines++;\n }\n });\n }\n\n isWideChart() {\n return getChartOptions(this.localChartData).length > this.minNumberOfSeriesForWideChart;\n }\n\n updateToWideChart() {\n // this is used to make charts scrollable when they have more\n // than 3 y-axis rows\n const numVars = getChartOptions(this.localChartData).length;\n if (this.isWideChart()) {\n const calculatedWidth = 892 + numVars * 100;\n this.chartContainerWidth = '100%';\n this.overflow = 'auto';\n }\n }\n\n // date expected to be in format YYYY-MM-DD\n handleWeek(date: any) {\n if (this.periodName === Periods.DAY) {\n this.date = [date];\n }\n\n if (this.periodName === Periods.WEEK) {\n const [year, month, day] = date.split('-');\n const selectedDate = new Date(+year, +month - 1, +day);\n const selectedDay = selectedDate.getDay() - 1; // day from sunday on, mon = 1\n let firstDay = selectedDate.getTime() / 1000;\n firstDay -= 86400 * selectedDay;\n let firstDayFormated = null;\n let str1 = null;\n let lastDay = null;\n let lastDayFormated = null;\n if (selectedDay !== -1) {\n firstDayFormated = new Date((firstDay + 86400) * 1000);\n str1 = firstDayFormated.toISOString().substring(0, 10);\n lastDay = firstDay + 86400 * 7;\n lastDayFormated = new Date(lastDay * 1000);\n } else {\n firstDayFormated = new Date((firstDay - 518400) * 1000);\n str1 = firstDayFormated.toISOString().substring(0, 10);\n lastDay = firstDay + 86400 * 7;\n lastDayFormated = new Date((lastDay - 604800) * 1000);\n }\n\n const str2 = lastDayFormated.toISOString().substring(0, 10);\n\n this.date = [str1, str2];\n }\n this.disableCalendarButton = false;\n }\n\n // date expected to be in format YYYY-MM\n handleMonth(date: any) {\n if (this.periodName === Periods.MONTH) {\n // eslint-disable-next-line prefer-template\n this.date = [date.toString() + '-01'];\n this.disableCalendarButton = false;\n this.handleCalendar();\n }\n }\n\n // year expected to be in format YYYY\n handleYear(year: any) {\n if (this.periodName === Periods.YEAR) {\n this.datePicker = false;\n // eslint-disable-next-line prefer-template\n this.date = [year.toString() + '-01-01'];\n this.disableCalendarButton = false;\n\n this.handleCalendar();\n }\n }\n\n updateDatePicker(): void {\n this.date = null;\n if (this.periodName === Periods.HOUR) return;\n\n const currentPicker = (this.$refs.calendar as any).activePicker;\n\n if (this.periodName === Periods.YEAR) {\n (this.$refs.calendar as any).activePicker = 'YEAR';\n } else if (this.periodName === Periods.MONTH) {\n (this.$refs.calendar as any).activePicker = 'MONTH';\n this.calendarType = this.chart?.period.calendarType;\n } else {\n // only replaces the Date if another Picker was selected\n if (currentPicker !== 'DATE') {\n this.date = new Date().toISOString().substring(0, 10);\n }\n (this.$refs.calendar as any).activePicker = 'DATE';\n this.calendarType = this.chart?.period.calendarType;\n }\n }\n\n updateStackingOptions() {\n this.chart?.toggleStacking();\n this.disableStackingButton = true;\n setTimeout(() => {\n this.disableStackingButton = false;\n }, 2000);\n }\n\n initThresholdAxis() {\n if (!this.isThresholdLine) return;\n const thresholdAxis = [{\n var: '',\n unit: '',\n name: '',\n scaling: { min: 0, max: 100 },\n agg: 'avg',\n type: 'line',\n seriesType: 'Threshold',\n }];\n (this.localChartData.data as any).chartOptions = [...thresholdAxis, ...this.localChartData.data.chartOptions];\n }\n\n async handleCalendar() {\n // eslint-disable-next-line prefer-const\n let [year, month, day, hour, minute] = this.date[0].split('-').map((e: string) => +e); // split and convert to numbers\n month -= 1; // convert month to \"date\" standard, ranging from 0-11 instead of 1-12\n this.datePicker = false;\n this.disableCalendarButton = true;\n this.disableNavButton = true;\n // load new calendar range starting with passed date, according to the currently set period on the chart\n // TODO: add mockdata to load\n const returnedSeries = await getSeriesMockData(\n this.periodName,\n this.chart?.start,\n this.chart?.endChart,\n { minValue: this.minValueMockData, maxValue: this.maxValueMockData, seriesCount: this.chartData.data.chartOptions.length },\n );\n this.chart?.load(returnedSeries);\n this.localDataToExport = returnedSeries;\n\n // generateObject for Total Sum (currently only for Difference Series)\n if (this.periodName !== Periods.LIVE) {\n this.generateObjectsStatsArrays();\n }\n\n this.disableNavButton = false;\n this.$emit('chartRangeChange', { start: this.chart?.start, end: this.chart?.end });\n this.updateDatePicker();\n\n const { start, end, endChart } = this.chart as any;\n this.$emit('handleAutarkiegrad', { start, end, endChart });\n }\n\n async navigationChanged(period: any) {\n clearInterval(this.intervalTimer);\n\n const periodForAutarkiegrad = this.periodConfigurations[period].period();\n this.$emit('handleAutarkiegrad', periodForAutarkiegrad);\n\n // set periodName\n this.periodName = period;\n if (this.periodName === Periods.LIVE) {\n this.disableCalendar = true;\n\n // activate live chart updates\n this.intervalTimer = setInterval(() => {\n const variableValues = getChartOptions(this.localChartData).map((optionsItem: any, index: number) => {\n if (this.localChartData.data.chartOptions[index].seriesType === 'Threshold') {\n return null;\n } else if (this.localChartData.data.mappings || this.localChartData.data.chartOptions[index].seriesType === 'View') {\n // gets the last value of the current series before filling up width live values\n const seriesDataLenght: any = this.chart?.chart.series[0].data.length;\n const prevValue: any = this.chart?.chart.series[index].data[seriesDataLenght - 1]?.options.y;\n return this.getSingleMockValue(prevValue);\n } else { // TODO: what if will be seriesType not VIEW\n return null;\n }\n });\n this.chart?.liveUpdateAllVariables(variableValues);\n }, 1000);\n } else {\n this.disableCalendar = false;\n }\n\n this.disableNavButton = true;\n // switch period and load new data for it\n this.chart?.switchPeriod(this.periodName);\n const returnedSeries = await getSeriesMockData(\n this.periodName,\n (this.chart as any)?.chartBounds.start,\n (this.chart as any)?.chartBounds.end,\n { minValue: this.minValueMockData, maxValue: this.maxValueMockData, seriesCount: this.chartData.data.chartOptions.length },\n );\n this.chart?.load(returnedSeries);\n this.localDataToExport = returnedSeries;\n\n // generateObject for Total Sum (currently only for Difference Series)\n if (this.periodName !== Periods.LIVE) {\n this.generateObjectsStatsArrays();\n }\n\n this.disableNavButton = false;\n if (this.$refs.calendar) {\n this.updateDatePicker();\n }\n }\n\n getSingleMockValue(previousValue: number) {\n let newValue: any = 2;\n const rangeFactor = (this.maxValueMockData - this.minValueMockData) / 70;\n let difference = Math.random() * (rangeFactor - (rangeFactor * -1)) + (rangeFactor * -1);\n difference = parseFloat(difference.toFixed(2));\n newValue = previousValue + difference;\n if (newValue > this.maxValueMockData) {\n // new Value cant get out of max bound\n newValue = this.maxValueMockData - rangeFactor;\n }\n if (newValue < this.minValueMockData) {\n // new Value cant get out of min bound\n newValue = this.minValueMockData + rangeFactor;\n }\n return newValue;\n }\n\n generateObjectsStatsArrays() {\n this.objectsDifferenceSeriesStats = [];\n this.objectsOtherSeriesStats = [];\n\n const chartOptions = getChartOptions(this.localChartData);\n\n chartOptions.forEach((optionsItem: any, index: number) => {\n let valuesArray;\n let seriesName = optionsItem.name;\n if (optionsItem.agg === 'diff') {\n valuesArray = this.getValuesOfSeries(index, optionsItem.type);\n\n const totalValue = _.sum(valuesArray) ?? 0;\n if (seriesName === '') {\n seriesName = `${optionsItem.seriesType}_${index}`;\n }\n this.objectsDifferenceSeriesStats.push({ name: seriesName, sum: totalValue.toFixed(2), unit: optionsItem.unit });\n } else {\n valuesArray = this.getValuesOfSeries(index, optionsItem.type);\n\n const max: number = _.max(valuesArray) ?? 0;\n const min: number = _.min(valuesArray) ?? 0;\n const avg: number = _.mean(valuesArray) ?? 0; // return avg of all numbers in array: https://www.geeksforgeeks.org/lodash-_-mean-method/\n\n if (seriesName === '') {\n seriesName = `${optionsItem.seriesType}_${index}`;\n }\n this.objectsOtherSeriesStats.push({ name: seriesName, minValue: min.toFixed(2), maxValue: max.toFixed(2), avgValue: avg.toFixed(2), unit: optionsItem.unit });\n }\n });\n }\n\n getValuesOfSeries(index: number, type: string) {\n let values;\n if (type !== 'column') {\n values = this.chart?.chart.series[index].data.map((dataElement: any) => {\n return dataElement.options.y;\n });\n } else {\n values = (this.chart?.chart.series[index] as any).yData;\n }\n return values;\n }\n\n created() {\n this.localChartData = _.cloneDeep(this.chartData);\n this.initThresholdAxis();\n this.tempSelectedStacking = this.localChartData.data.selectedStackingOptions;\n // init chart\n this.chart = new LynusChart(\n this.localChartData,\n this.$route.params.id,\n envApi,\n this.$vuetify.theme.dark,\n this.projectStartedAtNumber,\n this.$vuetify.theme.currentTheme.deviceBackground?.toString() ?? '#ffffff',\n this.tempSelectedStacking,\n periodConfigurations,\n this.chartColors,\n this.customApproximationValue,\n );\n if (this.isWideChart()) this.updateToWideChart();\n this.chart.updateColumnLineCounts();\n this.countColumnLineLocal();\n\n // Add Title if Fullscreen is active && buttons\n document.addEventListener('fullscreenchange', event => this.updateChartFullscreen());\n }\n\n mounted() {\n // Code that will run only after the entire view has been rendered\n // eslint-disable-next-line func-names\n this.$nextTick(function () {\n this.chart?.setLocale(this.$i18n.locale);\n this.chart?.buildChart(this.$refs.chart as HTMLElement);\n this.chart?.drawThreshold((this.localChartData.data as any)?.threshold);\n });\n }\n\n updated() {\n // eslint-disable-next-line func-names\n this.$nextTick(function () {\n // Code that will run only after the\n // entire view has been re-rendered\n this.chart?.chart.reflow(); // reflow when chartWidth updates\n });\n }\n\n beforeDestroy() {\n const projectId = this.$route.params.id;\n if (this.tempSelectedStacking !== this.chart?.stackingOptions) {\n this.localChartData.data.selectedStackingOptions = this.chart?.stackingOptions;\n this.tempSelectedStacking = this.chart?.stackingOptions;\n // this.$store.dispatch('devices/updateDevice', { device: this.localChartData, skipReport: false });\n }\n // clear Interval when Area is Changed\n clearInterval(this.intervalTimer);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfflineChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfflineChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfflineChart.vue?vue&type=template&id=c209c9aa&scoped=true&\"\nimport script from \"./OfflineChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfflineChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OfflineChart.vue?vue&type=style&index=0&id=c209c9aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c209c9aa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{staticStyle:{\"width\":\"100%\"},attrs:{\"sendingState\":_vm.sendingState}},[_c('v-form',{ref:\"form\",staticClass:\"input-field-base-form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{class:['input-field-base', { 'disabled': _vm.isDisabled || _vm.disabled }]},[_c('div',{staticClass:\"input-field-base__description\",style:({ ..._vm.descriptionStyles })},[_vm._t(\"textDescription\")],2),_c('div',{staticClass:\"input-field-base__field\",style:({ ..._vm.inputFieldStyles })},[_c('v-text-field',{staticClass:\"v-text-field-style\",attrs:{\"step\":_vm.step,\"type\":\"number\",\"solo\":\"\",\"flat\":\"\",\"rules\":_vm.allRules,\"height\":_vm.small ? 28 : 36,\"min\":_vm.min,\"max\":_vm.max,\"background-color\":_vm.background,\"disabled\":_vm.isDisabled || _vm.disabled},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.stopPropagation();return _vm.handleState.apply(null, arguments)},\"keypress\":_vm.handleKeypress},model:{value:(_vm.state),callback:function ($$v) {_vm.state=_vm._n($$v)},expression:\"state\"}})],1),_c('div',{staticClass:\"input-field-base__unit\",style:({ ..._vm.unitStyles })},[_vm._t(\"unit\")],2),_c('div',{staticClass:\"input-field-base__icon\",style:({ ..._vm.iconStyles })},[_vm._t(\"icon\")],2),_c('div',{staticClass:\"input-field-base__button\"},[_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"accent\",\"disabled\":(!_vm.valid || _vm.isDisabled || _vm.disabled),\"small\":_vm.small},on:{\"click\":_vm.validate}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Component that represent InputField Basic Control\n */\n@Component({\n components: {\n FeedbackProvider,\n },\n})\nexport default class InputFieldBase extends mixins(Validation, BasicControl) {\n @Prop() variableData!: Record;\n @Prop() instance!: string;\n @Prop() isDecimal?: boolean;\n @Prop() disabled?: boolean;\n @Prop({ default: 0.01 }) step?: number;\n @Prop() min?: number;\n @Prop() max?: number;\n @Prop({ default: () => [] }) fieldRules?: any;\n @Prop({ default: '#fff' }) background!: string;\n @Prop({ default: false }) small!: boolean;\n @Prop({ default: () => {} }) descriptionStyles!: any;\n @Prop({ default: () => {} }) inputFieldStyles!: any;\n @Prop({ default: () => {} }) unitStyles!: any;\n @Prop({ default: () => {} }) iconStyles!: any;\n\n state: any = 24\n timer?: NodeJS.Timeout;\n valid = true\n\n @Watch('actualValue')\n onActualValueChange(val: any) {\n if (typeof val === 'number' && !Number.isNaN(val)) {\n this.state = Number.isInteger(val) && !this.isDecimal ? val : val.toFixed(2);\n }\n }\n\n get rulesList() {\n const min = typeof this.min === 'number' ? this.fieldMoreThan(this.min) : true;\n const max = typeof this.max === 'number' ? this.fieldLessThan(this.max) : true;\n return [...this.fieldRules, min, max];\n }\n get allRules() {\n return this.isDisabled ? [] : this.rulesList;\n }\n\n get isNotMapped(): boolean {\n if (this.mappingsClean) return Object.values(this.mappingsClean).some((el: any) => !el?.length);\n else return false;\n }\n\n get actualValue(): any {\n const value = this.measurements.get(this.mappingsClean.targetValue) as number;\n return roundNumber(value);\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.handleState();\n }\n\n /**\n * Blocks key which not valid\n * @param e event object\n */\n handleKeypress(e: any) {\n if (this.isDecimal) {\n const isDecimalSymbol = /-|[0-9]|,|./.test(e.key);\n if (!isDecimalSymbol) e.preventDefault();\n } else {\n const isInteger = /-|[0-9]/.test(e.key);\n if (!isInteger) e.preventDefault();\n }\n }\n\n handleState() {\n if (!this.valid) return;\n this.timer = setTimeout(() => {\n this.onSendStart();\n this.send([{ v: +this.state, n: this.mappingsClean.targetValue, u: '' }]);\n this.onSendSuccess();\n }, 200);\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n this.state = this.actualValue;\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputFieldBase.vue?vue&type=template&id=4bf2401e&\"\nimport script from \"./InputFieldBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputFieldBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputFieldBase.vue?vue&type=style&index=0&id=4bf2401e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=style&index=0&id=8a0c77ee&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=style&index=0&id=a9cd5c32&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=style&index=0&id=d393098a&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoTooltip.vue?vue&type=style&index=0&id=3f3a2541&prod&scoped=true&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=style&index=0&id=79363389&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/acpv_on_load.fcc78b56.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=54e79d22&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Measurements.vue?vue&type=style&index=0&id=3ad18df2&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"circle-spinner\"},[_c('div',{class:['sk-fading-circle', `${_vm.color}-color`],style:(`width: ${_vm.size}px; height: ${_vm.size}px`)},[_c('div',{staticClass:\"sk-circle1 sk-circle\"}),_c('div',{staticClass:\"sk-circle2 sk-circle\"}),_c('div',{staticClass:\"sk-circle3 sk-circle\"}),_c('div',{staticClass:\"sk-circle4 sk-circle\"}),_c('div',{staticClass:\"sk-circle5 sk-circle\"}),_c('div',{staticClass:\"sk-circle6 sk-circle\"}),_c('div',{staticClass:\"sk-circle7 sk-circle\"}),_c('div',{staticClass:\"sk-circle8 sk-circle\"}),_c('div',{staticClass:\"sk-circle9 sk-circle\"}),_c('div',{staticClass:\"sk-circle10 sk-circle\"}),_c('div',{staticClass:\"sk-circle11 sk-circle\"}),_c('div',{staticClass:\"sk-circle12 sk-circle\"})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent Circle Spinner\n */\n@Component\nexport default class CircleSpinner extends Vue {\n @Prop({ default: 40 }) size!: number;\n @Prop({ default: 'default' }) color!: string; // possible values: default, accent, secondary (colors are taken from config.ts/VUE_APP_THEMES)\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CircleSpinner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CircleSpinner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CircleSpinner.vue?vue&type=template&id=738d4462&scoped=true&\"\nimport script from \"./CircleSpinner.vue?vue&type=script&lang=ts&\"\nexport * from \"./CircleSpinner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CircleSpinner.vue?vue&type=style&index=0&id=738d4462&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"738d4462\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=74695f2a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=style&index=0&id=050d1a68&prod&lang=scss&\"","import { cloneDeep } from 'lodash';\nimport tinycolor from 'tinycolor2';\n\nexport default class ChartColors {\n static readonly baseColors = [\n '#0f72ba',\n '#00c853',\n '#f57c00',\n '#8085e9',\n '#f34848',\n '#2baae2',\n '#009688',\n '#ee3562',\n '#7cb342',\n ];\n\n static colors(isDarkTheme: boolean): string[] {\n const colors = cloneDeep(this.baseColors);\n return this.colorsByTheme(colors, isDarkTheme);\n }\n\n static colorsByTheme(colors: any, isDarkTheme: any): string[] {\n return isDarkTheme\n ? colors.map((e: any) => tinycolor(e).lighten(7).toHexString())\n : colors.map((e: any) => tinycolor(e).darken(2).toHexString());\n }\n}\n","const navigation = require('./navigation.json');\nconst uiComponents = require('./uiComponents.json');\nconst devicesDescriptions = require('./devicesDescriptions.json');\nconst basicControls = require('./basicControls.json');\nconst devices = require('./devices.json');\nconst mlModelsDescriptions = require('./mlModelsDescriptions.json');\nconst mlModel = require('./mlModel.json');\nconst anomalyDetectionDescriptions = require('./anomalyDetectionDescriptions.json');\nconst chartsDescription = require('./chartsDescription.json');\nconst modals = require('./modals.json');\nconst userManual = require('./userManual.json');\nconst validationRules = require('./validationRules.json');\nconst anomalyDetection = require('./anomalyDetection.json');\nconst errorMessages = require('./errorMessages.json');\nconst installationWizard = require('./installationWizard.json');\nconst tenantWizard = require('./tenantWizard.json');\nconst loggerWizard = require('./loggerWizard.json');\nconst partners = require('./partners.json');\n\nexport default {\n navigation,\n uiComponents,\n devicesDescriptions,\n basicControls,\n devices,\n mlModelsDescriptions,\n anomalyDetectionDescriptions,\n mlModel,\n modals,\n chartsDescription,\n userManual,\n validationRules,\n anomalyDetection,\n errorMessages,\n installationWizard,\n tenantWizard,\n loggerWizard,\n partners,\n};\n","const navigation = require('./navigation.json');\nconst uiComponents = require('./uiComponents.json');\nconst devicesDescriptions = require('./devicesDescriptions.json');\nconst basicControls = require('./basicControls.json');\nconst devices = require('./devices.json');\nconst mlModelsDescriptions = require('./mlModelsDescriptions.json');\nconst mlModel = require('./mlModel.json');\nconst anomalyDetectionDescriptions = require('./anomalyDetectionDescriptions.json');\nconst chartsDescription = require('./chartsDescription.json');\nconst modals = require('./modals.json');\nconst userManual = require('./userManual.json');\nconst validationRules = require('./validationRules.json');\nconst anomalyDetection = require('./anomalyDetection.json');\nconst errorMessages = require('./errorMessages.json');\nconst installationWizard = require('./installationWizard.json');\nconst tenantWizard = require('./tenantWizard.json');\nconst loggerWizard = require('./loggerWizard.json');\nconst partners = require('./partners.json');\n\nexport default {\n navigation,\n uiComponents,\n devicesDescriptions,\n basicControls,\n devices,\n mlModelsDescriptions,\n anomalyDetectionDescriptions,\n mlModel,\n modals,\n chartsDescription,\n userManual,\n validationRules,\n anomalyDetection,\n errorMessages,\n installationWizard,\n tenantWizard,\n loggerWizard,\n partners,\n};\n","const navigation = require('./navigation.json');\nconst uiComponents = require('./uiComponents.json');\nconst devicesDescriptions = require('./devicesDescriptions.json');\nconst basicControls = require('./basicControls.json');\nconst devices = require('./devices.json');\nconst mlModelsDescriptions = require('./mlModelsDescriptions.json');\nconst mlModel = require('./mlModel.json');\nconst anomalyDetectionDescriptions = require('./anomalyDetectionDescriptions.json');\nconst chartsDescription = require('./chartsDescription.json');\nconst modals = require('./modals.json');\nconst userManual = require('./userManual.json');\nconst validationRules = require('./validationRules.json');\nconst anomalyDetection = require('./anomalyDetection.json');\nconst errorMessages = require('./errorMessages.json');\nconst installationWizard = require('./installationWizard.json');\nconst tenantWizard = require('./tenantWizard.json');\nconst loggerWizard = require('./loggerWizard.json');\nconst partners = require('./partners.json');\n\nexport default {\n navigation,\n uiComponents,\n devicesDescriptions,\n basicControls,\n devices,\n mlModelsDescriptions,\n anomalyDetectionDescriptions,\n mlModel,\n modals,\n chartsDescription,\n userManual,\n validationRules,\n anomalyDetection,\n errorMessages,\n installationWizard,\n tenantWizard,\n loggerWizard,\n partners,\n};\n","import en from './en';\nimport de from './de';\nimport it from './it';\n\nexport default { en, de, it };\n","import VueI18n from 'vue-i18n';\nimport Vue from 'vue';\nimport lang from '../../lang';\n\nVue.use(VueI18n);\n\nconst dateTimeFormats: VueI18n.DateTimeFormats = {\n 'en': {\n short: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n },\n },\n 'de': {\n short: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n },\n },\n 'it': {\n short: {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n weekday: 'long',\n },\n },\n};\n\nexport default new VueI18n({\n locale: 'en',\n fallbackLocale: 'en',\n messages: lang,\n dateTimeFormats,\n});\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=style&index=0&id=5ce4a51e&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB8CAMAAACiwBzrAAAAulBMVEXGxsb7/PxQT0xAQEBSUlJcWFjp6uoxMTEXFxf///82NjaNjIy+vr54WlJHTlBSU2NkZGWHr8WjoqLT/v/X2NYXGpObdFNDODEhGyEvMT5ycnLFwZvptW5Xcpj39vTEroifwse3xcZgha91m7+1tbW6lG2srKz+0ZX+/eNTWHeshGHGxbJztujQlCQjkc60bh1oKRnq/f3+8cUrJiaVPhcXW6gvLy+X0foaF0lQZIq76f4bNmXkw5ade65mzJ3eAAAFwElEQVR42u2d61riSBCGOyYdcgIjRiYyCspJR9ARkYg4c/+3tdUd5CDO7rMroSvs9/2ISSc8hnpTVV2dpBEexEcCJgAN6E80zk59UuvXI6zBgsaN572NrIv19tHtT1o++PcwkQEaiyVoMKLxdjX2/dt+6r2o4HU/Uktymc7c8p8a6phfJ+Pbn6PbZ0VqDFLFRSrlDJ2kkZ6PrPtN35iOfz2+vRACyjAqu0zHRCh9eXqG+YrK4tYyi5+dXmzS0HafUivtSWl7Nn961NtQQb6Rvs6Vzd9OErdlbdJ4m98Qg7P5Tc5JNZP3POgDoGLyBpn4gi74VlI/GW/SyH3H91c06BOz+c0E1iuOhsoGKjlsRSrlFWsxLO9x/UYOL9Y3yPIvlBBym+eBaKpsPtOtGzSm49YTisXiaJxfnlLeII+YdU5Vp5b6r6mtUnVqpw+U4WfU3VrRmL34yOHFjoxUKWG/UGHxW9l8NrL8m8e0O/afntOOa/mt9uOKhjdC97YgGv9BZ3O4BhMaqT3Lq3GIAY3pqY9ag1OkgkADNCDQAA0INCDQ4EwjnWQVyLCySapppDAFD6VEAzD44BDeBFbgoonwkDP45A7hwQh8BBqgAYEGaECgARrQv1Ls+lYPNJjIVY9NDUCDhZr60eYENDgoAA1WShSNEDR46Ei03BBZHD1c6KOyGnwDeeMzyTByfcZyo1AW6xp8+lTNyLUsizMNOj03av4f6g1n4NJXDWPWwxbku5Y7cAosOHjU4nHScuvSDgLWxVlgy7rbSgq8ZNQ4VWQ6i8eJJWJbhj3BWr1Q2rGwkj178J5pOIkVSacuSqC6IyMrKS5YhYmIDdMYtISMRUkUS9EaFGWJSL352jRKo+m6sSNKIyd23YJ6VlL3qYRRGpFVt+vloUEnu51pd9NNYNDDla4rpSiRpDrjQkxR0/VWzySN0IrssEw0QjuywkJq8SAkHG7NJA36akGvTDR6ZLRiQlUlcJpxJcvM0chcKw5EqRTElluUNUzXG75P/7BUys/5MKs/0AAN0DgoGjZoMKLhNkGDD43tO6agYZKGPwANRjS2xjBAwySN/XjHYdNoVzu7orGX3LGgcV472tY3fjT6xyeLtWFDOs5xd2l2x3Eur5brP/LDGsdXO6PhO3uk4WyJH41eX77T+F7NT/LyWm3d5Rt6Z1uurXbE7mhE+6RhfxA7GhrAO4077Rd9x+nme4gKLV+JTcPpiOGdozg0flztkIYv9xipVrYP3lvsms2UBq13cyiXKn5pDNRIe4dVFZ3akvB83TU2adT3TiOwF2uqpeYcMcsbjQWNtswv+/xvI0ej/w6rquV79fV6+HXX2KSR7JuGTZfftwp/Gn3tE8rqZPFhddGq45M+hHxDtGmrL53jzvWOaLT27huUQMrgG39DgxbkFk5HOUlfJ/fOjmj4e6dBAOyg1DTy3pYi0dU72tUvBCyzvmHb78/HlpZGXm9cDSlz6Fy+/Ez58sZKuiXLSpfFl3UiravsoRh1S9en2q7+HIa1eOMfe7jvpTq5xq5pSJM0jhjTyKu/6LPqb+UaOZ51RiWpxSvBJ6owpvHnkZHFbr2jsXZMicapyjKG29gcNYzXRw3l5arvdJcfF93JL8EwNIZ7YCPqw/ArJR/ub+DeH2jgvjieGQENPE91KDTwrCEnGhXQOHQaWV1sz50BGoZoNFVxapIG3m1amSLT7z/aJn0D7/2tcNiREHWjkQrvxK7pKGwGRmngffEN9zDcp8JcCkvp+T0Mz2uIeUaWYULTNksjwxw8C0PUeuZpYH6qVdJgQANzt60sz4AG5jVkRaMMc35mxc/5yYUG5sNVslWojuoMaJRkrugifyQ0yIvgHgsan1eijEJV8fFa08AvBXEWaIAGBBqgAYEGaECgARoQaIAGBBqgAYEG9JFGBiNwUSa8CazARRPhpbACF6XCAw42MDyi4aUT5A7zOWOSet5fzyLeEmuaxHwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/StreamAnomalyDetection.b3fa62c8.png\";","// Will contain all limits that the user when going through the installation wizard\n\nimport { LoggerType } from './systemTypes';\n\nexport const solarmanLoggerLimits: Record = {\n pv: 0,\n generator: 0,\n battery: 0,\n grid: 1,\n house: 1,\n charge_station: 0,\n electric_heating: 0,\n heating_pump: 0,\n big_consumer: 0,\n emergencyPowerOperation: 0,\n avPv: 20,\n chp: 0,\n};\n\nexport function emsLimitsByType(type: LoggerType) {\n return {\n [LoggerType.SolarmanLogger]: solarmanLoggerLimits,\n }[type];\n}\n\n// limits for logger by type\nexport const loggerLimitByType: Record = {\n string: 20,\n hybrid: 10,\n};\n","module.exports = __webpack_public_path__ + \"img/Regelung.e8c6065d.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=style&index=0&id=531518c8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=aaeda4f2&prod&lang=scss&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstancesGridView.vue?vue&type=style&index=0&id=7a0319ce&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/TSGFrischwasser.a42709bc.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterConfiguration.vue?vue&type=style&index=0&id=53ad4aaa&prod&scoped=true&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CircleSpinner.vue?vue&type=style&index=0&id=738d4462&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{staticClass:\"arrow-button-mock\",attrs:{\"color\":_vm.state ? _vm.activeColor : _vm.inactiveColor,\"elevation\":\"0\",\"small\":_vm.small,\"rounded\":\"\"},on:{\"click\":function($event){_vm.state = !_vm.state}}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":\"white\",\"size\":_vm.iconSize}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class ArrowButtonMock extends Vue {\n @Prop({ default: 'arrow-direction-left' }) icon!: string;\n @Prop({ default: 24 }) iconSize!: null | number | string;\n @Prop({ default: true }) small!: boolean;\n @Prop({ default: '#6CC1FF' }) activeColor!: string;\n @Prop({ default: '#C4C4C4' }) inactiveColor!: string;\n\n state = false\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowButtonMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowButtonMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowButtonMock.vue?vue&type=template&id=0528d3b4&scoped=true&\"\nimport script from \"./ArrowButtonMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowButtonMock.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0528d3b4\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./themeDark/AirHumiditySensor.png\": \"68c9\",\n\t\"./themeDark/Battery.png\": \"8139\",\n\t\"./themeDark/BrightnessSensor.png\": \"be2c\",\n\t\"./themeDark/ColdWaterMeter.png\": \"cf7c\",\n\t\"./themeDark/ConsumptionService.png\": \"0019\",\n\t\"./themeDark/ControlAwning.png\": \"578f\",\n\t\"./themeDark/ControlBlinds.png\": \"b9de\",\n\t\"./themeDark/ControlShutter.png\": \"b365\",\n\t\"./themeDark/DropDownInputFieldWithVariable.png\": \"4ffb\",\n\t\"./themeDark/DropDownOutputFieldWithVariable.png\": \"e8bb\",\n\t\"./themeDark/EMS.png\": \"d635\",\n\t\"./themeDark/EMSV2.png\": \"c6c6\",\n\t\"./themeDark/ElectricChargingStation.png\": \"3035\",\n\t\"./themeDark/ElectricChargingStationV2.png\": \"46ba\",\n\t\"./themeDark/ElectricityMeter.png\": \"f4c4\",\n\t\"./themeDark/ElectronicBoiler.png\": \"0ffd\",\n\t\"./themeDark/EnergyIO.png\": \"a0d7\",\n\t\"./themeDark/EnergyViewV2.png\": \"e065\",\n\t\"./themeDark/Gauge.png\": \"d5ec\",\n\t\"./themeDark/GeneralSwitchV2.png\": \"51ec\",\n\t\"./themeDark/Generator.png\": \"2d37\",\n\t\"./themeDark/HeatingCircuitOptimization.png\": \"587e\",\n\t\"./themeDark/HeatingMeter.png\": \"711c\",\n\t\"./themeDark/HistoryAnomalyDetection.png\": \"3097\",\n\t\"./themeDark/HotWaterMeter.png\": \"33cd\",\n\t\"./themeDark/HouseConsumption.png\": \"074f\",\n\t\"./themeDark/HppProductionService.png\": \"21b1\",\n\t\"./themeDark/LightDimmer.png\": \"62a6\",\n\t\"./themeDark/LightPushButton.png\": \"bf19\",\n\t\"./themeDark/LightRGB.png\": \"9e72\",\n\t\"./themeDark/LightSwitch.png\": \"bae6\",\n\t\"./themeDark/MainsConnection.png\": \"eaef\",\n\t\"./themeDark/MixingValve.png\": \"1491\",\n\t\"./themeDark/MotionSensor.png\": \"18e4\",\n\t\"./themeDark/MotorWithVFD.png\": \"495c\",\n\t\"./themeDark/MotorWithoutVFD.png\": \"cdca\",\n\t\"./themeDark/MpcEnergyView.png\": \"b0bc\",\n\t\"./themeDark/MusicSystem.png\": \"2a92\",\n\t\"./themeDark/PVMonitoringService.png\": \"a143\",\n\t\"./themeDark/PVProductionService.png\": \"53b3\",\n\t\"./themeDark/PVSystem.png\": \"32d0\",\n\t\"./themeDark/PumpWithVFD.png\": \"320a\",\n\t\"./themeDark/PumpWithoutVFD.png\": \"5126\",\n\t\"./themeDark/Robot.png\": \"57ca\",\n\t\"./themeDark/SensorCO2.png\": \"035a\",\n\t\"./themeDark/SensorLevel.png\": \"a46b\",\n\t\"./themeDark/SocketSwitch.png\": \"2e2c\",\n\t\"./themeDark/StreamAnomalyDetection.png\": \"8177\",\n\t\"./themeDark/SurveyClient.png\": \"a105\",\n\t\"./themeDark/TSGBrauchwasser.png\": \"5976\",\n\t\"./themeDark/TSGFrischwasser.png\": \"9c87\",\n\t\"./themeDark/TSGLadestationNotAus.png\": \"fe26\",\n\t\"./themeDark/TSGModulLadestation.png\": \"7053\",\n\t\"./themeDark/TV.png\": \"02cf\",\n\t\"./themeDark/Temperature.png\": \"2666\",\n\t\"./themeDark/ThermostatAnalog.png\": \"a1b7\",\n\t\"./themeDark/ThermostatDigital.png\": \"fd49\",\n\t\"./themeDark/VariableInputField.png\": \"4774\",\n\t\"./themeDark/VariableOutputField.png\": \"52942\",\n\t\"./themeDark/VariableTextInputField.png\": \"0ab0\",\n\t\"./themeDark/VariableTextOutputField.png\": \"501d\",\n\t\"./themeDark/Ventilation.png\": \"e732\",\n\t\"./themeDark/VentilatorSwitch.png\": \"2538\",\n\t\"./themeDark/WeatherStation.png\": \"2a23\",\n\t\"./themeLight/AirHumiditySensor.png\": \"fa5a\",\n\t\"./themeLight/Battery.png\": \"118c\",\n\t\"./themeLight/BrightnessSensor.png\": \"d9e1\",\n\t\"./themeLight/ColdWaterMeter.png\": \"c2018\",\n\t\"./themeLight/ConsumptionService.png\": \"5024\",\n\t\"./themeLight/ControlAwning.png\": \"55ae\",\n\t\"./themeLight/ControlBlinds.png\": \"fc47\",\n\t\"./themeLight/ControlShutter.png\": \"ca8b\",\n\t\"./themeLight/DropDownInputFieldWithVariable.png\": \"1f08\",\n\t\"./themeLight/DropDownOutputFieldWithVariable.png\": \"4f4f\",\n\t\"./themeLight/EMS.png\": \"5e8f\",\n\t\"./themeLight/EMSV2.png\": \"3531\",\n\t\"./themeLight/ElectricChargingStation.png\": \"987e\",\n\t\"./themeLight/ElectricChargingStationV2.png\": \"9960\",\n\t\"./themeLight/ElectricityMeter.png\": \"eb0f\",\n\t\"./themeLight/ElectronicBoiler.png\": \"6d0b\",\n\t\"./themeLight/EnergyIO.png\": \"1977\",\n\t\"./themeLight/EnergyViewV2.png\": \"c7be\",\n\t\"./themeLight/Gauge.png\": \"e7e8\",\n\t\"./themeLight/GeneralSwitchV2.png\": \"cdd6\",\n\t\"./themeLight/Generator.png\": \"f008\",\n\t\"./themeLight/HeatingCircuitOptimization.png\": \"71d1\",\n\t\"./themeLight/HeatingMeter.png\": \"fb04\",\n\t\"./themeLight/HistoryAnomalyDetection.png\": \"ed2c\",\n\t\"./themeLight/HotWaterMeter.png\": \"ded7\",\n\t\"./themeLight/HouseConsumption.png\": \"6a36\",\n\t\"./themeLight/HppProductionService.png\": \"d2e0\",\n\t\"./themeLight/LightDimmer.png\": \"c464\",\n\t\"./themeLight/LightPushButton.png\": \"875e\",\n\t\"./themeLight/LightRGB.png\": \"88fc\",\n\t\"./themeLight/LightSwitch.png\": \"8b9d\",\n\t\"./themeLight/MainsConnection.png\": \"8c97\",\n\t\"./themeLight/MixingValve.png\": \"efc3\",\n\t\"./themeLight/MotionSensor.png\": \"319c\",\n\t\"./themeLight/MotorWithVFD.png\": \"25d2\",\n\t\"./themeLight/MotorWithoutVFD.png\": \"ec5d\",\n\t\"./themeLight/MpcEnergyView.png\": \"0144\",\n\t\"./themeLight/MusicSystem.png\": \"8549\",\n\t\"./themeLight/PVMonitoringService.png\": \"24b1\",\n\t\"./themeLight/PVProductionService.png\": \"d23d\",\n\t\"./themeLight/PVSystem.png\": \"ebb4\",\n\t\"./themeLight/PumpWithVFD.png\": \"5e3b\",\n\t\"./themeLight/PumpWithoutVFD.png\": \"d395\",\n\t\"./themeLight/Robot.png\": \"dce9\",\n\t\"./themeLight/SensorCO2.png\": \"bb72\",\n\t\"./themeLight/SensorLevel.png\": \"b804\",\n\t\"./themeLight/SocketSwitch.png\": \"bda4\",\n\t\"./themeLight/StreamAnomalyDetection.png\": \"3658\",\n\t\"./themeLight/SurveyClient.png\": \"c46c\",\n\t\"./themeLight/TSGBrauchwasser.png\": \"3d2a\",\n\t\"./themeLight/TSGFrischwasser.png\": \"82c6\",\n\t\"./themeLight/TSGLadestationNotAus.png\": \"2546\",\n\t\"./themeLight/TSGModulLadestation.png\": \"d47e\",\n\t\"./themeLight/TV.png\": \"d854\",\n\t\"./themeLight/Temperature.png\": \"23d6\",\n\t\"./themeLight/ThermostatAnalog.png\": \"2451\",\n\t\"./themeLight/ThermostatDigital.png\": \"77a9\",\n\t\"./themeLight/VariableInputField.png\": \"5edb\",\n\t\"./themeLight/VariableOutputField.png\": \"4729\",\n\t\"./themeLight/VariableTextInputField.png\": \"0a4b\",\n\t\"./themeLight/VariableTextOutputField.png\": \"fb9f\",\n\t\"./themeLight/Ventilation.png\": \"4c89\",\n\t\"./themeLight/VentilatorSwitch.png\": \"1267\",\n\t\"./themeLight/WeatherStation.png\": \"986b\"\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 = \"83d1\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=style&index=0&id=34a837e0&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=302eef72&prod&lang=scss&\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumptionChart.vue?vue&type=style&index=0&id=596284b6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InternetStatusIndicator.vue?vue&type=style&index=0&id=1b7b8333&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushButtonMock.vue?vue&type=style&index=0&id=487a7904&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariablePreview.vue?vue&type=style&index=0&id=19577e9a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=style&index=0&id=df7046a8&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=style&index=0&id=f14fd150&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=style&index=0&id=00225776&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/error-page-bg-dark.8ac92481.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=style&index=0&id=2044e232&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"is-confirmation-dialog\":_vm.isConfirmationDialog,\"maxWidth\":\"500\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.$vuetify.breakpoint.mobile ? 13 : 20,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.addProject')))])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.createProject.createProjectTitle'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.createProject.form.name'),\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\",\"counter\":\"30\",\"rules\":[_vm.rules.required]},model:{value:(_vm.project.name),callback:function ($$v) {_vm.$set(_vm.project, \"name\", $$v)},expression:\"project.name\"}}),_c('v-text-field',{staticClass:\"pt-2\",attrs:{\"label\":_vm.$t('modals.createProject.form.description'),\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"50\",\"counter\":\"50\"},model:{value:(_vm.project.description),callback:function ($$v) {_vm.$set(_vm.project, \"description\", $$v)},expression:\"project.description\"}}),_c('div',{staticClass:\"pb-3\"},[_c('ProjectTagsField',{on:{\"selectedChips\":_vm.handleChipsChange}})],1),(_vm.isCustomLabel)?_c('div',[_c('v-select',{staticClass:\"py-2\",attrs:{\"items\":_vm.defaultDevice,\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Default Device\"},model:{value:(_vm.selectedDevice),callback:function ($$v) {_vm.selectedDevice=$$v},expression:\"selectedDevice\"}}),(_vm.selectedDevice !== '')?_c('v-text-field',{staticClass:\"py-2\",attrs:{\"label\":\"Device Name\",\"counter\":\"30\",\"maxLength\":\"30\",\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.defaultDeviceName),callback:function ($$v) {_vm.defaultDeviceName=$$v},expression:\"defaultDeviceName\"}}):_vm._e()],1):_vm._e()],1),_c('div',[(_vm.isCustomLabel)?_c('v-btn',{attrs:{\"disabled\":!_vm.selectedDevice.length,\"elevation\":\"0\",\"color\":\"accent lynus-small-btn\"},on:{\"click\":_vm.createNewProject}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.create'))+\" \")]):_c('v-btn',{attrs:{\"disabled\":!_vm.project.name.length,\"elevation\":\"0\",\"color\":\"accent lynus-small-btn\"},on:{\"click\":_vm.createNewProject}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.create'))+\" \")])],1)])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport ProjectService from '@/services/ProjectService';\nimport { envAppShowProjectTypeSelection, envProjectOpenSubpage } from '@/utils/env';\nimport { mixins } from 'vue-class-component';\nimport devicesTypes from '@/store/modules/devices/settings/devicesTypes';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport ProjectTagsField from '@/ui/components/components/ProjectTagsField.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IProject } from '@/types/project.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport CollectionService from '@/services/CollectionService';\nimport DeviceService from '@/services/DeviceService';\n\n/**\n * Component that allows to create a new project\n */\n@Component({\n components: {\n ModalWindow,\n ProjectTagsField,\n },\n})\nexport default class CreateProject extends mixins(Validation) {\n @State('app') appState!: IAppState;\n @Getter('projects/projects') projects!: IProject[];\n @Action('projects/createProject') createProject!: (project: Record) => Promise;\n @Action('projects/loadProjects') loadProjects!: () => Promise;\n\n valid = false;\n isTooltip = false;\n project: Record = {\n name: '',\n description: '',\n };\n projectFilterTags: string[] = [];\n\n isCustomLabel = envAppShowProjectTypeSelection;\n defaultDevice = ['Robot', 'Survey Client'];\n selectedDevice = '';\n defaultDeviceName = '';\n\n get isConfirmationDialog() {\n return !!this.projectFilterTags.length || !!this.project.name || !!this.project.description;\n }\n\n get currentUserMail() {\n return this.appState.user.email;\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n async onDialogStatusChange(status: boolean) {\n // clean local project + projectFilterTags when close dialog\n if (!status) {\n Object.keys(this.project).forEach((prop: string) => this.project[prop] = '');\n this.projectFilterTags = [];\n } else {\n await this.$nextTick();\n this.validate();\n }\n }\n\n handleChipsChange(value: string[]) {\n this.projectFilterTags = value;\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n /**\n * Creates new project with certain parameters\n */\n async createNewProject() {\n let resultNewProject: IProject | undefined;\n if (this.project.name.length) {\n const newProject: Record = {\n name: this.project.name,\n meta: {\n description: this.project.description,\n isDNDActive: false,\n isAreasMiniView: false,\n energyPrice: {\n buyPrice: 0.4,\n sellPrice: 0.1,\n },\n projectCurrency: '€',\n },\n connectivity: {\n enabled: true,\n actions: [{\n type: 'alert',\n params: {\n type: 2,\n body: 'Connectivity Check. Project is currently not online',\n },\n }, {\n type: 'email',\n params: {\n recipients: [this.currentUserMail],\n subject: `${this.project.name}: Connectivity Check`,\n body: 'Project is currently offline',\n },\n },\n ],\n },\n };\n\n if (this.projectFilterTags.length !== 0) {\n newProject.meta.tags = this.projectFilterTags;\n }\n if (envAppShowProjectTypeSelection === false) {\n resultNewProject = await this.createProject(newProject);\n } else {\n newProject.meta.defaultDevice = this.selectedDevice;\n\n resultNewProject = await ProjectService.createProject(newProject as IProject);\n await this.loadProjects();\n\n if (resultNewProject?.id !== undefined) {\n const defaultRoomObject = {\n cover: '61769',\n covertype: 'icon',\n name: 'Area 1',\n room: {\n meta: {\n cover: '61769',\n devicesPositions: undefined,\n },\n },\n };\n\n // default room gets created\n const resultRoom = await CollectionService.createCollection(resultNewProject.id, defaultRoomObject);\n // contains the collectionID\n\n // creates the selected default device based on the Device selected\n if (this.selectedDevice === 'Robot') {\n const defaultRobotObject = {\n collection_id: resultRoom.id,\n data: {\n mappings: Object.fromEntries(Object.keys(devicesTypes.Robot.mappings).map(e => [e, ''])),\n meta: {\n deviceSchema: devicesTypes.Robot.devicesSchemas,\n },\n type: 'Robot',\n },\n name: this.defaultDeviceName,\n };\n await DeviceService.createDevice(resultNewProject.id, defaultRobotObject);\n } else {\n const defaultSurveyClientObject = {\n collection_id: resultRoom.id,\n data: {\n mappings: Object.fromEntries(Object.keys(devicesTypes.SurveyClient.mappings).map(e => [e, ''])),\n meta: {\n deviceSchema: devicesTypes.SurveyClient.devicesSchemas,\n },\n type: 'SurveyClient',\n },\n name: this.defaultDeviceName,\n };\n await DeviceService.createDevice(resultNewProject.id, defaultSurveyClientObject);\n }\n }\n }\n }\n (this.$refs.ModalWindowInstance as ModalWindow).onConfirmationDialogClose();\n // enter the create project\n if (resultNewProject !== undefined) {\n await new Promise(resolve => setTimeout(resolve, 250));\n await this.$router.push(`/projects/${resultNewProject.id}${envProjectOpenSubpage}`);\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateProject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateProject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateProject.vue?vue&type=template&id=8d5f6a7e&\"\nimport script from \"./CreateProject.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateProject.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-date-picker',{ref:\"calendar\",staticStyle:{\"width\":\"340px\"},attrs:{\"type\":_vm.calendarType,\"min\":_vm.calendarMin,\"max\":_vm.calendarMax,\"color\":\"accent\",\"header-color\":\"accent\",\"first-day-of-week\":\"1\",\"elevation\":\"1\",\"locale\":_vm.$i18n.locale,\"title-date-format\":_vm.titleDateFormat,\"full-width\":\"\",\"range\":\"\"},on:{\"click:date\":function($event){return _vm.handleWeek($event)},\"click:month\":function($event){return _vm.handleMonth($event)},\"click:year\":function($event){return _vm.handleYear($event)}},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport HourPicker from '@/ui/components/devices/charts/components/HourPicker.vue';\nimport { formatDate, formatDateForPeriod, fromDatePickerString, toSecondsSinceEpoch } from '@/utils/utilsFunctions';\nimport moment from 'moment';\n\n@Component({\n components: {\n HourPicker,\n },\n})\nexport default class DefaultCalendar extends Vue {\n @Prop({ default: 'day' }) periodName!: string;\n @Prop() calendarMin?: string;\n @Prop() calendarMax?: string;\n\n // contains an array of date strings\n date: string[] = [];\n\n pickerTypes: any = {\n day: 'DATE',\n week: 'DATE',\n month: 'MONTH',\n year: 'YEAR',\n }\n\n @Watch('date')\n onDateChange(val: string) {\n // emits the currently selected (start-) date\n // also for week, only the week start is emitted\n this.$emit('input', this.dateInSeconds);\n }\n\n /**\n * date model object as an array of javascript Date objects.\n */\n get dateArray(): Date[] {\n return this.date.map(d => fromDatePickerString(d));\n }\n\n /**\n * date model object as an array of seconds since epoch timestamps.\n */\n get dateInSeconds() {\n return [toSecondsSinceEpoch(this.dateArray[0])];\n }\n\n handleMonth(date: any) {\n this.date = [date.toString()];\n\n if (this.periodName === 'month') {\n // reset activePicker to stay in month view\n (this.$refs.calendar as any).activePicker = this.pickerTypes.month;\n }\n }\n\n // year needs this special function in order to interrupt the calendar after year is selected\n handleYear(year: number) {\n this.date = [year.toString()];\n\n if (this.periodName === 'year') {\n // reset activePicker to stay in year view\n (this.$refs.calendar as any).activePicker = this.pickerTypes.year;\n }\n }\n\n // date expected to be in format YYYY-MM-DD\n handleWeek(date: any) {\n // clear second date in date array if week was selected before\n if (this.periodName === 'day') {\n this.date = [date];\n }\n if (this.periodName === 'week') {\n // moment object of the clicked date (e.g. wednesday of some week)\n const clickedDateMoment = moment(this.date[0]);\n\n const weekStartString = clickedDateMoment\n // monday of this week\n .isoWeekday(1)\n .format('yyyy-MM-DD');\n const weekEndString = clickedDateMoment\n // monday 00:00 of the following week\n .isoWeekday(7)\n .format('yyyy-MM-DD');\n\n this.date = [weekStartString, weekEndString];\n }\n }\n\n titleDateFormat(date: string[]) {\n return formatDateForPeriod(this.periodName, date);\n }\n\n get calendarType() {\n return ({\n day: 'date',\n week: 'date',\n month: 'month',\n year: 'month',\n } as any)[this.periodName];\n }\n\n mounted() {\n (this.$refs.calendar as any).activePicker = this.pickerTypes[this.periodName];\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultCalendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultCalendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultCalendar.vue?vue&type=template&id=2b2e590e&scoped=true&\"\nimport script from \"./DefaultCalendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultCalendar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2b2e590e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=da6394a2&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineCross.vue?vue&type=style&index=0&id=0584eeb8&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"total-values-windows\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.showModal = true},\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[_c('v-icon',[_vm._v(\"fa-table\")])],1)]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.modalButton')))])]),_c('v-dialog',{attrs:{\"width\":\"1000\",\"height\":\"500\",\"persistent\":\"\",\"overlay-opacity\":\"0.8\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',{staticClass:\"dialog-view-design\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"dialog-view-header\"},[_c('div',{staticClass:\"dialog-view-title\"},[_vm._v(_vm._s(_vm.translatedTitle))]),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.showModal = false}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1),_c('v-card-text',{staticClass:\"dialog-view-body\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\"}},[(_vm.localOtherStats.length > 0)?_c('v-tab',[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tabNames.standard')))]):_vm._e(),(_vm.localOtherStats.length > 0)?_c('v-tab-item',{attrs:{\"transition\":false,\"reverse-transition\":false}},[_c('div',{staticClass:\"d-flex tabStyles\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tableHeaders.name')))]),_vm._l((_vm.localOtherStats),function(element,index){return _c('div',{key:index,staticStyle:{\"white-space\":\"nowrap\",\"overflow\":\"hidden\",\"margin-bottom\":\"4px !important\",\"height\":\"22px !important\"}},[_c('p',[_vm._v(_vm._s(element.name))])])})],2),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tableHeaders.min')))]),_vm._l((_vm.localOtherStats),function(element,index){return _c('div',{key:index,staticClass:\"mb-1\"},[_vm._v(_vm._s(element.minValue))])})],2),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tableHeaders.max')))]),_vm._l((_vm.localOtherStats),function(element,index){return _c('div',{key:index,staticClass:\"mb-1\"},[_vm._v(_vm._s(element.maxValue))])})],2),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tableHeaders.avg')))]),_vm._l((_vm.localOtherStats),function(element,index){return _c('div',{key:index,staticClass:\"mb-1\"},[_vm._v(_vm._s(element.avgValue))])})],2),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('h3',{staticClass:\"mb-3\"},[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tableHeaders.unit')))]),_vm._l((_vm.localOtherStats),function(element,index){return _c('div',{key:index,staticClass:\"mb-1\"},[_vm._v(_vm._s(element.unit))])})],2)],1)]):_vm._e(),(_vm.localDifferenceObject.length > 0)?_c('v-tab',[_vm._v(_vm._s(_vm.$t('uiComponents.chartsTotalView.tabNames.difference')))]):_vm._e(),(_vm.localDifferenceObject.length > 0)?_c('v-tab-item',{attrs:{\"transition\":false,\"reverse-transition\":false}},[_c('v-container',{staticClass:\"deviceBackground\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.diff),function(item,index){return _c('v-col',{key:index,attrs:{\"cols\":item.cols}},[_c('h3',[_vm._v(_vm._s(_vm.$t(`uiComponents.chartsTotalView.tableHeaders.${item.type}`)))]),_vm._l((_vm.localDifferenceObject),function(element,index){return _c('div',{key:index,staticClass:\"mb-1\"},[(item.prop !== 'sum')?_c('div',[_vm._v(\" \"+_vm._s(element[item.prop])+\" \")]):_vm._e(),(item.prop === 'sum')?_c('div',[_vm._v(\" \"+_vm._s(element[item.prop].toFixed(2))+\" \")]):_vm._e()])})],2)}),1)],1)],1):_vm._e()],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n Component, Prop, Vue,\n} from 'vue-property-decorator';\n\n/**\n * Component that represent total chart series stats\n */\n@Component({\n components: {},\n})\nexport default class TotalValuesWindow extends Vue {\n @Prop() objectsDifferenceSeriesStats!: any[];\n @Prop() objectsOtherSeriesStats!: any[];\n @Prop() currentSelectedPeriod!: any;\n\n isTooltip = false\n\n showModal = false;\n\n get translatedTitle() {\n const translatedText: any = this.$t(`uiComponents.chartsTotalView.titleMappings.${this.currentSelectedPeriod}`);\n return translatedText;\n }\n\n get localDifferenceObject() {\n return this.objectsDifferenceSeriesStats;\n }\n\n get localOtherStats() {\n return this.objectsOtherSeriesStats;\n }\n\n get other() {\n return [\n { type: 'name', prop: 'name', cols: 4 },\n { type: 'min', prop: 'minValue', cols: 2 },\n { type: 'max', prop: 'maxValue', cols: 2 },\n { type: 'avg', prop: 'avgValue', cols: 2 },\n { type: 'unit', prop: 'unit', cols: 2 },\n ];\n }\n\n get diff() {\n return [\n { type: 'name', prop: 'name', cols: 8 },\n { type: 'sum', prop: 'sum', cols: 2 },\n { type: 'unit', prop: 'unit', cols: 2 },\n ];\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TotalValuesWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TotalValuesWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TotalValuesWindow.vue?vue&type=template&id=5a765684&scoped=true&\"\nimport script from \"./TotalValuesWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./TotalValuesWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TotalValuesWindow.vue?vue&type=style&index=0&id=5a765684&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a765684\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=style&index=0&id=6bc3b4e4&prod&scoped=true&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"energy-flow-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\"}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charts-energy-flow\"},[_c('OfflineChart',{ref:\"Chart\",attrs:{\"chartData\":_vm.chartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live', 'hour'],\"chartHeight\":600}}),(_vm.chartRendered)?_c('div',{staticClass:\"variables\",staticStyle:{\"display\":\"flex\",\"flex-wrap\":\"wrap\"}},[_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.pvProduction')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(25, 100))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.productionBattery')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 50))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.productionGrid')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 50))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.directConsumption')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 50))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.totalDirectEnergy')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 60))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.selfSufficientScore')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(70, 100, true))+\" %\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.eigenverbrauchsanteil')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(70, 100, true))+\" %\")])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: { OfflineChart },\n})\nexport default class EnergyFlowProductionChart extends Vue {\n chartData: any = null;\n chartRendered = false;\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.pvProduction').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.productionBattery').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.productionGrid').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.directConsumption').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n roundNumber(num: number) {\n return Number(num.toFixed(2));\n }\n\n multiplier: any = {\n day: 1,\n week: 7,\n month: 30,\n year: 300,\n }\n\n randomNumber(min = 0, max = 10) {\n return this.roundNumber(((Math.random() * (max - min)) + min) * this.multiplier[(this.$refs.Chart as any).periodName]);\n }\n\n created() {\n this.chartData = this.mockChartData;\n }\n\n mounted() {\n this.chartRendered = true;\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowProductionChart.vue?vue&type=template&id=772a5e84&scoped=true&\"\nimport script from \"./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyFlowProductionChart.vue?vue&type=style&index=0&id=772a5e84&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"772a5e84\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charts-energy-flow\"},[_c('OfflineChart',{ref:\"Chart\",attrs:{\"chartData\":_vm.chartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live', 'hour'],\"chartHeight\":600}}),(_vm.chartRendered)?_c('div',{staticClass:\"variables\",staticStyle:{\"display\":\"flex\",\"flex-wrap\":\"wrap\"}},[_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.directConsumption')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(25, 100))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.batteryToConsumer')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 60))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.gridToConsumer')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 60))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.totalDirectEnergy')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(10, 60))+\" kWh\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.selfSufficientScore')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(70, 100, true))+\" %\")]),_c('div',{staticClass:\"pr-14\"},[_c('strong',[_vm._v(_vm._s(this.$t('mlModel.EMS.charts.chartDifference.eigenverbrauchsanteil')))]),_vm._v(\": \"+_vm._s(_vm.randomNumber(70, 100, true))+\" %\")])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: { OfflineChart },\n})\nexport default class EnergyFlowConsumptionChart extends Vue {\n chartData: any = null;\n chartRendered = false;\n multiplier: any = {\n day: 1,\n week: 7,\n month: 30,\n year: 300,\n }\n\n randomNumber(min = 0, max = 10, percantage=false) {\n const multiplier = percantage ? 1 : this.multiplier[(this.$refs.Chart as any).periodName];\n return this.roundNumber(((Math.random() * (max - min)) + min) * multiplier);\n }\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.directConsumption').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.batteryToConsumer').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.productionBattery').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartDifference.gridToConsumer').toString(),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n roundNumber(num: number) {\n return Number(num.toFixed(2));\n }\n\n created() {\n this.chartData = this.mockChartData;\n }\n\n mounted() {\n this.chartRendered = true;\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowConsumptionChart.vue?vue&type=template&id=596284b6&scoped=true&\"\nimport script from \"./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyFlowConsumptionChart.vue?vue&type=style&index=0&id=596284b6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"596284b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('div',{staticClass:\"d-flex justify-center pt-2\"},[_c('SystemsNavigation',{attrs:{\"system-name\":\"EMS\",\"items\":_vm.systemSchema},on:{\"handleCurrentChart\":_vm.handleCurrentChart}})],1),(_vm.showCurrentChartData)?_c('div',{staticClass:\"content pt-2\"},[_c('OfflineChart',_vm._b({key:_vm.reRenderKey,attrs:{\"parent-component-width\":1710,\"navigationItemsToExclude\":_vm.currentChartData.data.navigationItemsToExclude}},'OfflineChart',{ ..._vm.currentChartData.data },false))],1):_c('div',{staticClass:\"noDevicesConfiguredStyles\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper\n from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport {\n defineInstancesGroups,\n getVariableValue,\n getChartSystemInstanceName,\n} from '@/ui/components/devices/components/EnergyParts/EMS/utils';\nimport { ICurrentSystem, ISystemsVars } from '@/types/common.types';\n\n@Component({\n components: {\n BaseChartWrapper,\n SystemsNavigation,\n OfflineChart,\n },\n})\n\nexport default class EnergyFlow extends Vue {\n @Prop() scaling!: any;\n\n reRenderKey = 0;\n systems: string[] = ['charge_station', 'electric_heating', 'heating_pump', 'big_consumer'];\n systemsInstancesSplitBy = 8;\n systemsVars: ISystemsVars = {\n charge_station: ['power'],\n electric_heating: ['power'],\n heating_pump: ['power'],\n big_consumer: ['power'],\n }\n currentChart: ICurrentSystem = {\n system: null,\n instances: [],\n }\n\n /**\n * returns mock mockSystemsMappings\n */\n get mockSystemsMappings() {\n const mappings: any = {\n battery: {\n components: {},\n count: 0,\n },\n big_consumer: {\n components: {},\n count: 0,\n },\n charge_station: {\n components: {},\n count: 0,\n },\n electric_heating: {\n components: {},\n count: 0,\n },\n generator: {\n components: {},\n count: 0,\n },\n grid: {\n components: {},\n count: 0,\n },\n heating_pump: {\n components: {},\n count: 0,\n },\n house: {\n components: {},\n count: 0,\n },\n pv: {\n components: {},\n count: 0,\n },\n };\n\n Object.entries(mappings).forEach((mapping: any) => {\n const count = Math.floor(Math.random() * 10) + 1;\n for (let i = 0; i < count; i++) {\n const name = `${mapping[0]}${i + 1}`;\n mappings[mapping[0]].components[name] = {};\n }\n mapping[1].count = count;\n });\n return mappings;\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n const filteredSystems = Object.entries(this.mockSystemsMappings)\n .filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1].count));\n return filteredSystems.map((el: any) => {\n return defineInstancesGroups(el, this.systemsInstancesSplitBy, '', this.mockSystemsMappings);\n }).filter((system: any) => system?.[1].length);\n }\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n charge_station: {\n power: { min: undefined, max: undefined },\n },\n electric_heating: {\n power: { min: undefined, max: undefined },\n },\n heating_pump: {\n power: { min: undefined, max: undefined },\n },\n big_consumer: {\n power: { min: undefined, max: undefined },\n },\n };\n }\n\n /**\n * House system options data\n */\n get houseConsumptionPowerVariablesList() {\n return Object.values(this.mockSystemsMappings.house.components)\n .map((instance: any) => instance.power)\n .filter((variable: string) => variable);\n }\n get houseConsumptionPowerVariablesExpression() {\n return this.houseConsumptionPowerVariablesList.join('+');\n }\n get houseChartOptions() {\n return {\n calculation: {\n aggregations: [...this.houseConsumptionPowerVariablesList].fill('avg'),\n expression: `max(${this.houseConsumptionPowerVariablesExpression}, 0)`,\n },\n name: 'House Consumption',\n scaling: {\n min: undefined,\n max: undefined,\n },\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n };\n }\n\n /**\n * Systems options data\n */\n get systemsChartOptions() {\n if (!this.currentChart.instances.length) return [];\n\n const arr2d = this.currentChart.instances.map((instance: string) => {\n return this.systemsVars[this.currentChart.system as string].map((variable: string) => {\n return {\n calculation: {\n aggregations: ['avg'],\n expression: `max(${getVariableValue(this.mockSystemsMappings, this.currentChart.system as string, instance, variable)}, 0)`,\n },\n name: getChartSystemInstanceName(this.mockSystemsMappings, this.currentChart.system as string, instance, variable),\n scaling: this.systemsScaling[this.currentChart.system as string][variable],\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n };\n });\n });\n return arr2d.flat();\n }\n\n /**\n * Creates an understandable object for the graphs component\n */\n get currentChartData() {\n const chartOptions = [this.houseChartOptions, ...this.systemsChartOptions];\n return {\n title: null,\n data: {\n chartTitle: '',\n chartWidth: null,\n chartHeight: 600,\n chartWrapperHeight: 750,\n chartData: {\n data: { chartOptions },\n },\n navigationItemsToExclude: ['live', 'hour'],\n },\n };\n }\n\n get showCurrentChartData() {\n return this.currentChartData?.data?.chartData?.data?.chartOptions?.length;\n }\n\n handleCurrentChart(params: {system: string; arr: string[]}) {\n this.currentChart = { system: params.system, instances: params.arr };\n this.reRenderKey += 1;\n }\n\n /**\n * Init what system chart will load when open page.\n */\n initFirstSystemByDefault() {\n const filtered: any = this.systemSchema.filter((el: any) => el[1].length);\n this.currentChart = filtered.length\n ? {\n system: filtered[0][0],\n instances: filtered[0][1][0],\n } : {\n system: null,\n instances: [],\n };\n }\n\n created() {\n this.initFirstSystemByDefault();\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumerChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumerChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowConsumerChart.vue?vue&type=template&id=4bf0fc39&\"\nimport script from \"./EnergyFlowConsumerChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowConsumerChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport EnergyFlowProductionChart\n from '@/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowProductionChart.vue';\nimport EnergyFlowConsumptionChart\n from '@/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumptionChart.vue';\nimport EnergyFlowConsumerChart from '@/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/EnergyFlowConsumerChart.vue';\n\n@Component({\n components: {\n EnergyFlowProductionChart,\n EnergyFlowConsumptionChart,\n EnergyFlowConsumerChart,\n },\n})\nexport default class EnergyFlow extends Vue {\n @Prop() scaling!: any;\n\n tab = null\n\n get items() {\n return [\n { title: this.$t('mlModel.EMS.charts.chartDifference.energyFlow'), view: 'EnergyFlowProductionChart' },\n { title: this.$t('mlModel.EMS.charts.chartDifference.energyFlowConsumer'), view: 'EnergyFlowConsumerChart' },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ded5cbe6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ded5cbe6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ded5cbe6\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=382ce9a6&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Switch2VBase.vue?vue&type=style&index=0&id=58733c80&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"d-flex dialog-shape device-background\"},[_c('div',[(_vm.periodName === 'hour')?_c('HourPicker',{ref:\"hourPicker\",attrs:{\"calendar-min\":_vm.calendarMin,\"calendar-max\":_vm.calendarMax},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}):_vm._e(),(_vm.periodName !== 'hour')?_c('DefaultCalendar',{attrs:{\"period-name\":_vm.periodName,\"calendar-min\":_vm.calendarMin,\"calendar-max\":_vm.calendarMax},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}):_vm._e()],1),_c('div',{staticClass:\"ml-4 d-flex flex-column align-items-stretch\",staticStyle:{\"width\":\"270px\"}},[_c('v-list',{staticClass:\"flex-grow-1 device-background\"},[_vm._l((_vm.formattedDates),function(item,index){return [_c('v-list-item',{key:index},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(item)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleRemoval(index)}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"red\"}})],1)],1)],1),(index !== _vm.formattedDates.length - 1)?_c('v-divider',{key:`d${index}`}):_vm._e()]})],2),_c('v-btn',{attrs:{\"disabled\":_vm.dates.length >= _vm.dateSelectionLimit,\"color\":\"deviceBackground\"},on:{\"click\":function($event){return _vm.addCurrentDate()}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.chartsCalendar.confirmDate'))+\" \")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport HourPicker from '@/ui/components/devices/charts/components/HourPicker.vue';\nimport DefaultCalendar from '@/ui/components/devices/charts/components/DefaultCalendar.vue';\nimport { formatDate, toSecondsSinceEpoch } from '@/utils/utilsFunctions';\nimport moment from 'moment';\n\n@Component({\n components: {\n HourPicker,\n DefaultCalendar,\n },\n})\nexport default class MultiSelectionCalendar extends Vue {\n @Prop({ default: null }) periodName!: any;\n @Prop({ default: null }) calendarMin!: any;\n @Prop({ default: null }) calendarMax!: any;\n\n readonly dateSelectionLimit = 4;\n date: any = null;\n dates: Date[] = [];\n\n @Watch('dates')\n onDateChange() {\n this.$emit('input', this.datesInS);\n this.date = undefined;\n }\n\n addCurrentDate() {\n if (this.date) {\n const date = new Date(\n (this.date instanceof Array\n ? this.date[0]\n : this.date) * 1000,\n );\n\n // check if date not already contained in list\n if (this.dates.find(d => d.getTime() === date.getTime()) === undefined) {\n // date not contained -> add\n this.dates.push(date);\n }\n }\n // reset date+time on hour picker if it is defined\n (this.$refs.hourPicker as any)?.reset();\n }\n\n get formattedDates(): string[] {\n return this.dates.map(d => {\n let format;\n switch (this.periodName) {\n case 'hour': format = 'HH:mm DD.MM.yyyy'; break;\n case 'month': format = 'MM.yyyy'; break;\n case 'year': format = 'yyyy'; break;\n }\n\n if (this.periodName === 'week') {\n // show \"week_start - week_end\"\n return `${formatDate(d)} - ${formatDate(moment(d).isoWeekday(7).toDate())}`;\n } else {\n return formatDate(d, format);\n }\n });\n }\n\n get datesInS(): number[] {\n return this.dates.map(d => toSecondsSinceEpoch(d) ?? 0);\n }\n\n handleRemoval(index: number) {\n this.dates.splice(index, 1);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectionCalendar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiSelectionCalendar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultiSelectionCalendar.vue?vue&type=template&id=31e81de4&scoped=true&\"\nimport script from \"./MultiSelectionCalendar.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultiSelectionCalendar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MultiSelectionCalendar.vue?vue&type=style&index=0&id=31e81de4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31e81de4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=style&index=0&id=5ec79ffc&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialog.vue?vue&type=style&index=0&id=446ab6b9&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB+CAMAAAAEPwbjAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC7lBMVEXy8vIWNYLU//9bFhZvb29+fn58fHz///9wcHAWFhb//6s1FhYWFjX/1IKrWxaC1P/l5eUYGBkzMzMWW6uXl5c1gtVbq/9zcXHa2tr/q1sjIyMWGCH//9Th4eGBgYGYmJiCNRYoKCijo6M4ODhwcHVBQUGdnZ0jGBZcXFzt7e1XV1fq6ur4//////kWImj8/Pzz8/P29vbu8fGLi4uUlZW8vLwfHR+xsbHy8u4ZFhbBwcF5c3EuLi6UcnCq/f+PQhgWFlrHx8cbGxv/+tB6e3tjY2P/+eVwcIF3ianUgza34/b//+3w+v+4+f/4rFvz1qXLy8utra3W1tZVVVWw1O9wk7+SvvFOnO3y8r///+Hw79wYFipFFhbL4/Di8fTFxcV8p9Rwf6en1/KBcHBLS0tFLyIYOXT6+/obJkzOzs6/k3CmpqZyeo13d3aFhYV6msbe/f/y8tSRWTylfXDX8vL//7z32JigUhupWyTYqICMfHLjyqjHmXMZHyZap+hwcX6k2fiX0fJQJxw8Y6Q8IxuCOhlQl9ZBjuK7///5pFUZITjSmVXZpGgrHhpzxP/Q+P/8889ouP4yT4ifn58XQo9oIBbq6ObSsI+ff3Pw5MbA6/+axvCXu9m7l36Jd3DhtY35umr/4o+5jWr17sleotFwdI+ze0cWLXXz3LUWGUT/68C85fvn//8mPGOS4P8uPG6/ilQuR3n/7pxmRTDG+/+jxuHxx5S+roxcLxw8WYd/jZd1eXv/+PBttetwdIHD4fb55bzvoFAwX5c+JhxfotwuabZzOhnH8fbfmEkXTpyjaT3/9uGVTyZJkuUzgM37yHZ9Nhd1KxYZX6+6aCQ1grDj4+O8zt/fzryFpMrCpZeCRyRwdZvh4ePOvLyCz/lVQniQbYKu3/Kuu6SXkIKx2/mWnpDSpHzKoX98cHCtwaieln4fOFmNr8P5z5DOfDPL16K1ZSD/2YY1KRaYpKRXbIKNd2HK35C1+dRQoO8yQ0N8mKpTAAAHjUlEQVR42u2cd3QUVRTGB9nNzCOAToobs2QhjU3vgTRFJIGAgRBQUQgEMRA6WFBQNIBIpElRAcECRIqCAiJNsCAqqCggrL33ir39530zs9md7JqjHM/Zt+b7/th5Mztlz/3t9+69s8lIMiSQJLldW3UIH6X/wNqc5Xnjih4PPfr3h/WeObqQ3bzv0zO+bsunb9U42KbHabSu2oSjRV08vf2DFemVe9u//++v2K5tOMLeEo4/nWSP9JMLfvrHOA7qhnrsg9XA8Z/jONWD7LGu+lQXwlG508nsj8yidzrSWofQW7bPZQueJFoL5xrbuTluuPACz7y1cTGzL1/N4/zqotGFw+al8WO/3+lUly+h42iTfUc/2u/ha5zs5lundghljNuQn15eqm+TvS4EHJFrnX+kn8z4nXBcvH35YXnp0Yzb3TjUZ5/ufQOtHrQ/l7b06PNbtYOm3X3XVs+8NXZ22jMvZPTnSWjHJXWneU7oqI4dWXEstEGWB3Sbl9Z4nHD3um1Mv/Tdo+e53cFPz7fJ18+5a6rXhYAj8ooem36rbujUxT1Zndf+bDeOV+i7Pp9W+3r5wTTfdAgdYry2a/t8Gh+dS8cSHbnT8XDK2BRr+djiZfIA+zLTwfz0A4bdQSP+6rkQcETKa52xGf11HJt/3Rm72IPjXIPOWue2b0f4w6GhI7+8pp3IjYOfqVOXcD6B8RxT3eDh6YVD37auOtLrQsARSV9i1iBrOI44x/7y80u+ONIXzWXqN7PdEX2xwn2CvloI9dD74viRZwpSpNzRDw59Gz8OOLxxyGu39ddwTLv7xa2mycorSo3rD/E5SGsaPJP8/Bbd8Vh1pLHfaT84TsMd/nHI2je8zVn6yny/OLwGR+y38EWvD7c05Y4GvzimnQhP0w/R84RhJHPuoKwCHH5x9DoxZsnLG52+OBZS/fTydMMdcqcevA3c/DZR8a6sfHHIfYc9WHFg4Y4t7ipqHlXJbZYcqPCprIDDDw75uzmF9lsX+uLo9dJiT99BzcZ6ukli3zarqe/YIvvHkb7oUKG64Lk0ve+w76P+5Pq9heQHr75jiQwcTTgg4ICAAzgg4AAOCDiAAwIO4IAChiMzO0uCAqys7EwdRx1iIYbqOI5MxEEUkT+kbIRBFGUTDuQNcfIH4YDEEXAABwQcwAEBB3BAZ6AVDoutO3CIIoeFlA8cYiiK07BEAIcY/beOozNwCKJcjmMgcAiinDtLreOQylHoQv7dMRnuEEYRyB0CyYXKCn0HhK48OGYrh0WpQipHoQv506DOE1zAIYqqKHVMigEOMZSqVVZdgQOFLuSjnEkcR3fgEEQ9bRZLbg5wiKLkGBcKXfQdEHAAB/Tf41gRo+ndHMQm8DgKVhYruiZeguAEGsc9q5QmJbw5AuEJJA7dGn1G0XAGDBJoHNwaEz++ysBx5Z5iJWEKDBIgHLo19k+yKftLS0sJRWkxDBI4HJefr/jTpQhRoHA8ERER8YktgS9uVJ7K0xbBiSOE/Q9wXEaLyqbccR0txguCI2pwN3ZRbZSx1tkIdmoSbR0c1WzojaM747/vxLFEvhKfGIw46ndRF/iFUDiiLorOlwZGR2t3QFOroo1gx0f3lAbFa1u9ht44klkZvVqYmszHluDBkTX0vfzhGg4jaWg43sh/XYhPqf1Mk6d91UP48/UNk/C/4StiNtPQPFklhmmsWD53yoQgcofxKIwH3Dm8z0eifdQ4FmIKdhLTzBAbbxp69khRa8gYLsnFJjMH3+YKupskV1+rjPReiqQ8FmfCERarG0A1DZv2KFOLJGkC6062yI+vlaTasKC7SSJVflk/Sht8rs9WAim5pJvLjEOPbwozDd17hKgcnotNopFk6SZJqiXocBTMVJRySiEFN92oJKwR65OmuM3xj3DEGXuHJUq1tTTP1dQ0HR48OBp5L/jUvUPvs9FyilD32JNYbrMytsXJSjWiX6ZKaogUxXJzWVSw4ch6wLbhq/sVhWCU77Ft6CfQTJXC8po3ee78nWgaGnuElFEiJ3WlPE5lWUlKSokUbDgK1iuX5tzDHTJlhNGHiKHUeLXKp+d2V7chpqF7j+SwsGTesrASRsuy2NiyYMNRsPmqhDWUNbjKh89UykW5nxtTEl3k5xaI1vuVeNrAElMbWKOmaI7RWvI85uWuYHHHDGXD1zalXssd9Z8V9xklTMdhKMSEQ78zEtNs2LSHQyOQpDXj4xgbF2w4qNlQ3JXV/Xw4UoICh2M3pfD6e/V6Siuu3jmMAAUMR5bRdBiJhAwiWuvRutwx3txqNK4SqLZqlThMyYJSCXAEEMfKiF3ebw19KwK/lAcQR7PHTePp0wHuOyDgaLWa4HAMBA5RNNBqtTqAQxQVEQ5rMnAIohWTrdaucIcwOie/Zw5woLKCfOVyUOrAA5REURTP5Mgdoig1FziEEnAABwQcwAGdQSp3xAGHQIWuNRc4BGoDrXnAIbKAAzgg4AAOCDiAAwIO4ICAAzgg4ICAAziglnHg/ziEURbhyEYYRFE24chEGERRJuGQ6xAHMVQncxxyZjbyR+DzRjZ5Q8MBiSPgAA4IOIJCfwFUxbw1Ogum5QAAAABJRU5ErkJggg==\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-modal-window-view\"},[_c('div',{staticClass:\"system-modal-window-view-overview\",on:{\"click\":_vm.handleDialog}},[_vm._t(\"preview\")],2),(_vm.enableSystemSettings)?[_c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":_vm.windowWidth,\"disabled\":\"\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[(_vm.dialog)?_c('div',{staticClass:\"system-modal-window-view-body\"},[_c('div',{staticClass:\"header\"},[_c('h2',[_vm._v(_vm._s(_vm.systemTitle))]),_c('div',[_c('v-btn',{attrs:{\"width\":\"30\",\"height\":\"30\",\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"content\"},[_vm._t(\"content\")],2)]):_vm._e()])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport VueI18n from 'vue-i18n';\n\n/**\n * Component that represent modal window with additional form\n * for Preview.vue, PreviewMQTTControls.vue\n */\n@Component\nexport default class SystemModalWindowView extends Vue {\n @Prop({ default: 'Title' }) systemTitle!: string | VueI18n.TranslateResult;\n @Prop({ default: '1200' }) windowWidth!: number | string;\n @Prop({ default: true }) isCallContentClickEvent!: boolean;\n @Prop({ default: true }) enableSystemSettings!: boolean;\n\n dialog = false\n\n @Watch('dialog')\n onDialogChange(val: boolean) {\n this.$emit('handleSystemModalWindowContent', val);\n }\n\n handleDialog() {\n this.dialog = this.isCallContentClickEvent;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemModalWindowView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemModalWindowView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemModalWindowView.vue?vue&type=template&id=d965a678&scoped=true&\"\nimport script from \"./SystemModalWindowView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemModalWindowView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemModalWindowView.vue?vue&type=style&index=0&id=d965a678&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d965a678\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=style&index=0&id=293e2a6c&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-preview-circle\"},[(_vm.previewTitle)?_c('div',{class:['ems-preview-circle-title', _vm.previewTitlePosition],attrs:{\"data-testid\":\"circle-title\"}},[_vm._v(\" \"+_vm._s(_vm.previewTitle)+\" \")]):_vm._e(),(_vm.systemCount)?_c('div',{staticClass:\"system-count\"},[_c('v-btn',{staticStyle:{\"z-index\":\"100\"},attrs:{\"color\":\"lynusText\",\"outlined\":\"\",\"fab\":\"\",\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.systemCount)+\" \")])],1):_vm._e(),(_vm.errorWarningLocal)?_c('ShowEventBaseGroup',{attrs:{\"warning-state\":_vm.errorWarningLocal}}):_vm._e(),_c('RotatingBacklight',{attrs:{\"color\":_vm.rotatingBacklightColor,\"no-data\":_vm.noData}}),_c('div',{staticClass:\"ems-preview-circle-value\"},[(_vm.showActualValue && _vm.isEnergyFlow && !_vm.empty)?_c('div',{staticClass:\"pt-1\"},[_c('span',{style:(_vm.highlight(1))},[_vm._v(_vm._s(_vm.secondValueUnit.valueFormatted))]),_c('span',{staticClass:\"pl-1\",style:(_vm.highlight(1))},[_vm._v(_vm._s(_vm.secondValueUnit.unit))])]):_vm._e(),(!_vm.isBatterySOC)?_c('lynus-icon',{attrs:{\"name\":_vm.previewIcon,\"color\":\"theme\",\"size\":_vm.previewIconSize}}):_vm._e(),(_vm.isBatterySOC)?_c('BatteryLevel',{attrs:{\"battery-state\":_vm.batterySOCValue}}):_vm._e(),(_vm.showActualValue && !_vm.empty)?_c('div',{staticClass:\"pt-1\"},[_c('span',{style:(_vm.highlight(2))},[_vm._v(_vm._s(_vm.firstValueUnit.valueFormatted))]),_c('span',{staticClass:\"pl-1\",style:(_vm.highlight(2))},[_vm._v(_vm._s(_vm.firstValueUnit.unit))])]):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport BatteryLevel from '@/ui/components/devices/components/EnergyParts/BatteryLevel.vue';\nimport ShowEventBaseGroup from '@/ui/components/devices/mpc/base/ShowEventBase.vue';\nimport Unit from '@/utils/unit/unit';\nimport tinycolor from 'tinycolor2';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\n\n/**\n * Component that represent circle system view.\n * Used in EMS, EnergyView, Setpoint Optimizer\n */\n@Component({\n components: {\n RotatingBacklight,\n BatteryLevel,\n ShowEventBaseGroup,\n },\n})\nexport default class Preview extends Vue {\n @Prop({ default: 0 }) actualValue!: number;\n @Prop({ default: null }) secondDirectionValue!: number;\n @Prop({ default: false }) isEnergyFlow!: boolean;\n @Prop({ default: null }) previewTitle!: string;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n @Prop({ default: true }) showActualValue!: boolean;\n @Prop({ default: () => kiloWattUnit }) actualValueUnit!: Unit;\n @Prop({ default: 'photovoltaic' }) previewIcon!: string;\n @Prop({ default: '30' }) previewIconSize!: string | number;\n @Prop({ default: false }) isBatterySOC!: boolean;\n @Prop({ default: 92 }) batterySOCValue!: number;\n @Prop({ default: '#111616' }) rotatingBacklightColor!: string;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: null }) errorWarningLocal!: any;\n @Prop({ default: false }) noData!: boolean;\n @Prop({ default: null }) highlightValue!: number;\n\n get empty() {\n return this.actualValue === 0 && this.actualValueUnit.unit === '';\n }\n\n get isDark() {\n return (this.$vuetify.theme as any).isDark;\n }\n\n get secondValueUnit() {\n return this.actualValueUnit?.unitForValue(this.secondDirectionValue);\n }\n\n get firstValueUnit() {\n return this.actualValueUnit?.unitForValue(this.actualValue);\n }\n\n get highlightColor() {\n return (this.isDark\n ? tinycolor(this.rotatingBacklightColor).lighten().toHexString()\n : this.rotatingBacklightColor);\n }\n\n highlight(direction: number) {\n if (this.highlightValue === null || this.noData) return {};\n if (direction === this.highlightValue) {\n return {\n transition: 'all 0.5s',\n color: this.highlightColor,\n textShadow: `-0.3px -0.3px 0 ${this.highlightColor}, 0.3px -0.3px 0 ${this.highlightColor}, -0.3px 0.3px 0 ${this.highlightColor}, 0.3px 0.3px 0 ${this.highlightColor}`,\n '-webkit-transition': 'all 0.5s',\n '-moz-transition': 'all 0.5s',\n '-o-transition': 'all 0.5s',\n };\n } else {\n return {\n transition: 'color 0.5s',\n };\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Preview.vue?vue&type=template&id=1c53b8b8&scoped=true&\"\nimport script from \"./Preview.vue?vue&type=script&lang=ts&\"\nexport * from \"./Preview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Preview.vue?vue&type=style&index=0&id=1c53b8b8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c53b8b8\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageSystemsDecreaseModal.vue?vue&type=style&index=0&id=336c36be&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=style&index=0&id=64606cd0&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=style&index=0&id=79add4be&prod&lang=scss&\"","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { isNil, cloneDeep } from 'lodash';\nimport { Validation } from '@/ui/mixins/validation';\nimport BasicControl, { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\nimport {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { calculateMinPowerPercent } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport { IChargeStationMinPowerSelectedOption } from '@/types/common.types';\nimport { IProject } from '@/types/project.types';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\nexport enum ChargeModeOptionsKeys {\n full = 'full',\n sun = 'sun',\n minimum = 'minimum',\n}\n\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ChargeStationMinPowerSelection extends mixins(BasicControl, Validation) {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() label!: string;\n @Prop() inputUnit?: string;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() system!: EnergyCircleType;\n @Prop() systemInstance!: string;\n @Prop() inputMin?: number;\n @Prop() inputMax?: number;\n @Getter('projects/project') project!: IProject;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n\n timer?: NodeJS.Timeout;\n\n selectedKey: ChargeModeOptionsKeys | null = null;\n inputValue: number | null = null;\n\n value: number | null = null;\n\n get state() {\n return this.measurements.get(this.systemInstanceData.min_power) as number;\n }\n\n get dropDownInputSelectOptions(): IChargeStationMinPowerSelectedOption[] {\n return [\n { key: ChargeModeOptionsKeys.full, value: 100, text: this.$t('mlModel.EMS.systems.charge_station.settings.fullCharge') },\n { key: ChargeModeOptionsKeys.sun, value: 0, text: this.$t('mlModel.EMS.systems.charge_station.settings.sunCharge') },\n {\n key: ChargeModeOptionsKeys.minimum,\n value: 0,\n text: this.$t('mlModel.EMS.systems.charge_station.settings.minimumCharge'),\n component: 'VTextField',\n },\n ];\n }\n\n get inputRules() {\n const min = typeof this.inputMin === 'number' ? this.fieldMoreThan(this.inputMin) : true;\n const max = typeof this.inputMax === 'number' ? this.fieldLessThan(this.inputMax) : true;\n return [min, max];\n }\n get buttonDisabled() {\n const isInputValueNumber = typeof this.inputValue === 'number';\n if (!isInputValueNumber) return true;\n const checkMin = typeof this.inputMin !== 'number' || this.inputMin <= (this.inputValue as number);\n const checkMax = typeof this.inputMax !== 'number' || this.inputMax >= (this.inputValue as number);\n return !(checkMin && checkMax);\n }\n\n get systemInstanceData() {\n return this.deviceData.data.meta.controllerMappings?.[this.system].components?.[this.systemInstance];\n }\n\n get selectedOption() {\n return this.dropDownInputSelectOptions\n .find((opt: IChargeStationMinPowerSelectedOption) => opt.key === this.selectedKey);\n }\n get inputFieldVisible() {\n return !!this.selectedOption?.component;\n }\n\n get maxPowerVariable() {\n return this.systemInstanceData?.max_power;\n }\n get maxPowerValue(): number {\n return Number(this.measurements.get(this.maxPowerVariable));\n }\n\n // if this.value was successfully set to this.state,\n // show notification about successful sending + store selected option data in EMS object\n @Watch('state')\n async onStateChange(val: number) {\n // check if we got correct state update after sending\n if (this.sendingState === SendingState.Sending && val === this.value) {\n // successful send\n this.onSendSuccess();\n await this.sendHTTP({\n minimum_power_selection: this.selectedKey,\n current: this.inputValue,\n });\n clearTimeout(this.timer);\n }\n }\n\n async sendMQTT() {\n this.onSendStart();\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n const currentValue = this.measurements.get(this.systemInstanceData.min_power);\n if (currentValue === this.value) {\n this.onSendSuccess();\n return;\n }\n this.send([{ v: this.value as number, n: this.systemInstanceData.slider_min_power, u: '' }]);\n\n // if after 30 seconds this.state not changed\n // show notification about error sending + reset value to previous state value\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n this.value = this.state;\n // this.selectedKey = stored selected key\n this.onSendError();\n }, defaultFeedbackTimeoutMilliSeconds);\n }\n async sendHTTP(value: any) {\n const copy = cloneDeep(this.deviceData);\n copy.data.meta.controllerMappings[this.system].components[this.systemInstance] = {\n ...copy.data.meta.controllerMappings[this.system].components[this.systemInstance],\n ...value,\n };\n this.updateDevice({ device: copy, skipReport: false });\n }\n\n // Send option value only when there are no additional input components required to set the value\n async onSelectChange(option: IChargeStationMinPowerSelectedOption) {\n const hasComponent = !!option.component;\n // this.inputValue = null;\n this.selectedKey = option.key;\n // if selected option not has special field to set value, sends mqtt records\n if (!hasComponent) {\n this.value = Number(option.value);\n await this.sendMQTT();\n } else {\n // if min power selected, set input value to current value saved in the EMS object or set to 0\n if (option.key === 'minimum') {\n this.inputValue = this.deviceData.data.meta.controllerMappings[this.system].components[this.systemInstance].current ?? option.value;\n }\n }\n }\n\n async onInputClick() {\n if (!isNil(this.inputValue)) {\n this.value = calculateMinPowerPercent(Number(this.inputValue), this.maxPowerValue);\n if (this.value === this.state) {\n await this.sendHTTP({\n minimum_power_selection: this.selectedKey,\n current: this.inputValue,\n });\n } else {\n await this.sendMQTT();\n }\n }\n }\n\n created() {\n if (!isNil(this.systemInstanceData?.minimum_power_selection)) {\n this.selectedKey = this.systemInstanceData.minimum_power_selection;\n }\n if (!isNil(this.systemInstanceData?.current)) {\n this.inputValue = this.systemInstanceData.current;\n }\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"width\":\"100% !important\"}},[_c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-select',{staticClass:\"pt-0 mt-0\",attrs:{\"value\":_vm.selectedKey,\"items\":_vm.dropDownInputSelectOptions,\"item-value\":\"key\",\"item-text\":\"text\",\"return-object\":\"\",\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"label\":_vm.label,\"disabled\":_vm.isDisabled},on:{\"change\":function($event){return _vm.onSelectChange($event)}}}),(_vm.inputFieldVisible)?_c('div',{staticClass:\"mt-2 d-flex\"},[_c('v-text-field',{staticClass:\"drop-down-text-field\",attrs:{\"color\":\"accent\",\"rules\":_vm.inputRules,\"dense\":\"\",\"solo\":\"\",\"flat\":\"\"},model:{value:(_vm.inputValue),callback:function ($$v) {_vm.inputValue=_vm._n($$v)},expression:\"inputValue\"}}),(_vm.inputUnit)?_c('div',{staticClass:\"unit px-4 pt-1\"},[_vm._v(_vm._s(_vm.inputUnit))]):_vm._e(),_c('v-btn',{attrs:{\"disabled\":_vm.buttonDisabled,\"depressed\":\"\",\"color\":\"accent\"},on:{\"click\":_vm.onInputClick}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargeStationMinPowerSelection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargeStationMinPowerSelection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChargeStationMinPowerSelection.vue?vue&type=template&id=72031e03&\"\nimport script from \"./ChargeStationMinPowerSelection.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChargeStationMinPowerSelection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChargeStationMinPowerSelection.vue?vue&type=style&index=0&id=72031e03&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonEnergyPriceSettings.vue?vue&type=style&index=0&id=64c0d242&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=247b47a1&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowView.vue?vue&type=style&index=0&id=45ea2bf4&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"width\":\"100% !important\"}},[_c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-select',{attrs:{\"items\":_vm.items,\"item-value\":\"value\",\"item-text\":\"name\",\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"label\":_vm.label,\"disabled\":_vm.isDisabled},on:{\"change\":_vm.handleValue},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),(_vm.enableSendButton)?_c('div',[_c('v-btn',{attrs:{\"color\":_vm.sendButtonColor,\"elevation\":\"0\"},on:{\"mousedown\":_vm.sendVal}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent DropDown Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class DropDownBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() label!: string;\n @Prop({ default: false }) isOutput!: boolean;\n @Prop({ required: true }) textMapping!: any; // of format {0: \"Entry0\", 1: \"Entry1\", ...}\n @Prop({ default: false }) enableSendButton!: boolean;\n @Prop({ default: false }) enableVariableButtonColor!: boolean;\n\n selectedKey!: string;\n selectedForButtonSend!: any;\n items: any = null;\n\n currentValue: any = null;\n\n @Watch('textMapping')\n onMappingChange() {\n this.items = this.handleTextMappings();\n }\n\n get selected(): string {\n const textKeys = Object.keys(this.textMapping);\n const value = this.measurements.get(this.mappingsClean.targetValue);\n this.currentValue = value;\n\n if (value === undefined || !textKeys.includes(value.toString())) {\n // invalid value from backend\n if (this.selectedKey === undefined) {\n // eslint-disable-next-line prefer-destructuring\n this.selectedKey = Object.keys(this.textMapping)[0];\n return this.selectedKey;\n }\n } else {\n // valid value from backend\n this.selectedKey = value.toString();\n }\n return this.selectedKey;\n }\n set selected(value: string) {\n // result contains the selected obj of the text Mapping format: {name:string,value:number}\n const result = this.items.filter((object: any) => {\n return object.value === value;\n });\n this.selectedForButtonSend = value;\n }\n\n get sendButtonColor() {\n // default way Button only has one color\n const isStateEqualToOne = this.measurements.get(this.mappingsClean.state) === 1;\n if (isStateEqualToOne || !this.enableVariableButtonColor) return 'accent';\n else return '#4b6978';\n }\n\n handleTextMappings() {\n return Object.keys(this.textMapping).map((key: string) => {\n return {\n name: this.textMapping[key],\n value: key,\n };\n });\n }\n handleValue() {\n if (!this.enableSendButton && !this.isOutput) {\n this.onSendStart();\n this.send([{ v: parseInt(this.selectedForButtonSend, 10), n: this.mappingsClean.targetValue, u: '' }]);\n this.onSendSuccess();\n }\n }\n\n sendVal() {\n this.onSendStart();\n this.send([\n { v: parseInt(this.selectedForButtonSend, 10), n: this.mappingsClean.targetValue, u: '' },\n ]);\n this.onSendSuccess();\n }\n\n created() {\n this.items = this.handleTextMappings();\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.targetValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDown.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDown.vue?vue&type=template&id=32f25928&scoped=true&\"\nimport script from \"./DropDown.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDown.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32f25928\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"print-report\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.printTitle'))+\":\")]),_c('div',[_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageReport.startDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar},model:{value:(_vm.printStartDate),callback:function ($$v) {_vm.printStartDate=$$v},expression:\"printStartDate\"}})],1),_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageReport.endDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar},model:{value:(_vm.printEndDate),callback:function ($$v) {_vm.printEndDate=$$v},expression:\"printEndDate\"}})],1),_c('div',{staticClass:\"d-flex pt-6\"},[_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"items\":_vm.formatOptions,\"item-text\":\"state\",\"item-value\":\"abbr\",\"label\":_vm.$t('modals.manageReport.textFields.formatOptionField')},model:{value:(_vm.printFormat),callback:function ($$v) {_vm.printFormat=$$v},expression:\"printFormat\"}}),_c('v-btn',{staticClass:\"ml-6\",attrs:{\"disabled\":!_vm.isPrintDatesValid,\"loading\":_vm.printReportLoader},on:{\"click\":_vm.downloadReport}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.downloadReport'))+\" \")])],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Action, Mutation } from 'vuex-class';\nimport { cloneDeep } from 'lodash';\nimport { IPrintReportPayload } from '@/types/report.types';\n\n@Component\nexport default class PrintReport extends Vue {\n @Prop() report!: any;\n @Mutation('app/setReport') setReport!: (payload: any) => void;\n @Action('report/printReport') printReport!: (payload: IPrintReportPayload) => Promise;\n\n printReportLoader = false;\n printFormat = '';\n printStartDate = '';\n printEndDate = '';\n maxDateCalendar = '';\n\n get formatOptions() {\n return this.report.type === 'zev'\n ? [\n { state: 'pdf', abbr: 'pdf' },\n { state: 'xml', abbr: 'xml' },\n ] : [\n { state: 'json', abbr: 'json' },\n { state: 'pdf', abbr: 'pdf' },\n { state: 'csv', abbr: 'csv' },\n ];\n }\n\n get isPrintDatesValid() {\n return !!this.printStartDate && !!this.printEndDate && !!this.printFormat;\n }\n\n updateMaxDateCalendar() {\n const yourDate = new Date();\n let currentTimeStamp: any = Date.now();\n const timeZoneOffset = (yourDate.getTimezoneOffset() * -1) / 60;\n currentTimeStamp += (timeZoneOffset * 3600000);\n\n this.maxDateCalendar = new Date(currentTimeStamp).toISOString().split('.')[0] as string;\n }\n\n prepareDataStringFileType(format: string, data: any) {\n switch (format) {\n case 'json':\n return {\n dataStr: `data:text/json;charset=utf-8,${encodeURIComponent(JSON.stringify(data))}`,\n fileType: format,\n };\n case 'csv':\n return {\n dataStr: `data:text/plain;charset=utf-8,${encodeURIComponent(data)}`,\n fileType: format,\n };\n case 'pdf': {\n const file = new Blob([data]);\n return {\n dataStr: URL.createObjectURL(file),\n fileType: format,\n };\n }\n case 'xml':\n return {\n dataStr: `data:text/xml;charset=utf-8,${encodeURIComponent(data)}`,\n fileType: format,\n };\n default: return { dataStr: '', fileType: '' };\n }\n }\n\n async downloadReport() {\n this.printReportLoader = true;\n const dateStart = new Date(this.printStartDate);\n const dateEnd = new Date(this.printEndDate);\n const unixStart = Math.trunc(dateStart.getTime() / 1000);\n const unixEnd = Math.trunc(dateEnd.getTime() / 1000);\n\n const response = await this.printReport({\n project_id: this.$route.params.id,\n report_id: this.report.id,\n format: this.printFormat,\n start: unixStart,\n end: unixEnd,\n });\n\n if (this.printFormat === 'pdf') {\n const buffer = cloneDeep(response);\n let bufferContent = new TextDecoder().decode(buffer);\n bufferContent = bufferContent.replace(/\\s/g, '');\n const isNoData = bufferContent === 'nodatafortimeperiod';\n if (isNoData) {\n this.setReport({\n type: 'info',\n message: this.$t('modals.manageReport.noDataInFile') as string,\n value: true,\n });\n this.printReportLoader = false;\n return;\n }\n }\n\n // creates link to download report\n const downloadAnchorNode = document.createElement('a');\n const { dataStr, fileType } = this.prepareDataStringFileType(this.printFormat, response);\n\n // add attributes for download link\n downloadAnchorNode.setAttribute('href', dataStr);\n downloadAnchorNode.setAttribute('download', `${this.report.name}.${fileType}`);\n document.body.appendChild(downloadAnchorNode);\n downloadAnchorNode.click();\n downloadAnchorNode.remove();\n\n this.printReportLoader = false;\n }\n\n created() {\n this.updateMaxDateCalendar();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrintReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrintReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PrintReport.vue?vue&type=template&id=0d6f52f0&\"\nimport script from \"./PrintReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./PrintReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper ems-schema\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageMLModel.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{staticClass:\"stage-1\",class:[_vm.deviceData.data.type === 'EnergyIO' ? 'd-flex flex-column pt-12' : 'fill-height'],attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\"},model:{value:(_vm.mlModel.name),callback:function ($$v) {_vm.$set(_vm.mlModel, \"name\", $$v)},expression:\"mlModel.name\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":_vm.deviceData.data.type === 'EnergyIO' ? 8 : 6}},_vm._l((_vm.groupsList),function(group,groupIndex){return _c('div',{key:`group-${groupIndex}`,class:{ 'd-flex justify-space-between': _vm.deviceData.data.type === 'EnergyIO' }},[_c('div',{staticStyle:{\"font-weight\":\"bold\",\"font-size\":\"20px\",\"color\":\"#6cc1fe\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.groups.${_vm.groups[group[0]].id}.title`))+\" \")]),_c('div',_vm._l((group[1].systems),function(system,systemIndex){return _c('div',{key:`system-${systemIndex}`,staticClass:\"d-flex align-center pb-2\",class:[_vm.deviceData.data.type === 'EnergyIO' ? 'd-flex justify-space-around' : 'justify-space-between']},[_c('div',{staticClass:\"d-flex\",style:(_vm.emsSelectWidth)},[(_vm.deviceData.data.type !== 'EnergyIO')?_c('div',{staticClass:\"system-title\",staticStyle:{\"width\":\"80%\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${_vm.systems[system].id}.title`))+\" \")]):_vm._e(),_c('div',{staticClass:\"ml-2\"},[(system !== 'grid' && system !== 'battery')?_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"hide-details\":\"\",\"color\":\"accent\"},nativeOn:{\"!click\":function($event){return _vm.handleSystemCountCheckbox({ ev: $event, system: system })}},model:{value:(_vm.systemsForm[system].count),callback:function ($$v) {_vm.$set(_vm.systemsForm[system], \"count\", $$v)},expression:\"systemsForm[system].count\"}}):_vm._e(),(system === 'grid')?_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"hide-details\":\"\",\"color\":\"accent\",\"disabled\":_vm.systemsForm['battery'].count === 0},nativeOn:{\"!click\":function($event){return _vm.handleSystemCountCheckbox({ ev: $event, system: system })}},model:{value:(_vm.systemsForm[system].count),callback:function ($$v) {_vm.$set(_vm.systemsForm[system], \"count\", $$v)},expression:\"systemsForm[system].count\"}}):_vm._e(),(system === 'battery')?_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"hide-details\":\"\",\"color\":\"accent\",\"disabled\":_vm.systemsForm['grid'].count === 0},nativeOn:{\"!click\":function($event){return _vm.handleSystemCountCheckbox({ ev: $event, system: system })}},model:{value:(_vm.systemsForm[system].count),callback:function ($$v) {_vm.$set(_vm.systemsForm[system], \"count\", $$v)},expression:\"systemsForm[system].count\"}}):_vm._e()],1)]),_c('div',{staticStyle:{\"width\":\"40%\"}},[_c('v-select',{key:_vm.vSelectRerenderKey,attrs:{\"value\":_vm.systemsForm[system].count,\"items\":_vm.getSystemQuantity.get(system),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.handleSystemCountSelect({ event: $event, system: system })}}})],1),_c('div',{staticClass:\"d-flex justify-end\"},[_c('ManageSystemsDecreaseModal',{ref:`system-${system}`,refInFor:true,attrs:{\"data\":_vm.systemsForm[system],\"system\":system,\"disabled\":!!_vm.systemsForm[system].count},on:{\"onManageSystemsSave\":_vm.handleManageSystemsSave,\"onManageSystemsCancel\":_vm.handleManageSystemsCancel}})],1)])}),0)])}),0)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('div',{staticClass:\"stage-2\"},[_c('div',{staticClass:\"d-flex flex-wrap justify-center\"},_vm._l((_vm.currentGroupedSystemsListWithGeneralMappings),function(group,groupIndex){return _c('div',{key:groupIndex},[(group[0] === 'ems')?[_c('v-badge',{attrs:{\"dot\":\"\",\"color\":\"error\",\"overlap\":\"\",\"offset-x\":\"10\",\"value\":!_vm.emsGeneralMappingsValidation}},[_c('NavigationTab',{attrs:{\"tab-title\":_vm.$t(`mlModel.${_vm.deviceData.data.type}.ems`),\"is-active\":_vm.currentSystem.group === 'ems'},on:{\"click\":function($event){return _vm.handleCurrentSystem({ group: group[0], system: null })}}})],1)]:[_c('v-menu',{attrs:{\"offset-y\":\"\",\"content-class\":\"manage-ems-systems-menu\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-badge',{attrs:{\"dot\":\"\",\"color\":\"error\",\"overlap\":\"\",\"offset-x\":\"10\",\"value\":_vm.systemsByGroupsValidation.get(group[0]).unFilled}},[_c('NavigationTab',_vm._g(_vm._b({attrs:{\"tab-title\":_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${group[0]}.title`),\"is-active\":_vm.currentSystem.group === group[0]}},'NavigationTab',attrs,false),on))],1)]}}],null,true)},[_c('v-list',{staticClass:\"ems-systems-navigation\",attrs:{\"max-height\":\"410\",\"dense\":\"\"}},_vm._l((group[1]),function(system,systemIndex){return _c('v-list-item',{key:systemIndex,attrs:{\"link\":\"\"},on:{\"click\":function($event){return _vm.handleCurrentSystem({ group: group[0], system })}}},[_c('v-list-item-title',{class:{ 'system-unfilled': _vm.systemsByGroupsValidation.get(group[0]).instances.get(system) }},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${group[0]}.title`))+\" \"+_vm._s(_vm.cutNumberFromString(system))+\" \")])],1)}),1)],1)]],2)}),0),(_vm.stage === 2)?_c('div',[(_vm.currentSystem.group === 'ems')?[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"mappings-title\"},[_vm._v(\"Input\")]),_c('div',_vm._l((_vm.mappingsByColumns.inputMappings),function(input,inputIndex){return _c('div',{key:inputIndex,staticClass:\"mt-2\"},[_c('div',{class:{ 'hide-optional': (!_vm.isOptionalFieldsVisible && _vm.mlModelMappings[input].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[input].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[input].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${input}.label`),\"optional\":_vm.mlModelMappings[input].optional},on:{\"datePickerCustomClearDate\":function($event){return _vm.datePickerCustomClearDate(input)}},model:{value:(_vm.controllerMainMappingsLocal[input]),callback:function ($$v) {_vm.$set(_vm.controllerMainMappingsLocal, input, $$v)},expression:\"controllerMainMappingsLocal[input]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${input}.description`))+\" \")])],1)])}),0)]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"mappings-title\"},[_vm._v(\"Output\")]),_c('div',_vm._l((_vm.mappingsByColumns.outputMappings),function(output,outputIndex){return _c('div',{key:outputIndex,staticClass:\"mt-2\"},[(!_vm.mlModelMappings[output].isDynamic)?_c('div',{class:{ 'hide-optional': (!_vm.isOptionalFieldsVisible && _vm.mlModelMappings[output].optional) }},[_c('div',{staticClass:\"optional\"},[(_vm.mlModelMappings[output].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c(_vm.mlModelMappings[output].vuetifyComponent,{tag:\"component\",attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${output}.label`),\"optional\":_vm.mlModelMappings[output].optional},model:{value:(_vm.controllerMainMappingsLocal[output]),callback:function ($$v) {_vm.$set(_vm.controllerMainMappingsLocal, output, $$v)},expression:\"controllerMainMappingsLocal[output]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${output}.description`))+\" \")])],1):_c('div',[_c('DynamicField',{attrs:{\"target-object\":_vm.controllerMainMappingsLocal[output],\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${output}.label`),\"instance-label-path\":`mlModel.${_vm.mlModel.data.type}.controllerMappings.${output}.label`,\"items-list\":_vm.variablesForComboBox,\"max-number-of-fields\":_vm.mlModelMappings[output].maxRange}})],1)])}),0)]),_c('v-col')],1)],1)]:[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"system-title\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${_vm.currentSystem.group}.single`))+\" \"+_vm._s(_vm.defineSystemNumber(_vm.currentSystem.system))+\" \")])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"mappings-title\"},[_vm._v(\"Input\")]),_vm._l((_vm.systems[_vm.currentSystem.group].mappingsByColumns.input),function(input,inputIndex){return _c('div',{key:inputIndex,staticClass:\"mt-2\"},[(!_vm.systems[_vm.currentSystem.group].mappings[input].isDynamic)?_c('div',[_c('div',{class:{\n 'hide-optional': _vm.isSystemMappingVisible({\n system: _vm.currentSystem.group,\n systemInstance: _vm.currentSystem.system,\n prop: input,\n })\n }},[_c('div',{staticClass:\"optional\"},[(_vm.isOptional(\n _vm.systems[_vm.currentSystem.group].mappings[input].optional,\n input,\n _vm.currentSystem.group,\n _vm.currentSystem.system\n ))?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${input}.label`),\"items\":_vm.variablesForComboBox,\"optional\":_vm.isOptional(_vm.systems[_vm.currentSystem.group].mappings[input].optional, input, _vm.currentSystem.group, _vm.currentSystem.system)},model:{value:(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system][input]),callback:function ($$v) {_vm.$set(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system], input, $$v)},expression:\"systemsForm[currentSystem.group].components[currentSystem.system][input]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${input}.description`))+\" \")])],1)]):_c('div',[_c('DynamicField',{ref:`dynamicInputField-${input}`,refInFor:true,attrs:{\"target-object\":_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system][input],\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.controllerMappings.${input}.label`),\"instance-label-path\":`mlModel.${_vm.mlModel.data.type}.controllerMappings.${input}.label`,\"items-list\":_vm.variablesForComboBox,\"max-number-of-fields\":_vm.systems[_vm.currentSystem.group].mappings[input].maxRange},on:{\"added\":function($event){return _vm.handleAdded('Input', input, $event)},\"deleted\":function($event){return _vm.handleDeleted('Input', input, $event)}}})],1)])})],2),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"mappings-title\"},[_vm._v(\"Output\")]),_vm._l((_vm.systems[_vm.currentSystem.group].mappingsByColumns.output),function(output,outputIndex){return _c('div',{key:outputIndex,staticClass:\"mt-2\"},[(!_vm.systems[_vm.currentSystem.group].mappings[output].isDynamic)?_c('div',[_c('div',{class:{ 'hide-optional': _vm.isSystemMappingVisible({\n system: _vm.currentSystem.group,\n systemInstance: _vm.currentSystem.system,\n prop: output,\n })\n }},[_c('div',{staticClass:\"optional\"},[(_vm.systems[_vm.currentSystem.group].mappings[output].optional)?_c('span',[_vm._v(\"optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${output}.label`),\"items\":_vm.variablesForComboBox,\"optional\":_vm.systems[_vm.currentSystem.group].mappings[output].optional},model:{value:(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system][output]),callback:function ($$v) {_vm.$set(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system], output, $$v)},expression:\"systemsForm[currentSystem.group].components[currentSystem.system][output]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${output}.description`))+\" \")])],1)]):_c('div',[_c('div',{class:{\n 'hide-optional': _vm.isSystemMappingVisible({\n system: _vm.currentSystem.group,\n systemInstance: _vm.currentSystem.system,\n prop: output,\n })\n }},[_c(_vm.systems[_vm.currentSystem.group].mappings[output].vuetifyComponent,{tag:\"component\",attrs:{\"target-object\":_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system][output],\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${output}.label`),\"instance-label-path\":`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${output}.instanceLabel`,\"items-list\":_vm.variablesForComboBox,\"max-number-of-fields\":_vm.systems[_vm.currentSystem.group].mappings[output].maxRange,\"is-optional\":_vm.systems[_vm.currentSystem.group].mappings[output].optional}})],1)])])})],2),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',{staticClass:\"mappings-title\"},[_vm._v(\"Titles\")]),_vm._l((_vm.systems[_vm.currentSystem.group].mappingsByColumns.titles),function(titles,titlesIndex){return _c('div',{key:titlesIndex,staticClass:\"mt-2\"},[_c('div',{staticClass:\"optional\"}),_c(_vm.systems[_vm.currentSystem.group].mappings[titles].vuetifyComponent,{tag:\"component\",attrs:{\"label\":_vm.$t(`mlModel.${_vm.mlModel.data.type}.systems.${_vm.currentSystem.group}.mappings.${titles}.label`),\"maxLength\":30,\"optional\":_vm.systems[_vm.currentSystem.group].mappings[titles].optional,\"color\":\"accent\"},model:{value:(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system][titles]),callback:function ($$v) {_vm.$set(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system], titles, $$v)},expression:\"systemsForm[currentSystem.group].components[currentSystem.system][titles]\"}}),_c('div',{staticClass:\"description\"})],1)})],2)],1)],1)]],2):_vm._e()])]),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),[(!_vm.mappingValidation)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":true},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}],null,false,1939272498)},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.requiredFields')))])]):_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)]],2),_c('div',{staticClass:\"d-flex align-center\"},[(_vm.showCalculateAsExternalDevice)?_c('v-checkbox',{staticClass:\"pt-0 mt-0 pr-4\",attrs:{\"label\":_vm.$t('modals.manageMLModel.calculateAsExternalMeasurement'),\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system].calculate_as_external_device),callback:function ($$v) {_vm.$set(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system], \"calculate_as_external_device\", $$v)},expression:\"systemsForm[currentSystem.group].components[currentSystem.system].calculate_as_external_device\"}}):_vm._e(),(_vm.showExternalEnergyMappingsCheckbox)?_c('v-checkbox',{staticClass:\"pt-0 mt-0 pr-4\",attrs:{\"label\":_vm.$t('modals.manageMLModel.externalEnergyMeasurement'),\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system].external_energy_measurement),callback:function ($$v) {_vm.$set(_vm.systemsForm[_vm.currentSystem.group].components[_vm.currentSystem.system], \"external_energy_measurement\", $$v)},expression:\"systemsForm[currentSystem.group].components[currentSystem.system].external_energy_measurement\"}}):_vm._e(),_c('v-checkbox',{staticClass:\"pt-0 mt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageMLModel.showOptionalFields'),\"hide-details\":\"\"},model:{value:(_vm.isOptionalFieldsVisible),callback:function ($$v) {_vm.isOptionalFieldsVisible=$$v},expression:\"isOptionalFieldsVisible\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content stage-3\"},[(_vm.updatingDeviceProcess)?_c('div',{staticClass:\"updating-process-placeholder\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":40}})],1):_vm._e(),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('div',[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageMLModel.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.mlModel.collection_id),callback:function ($$v) {_vm.$set(_vm.mlModel, \"collection_id\", $$v)},expression:\"mlModel.collection_id\"}})],1),(_vm.mlModelAdditionalFields)?_c(_vm.mlModelAdditionalFields.component,{tag:\"component\",staticClass:\"mt-4\",attrs:{\"target-object\":_vm.additionalFields}}):_vm._e()],1)],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\",\"disabled\":_vm.updatingDeviceProcess},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation || _vm.updatingDeviceProcess,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageMLModel.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"dynamic-field\"},[_c('div',{staticClass:\"dynamic-field__label\"},[_vm._v(_vm._s(_vm.label))]),_c('div',{staticClass:\"dynamic-field__items\"},_vm._l((_vm.targetObject),function(value,key,index){return _c('div',{key:index,staticClass:\"d-flex align-center pb-2\"},[_c('div',{staticStyle:{\"width\":\"60%\"}},[_c('ComboboxField',{attrs:{\"label\":_vm.instanceLabelPath ? _vm.$t(_vm.instanceLabelPath, { count: index + 1 }) : 'Label',\"items\":_vm.itemsList,\"rules\":[_vm.rules.required],\"optional\":_vm.isOptional},model:{value:(_vm.targetObject[key]),callback:function ($$v) {_vm.$set(_vm.targetObject, key, $$v)},expression:\"targetObject[key]\"}})],1),_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"40%\"}},[(!index)?_c('v-btn',{staticClass:\"ml-2 mb-7\",attrs:{\"color\":\"accent\",\"disabled\":Object.keys(_vm.targetObject).length >= _vm.maxNumberOfFields,\"elevation\":\"0\"},on:{\"click\":_vm.addMaxPowerItem}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":20,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\"add\")])],1):_c('v-btn',{staticClass:\"ml-1 mb-7 lynus-small-btn\",attrs:{\"fab\":\"\",\"color\":\"red\",\"elevation\":\"0\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.deleteMaxPowerItem(key)}}},[_c('lynus-icon',{attrs:{\"name\":\"x\",\"color\":\"white\"}})],1)],1)])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport VueI18n from 'vue-i18n';\nimport { IVariable } from '@/types/variables.types';\n\n/**\n * Dynamic field component which used in manage modal forms.\n * Creates new fields for targetObject prop\n */\n@Component({\n components: {\n ComboboxField,\n },\n})\nexport default class DynamicField extends mixins(Validation) {\n @Prop({ default: false }) isOptional!: boolean;\n @Prop({ default: null }) targetObject!: { [key: string]: string };\n @Prop({ default: null }) label!: string | VueI18n.TranslateResult;\n @Prop({ default: null }) itemsList!: IVariable[];\n @Prop({ default: null }) maxNumberOfFields!: number;\n @Prop({ default: null }) instanceLabelPath!: string; // used vue-i18n \"$t\" function, example: $t(path_to_lang_file)\n\n addMaxPowerItem(event: Event | undefined, externalCall = false, externalKey: string | null = null) {\n const key = externalKey !== null ? externalKey : `mp-${Date.now()}`;\n this.$set(this.targetObject, key, '');\n if (!externalCall) this.$emit('added', key);\n }\n deleteMaxPowerItem(key: string, externalCall = false) {\n this.$delete(this.targetObject, key);\n if (!externalCall) this.$emit('deleted', key);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DynamicField.vue?vue&type=template&id=4330f7b6&scoped=true&\"\nimport script from \"./DynamicField.vue?vue&type=script&lang=ts&\"\nexport * from \"./DynamicField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4330f7b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.EMS.scalingPV'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.pv),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"pv\", _vm._n($$v))},expression:\"targetObject.scaling.pv\"}}),_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.EMS.scalingConsumption'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.consumption),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"consumption\", _vm._n($$v))},expression:\"targetObject.scaling.consumption\"}}),_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.EMS.scalingBatteryPower'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.batteryPower),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"batteryPower\", _vm._n($$v))},expression:\"targetObject.scaling.batteryPower\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport InputFieldNumber from '@/ui/components/components/InputFieldNumber.vue';\n\n/**\n * EMS additional field component.\n * Manges targetObject scaling properties.\n */\n@Component({\n components: {\n InputFieldNumber,\n },\n})\nexport default class EMSAdditionalFields extends mixins(Validation) {\n @Prop({ default: null }) targetObject!: any;\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EMSAdditionalFields.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EMSAdditionalFields.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EMSAdditionalFields.vue?vue&type=template&id=7e77fd0e&scoped=true&\"\nimport script from \"./EMSAdditionalFields.vue?vue&type=script&lang=ts&\"\nexport * from \"./EMSAdditionalFields.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e77fd0e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.MpcEnergyView.scaling.pvScaling'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.pvScaling),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"pvScaling\", _vm._n($$v))},expression:\"targetObject.scaling.pvScaling\"}}),_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.MpcEnergyView.scaling.conumptionScaling'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.conumptionScaling),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"conumptionScaling\", _vm._n($$v))},expression:\"targetObject.scaling.conumptionScaling\"}}),_c('InputFieldNumber',{attrs:{\"label\":_vm.$t('mlModel.MpcEnergyView.scaling.maxGridSize'),\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.twoCommas],\"is-decimal\":true},model:{value:(_vm.targetObject.scaling.maxGridSize),callback:function ($$v) {_vm.$set(_vm.targetObject.scaling, \"maxGridSize\", _vm._n($$v))},expression:\"targetObject.scaling.maxGridSize\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport InputFieldNumber from '@/ui/components/components/InputFieldNumber.vue';\n\n/**\n * EMS additional field component.\n * Manges targetObject scaling properties.\n */\n@Component({\n components: {\n InputFieldNumber,\n },\n})\nexport default class EnergyViewAdditionalFields extends mixins(Validation) {\n @Prop({ default: null }) targetObject!: any;\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyViewAdditionalFields.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyViewAdditionalFields.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyViewAdditionalFields.vue?vue&type=template&id=8ccc606c&scoped=true&\"\nimport script from \"./EnergyViewAdditionalFields.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyViewAdditionalFields.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ccc606c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"dynamic-field\"},[_c('div',{staticClass:\"dynamic-field__label\"},[_vm._v(_vm._s(_vm.label))]),_c('div',{staticClass:\"dynamic-field__items\"},_vm._l((_vm.targetObject),function(value,key,index){return _c('div',{key:index,staticClass:\"d-flex align-center pb-2\"},[_c('div',{staticStyle:{\"width\":\"80%\"}},[_c('ComboboxField',{attrs:{\"label\":_vm.$t('uiComponents.form.variable'),\"items\":_vm.itemsList,\"rules\":[_vm.rules.required],\"optional\":_vm.isOptional},model:{value:(_vm.targetObject[key].variable),callback:function ($$v) {_vm.$set(_vm.targetObject[key], \"variable\", $$v)},expression:\"targetObject[key].variable\"}}),_c('v-text-field',{staticClass:\"pt-1\",attrs:{\"label\":_vm.$t('uiComponents.form.title'),\"outlined\":\"\",\"color\":\"accent\",\"hide-details\":\"\"},model:{value:(_vm.targetObject[key].title),callback:function ($$v) {_vm.$set(_vm.targetObject[key], \"title\", $$v)},expression:\"targetObject[key].title\"}})],1),_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"20%\"}},[(!index)?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"disabled\":Object.keys(_vm.targetObject).length >= _vm.maxNumberOfFields,\"elevation\":\"0\"},on:{\"click\":_vm.addMaxPowerItem}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":20,\"color\":\"white\"}})],1):_c('v-btn',{staticClass:\"ml-1 mt-1 lynus-small-btn\",attrs:{\"fab\":\"\",\"color\":\"red\",\"elevation\":\"0\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.deleteMaxPowerItem(key)}}},[_c('lynus-icon',{attrs:{\"name\":\"x\",\"color\":\"white\"}})],1)],1)])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport VueI18n from 'vue-i18n';\nimport { IVariable } from '@/types/variables.types';\nimport { TargetObject } from '@/types/common.types';\n\n/**\n * Dynamic field component which used in manage modal forms.\n * Creates new fields for targetObject prop\n */\n@Component({\n components: {\n ComboboxField,\n },\n})\nexport default class DynamicFieldWithTitle extends mixins(Validation) {\n @Prop({ default: false }) isOptional!: boolean;\n @Prop({ default: null }) targetObject!: TargetObject;\n @Prop({ default: null }) label!: string | VueI18n.TranslateResult;\n @Prop({ default: null }) itemsList!: IVariable[];\n @Prop({ default: null }) maxNumberOfFields!: number;\n @Prop({ default: null }) instanceLabelPath!: string; // used vue-i18n \"$t\" function, example: $t(path_to_lang_file)\n\n addMaxPowerItem() {\n this.$set(this.targetObject, `mp-${Date.now()}`, { variable: '', title: '' });\n }\n deleteMaxPowerItem(key: string) {\n this.$delete(this.targetObject, key);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicFieldWithTitle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DynamicFieldWithTitle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DynamicFieldWithTitle.vue?vue&type=template&id=0e14ae4a&scoped=true&\"\nimport script from \"./DynamicFieldWithTitle.vue?vue&type=script&lang=ts&\"\nexport * from \"./DynamicFieldWithTitle.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0e14ae4a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"width\":\"500\",\"persistent\":\"\",\"retain-focus\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on))]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{attrs:{\"color\":\"deviceBackground\"}},[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('modals.ManageSystemsDecreaseModal.title'))+\" \")]),_c('v-card-text',[_c('v-list',{staticStyle:{\"overflow-y\":\"auto\"},attrs:{\"color\":\"deviceBackground\",\"max-height\":\"400\",\"dense\":\"\"}},[_c('v-list-item-group',{attrs:{\"color\":\"accent\",\"multiple\":\"\"},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}},_vm._l((_vm.systemInstancesKeys),function(item,index){return _c('v-list-item',{key:index,attrs:{\"value\":item},scopedSlots:_vm._u([{key:\"default\",fn:function({ active }){return [_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(_vm.data.components[item].title || item)}})],1),_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"input-value\":active,\"color\":\"accent\"}})],1)]}}],null,true)})}),1)],1),_c('div',{staticClass:\"error--text validation-text\"},[_vm._v(\" \"+_vm._s(_vm.removingInformation)+\" \")])],1),_c('v-divider'),_c('v-card-actions',[_c('v-btn',{staticClass:\"white--text lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.onCancel.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.cancel'))+\" \")]),_c('v-spacer'),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.isFormValid},on:{\"click\":function($event){$event.stopPropagation();return _vm.onSave.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Cut all non-digit characters from string\n * @param str\n */\nexport const cutNumberFromString = (str: string) => {\n return str.replace(/\\D+/g, '');\n};\n","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { cutNumberFromString } from '@/ui/components/modals/ManageMLModel/utils';\n\n/**\n * @name ManageSystemsDecreaseModal\n * @description\n * This component is used to manage systems amount in ML model.\n * It is used in ManageMLModel component.\n */\n\n@Component({\n methods: { cutNumberFromString },\n})\nexport default class ManageSystemsDecreaseModal extends Vue {\n @Prop() data!: any;\n @Prop({ default: false }) disabled!: boolean;\n @Prop() system!: string;\n\n dialog = false;\n model: string[] = [];\n\n amountOfRemovedSystems = 0;\n\n @Watch('dialog')\n onDialogChange(value: boolean) {\n if (value) {\n this.model = this.systemInstancesKeys;\n } else {\n this.amountOfRemovedSystems = 0;\n }\n }\n\n get systemInstancesKeys() {\n return Object.keys(this.data.components);\n }\n\n get isFormValid() {\n return this.model.length === this.systemInstancesKeys.length - this.amountOfRemovedSystems;\n }\n\n get removingInformation() {\n const amount = this.model.length - (this.systemInstancesKeys.length - this.amountOfRemovedSystems);\n if (amount > 0) return `${this.amountOfRemovedSystems} ${this.$t('modals.ManageSystemsDecreaseModal.needToBeRemoved')}`;\n if (amount < 0) return `${this.systemInstancesKeys.length - this.amountOfRemovedSystems} ${this.$t('modals.ManageSystemsDecreaseModal.needToBeKept')}`;\n return null;\n }\n\n sortSystems(systems: string[]) {\n return [...systems].sort((a: string, b: string) => {\n const aNumber = Number(cutNumberFromString(a));\n const bNumber = Number(cutNumberFromString(b));\n return aNumber - bNumber;\n });\n }\n\n onSave() {\n this.$emit('onManageSystemsSave', { system: this.system, instances: this.sortSystems(this.model) });\n this.dialog = false;\n }\n\n onCancel() {\n this.$emit('onManageSystemsCancel');\n this.dialog = false;\n }\n\n handleDialogOnDecrease(amountOfRemovedSystems: number) {\n this.dialog = true;\n this.amountOfRemovedSystems = amountOfRemovedSystems;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageSystemsDecreaseModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageSystemsDecreaseModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageSystemsDecreaseModal.vue?vue&type=template&id=336c36be&scoped=true&\"\nimport script from \"./ManageSystemsDecreaseModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageSystemsDecreaseModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageSystemsDecreaseModal.vue?vue&type=style&index=0&id=336c36be&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"336c36be\",\n null\n \n)\n\nexport default component.exports","export const isObject = (prop: any) => {\n return typeof prop === 'object' && prop !== null;\n};\n","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { isEqual, cloneDeep } from 'lodash';\nimport { VCombobox, VSelect, VCheckbox } from 'vuetify/lib';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport {\n FormUpdateTracker,\n} from '@/ui/mixins/formUpdateTracker';\nimport InputFieldNumber from '@/ui/components/components/InputFieldNumber.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport TextField from '@/ui/components/modals/components/form/TextField.vue';\nimport DatePickerCustom from '@/ui/components/modals/components/DatePickerCustom.vue';\nimport NavigationTab from '@/ui/components/modals/components/NavigationTab.vue';\nimport DynamicField from '@/ui/components/modals/components/DynamicField.vue';\nimport EMSAdditionalFields\n from '@/ui/components/modals/ManageMLModel/components/EMSAdditionalFields.vue';\nimport EnergyViewAdditionalFields\n from '@/ui/components/modals/ManageMLModel/components/EnergyViewAdditionalFields.vue';\nimport DynamicFieldWithTitle from '@/ui/components/modals/components/DynamicFieldWithTitle.vue';\nimport ManageSystemsDecreaseModal\n from '@/ui/components/modals/ManageMLModel/components/ManageSystemsDecreaseModal.vue';\nimport { cutNumberFromString } from '@/ui/components/modals/ManageMLModel/utils';\nimport { isObject } from '@/utils/typesGuards';\nimport { getDefaultRulesObject, getSingleRuleObject } from '@/utils/utilsFunctions';\nimport { IVariable } from '@/types/variables.types';\nimport {\n EXTERNAL_ENERGY_MEASUREMENTS,\n EXTERNAL_ENERGY_MEASUREMENTS_FOR_HYBRID_SYSTEMS,\n SYSTEMS_WHERE_CALCULATE_AS_EXTERNAL_DEVICE_WORKS,\n SYSTEMS_WHERE_EXTERNAL_ENERGY_MEASUREMENTS_WORKS,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/systemDialog';\nimport { IRoom } from '@/types/rooms.types';\nimport {\n ISetpointOptimizerRoomTemperatures,\n ISetpointOptimizerRoomTemperatureItem,\n} from '@/types/mpc/devices/setpointOptimizer.types';\n\nconst DEVICES_WITH_EXTERNAL_MEASUREMENTS = ['EMSV2', 'EnergyViewV2'];\n\n/**\n * Scheme to create, modify a specific ML Model device.\n * Specified in the ML Model device type definition in store/mpc/mlModelTypes.ts\n */\n@Component({\n methods: { cutNumberFromString },\n components: {\n ComboboxField,\n TextField,\n 'v-combobox': VCombobox,\n 'v-select': VSelect,\n 'v-checkbox': VCheckbox,\n InputFieldNumber,\n CircleSpinner,\n DatePickerCustom,\n NavigationTab,\n DynamicField,\n EMSAdditionalFields,\n DynamicFieldWithTitle,\n EnergyViewAdditionalFields,\n ManageSystemsDecreaseModal,\n },\n})\nexport default class EMSSchema extends mixins(Validation, FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData!: any;\n @Prop({}) isEditModal!: any;\n @Prop({ default: '' }) activeRoomId!: string;\n\n @State('measurements') measurementsState: any;\n @State('rules') rulesState!: any;\n @Getter('projects/project') project!: any;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('mpc/mlModelTypes') mlModelTypes!: any;\n @Getter('devices/devicesTypes') devicesTypes!: any;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/loadRules') loadRules!: (project_id: any) => any;\n @Action('rules/addRule') addRule!: (payload: any) => any;\n @Action('rules/addRules') addRules!: (payload: any) => any;\n @Action('rules/deleteRule') deleteRule!: (payload: any) => any;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n\n vSelectRerenderKey = 0;\n stage = 1\n mlModel: any = null\n updatingDeviceProcess = false // prop responds for block modal when updating ems (rules, fields ...)\n currentSystem: any = {\n group: 'ems',\n system: null,\n }\n\n copyOfSystemsForValidationError: any = null;\n\n // local dynamic forms\n systemsForm: any = {}\n controllerMainMappingsLocal: any = {}\n additionalFields: any = {}\n\n // ====================================== optional mappings, external energy mappings\n // optional mappings\n isOptionalFieldsVisible = false;\n\n // external energy mappings\n get showExternalEnergyMappingsCheckbox() {\n const isSystemPermitted = SYSTEMS_WHERE_EXTERNAL_ENERGY_MEASUREMENTS_WORKS.includes(this.currentSystem.group);\n return this.hasExternalMeasurements && isSystemPermitted;\n }\n\n get showCalculateAsExternalDevice() {\n return SYSTEMS_WHERE_CALCULATE_AS_EXTERNAL_DEVICE_WORKS.includes(this.currentSystem.group);\n }\n\n get systemsExternalEnergyMappingsCheckboxValue() {\n const instance = this.systemsForm?.[this.currentSystem.group]?.components?.[this.currentSystem.system]?.external_energy_measurement;\n return typeof instance === 'boolean' ? instance : false;\n }\n\n get emsSelectWidth() {\n return this.deviceData.data.type === 'EnergyIO' ? '' : 'width: 60%';\n }\n\n isExternalEnergyMeasurement({ prop, system }: { prop: string; system: string}) {\n if (system === 'battery') {\n // battery system has different external energy measurements\n return EXTERNAL_ENERGY_MEASUREMENTS_FOR_HYBRID_SYSTEMS.includes(prop);\n }\n return EXTERNAL_ENERGY_MEASUREMENTS.includes(prop);\n }\n\n /**\n * Shows/hide optional, external energy, required mappings according to condition\n * @param system\n * @param systemInstance\n * @param prop systemInstance mapping key\n */\n isSystemMappingVisible({ system, systemInstance, prop }: {\n system: string;\n systemInstance: string;\n prop: string;\n }) {\n const isOptional = this.isOptional(this.systems[system].mappings[prop].optional, prop, system, systemInstance);\n\n if (!this.hasExternalMeasurements) {\n return !this.isOptionalFieldsVisible && isOptional;\n } else {\n if (!this.systemsExternalEnergyMappingsCheckboxValue) return !this.isOptionalFieldsVisible && isOptional;\n else return !this.isExternalEnergyMeasurement({ prop, system });\n }\n }\n\n handleAdded(fieldType: string, input: string, key: string) {\n const { dependency } = this.systems[this.currentSystem.group].mappings[input];\n (this.$refs[`dynamic${fieldType}Field-${dependency}`] as any)[0].addMaxPowerItem(null, true, key);\n }\n\n handleDeleted(fieldType: string, input: string, key: string) {\n const { dependency } = this.systems[this.currentSystem.group].mappings[input];\n (this.$refs[`dynamic${fieldType}Field-${dependency}`] as any)[0].deleteMaxPowerItem(key, true);\n }\n\n // ======================================\n\n // ====================================== Check if form was updated (main logic in FormUpdateTracker mixin)\n get isFormUnchanged() {\n if (this.isEditModal) {\n const local = { ...this.controllerMainMappingsLocal, ...this.systemsForm };\n return isEqual(this.deviceData, this.mlModel) && isEqual(this.dataSnapshot, local);\n } else {\n const local = { ...this.controllerMainMappingsLocal, ...this.systemsForm };\n return !this.mlModel?.name && isEqual(this.dataSnapshot, local);\n }\n }\n\n // ======================================\n\n @Watch('stage')\n onStageChange(val: number, oldVal: number) {\n if (oldVal === 1 && val === 2) {\n this.copyOfSystemsForValidationError = null;\n this.copyOfSystemsForValidationError = JSON.parse(JSON.stringify(this.systemsForm));\n }\n if (val === 2) {\n // init currentSystem when go on stage 2. Needs to avoid error when we feel some mappings on system what we later delete\n this.currentSystem = { group: 'ems', system: null };\n\n // if mpc not have any general controller mappings we set active first existed system\n if (!this.isGeneralMappings) {\n const [group, system] = this.currentGroupedSystemsListWithGeneralMappings[0];\n this.currentSystem = { group, system: system[0] };\n }\n\n // load variables list for mappings\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n get rulesList() {\n return this.rulesState.rulesList;\n }\n\n get rulesListIds() {\n return this.rulesList.map((rule: any) => rule.id);\n }\n\n // steps validation\n // step 1\n get nameValidation() {\n return !!this.mlModel?.name?.length && !!this.currentSystemsListFiltered?.length;\n }\n\n // step 2\n /**\n * Checks general EMS mappings\n * @return true if general mappings valid, else false\n */\n get emsGeneralMappingsValidation() {\n if (this.stage === 2) {\n // get all required mappings keys\n const requiredFieldsMainMappings = Object.entries(this.mlModelMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n return requiredFieldsMainMappings.map((el: any) => {\n const mapping = this.controllerMainMappingsLocal[el];\n if (isObject(mapping)) {\n // checks all values if mapping is object\n return Object.values(mapping).every((el: any) => el.length);\n } else {\n return mapping;\n }\n }).every((el: any) => el);\n } else {\n return null;\n }\n }\n\n /**\n * Combines systems by group. Creates Map collection width all group validation status\n * and group instances statuses.\n * @return Map collection with status of validation for every system of EMS\n */\n get systemsByGroupsValidation() {\n const res = this.currentGroupedSystemsList.map((system: [string, string[]]) => {\n const systemName: string = system[0];\n const systemInstances: string[] = system[1];\n\n const systemInstancesWithMappings: [string, boolean][] = systemInstances.map((instance: string) => {\n const requiredMappingsList: string[] = Object.keys(this.systems[systemName].mappings)\n .filter((field: string) => {\n const fieldOptionsOptional = this.systems[systemName]?.mappings[field]?.optional;\n const isFieldOptional = this.isOptional(fieldOptionsOptional, field, systemName, instance);\n return !isFieldOptional;\n });\n\n const isExternalMeasurement: boolean = this.systemsForm?.[systemName]?.components?.[instance]?.external_energy_measurement;\n // if system title field is required, check it together with external measurements in validation\n const requiredTitleForExternalMeasurements = requiredMappingsList.filter((prop: string) => prop === 'title');\n // if showExternalEnergyMeasurements selected validate only external energy measurements\n const requiredFieldsKeys = !isExternalMeasurement ? requiredMappingsList : [...EXTERNAL_ENERGY_MEASUREMENTS, ...requiredTitleForExternalMeasurements];\n\n const requiredFieldsValues = requiredFieldsKeys.map((field: string) => {\n return this.systemsForm[systemName].components[instance][field];\n });\n const listOfRequiredFieldsValuesAsBoolean = requiredFieldsValues.map(\n (value: string | ISetpointOptimizerRoomTemperatures | { [key: string]: string }) => {\n if (isObject(value)) {\n const arr = Object.values(value).map((el: ISetpointOptimizerRoomTemperatureItem | string) => {\n return isObject(el)\n ? !!(el as ISetpointOptimizerRoomTemperatureItem).variable.length\n : !!(el as string).length;\n });\n return arr.every((el: boolean) => el);\n } else {\n const validateString = (str: string) => str.replace(/\\s/g, '');\n return typeof value === 'string' ? !!validateString(value).length : !!value;\n }\n },\n );\n\n return [instance, listOfRequiredFieldsValuesAsBoolean.some((value: boolean) => !value)];\n });\n\n const allInstances: boolean = systemInstancesWithMappings.map((el: [string, boolean]) => el[1]).some((el: boolean) => el);\n return [system[0], {\n instances: new Map(systemInstancesWithMappings),\n unFilled: allInstances,\n }];\n });\n return new Map(res as [string, { instances: Map; unFilled: boolean }][]);\n }\n\n /**\n * Checks systems groups validation statuses\n * @return boolean, system group validation status\n */\n get systemsValidation() {\n const arr: any = Array.from(this.systemsByGroupsValidation.values()).map((el: any) => el.unFilled);\n return !arr.some((el: any) => el);\n }\n\n /**\n * Combined validation of all mappings in stage 2\n * @return boolean, status of stage 2 validation\n */\n get mappingValidation() {\n if (this.stage === 2) {\n return this.emsGeneralMappingsValidation && this.systemsValidation;\n }\n return true;\n }\n\n // step 3\n /**\n * Combined validation of ML Model collection_id field and additional fields\n * @return boolean, status of stage 3 validation\n */\n get settingsValidation() {\n if (this.mlModelAdditionalFields?.objects) {\n const arr2dValues = Object.values(this.additionalFields).map((el: any) => Object.values(el));\n const flat = arr2dValues.flat();\n const isFilled = !flat.some((el: any) => typeof el !== 'number');\n return !!this.mlModel.collection_id.length && isFilled;\n }\n return !!this.mlModel.collection_id.length;\n }\n\n /**\n * Validation for every error field in systems.\n * Need to avoid create/delete rules when edit EMS\n * @param system system key\n * @param systemInstance system instance key\n * @param mappingKey system instance mapping key\n */\n errorVariableValidation(system: string, systemInstance: string, mappingKey: string) {\n if (this.isEditModal && mappingKey === 'error') {\n const copyOfCurrentWhenGoFromStageOne = this.copyOfSystemsForValidationError[system].components?.[systemInstance]?.error;\n const current = this.systemsForm[system].components?.[systemInstance]?.error;\n const old = this.deviceData.data.meta.controllerMappings[system].components?.[systemInstance]?.error;\n\n const { rules } = this.mlModel.data.meta;\n const rulesBySystem: undefined | {\n errorRule: string;\n warningRule: string;\n } = rules[systemInstance];\n const checkIfRulesForSystemWasDeleted = () => {\n if (rulesBySystem) {\n const warning: undefined | string = rulesBySystem.warningRule;\n const error: undefined | string = rulesBySystem.errorRule;\n const isWarningRuleExist = warning ? this.rulesListIds.some((ruleId: string) => ruleId === warning) : null;\n const isErrorRuleExist = error ? this.rulesListIds.some((ruleId: string) => ruleId === error) : null;\n return isErrorRuleExist || isWarningRuleExist;\n }\n return false;\n };\n // get unblock when some of props = false\n return copyOfCurrentWhenGoFromStageOne === old\n && copyOfCurrentWhenGoFromStageOne === current\n && !!old.length\n && checkIfRulesForSystemWasDeleted();\n }\n return false;\n }\n\n // define current EMS instance mappings, other settings\n get mlModelSchema() {\n // TODO: condition used because EMS, EnergyViewV2 placed in devicesTypes\n return this.mlModelTypes[this.deviceData.data.type] ?? this.devicesTypes[this.deviceData.data.type];\n }\n\n get mlModelMappings() {\n return this.mlModelSchema.controllerMappings;\n }\n\n get mlModelAdditionalFields() {\n return this.mlModelSchema.additionalFields;\n }\n\n get mappingsByColumns() {\n return this.mlModelSchema.mappingsByColumns;\n }\n\n get groups() {\n return this.mlModelSchema.groups;\n }\n\n get systems() {\n return this.mlModelSchema.systems;\n }\n\n /**\n * Checks if device has external energy measurements\n */\n get hasExternalMeasurements() {\n return DEVICES_WITH_EXTERNAL_MEASUREMENTS.includes(this.deviceData.data.type);\n }\n\n get isGeneralMappings() {\n return Object.keys(this.mlModelMappings).length;\n }\n\n /**\n * Checks if EMS has optional general mappings\n * @return boolean, status of all general optional mappings\n */\n get isGeneralOptionalMappings() {\n return Object.values(this.mlModelMappings).map((el: any) => el.optional).some((el: boolean) => el);\n }\n\n /**\n * Checks if some system has optional mappings fields\n * @return boolean, true if system has optional mapping\n */\n get isSystemsOptionalMappings() {\n const systems = this.currentGroupedSystemsList.length ? this.currentGroupedSystemsList.map((el: any) => el[0]) : [];\n return systems.map((el: string) => {\n const systemOptions = this.systems[el];\n return Object.values(systemOptions.mappings).map((map: any) => map.optional).some((el: boolean) => el);\n }).some((el: boolean) => el);\n }\n\n /**\n * Getter filter current systems by error fields. Needs for creating rules\n */\n get filteredSystemsByErrorWarning() {\n const systems: any = Object.entries(this.systemsForm).filter((el: any) => el[1].count);\n const systemsInstances: any = systems.map((system: any) => Object.entries(system[1].components)\n .map((el: any) => [el[0], el[1].error])\n .filter((inst: any) => inst[1]))\n .reduce((acc: any, item: any) => acc.concat(item), []);\n return systemsInstances;\n }\n\n get groupsList() {\n return Object.entries(this.groups);\n }\n\n // logic responsible for groups, systems lists\n get groupOfSystemsList() {\n return Object.keys(this.systemsForm);\n }\n\n get currentSystemsListFiltered() {\n return Object.entries(this.systemsForm).filter((system: any) => Object.keys(system[1].components).length);\n }\n\n get currentGroupedSystemsList(): [string, string[]][] {\n return this.currentSystemsListFiltered.map((group: [string, any]) => {\n return [\n group[0],\n Object.keys(group[1].components).sort((a: string, b: string) => {\n const numA = parseInt(a.replace(/\\D/g, ''), 10);\n const numB = parseInt(b.replace(/\\D/g, ''), 10);\n return numA - numB;\n }),\n ];\n });\n }\n\n get currentGroupedSystemsListWithGeneralMappings() {\n if (!this.isGeneralMappings) {\n return [...this.currentGroupedSystemsList];\n } else {\n return [...[['ems', []]], ...this.currentGroupedSystemsList] as [string, string[]][];\n }\n }\n\n /**\n * Converts systems instances quantity to array\n * @return Map collection of systems and array(number of system instances)\n */\n get getSystemQuantity() {\n const systemsArr: any = Object.entries(this.systems).map((system: any) => {\n const systemName: string = system[0];\n const systemQuantity: number[] = Array.from({ length: system[1].quantity }, (_, i) => i + 1);\n return [systemName, systemQuantity];\n });\n return new Map(systemsArr);\n }\n\n /**\n * Init local EMS systems form\n */\n initSystemsFormStructure() {\n const list = Object.keys(this.systems);\n list.forEach((system: string) => {\n const count = +this.systems[system].required;\n this.systemsForm = { ...this.systemsForm, ...{ [system]: { components: {}, count } } };\n });\n }\n\n // Shows field only if dependant field (condition) is required or filled\n isOptionalAndNotFilled(input: string, requiredField: string, group: string, system: string) {\n return this.systems?.[group]?.mappings?.[requiredField]?.optional &&\n !this.systemsForm?.[group]?.components?.[system]?.[requiredField];\n }\n\n isOptional(optional: boolean | string, input: string, group: string, system: string) {\n const isExternalMeasurementsEnabled = this.systemsForm[group].components?.[system]?.external_energy_measurement;\n // if External measurements enabled, make all visible fields required\n if (isExternalMeasurementsEnabled) {\n return false;\n } else {\n if (typeof optional === 'boolean') return optional; // look if in schema field required\n return this.isOptionalAndNotFilled(input, optional, group, system); // if in schema some field looks on other field state\n }\n }\n\n /**\n * Going through device additional fields and create options for it.\n * Additional fields placed in ML Model types definition store/mpc/mlModelTypes.ts\n */\n initAdditionalFields() {\n if (this.mlModelAdditionalFields) {\n const objectsKeys = Object.keys(this.mlModelAdditionalFields.objects);\n objectsKeys.forEach((obj: string) => {\n if (this.isEditModal) {\n this.additionalFields = {\n ...this.additionalFields,\n ...{ [obj]: { ...this.mlModel.data.meta[obj] } },\n };\n } else {\n const props = this.mlModelAdditionalFields.objects[obj];\n let propsObj = {};\n props.forEach((prop: string) => {\n propsObj = { ...propsObj, ...{ [prop]: '' } };\n });\n this.additionalFields = {\n ...this.additionalFields,\n ...{ [obj]: { ...propsObj } },\n };\n }\n });\n }\n }\n\n /**\n * Goes through the system mappings and creates an option object for each\n * @param groupName system groups name\n * @return system mappings form object\n */\n defineMappingsForSystem(groupName: any) {\n if (this.systems[groupName].isDynamicFields) {\n const form = { ...this.systems[groupName].initMappings };\n const mappingsList = Object.entries(this.systems[groupName].mappings);\n const dynamicMappings = mappingsList.filter((mapping: any) => mapping[1].isDynamic);\n dynamicMappings.forEach((mapping: any) => {\n if (mapping[1].vuetifyComponent === 'DynamicFieldWithTitle') {\n form[mapping[0]] = {\n [`mp-${Date.now()}`]: {\n variable: '',\n title: '',\n },\n };\n } else {\n form[mapping[0]] = { [`mp-${Date.now()}`]: '' };\n }\n });\n return form;\n } else {\n return { ...this.systems[groupName].initMappings };\n }\n }\n\n /**\n * Creates instances for system according to selected system quantity\n */\n initSystemsFormWhenNewDevice() {\n this.groupOfSystemsList.forEach((system: any) => {\n const arrOfSystemsInstances = Array\n .from({ length: this.systemsForm[system].count }, (_, i) => i + 1)\n .map(index => `${system}${index}`);\n\n let systemsFormLocal = {};\n arrOfSystemsInstances.forEach((systemInstance: any) => {\n systemsFormLocal = {\n ...systemsFormLocal,\n ...{ [systemInstance]: this.defineMappingsForSystem(system) },\n };\n });\n this.systemsForm[system].components = systemsFormLocal;\n });\n }\n\n /**\n * Init EMS general mappings form\n * @return general mappings form of EMS\n */\n initMainMappings() {\n let mappingsSchema: any = {};\n Object.keys(this.mlModelMappings).forEach((item: string) => {\n const { isDynamic } = this.mlModelMappings[item];\n const form: any = { [item]: { [`mp-${Date.now()}`]: '' } };\n const mapping: any = isDynamic ? form : { [item]: '' };\n mappingsSchema = { ...mappingsSchema, ...mapping };\n });\n return mappingsSchema;\n }\n\n /**\n * Init local systemsForm object when edit EMS device\n */\n initSystemsFormWhenEditDevice() {\n const { controllerMappings } = JSON.parse(JSON.stringify(this.deviceData.data.meta));\n const systemsList = Object.keys(this.systems);\n systemsList.forEach((system: any) => {\n const systemData = controllerMappings[system];\n this.systemsForm[system] = systemData ? { ...systemData } : { count: 0, components: {} };\n });\n }\n\n /**\n * Init local controllerMainMappingsLocal object\n */\n loadMainMappings() {\n const { controllerMappings } = this.deviceData.data.meta;\n const emsMappingsList = Object.keys(this.mlModelMappings);\n emsMappingsList.forEach((mapping: any) => {\n this.controllerMainMappingsLocal[mapping] = controllerMappings[mapping];\n });\n }\n\n // stage 1 function responsible for add, remove systems in systems groups\n cancelBaseAction(e: MouseEvent) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n /**\n * Managing the number of systems by checkbox.\n * If the checkbox is disabled the number of systems is 0.\n * @param ev event\n * @param system current system key\n */\n handleSystemCountCheckbox({ ev, system }: any) {\n ev.preventDefault();\n ev.stopPropagation();\n this.systemsForm[system].count = this.systemsForm[system].count ? 0 : 1;\n\n const arrOfSystemsInstances = Array\n .from({ length: this.systemsForm[system].count }, (_, i) => i + 1)\n .map(index => `${system}${index}`);\n\n let systemsFormLocal = {};\n arrOfSystemsInstances.forEach((systemInstance: any) => {\n systemsFormLocal = {\n ...systemsFormLocal,\n ...{ [systemInstance]: this.defineMappingsForSystem(system) },\n };\n });\n this.systemsForm[system].components = systemsFormLocal;\n }\n\n handleManageSystemsSave({ instances, system }: { instances: string[]; system: string }) {\n this.systemsForm[system].components = instances.reduce((acc: any, key: string) => {\n return { ...acc, ...{ [key]: this.systemsForm[system].components[key] } };\n }, {});\n this.systemsForm[system].count = instances.length;\n }\n\n handleManageSystemsCancel() {\n this.vSelectRerenderKey = Date.now();\n }\n\n /**\n * Managing the number of systems by select.\n * @param system current system key\n * @param event event\n */\n handleSystemCountSelect({ event, system }: { event: number; system: string }) {\n const currentLength = event;\n const prevLength = Object.keys(this.systemsForm[system].components).length;\n const isIncrease = currentLength > prevLength;\n\n const copy = [...Object.keys(this.systemsForm[system].components)];\n // define and add names for systems instances\n let arrOfSystems = Array\n .from({ length: currentLength }, (_, i) => i + 1)\n .map(index => `${system}${index}`);\n\n if (copy.length && isIncrease) {\n let result = Array.from(new Set([...arrOfSystems, ...copy]));\n const numberOfItemsToRemove = result.length - arrOfSystems.length;\n const range = Array.from({ length: numberOfItemsToRemove }, (_, i) => i + 1);\n range.forEach((item) => {\n const arr = result.filter((i: any) => !copy.includes(i));\n const lastEl = arr[arr.length - 1];\n result = result.filter((i: any) => i !== lastEl);\n });\n\n arrOfSystems = [...result];\n }\n\n // create form by array of systems names\n let systemsFormLocal: any = {};\n arrOfSystems.forEach((systemName: any) => {\n systemsFormLocal = {\n ...systemsFormLocal,\n ...{ [systemName]: this.defineMappingsForSystem(system) },\n };\n });\n\n if (!isIncrease) {\n (this.$refs[`system-${system}`] as any)[0].handleDialogOnDecrease(prevLength - currentLength);\n } else {\n this.systemsForm[system].count = event;\n\n this.systemsForm[system].components = Object.keys(systemsFormLocal).reduce((acc: any, key: string) => {\n const instance = this.systemsForm[system].components[key] || systemsFormLocal[key];\n return { ...acc, ...{ [key]: instance } };\n }, {});\n }\n }\n\n // set current system\n handleCurrentSystem(obj: any) {\n this.currentSystem = obj;\n }\n\n defineSystemNumber(system: any) {\n return system.replace(/\\D/g, '');\n }\n\n /**\n * Clear date picker value on press button cancel on calendar\n * @param formField form field key\n */\n datePickerCustomClearDate(formField: any) {\n this.controllerMainMappingsLocal[formField] = this.deviceData.data.meta?.controllerMappings?.startDate || '';\n }\n\n /**\n * Creates general rules for Ml Model device according to errorWarning field.\n * Creates systems rules for Ml Model device according to error field.\n * @param emsData current Ml Model data object\n */\n async addRulesWhenCreateEMS(emsData: any) {\n emsData.data.meta.rules = {};\n const warningRulesSystemList: any = this.filteredSystemsByErrorWarning.map((el: any) => {\n return getSingleRuleObject(`${emsData.name}_${el[0]} Warning Rule`, el[1], 'Device has a Warning', 1);\n });\n const errorRulesSystemList: any = this.filteredSystemsByErrorWarning.map((el: any) => {\n return getSingleRuleObject(`${emsData.name}_${el[0]} Error Rule`, el[1], 'Device has an Error', 2);\n });\n // ems general rules\n let generalRules: any = [];\n if (emsData.data.meta.controllerMappings?.errorWarning !== undefined) {\n generalRules = getDefaultRulesObject(emsData.name, emsData.data.meta.controllerMappings.errorWarning, 'Device');\n }\n // merging all rules obj in one array\n const allRulesList: any = emsData.data.type === 'EMS' || emsData.data.type === 'EMSV2'\n ? [...generalRules, ...warningRulesSystemList, ...errorRulesSystemList]\n : [...generalRules];\n\n // if rules list empty request not send\n if (!allRulesList.length) {\n emsData.data.meta.warningRule = '';\n emsData.data.meta.errorRule = '';\n return;\n }\n\n // request\n const responseRulesList = await this.addRules({\n project_id: this.project.id,\n rulesList: allRulesList,\n });\n const resRules: any = responseRulesList.map((rule: any) => ({ [rule.name]: rule.id }));\n // set systems rules in copy.data.meta.rules\n this.filteredSystemsByErrorWarning.forEach((el: any) => {\n const warningRuleObj: any = resRules.find((rule: any) => rule[`${emsData.name}_${el[0]} Warning Rule`]);\n const errorRuleObj: any = resRules.find((rule: any) => rule[`${emsData.name}_${el[0]} Error Rule`]);\n emsData.data.meta.rules = {\n ...emsData.data.meta.rules,\n [el[0]]: {\n warningRule: warningRuleObj[`${emsData.name}_${el[0]} Warning Rule`],\n errorRule: errorRuleObj[`${emsData.name}_${el[0]} Error Rule`],\n },\n };\n });\n // set general ems rules in copy.meta\n const getWarningRule = () => {\n if (!this.isGeneralMappings) return '';\n const warningRuleObj: any = resRules.find((rule: any) => rule[`${emsData.name} Warning Rule`]);\n return warningRuleObj[`${emsData.name} Warning Rule`];\n };\n const getErrorRule = () => {\n if (!this.isGeneralMappings) return '';\n const errorRuleObj: any = resRules.find((rule: any) => rule[`${emsData.name} Error Rule`]);\n return errorRuleObj[`${emsData.name} Error Rule`];\n };\n emsData.data.meta.warningRule = getWarningRule();\n emsData.data.meta.errorRule = getErrorRule();\n }\n\n /**\n * Replacing existing general rules with new ones when errorWarning field is changed\n * @param emsData current Ml Model data object\n */\n async generalRulesWhenUpdateEMS(emsData: any) {\n const oldErrorWarningVar = this.deviceData.data.meta.controllerMappings.errorWarning;\n const newErrorWarningVar = emsData.data.meta.controllerMappings.errorWarning;\n if (!this.isGeneralMappings) return;\n // add check if warning Rule or error Rule ID's are noit mapped or empty\n if (!emsData.data.meta.warningRule || !emsData.data.meta.errorRule) return;\n\n // if general error value was deleted\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: emsData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: emsData.data.meta.errorRule,\n }),\n ]);\n }\n // if errorWarning was changed\n if (oldErrorWarningVar !== newErrorWarningVar) {\n // delete old rules\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: emsData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: emsData.data.meta.errorRule,\n }),\n ]);\n\n const { errorWarning } = emsData.data.meta.controllerMappings;\n if (errorWarning) {\n const rulesList: any = getDefaultRulesObject(emsData.name, emsData.data.meta.controllerMappings.errorWarning, 'Device');\n // create new rules\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${emsData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${emsData.name} Error Rule`);\n return errorRuleObj.id;\n };\n emsData.data.meta.warningRule = getWarningRule();\n emsData.data.meta.errorRule = getErrorRule();\n }\n }\n }\n\n /**\n * Replacing existing systems rules with new ones when error field is changed\n * @param emsData current Ml Model data object\n */\n async addSystemRulesWhenUpdateEMS(emsData: any) {\n // define systems\n const {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n } = this.deviceData.data.meta.controllerMappings;\n const old: any = {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n };\n const oldArr: any = Object.values(old)\n .filter((system: any) => system.count)\n .map((system: any) => Object.entries(system.components).map((systemInstance: any) => [systemInstance[0], systemInstance[1].error]))\n .reduce((acc: any, el: any) => acc.concat(el), []);\n const currentArr = Object.values(this.systemsForm)\n .filter((system: any) => system.count)\n .map((system: any) => Object.entries(system.components).map((systemInstance: any) => [systemInstance[0], systemInstance[1].error]))\n .reduce((acc: any, el: any) => acc.concat(el), []);\n\n let copyOfEMSRules = JSON.parse(JSON.stringify(emsData.data.meta.rules));\n // ==== delete old rules\n let oldItemsToDelete: any = oldArr.filter((oldItem: any) => {\n const targ: any = currentArr.find((currentItem: any) => currentItem[0] === oldItem[0]) || false;\n const isValueEqual: any = targ ? targ[1] === oldItem[1] : false;\n return !(targ && isValueEqual);\n });\n // filter if old items was empty string\n if (oldItemsToDelete.length) {\n oldItemsToDelete = oldItemsToDelete.filter((el: any) => el[1].length);\n }\n\n // request to delete old rules\n oldItemsToDelete.forEach((el: any) => {\n this.deleteRule({ project_id: this.project.id, rule_id: copyOfEMSRules[el[0]].warningRule });\n this.deleteRule({ project_id: this.project.id, rule_id: copyOfEMSRules[el[0]].errorRule });\n delete copyOfEMSRules[el[0]];\n });\n\n // ==== create new rules\n let newItemsToCreate: any = currentArr.filter((currentItem: any) => {\n const targ: any = oldArr.find((oldItem: any) => oldItem[0] === currentItem[0]) || false;\n const isValueEqual: any = targ ? targ[1] === currentItem[1] : false;\n return !(targ && isValueEqual);\n });\n if (newItemsToCreate.length) {\n newItemsToCreate = newItemsToCreate.filter((el: any) => el[1].length);\n }\n const warningRules = newItemsToCreate.map((el: any) => {\n return getSingleRuleObject(`${emsData.name}_${el[0]} Warning Rule`, el[1], 'Device has a Warning', 1);\n });\n const errorRules = newItemsToCreate.map((el: any) => {\n return getSingleRuleObject(`${emsData.name}_${el[0]} Error Rule`, el[1], 'Device has an Error', 2);\n });\n const allRules = [...warningRules, ...errorRules];\n const responseRulesList = await this.addRules({\n project_id: this.project.id,\n rulesList: allRules,\n });\n newItemsToCreate.forEach((el: any) => {\n const warningRule = responseRulesList.find((rule: any) => rule.name === `${emsData.name}_${el[0]} Warning Rule`);\n const errorRule = responseRulesList.find((rule: any) => rule.name === `${emsData.name}_${el[0]} Error Rule`);\n const field = {\n [el[0]]: {\n warningRule: warningRule.id,\n errorRule: errorRule.id,\n },\n };\n copyOfEMSRules = { ...copyOfEMSRules, ...field };\n });\n emsData.data.meta.rules = copyOfEMSRules;\n }\n\n /**\n * Save Ml Model data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true);\n // blocked send button to avoid another clicks\n this.updatingDeviceProcess = true;\n\n const copy = JSON.parse(JSON.stringify(this.mlModel));\n\n const controllerMappings = { ...this.systemsForm, ...this.controllerMainMappingsLocal };\n\n copy.data.meta = { ...copy.data.meta, ...this.additionalFields };\n\n copy.project_id = this.project.id;\n copy.data.meta.controllerMappings = controllerMappings;\n\n // ======== rules\n // ==== when create ems\n if (!this.isEditModal) {\n await this.addRulesWhenCreateEMS(copy);\n // ==== when edit ems\n } else {\n await this.generalRulesWhenUpdateEMS(copy);\n if (['EMS', 'EnergyView'].includes(this.deviceData.data.type)) {\n await this.addSystemRulesWhenUpdateEMS(copy);\n }\n }\n\n this.$emit('handleControl', copy);\n\n this.$emit('closeDialog');\n\n // unblock send button\n this.updatingDeviceProcess = false;\n }\n\n async created() {\n this.initSystemsFormStructure();\n this.mlModel = cloneDeep(this.deviceData);\n\n if (this.activeRoomId.length && !this.isEditModal) this.mlModel.collection_id = this.activeRoomId;\n\n this.controllerMainMappingsLocal = this.initMainMappings();\n\n // init fields in stage 3\n this.initAdditionalFields();\n\n if (this.isEditModal) {\n this.initSystemsFormWhenEditDevice();\n this.loadMainMappings();\n } else {\n this.initSystemsFormWhenNewDevice();\n }\n\n this.dataSnapshot = cloneDeep({ ...this.controllerMainMappingsLocal, ...this.systemsForm });\n await this.loadRules(this.$route.params.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EMSSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EMSSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EMSSchema.vue?vue&type=template&id=6361fc9e&\"\nimport script from \"./EMSSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./EMSSchema.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EMSSchema.vue?vue&type=style&index=0&id=6361fc9e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Highstock from 'highcharts/highstock';\nimport moment from 'moment';\nimport { formatDateForPeriod } from '@/utils/utilsFunctions';\nimport api from '@/services/api';\nimport i18n from '@/ui/plugins/i18n';\nimport ChartColors from './ChartColors';\nimport { getVariableNames, calculate, getScope, addAggsToExpression } from './ChartMath';\nimport {\n getChartOptions,\n getAlternativeVariableName,\n Periods,\n periodConfigurations,\n isView,\n checkAllScalingsEqual,\n isCalculation,\n getDateBoundsByPeriod,\n} from './ChartUtils';\n\nexport const defaultChartColors = ChartColors.baseColors;\n\nexport default class LynusChart {\n constructor(\n device,\n projectId,\n baseURL,\n isDarkTheme,\n startedAt,\n initialBackgroundColor,\n stackingOP,\n periodConfigs = periodConfigurations,\n chartColors = defaultChartColors,\n customApproximationValue,\n onMouseMove,\n onDataLoaded,\n ) {\n this.chart; // holds the highcharts object\n this.projectId = projectId;\n this.baseURL = baseURL;\n this.device = device;// the device data we got from the API\n this.startedAt = startedAt;// contains the timestamp when the Project was created\n this.periodConfigs = periodConfigs;\n this.period = periodConfigs[Periods.DAY];\n this.countLines = 0;\n this.countColumns = 0;\n this.stackingOptions = stackingOP;\n this.isDarkTheme = isDarkTheme;\n this.backgroundColor = initialBackgroundColor;\n this.chartColors = chartColors;\n this.customApproximationValue = customApproximationValue;\n this.onMouseMove = onMouseMove; // (optional) callback for mouse move on chart container\n this.onDataLoaded = onDataLoaded;\n this.loadingError = false; // variable will trigger showing reload button when there is a error while loading\n\n const p = this.period.period();\n this.chartBounds = {\n start: p.start,\n end: p.end,\n endChart: p.endChart,\n };\n\n // stores a mapping from \"variable_agg\" -> data, to \"cache\" data and\n // avoid multiple requests for same data\n this.loadedVariables = {};\n\n this.customLoader = false;\n }\n\n /**\n * only switches the period to the given one\n * period: Periods (Periods.LIVE, Periods.DAY, ...) or simple string \"live\", \"day\", ...\n * @param {string} period current period\n */\n switchPeriod(period) {\n this.period = this.periodConfigs[period];\n const p = this.period.period();\n this.chartBounds = {\n start: p.start,\n end: p.end,\n endChart: p.endChart,\n };\n\n // clear loadedVariables\n this.loadedVariables = {};\n }\n\n /**\n * Main function for switching between periods (live, day, week, ...)\n * and loading according data.\n * Period: Periods (Periods.LIVE, Periods.DAY, ...)\n * or simple string \"live\", \"day\", ...\n * @param {string} period current period\n * @param {string} authToken auth token\n * @return {Promise} chart data\n */\n async switchPeriodAndLoad(period, authToken) {\n this.switchPeriod(period);\n\n await this.loadChart(authToken, { start: this.chartBounds.start, end: this.chartBounds.end, endChart: this.chartBounds.endChart }, false);\n }\n\n // main function for switching calendar range (selected using date picker)\n // the expected parameters are a dateArray containing timestamps, and the authToken for the API\n async loadCalendarRange(date, authToken) {\n const toSeconds = 1000;\n const now = Math.trunc(new Date().getTime() / toSeconds);\n this.chartBounds = getDateBoundsByPeriod(date, this.period.title);\n if (this.chartBounds.end > now) {\n this.chartBounds.end = now;\n }\n\n await this.loadChart(authToken);\n }\n\n /**\n * Main entrypoint for updating all variables at once.\n * Updates the variable at the given index with the new value within the chart\n * @param {array} values list of values\n */\n liveUpdateAllVariables(values) {\n const time = new Date().getTime();\n const options = getChartOptions(this.device);\n\n this.chart.xAxis[0].update({\n min: time - 900000, // update the min for live chart\n });\n\n // add each data point\n values.forEach((value, index) => {\n // ignore column types\n if (options[index].type === 'column') return;\n\n const isThreshold = options[index].seriesType === 'Threshold';\n if (!isThreshold) this.chart.series[index].addPoint([time, value]);\n\n // remove values after given time\n if (this.chart.series[index].data.length > 1100) {\n this.chart.series[index].data.shift();\n }\n });\n\n this.updateScalingIfDataNotFit();\n // load darkmode if during live event\n this.updateTheme();\n }\n\n /**\n * Expects string identifier of container\n * @param container HTML element where the chart will be drawn\n */\n buildChart(container) {\n const allSeriesSameScalings = checkAllScalingsEqual(getChartOptions(this.device));\n // if a color is given in the chart series option that color will be used else the default color will be used\n if (this.device.data.chartOptions[0].seriesColor !== undefined) {\n const colorArray = [];\n this.device.data.chartOptions.forEach((element) => {\n colorArray.push(element.seriesColor);\n });\n this.chartColors = colorArray;\n }\n const updatedYAxis = this.updateYAxis();\n\n // create chart instance\n this.chart = Highstock.chart({\n chart: {\n backgroundColor: this.backgroundColor,\n animation: false,\n renderTo: container,\n legend: {\n itemStyle: {\n color: this.isDarkTheme ? '#ffffff' : '#000000',\n },\n },\n events: {\n redraw: () => {\n if (this.chart !== undefined) {\n this.chart.pointer.chartPosition = null;\n this.chart.render();\n }\n },\n },\n },\n navigation: {\n buttonOptions: {\n enabled: false,\n },\n },\n // set Colors for series in Highcharts\n colors: this.chartColors,\n title: {\n text: '',\n },\n credits: {\n enabled: false,\n },\n xAxis: {\n type: 'datetime',\n },\n loading: {\n labelStyle: {\n color: 'black',\n },\n },\n yAxis: updatedYAxis,\n series: getChartOptions(this.device).map((optionsItem, index) => {\n let { name } = optionsItem;\n const variableName = optionsItem.var;\n\n if (!name || name.length === 0) {\n // name not set\n name = getAlternativeVariableName(index, this.device);\n }\n\n return {\n name,\n variableName,\n data: [],\n yAxis: allSeriesSameScalings ? 0 : index,\n type: optionsItem.type,\n showInLegend: optionsItem.seriesType !== 'Threshold',\n };\n }),\n tooltip: {\n shared: true,\n // xDateFormat now working...\n xDateFormat: '%Y-%m-%d',\n valueDecimals: 2,\n },\n // https://stackoverflow.com/questions/51130861/how-do-i-get-remove-of-data-table-option-from-high-chart-export\n plotOptions: {\n series: {\n marker: {\n enabled: false,\n },\n },\n area: {\n marker: {\n enabled: false,\n },\n },\n column: {\n stacking: this.stackingOptions,\n },\n },\n time: {\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n useUTC: false,\n },\n });\n\n // load darkmode on area change\n this.updateTheme();\n\n // Add Title if Fullscreen is active\n document.addEventListener('fullscreenchange', event => this.onFullScreenChange());\n\n // watch ath zoom of browser or a resizing of the browser window\n window.addEventListener('resize', event => {\n setTimeout(() => { this.updateTheme(); }, 100);\n });\n\n // add mouse (touch) move callbacks to chart\n if (this.onMouseMove) {\n ['mousemove', 'touchmove', 'touchstart'].forEach((eventType) => {\n this.chart.container.addEventListener(\n eventType, (e) => {\n if (e !== undefined) {\n this.onMouseMove(this.chart, e);\n }\n },\n );\n });\n }\n }\n\n /**\n * Sets the global locale for Highcharts.\n * @param {*} locale the locale as a string, in format 'en', 'de' or 'it'\n */\n setLocale(locale) {\n // set locale and lang options\n moment.locale(locale);\n Highstock.setOptions({\n lang: {\n weekdays: moment.weekdays(),\n shortWeekdays: moment.weekdaysShort(),\n months: moment.months(),\n shortMonths: moment.monthsShort(),\n },\n });\n }\n\n /**\n * Updates the chart subtitle with the currently selected date in a readable format.\n */\n updateChartTitle() {\n const dates = [new Date(this.chartBounds.start * 1000)];\n\n // add also end date, in case of week\n if (this.period.title === 'week') dates.push(new Date(this.chartBounds.end * 1000));\n\n // update the chart title\n this.chart.update({\n title: {\n text: formatDateForPeriod(this.period.title, dates),\n style: {\n color: this.isDarkTheme ? '#fff' : '#000000',\n fontSize: 10,\n },\n },\n });\n }\n\n setIsDarkTheme(isDarkTheme) {\n this.isDarkTheme = isDarkTheme;\n }\n\n setDevice(device) {\n this.device = device;\n }\n\n setChartColors(chartColors) {\n this.chartColors = chartColors;\n\n const updatedYAxis = this.updateYAxis();\n this.chart.update({\n colors: this.chartColors,\n yAxis: updatedYAxis,\n });\n }\n\n updateYAxis() {\n const allSeriesSameScalings = checkAllScalingsEqual(getChartOptions(this.device));\n const yAxisArray = allSeriesSameScalings ? getChartOptions(this.device).slice(0, 1) : getChartOptions(this.device);\n\n const initYAxis = (chartOptions) => {\n return chartOptions.map((data, index) => ({\n labels: {\n formatter(context) {\n if (typeof context.value !== 'number') return '';\n\n // Use thousands separator for four-digit numbers too\n if (Number.isInteger(this.value)) {\n return `${context.value} ${data.unit || ''}`;\n } else {\n return `${context.value.toFixed(2)} ${data.unit || ''}`;\n }\n },\n style: {\n color: allSeriesSameScalings ? '#949494' : this.chartColors[index],\n },\n },\n title: {\n text: undefined,\n },\n min: data.scaling.min,\n max: data.scaling.max,\n endOnTick: yAxisArray.length === 1 || !allSeriesSameScalings,\n showEmpty: false,\n }));\n };\n return initYAxis(yAxisArray);\n }\n\n /**\n * Called when theme is changed. requires current theme background color to be passed.\n * @param {string} backgroundColor background color\n */\n onThemeChange(backgroundColor) {\n this.backgroundColor = backgroundColor;\n this.updateTheme();\n }\n\n onFullScreenChange() {\n this.chart.update({\n title: {\n text: document.fullscreenElement !== null ? this.device.name : undefined,\n },\n });\n // set Tilte color based on darkmode \"on\" or \"off\"\n this.chart.title.update({\n style: {\n color: this.isDarkTheme ? '#fff' : '#000000',\n fontSize: 20,\n },\n });\n\n // set darktheme on toggle fullscreen (timeout is needed)\n setTimeout(() => { this.updateTheme(); }, 10);\n }\n\n updateColumnLineCounts() {\n getChartOptions(this.device).forEach((variable) => {\n if (variable.type === 'column' || variable.type === 'diff') {\n this.countColumns++;\n } else {\n this.countLines++;\n }\n });\n }\n\n /**\n * Relies on this.isDarkTheme to be already set correctly\n */\n updateTheme() {\n // set Legend Text Color\n this.chart.legend.update({\n itemStyle: {\n color: this.isDarkTheme ? '#ffffff' : '#000000',\n },\n });\n // set background of Chart\n this.chart.chartBackground.attr({\n fill: this.backgroundColor,\n });\n this.chart.title.update({\n style: {\n color: this.isDarkTheme ? '#fff' : '#000000',\n },\n });\n }\n\n get isFullScreenOpen() {\n return this.chart.fullscreen.isOpen;\n }\n handleFullScreen() {\n this.chart.fullscreen.open();\n }\n\n setWidth(width) {\n if (this.chart) {\n this.chart.chartWidth = width;\n }\n }\n\n showLoading() {\n this.chart.showLoading();\n }\n\n /**\n * Toggle stacking options\n */\n toggleStacking() {\n if (this.stackingOptions === 'normal') {\n this.stackingOptions = undefined;// to disable\n } else {\n this.stackingOptions = 'normal';// to stack by value\n }\n this.chart.update({ plotOptions: { column: { stacking: this.stackingOptions } } });\n\n // update theme because otherwise it switches back to light theme\n this.updateTheme();\n }\n\n /**\n * Add threshold line(0-100%), used only on anomaly detection devices\n * @param {number} value threshold value\n */\n drawThreshold(value) {\n if (typeof value === 'number') {\n this.chart.yAxis[this.chart.yAxis.length - 1].addPlotLine({\n value,\n color: 'green',\n dashStyle: 'Dash',\n width: 3,\n label: {\n text: 'Threshold',\n align: 'right',\n x: -10,\n y: -5,\n },\n zIndex: 1,\n });\n }\n }\n\n /**\n * If in series data exist value which not fit in scaling, define new scaling regarding data max/min value\n */\n updateScalingIfDataNotFit() {\n this.chart.yAxis.forEach((d) => {\n const { dataMax, max, dataMin, min } = d;\n if (typeof min === 'number') {\n const minVal = dataMin < min ? null : min;\n d.update({ min: minVal });\n }\n if (typeof max === 'number') {\n const maxVal = dataMax > max ? null : max;\n d.update({ max: maxVal });\n }\n });\n }\n\n /**\n * Main entrypoint for loading chart\n * @param {string} authToken auth token\n * @return {Promise}\n */\n async loadChart(authToken) {\n this.updateChartTitle();\n try {\n this.customLoader = true;\n const data = await this.loadDataAsList(this.baseURL, authToken, this.chartBounds);\n await this.load(data);\n this.onDataLoaded?.(data, this.chart, this.period);\n this.updateScalingIfDataNotFit();\n } catch (e) {\n this.customLoader = false;\n this.loadingError = true;\n this.chart.showLoading(i18n.t('errorMessages.charts.basicChartError', { message: e.message }));\n }\n }\n\n getChartStart(start) {\n // check if start Timestamp smaller than the Timestamp of the Creation of the Project\n const formattedCreatedAt = Math.trunc(this.startedAt / 1000);// example: 1601301551\n\n return start < formattedCreatedAt\n ? formattedCreatedAt\n : start;\n }\n\n async loadDataAsList(baseURL, authToken, bounds) {\n let chartVariablesList = [];\n const converted = [];\n\n // goes through all mapped variables and makes an array of variables to load from the backend\n getChartOptions(this.device).forEach((optionsItem, index) => {\n if (this.device.data.mappings || isView(optionsItem)) {\n chartVariablesList.push({ name: optionsItem.var, aggregation: optionsItem.agg });\n } else {\n const variableNames = getVariableNames(optionsItem.calculation.expression);\n variableNames.forEach((variable, variableIndex) => {\n chartVariablesList.push({ name: variable, aggregation: optionsItem.calculation.aggregations[variableIndex] });\n });\n }\n });\n\n // loads list of data from backend\n chartVariablesList = await this.loadDataList(baseURL, this.projectId, authToken, bounds.start, bounds.end, chartVariablesList);\n\n // gets series list from the loaded data from backend\n chartVariablesList = this.loadSeriesDataList(chartVariablesList);\n\n Object.values(chartVariablesList).forEach((currentVar) => {\n // convert data to milliseconds [[date_in_unix * 1000, value]]\n if (currentVar !== undefined) {\n const convertedSeries = currentVar.map(list => {\n if (Array.isArray(list)) {\n return [list[0] * 1000, list[1]];\n } else {\n return [];\n }\n });\n converted.push(convertedSeries);\n }\n });\n this.dataToExport = converted;\n return converted;\n }\n\n /**\n * loads the data from the API. corresponds to api.fetch in ts.\n * @param {string} baseURL base URL\n * @param {string} projectId project id\n * @param {string} chartVariablesList contains map with all variables and aggregations for the request\n * @param {string} authToken auth token\n * @param {string} start start time of chart\n * @param {string} chartEnd end time of chart\n * @return map of loaded Variables key: varName_Agg: [[timeStamp, val], [timeStamp, val]]\n */\n async loadDataList(baseURL, projectId, authToken, start, chartEnd, chartVariablesList) {\n const chartStart = this.getChartStart(start);\n\n if (this.countLines === 0 && this.countColumns > 0) {\n // subtract 1 second to not get into the subsequent interval\n chartEnd -= 1;\n }\n\n // delay in order to display timeout if request takes longer\n const delay = new Promise((_, reject) => {\n setTimeout(() => reject(new Error(i18n.t('errorMessages.charts.chartTimeout'))), 60000);\n });\n\n return Promise.race([delay, this.chartRequest(projectId, chartStart, chartEnd, chartVariablesList)]);\n }\n\n async chartRequest(projectId, chartStart, chartEnd, chartVariablesList) {\n // remove duplicates from chartVariablesList\n const filteredArray = chartVariablesList.filter((item, index, self) => index === self.findIndex((t) => (\n t.name === item.name && t.aggregation === item.aggregation\n )));\n\n // split array into chunks of 10 variables\n const variablesSplitInTen = this.splitArrayIntoChunks(filteredArray, 10);\n\n // load data from backend\n const values = await Promise.all(variablesSplitInTen.map(async (variables) => {\n const res = await api.fetch(\n `/projects/${projectId}/timeseries`,\n 'POST',\n { start: chartStart, end: chartEnd, interval: this.period.interval, variables },\n );\n return res;\n }));\n // combine all values into one object with all the data\n const combinedObject = values.reduce((accumulator, currentObject) => {\n return { ...accumulator, ...currentObject };\n }, {});\n return combinedObject;\n }\n\n splitArrayIntoChunks(array, chunkSize) {\n const result = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n const chunk = array.slice(i, i + chunkSize);\n result.push(chunk);\n }\n return result;\n }\n\n loadSeriesDataList(chartVariablesList) {\n const seriesDataList = [];\n getChartOptions(this.device).forEach((optionsItem, index) => {\n if (this.device.data.mappings || isCalculation(optionsItem)) {\n const variableValues = {};\n const { expression } = optionsItem.calculation;\n const variableNames = getVariableNames(expression);\n const { aggregations } = optionsItem.calculation;\n\n variableNames.forEach((element, index) => {\n const key = `${element}_${aggregations[index]}`;\n variableValues[key] = chartVariablesList[key];\n });\n\n // start with first variable, to have an array with [timestamp, value] of correct length\n const firstVariable = Object.values(variableValues)[0];\n\n // loop over entries [timestamp, value] and calculate the values according to the expression\n const result = firstVariable?.map((element, i) => {\n const timestamp = element[0];\n const scope = getScope(i, variableNames, aggregations, variableValues);\n const value = calculate(addAggsToExpression(expression, aggregations), scope);\n return [timestamp, value];\n });\n seriesDataList[index] = result;\n } else {\n const key = `${optionsItem.var}_${optionsItem.agg}`;\n seriesDataList[index] = chartVariablesList[key];\n }\n });\n\n return seriesDataList;\n }\n\n /**\n * loads the passed loadedData into the chart.\n * @param {object} loadedData loaded data\n * @return {Promise}\n */\n async load(loadedData) {\n let endChart = this.chartBounds.endChart * 1000;\n if (this.period.title === Periods.LIVE) {\n endChart = undefined;\n }\n\n // set data to each chart series\n loadedData.forEach((data, index) => {\n this.chart.series[index].update({\n data,\n });\n });\n\n // set units for columnChart\n getChartOptions(this.device).forEach((variable, index) => {\n if (variable.type === 'column' || variable.type === 'diff') {\n // set diffrent approximation value\n const approximationValue = this.getApproximationValue(variable.agg);\n\n // set datagrouping for column\n // costum Values Array is needed to modify the Datagrouping. Example: normal charts with day period has one column every 4 hours.\n // with modulare ones. Heating Prediction Device for example has one every hour\n const units = this.getDataGroupingUnits();\n this.chart.series[index].update({\n dataGrouping: {\n forced: true,\n approximation: approximationValue,\n enabled: true,\n units,\n },\n });\n }\n });\n\n // set xDateFormatter\n this.chart.tooltip.update({ xDateFormat: this.period.tooltipFormat });\n\n // Load Options & set zIndex for Chart\n getChartOptions(this.device).forEach((variable, index) => {\n this.chart.series[index].update({\n zIndex: variable.type === 'column' ? 2 : 4,\n });\n });\n\n // set the min and max values of the xAxis (xAxis[0])\n this.chart.xAxis[0].update({\n min: this.chartBounds.start * 1000,\n max: endChart,\n labels: {\n formatter: (e) => {\n const init = +e.value;\n const d = new Date(init);\n const utc = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds());\n return Highstock.dateFormat(this.period.format, utc);\n },\n },\n tickInterval: this.period.tickInterval,\n });\n\n // load darkmode if selected\n this.updateTheme();\n this.chart.redraw();\n\n const hasData = this.chart.series.some((series) => series.options.data.some((point) => point[1] !== null));\n this.customLoader = false;\n if (!hasData) {\n this.chart.showLoading('No data in selected period.');\n }\n }\n\n getDataGroupingUnits() {\n switch (this.period.title) {\n case 'day':\n return [['hour', [this.customApproximationValue.day]]];\n case 'week':\n return [['day', [this.customApproximationValue.week]]];\n case 'month':\n return [['day', [this.customApproximationValue.month]]];\n case 'year':\n return [['month', [this.customApproximationValue.year]]];\n }\n }\n\n getApproximationValue(agg) {\n switch (agg) {\n case 'min':\n return 'low';\n case 'max':\n return 'high';\n case 'last':\n return 'close';\n case 'first':\n return 'open';\n case 'diff':\n return 'sum';\n default:\n return 'average';\n }\n }\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=style&index=0&id=da8bf1d8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=style&index=0&id=de29a6e8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTimetableConsumer.vue?vue&type=style&index=0&id=12ad7f74&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=1dbea696&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarNavigation.vue?vue&type=style&index=0&id=4882be27&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{key:_vm.resizeRerender,staticStyle:{\"position\":\"relative\",\"height\":\"100%\"}},[(_vm.isLinesReady)?_c('EnergyLines',{attrs:{\"display-data\":_vm.energyLinesDataLive,\"canvas-size\":_vm.canvasSize}}):_vm._e(),_c('div',{ref:\"circles\",staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"100%\",\"position\":\"relative\"}},[_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\"},_vm._l((_vm.topCircles),function(item){return _c('div',{key:item.id,ref:item.id,refInFor:true},[_c('EnergyCircle',{attrs:{\"display-data\":item,\"view\":_vm.view}})],1)}),0),_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\"},[_c('div',{ref:_vm.middleLeftCircle.id,staticClass:\"d-flex align-center justify-center\"},[_c('EnergyCircle',{key:_vm.middleLeftCircle.id,attrs:{\"display-data\":_vm.middleLeftCircle,\"view\":_vm.view}})],1),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('CentralEndpoint')],1),_c('div',{ref:_vm.middleRightCircle.id,staticClass:\"d-flex align-center justify-center\"},[_c('EnergyCircle',{key:_vm.middleRightCircle.id,attrs:{\"display-data\":_vm.middleRightCircle,\"view\":_vm.view}})],1)]),_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\"},_vm._l((_vm.bottomCircles),function(item){return _c('div',{key:item.id,ref:item.id,refInFor:true},[_c('EnergyCircle',{attrs:{\"display-data\":item,\"view\":_vm.view}})],1)}),0)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"energy-circle\",class:{ placeholder: _vm.isPlaceholder },attrs:{\"data-testid\":_vm.displayData.id,\"rounded\":\"circle\",\"elevation\":\"1\"},on:{\"click\":_vm.energyCircleOnClick}},[(_vm.displayData.title)?_c('v-tooltip',{attrs:{\"top\":_vm.titlePosition === 'top',\"bottom\":_vm.titlePosition === 'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({class:['energy-circle-title', _vm.titlePosition],attrs:{\"data-testid\":\"circle-title\"}},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.displayData.title)+\" \")])]}}],null,false,4162704242)},[_c('span',[_vm._v(_vm._s(_vm.displayData.title))])]):_vm._e(),(_vm.displayData.systemCount)?_c('div',{staticClass:\"system-count\",class:[_vm.systemCountPosition]},[_c('v-btn',{staticClass:\"text-body-2\",attrs:{\"color\":\"lynusText\",\"outlined\":\"\",\"fab\":\"\",\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.displayData.systemCount)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"energy-circle-content\"},[_c('div',{style:(_vm.circleContentStyle)},[(_vm.isBatterySoc)?_c('BatteryLevel',{attrs:{\"battery-state\":_vm.displayData.centerContent.value}}):_c('lynus-icon',{attrs:{\"name\":_vm.displayData.centerContent.value,\"color\":\"theme\",\"size\":40}})],1),_c('EnergyCircleValue',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.energyCircleValueShow),expression:\"energyCircleValueShow\"}],class:_vm.valuePositionClass,attrs:{\"data-testid\":\"value\",\"value\":_vm.energyCircleValueValue,\"highlight-color\":_vm.displayData.spinnerColor,\"is-highlighted\":_vm.displayData.highlightBottomValue}}),(_vm.displayData.errorWarningMode)?_c('ShowEventBaseGroup',{attrs:{\"warning-state\":_vm.displayData.errorWarningMode}}):_vm._e(),_c('RotatingBacklight',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.disableSpinner),expression:\"disableSpinner\"}],attrs:{\"color\":_vm.displayData.spinnerColor,\"no-data\":_vm.rotatingBacklightNoData}})],1),(_vm.isForceChargeIndicator)?_c('ForceChargeIndicator',{attrs:{\"displayData\":_vm.displayData}}):_vm._e(),(_vm.p14aActive)?_c('AdditionalIndicator',{attrs:{\"info\":_vm.p14aActiveInfo}}):(_vm.feedInLimitationActive)?_c('AdditionalIndicator',{attrs:{\"info\":_vm.feedInLimitationActiveInfo}}):(_vm.isEmsModeIndicator)?_c('EmsModeIndicator',{attrs:{\"displayData\":_vm.displayData}}):_vm._e(),(_vm.showLoadingAnimationHouseCircle)?_c('HouseCalculationInfo'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{style:(_vm.styles)},[_vm._v(\" \"+_vm._s(_vm.value)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport tinycolor from 'tinycolor2';\n\n@Component\nexport default class EnergyCircleValue extends Vue {\n @Prop({ default: '' }) value!: string;\n @Prop({ default: false }) isHighlighted!: boolean;\n @Prop() highlightColor!: string;\n\n get styles() {\n return {\n color: tinycolor(this.highlightColor).isDark() ? '#ffffff' : '#525252',\n background: this.highlightColor,\n };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValue.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValue.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyCircleValue.vue?vue&type=template&id=710b7f9a&scoped=true&\"\nimport script from \"./EnergyCircleValue.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyCircleValue.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyCircleValue.vue?vue&type=style&index=0&id=710b7f9a&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"710b7f9a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charge-indicator\"},[_c('ModalWindow',{attrs:{\"activeSymbols\":_vm.activeSymbols,\"max-width\":1000},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('LynusIcon',{class:{ 'icon-blink-animation': true },attrs:{\"name\":_vm.currentIcon,\"size\":\"30\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.batteryInfoTitle')))])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"px-8\"},[_c('div',{staticClass:\"py-4\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('StatusIndicator',{staticClass:\"mr-2\",attrs:{\"status\":true}}),_c('h3',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.batteryOptimizationTitle')))])],1),_c('div',{staticClass:\"clamp\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.batteryOptimizationInfo')))])]),_c('div',{staticClass:\"py-4\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.generalBatteryInfoTitle')))]),_c('div',{staticClass:\"clamp\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.generalBatteryInfo')))]),_c('a',{staticClass:\"docs-link\",attrs:{\"target\":\"_blank\",\"href\":\"https://lynus.zammad.com/help/de-de/68-faq/120-allgemeine-infos-zu-lynus-lfp-akkus-bezuglich-ladung-und-entladung\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.docsLink'))+\"...\")])]),_c('h2',{staticClass:\"pt-8\",staticStyle:{\"text-align\":\"center\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.batteryIndicators')))]),_c('div',{staticClass:\"d-flex flex-wrap justify-center pb-4\"},_vm._l((_vm.activeSymbols),function(icon,index){return _c('div',{key:index,staticClass:\"px-8 py-4 d-flex align-center\",staticStyle:{\"width\":\"25%\"}},[_c('LynusIcon',{class:{ 'icon-blink-animation-modal': true },attrs:{\"name\":icon,\"size\":\"45\"}}),_c('div',[_c('h3',[_vm._v(_vm._s(_vm.items[_vm.allSymbols.indexOf(icon)].title))]),_c('a',{staticClass:\"docs-link\",attrs:{\"target\":\"_blank\",\"href\":_vm.items[_vm.allSymbols.indexOf(icon)].link}},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.docsLink'))+\"...\")])])],1)}),0)])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport LynusIcon from '@/ui/components/components/LynusIcon.vue';\nimport StatusIndicator from '@/ui/components/components/StatusIndicator.vue';\n\n/**\n * Component that represents the force charge indicator for battery systems\n */\n@Component({\n components: {\n StatusIndicator,\n LynusIcon,\n ModalWindow,\n InfoTooltip,\n },\n})\nexport default class ChargeIndicator extends Vue {\n @Prop({}) displayData!: EnergyCircleDisplayData;\n\n index = 0;\n allSymbols = ['ronova_battery_charge2', 'ronova_battery_calibrate', 'ronova_battery_protect', 'ronova_battery_plus'];\n\n get forceCharge() {\n return this.displayData.additionalDisplayData?.forceCharge;\n }\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMSV2.mainView.forceCharge'),\n info: this.$t('mlModel.EMSV2.mainView.forceChargeInfo'),\n link: 'https://lynus.zammad.com/help/de-de/68-faq/124-erklarung-force-charge',\n },\n {\n title: this.$t('mlModel.EMSV2.mainView.calibrationCharge'),\n info: this.$t('mlModel.EMSV2.mainView.calibrationChargeInfo'),\n link: 'https://lynus.zammad.com/help/de-de/68-faq/121-erklarung-kalibrierungsladung',\n },\n {\n title: this.$t('mlModel.EMSV2.mainView.maintenanceCharge'),\n info: this.$t('mlModel.EMSV2.mainView.maintenanceChargeInfo'),\n link: 'https://lynus.zammad.com/help/de-de/68-faq/122-erklarung-erhaltungsladung',\n },\n {\n title: this.$t('mlModel.EMSV2.mainView.chargeMaintenance'),\n info: this.$t('mlModel.EMSV2.mainView.chargeMaintenanceInfo'),\n link: 'https://lynus.zammad.com/help/de-de/68-faq/123-erklarung-ladungserhaltung',\n },\n ];\n }\n\n get calibrationCharge() {\n return this.displayData.additionalDisplayData?.calibrationCharge;\n }\n\n get maintenanceCharge() {\n return this.displayData.additionalDisplayData?.maintenanceCharge;\n }\n\n get chargeMaintenance() {\n return this.displayData.additionalDisplayData?.chargeMaintenance;\n }\n\n get activeSymbols() {\n return [\n this.forceCharge ? 'ronova_battery_charge2' : '',\n this.calibrationCharge ? 'ronova_battery_calibrate' : '',\n this.maintenanceCharge ? 'ronova_battery_protect' : '',\n this.chargeMaintenance ? 'ronova_battery_plus' : '',\n ].filter((symbol) => symbol !== '');\n }\n\n get currentIcon() {\n return this.activeSymbols[this.index];\n }\n\n mounted() {\n // Interval to switch between all active icons\n setInterval(() => {\n this.index = (this.index + 1) % this.activeSymbols.length;\n }, 5000);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=72bfd0c8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=72bfd0c8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72bfd0c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"house-calculation-info\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":'accent',\"size\":\"25\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.calculationInfo')))])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\n\n/**\n * Component that represents the force charge indicator for battery systems\n */\n@Component({\n components: {\n InfoTooltip,\n },\n})\nexport default class HouseCalculationInfo extends Vue {\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a70ae0f6&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=a70ae0f6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a70ae0f6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-mode-indicator\"},[_c('ModalWindow',{attrs:{\"activeSymbols\":_vm.currentMode.documentation.title,\"width\":400,\"max-width\":1000},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('v-icon',{staticClass:\"icon-color\"},[_vm._v(_vm._s(_vm.currentMode.iconLeft))]),_c('div',{staticClass:\"connecting-line\"}),_c('v-icon',{staticClass:\"icon-color\"},[_vm._v(_vm._s(_vm.currentMode.iconRight))])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.emsModeInfoTitle')))])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"px-8 py-4 d-flex align-center\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex align-center mx-3\"},[_c('v-icon',{staticClass:\"icon-color\"},[_vm._v(_vm._s(_vm.currentMode.iconLeft))]),_c('div',{staticClass:\"connecting-line\"}),_c('v-icon',{staticClass:\"icon-color\"},[_vm._v(_vm._s(_vm.currentMode.iconRight))])],1),_c('div',[_c('h3',[_vm._v(_vm._s(_vm.currentMode.documentation.title))]),_c('a',{staticClass:\"docs-link\",attrs:{\"target\":\"_blank\",\"href\":_vm.currentMode.documentation.link}},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.docsLink'))+\"...\")])])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport LynusIcon from '@/ui/components/components/LynusIcon.vue';\nimport StatusIndicator from '@/ui/components/components/StatusIndicator.vue';\n\n/**\n * Component that represents the force charge indicator for battery systems\n */\n@Component({\n components: {\n StatusIndicator,\n LynusIcon,\n ModalWindow,\n InfoTooltip,\n },\n})\nexport default class EmdModeIndicator extends Vue {\n @Prop({}) displayData!: EnergyCircleDisplayData;\n\n get activeEmsMode() {\n return this.displayData.additionalDisplayData?.activeEmsMode;\n }\n\n get currentMode() {\n switch (this.activeEmsMode) {\n case 1:\n return {\n iconLeft: 'mdi-solar-power',\n iconRight: 'mdi-transmission-tower',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.sellEnergy'),\n info: this.$t('mlModel.EMSV2.mainView.sellEnergyInfo'),\n link: 'https://lynus.zammad.com/help/de-de/166-direktvermarktung-dynamischer-stromtarif/241-modus-beschreibungen',\n },\n };\n case 2:\n return {\n iconLeft: 'mdi-transmission-tower',\n iconRight: 'mdi-home-variant',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.buyEnergy'),\n info: this.$t('mlModel.EMSV2.mainView.buyEnergyInfo'),\n link: 'https://lynus.zammad.com/help/de-de/166-direktvermarktung-dynamischer-stromtarif/241-modus-beschreibungen',\n },\n };\n case 3:\n return {\n iconLeft: 'mdi-transmission-tower',\n iconRight: 'mdi-scale-balance',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.regelenergiePositive'),\n info: this.$t('mlModel.EMSV2.mainView.regelenergiePositiveInfo'),\n link: 'https://lynus.zammad.com/help/de-de/166-direktvermarktung-dynamischer-stromtarif/241-modus-beschreibungen',\n },\n };\n case 4:\n return {\n iconLeft: 'mdi-scale-balance',\n iconRight: 'mdi-transmission-tower',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.regelenergieNegative'),\n info: this.$t('mlModel.EMSV2.mainView.regelenergieNegativeInfo'),\n link: 'https://lynus.zammad.com/help/de-de/166-direktvermarktung-dynamischer-stromtarif/241-modus-beschreibungen',\n },\n };\n default:\n return {\n iconLeft: 'mdi-solar-power',\n iconRight: 'mdi-transmission-tower',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.buyEnergy'),\n info: this.$t('mlModel.EMSV2.mainView.buyEnergyInfo'),\n link: 'https://lynus.zammad.com/help/de-de/166-direktvermarktung-dynamischer-stromtarif/241-modus-beschreibungen',\n },\n };\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmsModeIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmsModeIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmsModeIndicator.vue?vue&type=template&id=78ea5926&scoped=true&\"\nimport script from \"./EmsModeIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmsModeIndicator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EmsModeIndicator.vue?vue&type=style&index=0&id=78ea5926&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78ea5926\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-mode-indicator\"},[_c('ModalWindow',{attrs:{\"activeSymbols\":_vm.info.documentation.title,\"width\":400,\"max-width\":1000},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-icon',{staticClass:\"icon-color icon-blink-animation\"},[_vm._v(_vm._s(_vm.info.icon))])]},proxy:true},{key:\"title-text\",fn:function(){return [_c('div',[_vm._v(\"Info Symbol\")])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"px-8 py-4 d-flex align-center\",staticStyle:{\"width\":\"100%\"}},[_c('v-icon',{staticClass:\"icon-color icon-blink-animation\",staticStyle:{\"margin-right\":\"10px\"},attrs:{\"size\":\"26\"}},[_vm._v(_vm._s(_vm.info.icon))]),_c('div',[_c('h3',[_vm._v(_vm._s(_vm.info.documentation.title))]),(_vm.info.documentation.link)?_c('a',{staticClass:\"docs-link\",attrs:{\"target\":\"_blank\",\"href\":_vm.info.documentation.link}},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.docsLink'))+\"...\")]):_vm._e()])],1)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport LynusIcon from '@/ui/components/components/LynusIcon.vue';\nimport StatusIndicator from '@/ui/components/components/StatusIndicator.vue';\n\nexport interface IndicatorInfo {\n icon: string;\n documentation: {\n title: string;\n info: string;\n link?: string;\n };\n}\n\n/**\n * Component that represents the force charge indicator for battery systems\n */\n@Component({\n components: {\n StatusIndicator,\n LynusIcon,\n ModalWindow,\n InfoTooltip,\n },\n})\nexport default class EmdModeIndicator extends Vue {\n @Prop({}) info!: IndicatorInfo;\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdditionalIndicator.vue?vue&type=template&id=dd0f0c40&scoped=true&\"\nimport script from \"./AdditionalIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdditionalIndicator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AdditionalIndicator.vue?vue&type=style&index=0&id=dd0f0c40&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd0f0c40\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop, Inject } from 'vue-property-decorator';\nimport RotatingBacklight\n from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport ShowEventBaseGroup from '@/ui/components/devices/mpc/base/ShowEventBase.vue';\nimport BatteryLevel from '@/ui/components/devices/components/EnergyParts/BatteryLevel.vue';\nimport {\n EnergyCircleDisplayData,\n CirclePosition,\n PlaceholderEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport EnergyCircleValue\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/EnergyCircleValue.vue';\nimport ChargeIndicator\n from '@/ui/components/devices/components/EnergyParts/ChargeIndicator/index.vue';\nimport HouseCalculationInfo\n from '@/ui/components/devices/components/EnergyParts/HouseCalculationInfo/index.vue';\nimport {\n EnergyCircleType,\n isConsumer,\n isProducer\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\nimport { convertNegativeZero, countDecimalPlaces } from '@/utils/utilsFunctions';\nimport EmsModeIndicator from '@/ui/components/devices/components/EnergyParts/EmsModeIndicator.vue';\nimport AdditionalIndicator\n from '@/ui/components/devices/components/EnergyParts/AdditionalIndicator.vue';\n\n@Component({\n components: {\n AdditionalIndicator,\n EmsModeIndicator,\n BatteryLevel,\n RotatingBacklight,\n ShowEventBaseGroup,\n EnergyCircleValue,\n ForceChargeIndicator: ChargeIndicator,\n HouseCalculationInfo,\n },\n methods: {convertNegativeZero},\n})\nexport default class EnergyCircle extends Vue {\n @Prop({}) displayData!: EnergyCircleDisplayData;\n @Prop({default: 'ActualView'}) view!: 'ActualView' | 'EnergyFlowView';\n @Inject({\n from: 'onCircleClick', default: () => {\n }\n }) onCircleClick?: (\n circleData: EnergyCircleDisplayData,\n ) => void;\n\n /**\n * Returns the bottom value formatted with one decimal place if the value has more than one decimal place.\n */\n get formattedBottomValue() {\n let val: any = this.displayData.bottomValue;\n if (typeof this.displayData.bottomValue === 'number' && countDecimalPlaces(this.displayData.bottomValue) > 1) {\n val = parseFloat(this.displayData.bottomValue.toFixed(1));\n }\n const id = this.displayData.id.replace(/[0-9]/g, '') as EnergyCircleType;\n if (val < 0 && (isProducer(id) || isConsumer(id))) {\n return val * -1;\n }\n return val;\n }\n\n get energyCircleValueValue() {\n return this.unit.unitForValue(convertNegativeZero(this.formattedBottomValue ?? 0)).formattedWithUnit;\n }\n\n get energyCircleValueShow() {\n return this.displayData.hideValue !== false && !this.showLoadingAnimationHouseCircle && this.displayData.bottomValue !== undefined;\n }\n\n get titlePosition() {\n return this.displayData.position === CirclePosition.bottom ? 'bottom' : 'top';\n }\n\n get systemCountPosition() {\n return this.displayData.position === CirclePosition.bottom\n ? 'system-count-bottom'\n : 'system-count-top';\n }\n\n get isPlaceholder() {\n return this.displayData instanceof PlaceholderEnergyCircleDisplayData;\n }\n\n get isBatterySoc() {\n return this.displayData.centerContent.type === 'soc';\n }\n\n get isForceChargeIndicator() {\n return this.isBatterySoc &&\n (\n this.displayData.additionalDisplayData?.forceCharge ||\n this.displayData.additionalDisplayData?.calibrationCharge ||\n this.displayData.additionalDisplayData?.maintenanceCharge ||\n this.displayData.additionalDisplayData?.chargeMaintenance\n );\n }\n\n get isGrid() {\n return this.displayData.id === 'grid';\n }\n\n get p14aActive() {\n return this.displayData.additionalDisplayData?.p14aActive;\n }\n\n get feedInLimitationActive() {\n return this.displayData.additionalDisplayData?.feedInLimitationActive;\n }\n\n get p14aActiveInfo() {\n return {\n icon: 'mdi-script-text',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.p14aActive'),\n info: this.$t('mlModel.EMSV2.mainView.p14aActiveInfo'),\n },\n };\n }\n\n get feedInLimitationActiveInfo() {\n return {\n icon: 'mdi-gauge-low',\n documentation: {\n title: this.$t('mlModel.EMSV2.mainView.feedInLimitationActive'),\n info: this.$t('mlModel.EMSV2.mainView.feedInLimitationActiveInfo'),\n },\n };\n }\n\n get isEmsModeIndicator() {\n return (this.isGrid && this.view === 'ActualView') && !!this.displayData.additionalDisplayData?.activeEmsMode;\n }\n\n get showLoadingAnimationHouseCircle() {\n return this.displayData.additionalDisplayData?.showLoadingAnimationHouseCircle ?? false;\n }\n\n get unit() {\n return this.displayData.unit ?? kiloWattUnit;\n }\n\n get rotatingBacklightNoData() {\n if (this.displayData.additionalDisplayData?.forceAnimation) return false;\n return !(this.displayData.bottomValue ?? this.displayData.alternativeValue);\n }\n\n get disableSpinner() {\n return this.displayData.disableSpinner !== true;\n }\n\n get valuePositionClass() {\n return this.displayData.position === CirclePosition.bottom\n ? 'energy-circle-bottom-value'\n : 'energy-circle-top-value';\n }\n\n get circleContentStyle() {\n if (this.displayData.bottomValue === undefined) {\n return {};\n } else {\n return {\n transform:\n this.displayData.position === CirclePosition.bottom\n ? 'translateY(4px)'\n : 'translateY(-4px)',\n };\n }\n }\n\n energyCircleOnClick() {\n this.onCircleClick?.(this.displayData);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=74695f2a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=74695f2a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74695f2a\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport {\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport EnergyLines from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue';\nimport EnergyCircle from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyCircle/index.vue';\nimport {\n CirclePosition,\n EnergyCircleDisplayData,\n PlaceholderEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { CanvasSize } from '@/types/energyVisualisation/energyVisualisation.types';\nimport { debounce } from 'lodash';\n\n@Component({\n components: {\n EnergyLines,\n EnergyCircle,\n CentralEndpoint,\n },\n})\nexport default class EnergyVisualisation extends Vue {\n @Prop({ default: () => [] }) circlesDisplayData!: EnergyCircleDisplayData[];\n @Prop({ default: () => [] }) linesDisplayData!: Partial[];\n @Prop({ default: '' }) centralEndPointText?: string;\n @Prop({ default: 'ActualView' }) view!: 'ActualView' | 'EnergyFlowView';\n\n resizeRerender = true;\n energyLinesData: EnergyLineDisplayData[] = [];\n canvasSize: CanvasSize = { width: 0, height: 0 };\n\n debouncedResize: any;\n\n get topCircles() {\n const res = this.circlesDisplayData.filter((e: EnergyCircleDisplayData) => e.position === CirclePosition.top);\n // To maintain correct spacing if current top row is empty\n return res.length ? res : [new PlaceholderEnergyCircleDisplayData()];\n }\n\n get middleLeftCircle() {\n return this.circlesDisplayData.find((e: EnergyCircleDisplayData) => e.position === CirclePosition.middleLeft) ?? new PlaceholderEnergyCircleDisplayData();\n }\n\n get middleRightCircle() {\n return this.circlesDisplayData.find((e: EnergyCircleDisplayData) => e.position === CirclePosition.middleRight) ?? new PlaceholderEnergyCircleDisplayData();\n }\n\n get bottomCircles() {\n const res = this.circlesDisplayData.filter((e: EnergyCircleDisplayData) => e.position === CirclePosition.bottom);\n // To maintain correct spacing if current bottom row is empty\n return res.length ? res : [new PlaceholderEnergyCircleDisplayData()];\n }\n\n get energyLinesDataLive() {\n return this.linesDisplayData.map((reactiveLine: Partial) => {\n const positions = this.energyLinesData.find((staticLine: EnergyLineDisplayData) => staticLine.id === reactiveLine.id);\n return {\n ...reactiveLine,\n arrowDirection: reactiveLine.arrowDirection,\n startPoint: positions?.startPoint ?? { x: 0, y: 0 },\n endPoint: positions?.endPoint ?? { x: 0, y: 0 },\n };\n }) as EnergyLineDisplayData[];\n }\n\n get isLinesReady() {\n return !!this.canvasSize.width && !!this.canvasSize.height && !!this.energyLinesData.length;\n }\n\n onResize() {\n this.updateCircles();\n this.resizeRerender = !this.resizeRerender;\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n updateCircles() {\n const actualViewRef = this.$refs.circles as HTMLDivElement;\n if (!actualViewRef) return;\n this.canvasSize = { width: actualViewRef.clientWidth, height: actualViewRef.clientHeight };\n this.energyLinesData = [];\n this.circlesDisplayData.forEach((circle: EnergyCircleDisplayData, index: number) => {\n const ref = this.$refs[circle.id];\n const element: any = Array.isArray(ref) ? ref[0] : ref;\n if (!element) return;\n\n this.energyLinesData.push({\n ...this.linesDisplayData[index],\n startPoint: {\n x: element.offsetLeft + element.offsetWidth / 2,\n y: element.offsetTop + element.offsetHeight / 2,\n },\n endPoint: { x: this.canvasSize.width / 2, y: this.canvasSize.height / 2 },\n } as EnergyLineDisplayData);\n });\n }\n mounted() {\n this.debouncedResize = debounce(() => this.onResize(), 50);\n setTimeout(() => this.onResize(), 50);\n window.addEventListener('resize', this.debouncedResize);\n\n this.updateCircles();\n }\n destroyed() {\n window.removeEventListener('resize', this.debouncedResize);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=32fb2235&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateSerialNumber.vue?vue&type=style&index=0&id=6216b182&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationWizard.vue?vue&type=style&index=0&id=33aca55c&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(!_vm.hidePeriodNavigation)?_c('div',{staticClass:\"header-navigation-wrapper\"},[_c('PeriodSelection',{staticStyle:{\"grid-column\":\"2\",\"justify-content\":\"center\"},attrs:{\"navigation-items-to-exclude\":_vm.navigationItemsToExclude,\"disable-nav-button\":_vm.disableNavButton,\"count-columns\":_vm.localCountColumns,\"count-lines\":_vm.localCountLines,\"period\":_vm.currentPeriod,\"modularDefaultPeriod\":_vm.modularDefaultPeriod},on:{\"selected\":_vm.handleNavigation}}),_vm._t(\"action\")],2):_vm._e(),_vm._t(\"default\"),_c('CalendarButtons',{key:_vm.rerenderKey,ref:\"calendarSelectionButtonsInstance\",attrs:{\"hide-calendar-navigation\":_vm.hideCalendarNavigation,\"disable-nav-button\":_vm.disableNavButton,\"enable-multi-select\":_vm.enableMultiSelect,\"modular-default-period\":_vm.modularDefaultPeriod,\"custom-approximation-value\":_vm.customApproximationValue,\"current-period\":_vm.currentPeriod},on:{\"handleCalendar\":function($event){return _vm.$emit('handleCalendar', $event)},\"prev\":function($event){return _vm.$emit('prev')},\"next\":function($event){return _vm.$emit('next')}}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex justify-center\"},[(!_vm.hideCalendarNavigation)?_c('div',{staticStyle:{\"padding-right\":\"10px\"}},[_c('v-btn',{staticStyle:{\"border-radius\":\"18px 5px 5px 18px\"},attrs:{\"disabled\":_vm.disableNavButton,\"outlined\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.$emit('prev')}}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_left\",\"color\":\"accent\"}})],1)],1):_vm._e(),_c('ModalWindow',{ref:\"modalWindowInstance\",attrs:{\"disabled\":!_vm.currentCalendar.active,\"padding\":false,\"persistent\":true},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('div',[_c('v-btn',{attrs:{\"disabled\":!_vm.currentCalendar.active,\"outlined\":\"\",\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.chartsCalendar.buttonName'))+\" \")])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.calendarTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"pa-4\"},[(_vm.currentCalendar.component)?_c(_vm.currentCalendar.component,{tag:\"component\",attrs:{\"period-name\":_vm.currentPeriod,\"calendar-min\":_vm.startedAt,\"calendar-max\":_vm.now,\"enableMultiSelect\":_vm.enableMultiSelect,\"customApproximationValue\":_vm.customApproximationValue},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}):_vm._e(),_c('div',{staticClass:\"d-flex justify-end mt-4\"},[_c('v-btn',{attrs:{\"disabled\":_vm.currentCalendar.validation || _vm.multiSelectValidation,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.$emit('handleCalendar', _vm.date)}}},[_vm._v(\" OK \")])],1)],1)]},proxy:true}])}),(!_vm.hideCalendarNavigation)?_c('div',{staticStyle:{\"padding-left\":\"10px\"}},[_c('v-btn',{staticStyle:{\"border-radius\":\"5px 18px 18px 5px\"},attrs:{\"disabled\":_vm.disableNavButton,\"outlined\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.$emit('next')}}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_right\",\"color\":\"accent\"}})],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Getter } from 'vuex-class';\nimport { Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport DefaultCalendar from '@/ui/components/devices/charts/components/DefaultCalendar.vue';\nimport MultiSelectionCalendar\n from '@/ui/components/devices/charts/components/multiselection-calendar/MultiSelectionCalendar.vue';\nimport HourPicker from '@/ui/components/devices/charts/components/HourPicker.vue';\nimport { ApproximationValue } from '@/types/chart.types';\n\n@Component({\n components: {\n ModalWindow,\n DefaultCalendar,\n MultiSelectionCalendar,\n HourPicker,\n },\n})\nexport default class CalendarButtons extends Vue {\n @Prop({ default: false }) disableNavButton!: boolean;\n @Prop({ default: false }) enableMultiSelect!: boolean;\n @Prop({ default: false }) hideCalendarNavigation!: boolean;\n @Prop({ default: Periods.DAY }) currentPeriod!: string;\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: ApproximationValue;\n @Getter('projects/projectStartedAt') startedAt!: string;\n\n date: number[] = [new Date().setUTCHours(0, 0, 0, 0) / 1000];\n readonly multiSelectLimit: number = 5;\n\n get hourPickerSelectButtonValidation() {\n return !this.date;\n }\n get now() {\n return new Date().toISOString();\n }\n get calendarModalOptions(): any {\n if (!this.enableMultiSelect) {\n return {\n live: { active: false, component: null, windowWidth: null, validation: null },\n hour: { active: true, component: 'HourPicker', validation: this.hourPickerSelectButtonValidation },\n day: { active: true, component: 'DefaultCalendar', validation: null },\n week: { active: true, component: 'DefaultCalendar', validation: null },\n month: { active: true, component: 'DefaultCalendar', validation: null },\n year: { active: true, component: 'DefaultCalendar', validation: null },\n };\n } else {\n return {\n live: { active: false, component: null, windowWidth: null, validation: null },\n hour: { active: true, component: 'MultiSelectionCalendar', validation: this.multiSelectValidation },\n day: { active: true, component: 'MultiSelectionCalendar', validation: this.multiSelectValidation },\n week: { active: true, component: 'MultiSelectionCalendar', validation: this.multiSelectValidation },\n month: { active: true, component: 'MultiSelectionCalendar', validation: this.multiSelectValidation },\n year: { active: true, component: 'MultiSelectionCalendar', validation: this.multiSelectValidation },\n };\n }\n }\n get calendarTitle(): string {\n if (!this.enableMultiSelect) {\n switch (this.currentPeriod) {\n case 'hour': return this.$t('uiComponents.chartsCalendar.selectHour').toString();\n case 'day': return this.$t('uiComponents.chartsCalendar.selectDay').toString();\n case 'week': return this.$t('uiComponents.chartsCalendar.selectWeek').toString();\n case 'month': return this.$t('uiComponents.chartsCalendar.selectMonth').toString();\n case 'year': return this.$t('uiComponents.chartsCalendar.selectYear').toString();\n default: return '';\n }\n } else {\n switch (this.currentPeriod) {\n case 'hour': return this.$t('uiComponents.chartsCalendar.selectHourMulti', { limit: this.multiSelectLimit }).toString();\n case 'day': return this.$t('uiComponents.chartsCalendar.selectDayMulti', { limit: this.multiSelectLimit }).toString();\n case 'week': return this.$t('uiComponents.chartsCalendar.selectWeekMulti', { limit: this.multiSelectLimit }).toString();\n case 'month': return this.$t('uiComponents.chartsCalendar.selectMonthMulti', { limit: this.multiSelectLimit }).toString();\n case 'year': return this.$t('uiComponents.chartsCalendar.selectYearMulti', { limit: this.multiSelectLimit }).toString();\n default: return '';\n }\n }\n }\n get currentCalendar() {\n return this.calendarModalOptions[this.currentPeriod];\n }\n get multiSelectValidation() {\n return this.enableMultiSelect && !(this.date?.length >= 2);\n }\n\n closeDialog() {\n (this.$refs.modalWindowInstance as any).closeDialog();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarButtons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarButtons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarButtons.vue?vue&type=template&id=0377b7d6&scoped=true&\"\nimport script from \"./CalendarButtons.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarButtons.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0377b7d6\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport PeriodSelection from '@/ui/components/devices/charts/components/PeriodSelection.vue';\nimport CalendarButtons from '@/ui/components/devices/charts/charts/CalendarButtons.vue';\nimport { ApproximationValue } from '@/types/chart.types';\n\n@Component({\n components: {\n CalendarButtons,\n PeriodSelection,\n ModalWindow,\n },\n})\nexport default class CalendarNavigation extends Vue {\n @Prop({ default: false }) disableNavButton!: boolean;\n @Prop({ default: false }) enableMultiSelect!: boolean;\n @Prop({ default: false }) hidePeriodNavigation!: boolean;\n @Prop({ default: false }) hideCalendarNavigation!: boolean;\n @Prop({ default: null }) modularDefaultPeriod!: string;\n @Prop({ default: null }) navigationItemsToExclude!: null | string[];\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: ApproximationValue;\n\n currentPeriod: string = Periods.DAY;\n localCountColumns = 0;\n localCountLines = 0;\n rerenderKey = 0;\n handleNavigation(period: string) {\n this.rerenderKey++;\n this.currentPeriod = period;\n this.$emit('handleNavigation', period);\n }\n closeDialog() {\n (this.$refs.calendarSelectionButtonsInstance as any).closeDialog();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalendarNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalendarNavigation.vue?vue&type=template&id=4882be27&scoped=true&\"\nimport script from \"./CalendarNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalendarNavigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalendarNavigation.vue?vue&type=style&index=0&id=4882be27&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4882be27\",\n null\n \n)\n\nexport default component.exports","// Default feedback timeout from PLC in seconds\nexport const defaultFeedbackTimeoutSeconds = 60;\n\n/**\n * Default feedback timeout from PLC in milliseconds\n */\nexport const defaultFeedbackTimeoutMilliSeconds = defaultFeedbackTimeoutSeconds * 1000;\n\n/**\n * Default timeout how long report messages will be shown in milliseconds\n */\nexport const defaultTimeoutRepotMessages = 20000;\n","import api from '@/services/api';\n\n// TODO: move interface to types/weather.types.ts when will be created\ninterface IWeatherLocation {\n lat: number;\n lon: number;\n}\n\nexport default {\n async fetchWeather({ lat, lon }: IWeatherLocation) {\n return api.fetch(`/weather?lat=${lat}&lon=${lon}`, 'GET');\n },\n};\n","import api from '@/services/api';\n\nexport default {\n async saveAsset(asset: FormData) {\n return api.fetch('/assets', 'POST', asset);\n },\n};\n","import { Map } from 'immutable';\nimport ProjectService from '@/services/ProjectService';\nimport WeatherService from '@/services/WeatherService';\nimport AssetService from '@/services/AssetService';\nimport {\n ActionTree, GetterTree, Module, MutationTree,\n} from 'vuex';\nimport { RootState } from '@/store/types';\nimport { IAppState } from './types';\nimport i18n from '@/ui/plugins/i18n';\nimport { IUser } from '@/types/app.types';\n\nconst state: IAppState = {\n user: {\n email: '',\n first_name: '',\n last_name: '',\n id: '',\n super_admin: false,\n },\n weatherData: null,\n reportBox: {\n message: '',\n type: '',\n value: false,\n shouldShow: true,\n timeout: 2000,\n },\n workbenchCurrentTab: 0,\n};\n\nconst getters: GetterTree = {\n getReportMessageAndType(state) {\n return state.reportBox;\n },\n getUser(state) {\n return state.user;\n },\n};\n\nconst mutations: MutationTree = {\n setReport(state, payload) {\n state.reportBox = { ...state.reportBox, ...payload };\n },\n setWeatherData(state, payload) {\n state.weatherData = payload;\n },\n setUser(state, user: IUser) {\n state.user = user;\n },\n setWorkbenchTab(state, payload) {\n state.workbenchCurrentTab = payload;\n },\n};\n\nconst actions: ActionTree = {\n /**\n * Load weather data\n * @param commit\n * @param location location data. Example: { display_name: name, lat: lat, lon: lon }\n */\n async fetchWeather({ commit }, location) {\n if (!location || !Object.values(location).length) {\n commit('setWeatherData', null);\n return;\n }\n const { lat, lon } = location;\n await WeatherService.fetchWeather({ lat, lon })\n .then(res => {\n commit('setWeatherData', res);\n });\n },\n\n /**\n * Clear store when leave project\n * @param state\n * @param rootState\n */\n async clear({ state, rootState }) {\n rootState.projects.projectId = null;\n rootState.projects.project = {};\n rootState.projects.mqttInfo = {};\n rootState.measurements.measurements = Map();\n rootState.devices.devices = Map();\n rootState.rooms.rooms = Map();\n state.weatherData = null;\n rootState.mpc.mpcControllers = Map();\n rootState.members.currentMember = null;\n rootState.rules.rulesList = [];\n rootState.events.eventList = [];\n rootState.members.members = Map();\n },\n\n /**\n * Load files\n * @param commit\n * @param rootState\n */\n async loadFiles({ commit, rootState }) {\n try {\n return await ProjectService.fetchProjectDocuments(rootState.projects.projectId as string);\n } catch (e) {\n commit('setReport', {\n type: 'error',\n message: e.message,\n value: true,\n });\n }\n },\n\n /**\n * Remove selected file\n * @param commit\n * @param rootState\n * @param {string} fileId file id\n */\n async deleteFile({ commit, rootState }, fileId) {\n await ProjectService.deleteProjectDocument(rootState.projects.projectId as string, fileId);\n commit('setReport', {\n type: 'success',\n message: 'File has been deleted',\n value: true,\n });\n },\n\n /**\n * Upload file\n * @param commit\n * @param state\n * @param {File} asset file object\n */\n async postAsset({ commit, state }, asset: any) {\n try {\n if (!asset || !asset.name) return;\n const data = new FormData();\n data.append('file', new Blob([asset]));\n return await AssetService.saveAsset(data);\n } catch (e) {\n const handledErrors = [413];\n if (handledErrors.includes((e as any).response.status)) {\n commit('setReport', {\n type: 'error',\n message: i18n.t(`errorMessages.images.${e.response.status}`),\n value: true,\n });\n } else {\n commit('setReport', {\n type: 'error',\n message: i18n.t('errorMessages.images.uploadFailed'),\n value: true,\n });\n }\n }\n },\n};\n\nexport const app: Module = {\n namespaced: true,\n state,\n getters,\n actions,\n mutations,\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1750\",\"isConfirmationDialog\":_vm.isConfirmationDialog},on:{\"dialogStatus\":_vm.handleModalWindowStatus},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('v-container',{staticStyle:{\"height\":\"85vh\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"fill-height\"},[(!_vm.deviceFormView)?_c('v-col',{staticClass:\"d-flex flex-column py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c('div',{staticClass:\"flex-grow-1 d-flex align-center\"},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"offset-lg\":_vm.deviceType.value ? 4 : 6,\"lg\":_vm.deviceType.value ? 4 : 6}},[_c('v-combobox',{staticClass:\"items-list-background\",style:(_vm.deviceType.value ? 'margin-top: 58px;' : null),attrs:{\"items\":_vm.devicesTypesArrayList,\"label\":_vm.$t('modals.manageDevice.form.type'),\"item-value\":\"value\",\"item-text\":\"title\",\"outlined\":\"\",\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"cache-items\":\"\"},model:{value:(_vm.deviceType),callback:function ($$v) {_vm.deviceType=$$v},expression:\"deviceType\"}})],1)],1)],1)],1),_c('div',[_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.typeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.typeValidation},on:{\"click\":function($event){_vm.deviceFormView = true}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}],null,false,3095024692)},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.type')))])])],1)]):_vm._e(),(_vm.deviceFormView)?_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":_vm.$vuetify.breakpoint.mobile ? 12 : 8}},[_c(_vm.currentDeviceType.manageSchema,{tag:\"component\",attrs:{\"device-data\":_vm.deviceDataWithType,\"is-edit-modal\":_vm.isEditModal,\"active-room-id\":_vm.activeRoomId},on:{\"closeDialog\":_vm.closeDialog,\"handleControl\":_vm.handleControl,\"backToChoosingType\":function($event){_vm.deviceFormView = false},\"onFormUnchanged\":_vm.onFormUnchanged}})],1):_vm._e(),(!_vm.$vuetify.breakpoint.mobile)?_c('v-col',{staticClass:\"d-flex align-center justify-center py-0\",attrs:{\"cols\":\"4\"}},[(_vm.currentPreviewImage)?_c('PreviewImage',{attrs:{\"src\":_vm.currentPreviewImage,\"maxHeight\":_vm.imageMaxHeight,\"maxWidth\":'30vw'}}):_vm._e()],1):_vm._e()],1)],1)]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"40\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_vm._l((_vm.deviceMappingsList),function(item,index){return _c('v-col',{key:index,staticClass:\"mapping-field\",class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.deviceMappings[item].optional) },attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"optional\"},[(_vm.deviceMappings[item].optional)?_c('div',[_vm._v(\"Optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.label`),\"optional\":_vm.deviceMappings[item].optional},model:{value:(_vm.localDeviceData.data.mappings[item]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.mappings, item, $$v)},expression:\"localDeviceData.data.mappings[item]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.description`))+\" \")])],1)])}),(_vm.deviceSchema.unitSelection)?_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('div',{staticClass:\"optional\"}),_c('v-text-field',{attrs:{\"label\":\"Device Unit\",\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"4\"},model:{value:(_vm.unit),callback:function ($$v) {_vm.unit=$$v},expression:\"unit\"}}),_c('div',{staticClass:\"description\"})],1):_vm._e()],2)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageDevice.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageDevice.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1),(_vm.deviceSchema.iconSelection)?_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('div',[_c('IconList',{attrs:{\"search-timeout\":350,\"icons\":_vm.icons,\"search\":_vm.search,\"outlined\":true},on:{\"selected\":_vm.onSelected}}),_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.form.iconDescription')))]),_c('div',{staticStyle:{\"height\":\"30px\"}},[[(_vm.localDeviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.localDeviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e(),(!_vm.localDeviceData.data.meta.cover)?_c('div',{staticStyle:{\"overflow\":\"hidden\",\"white-space\":\"nowrap\",\"text-overflow\":\"ellipsis\"}},[_vm._v(\"No Icon Selected\")]):_vm._e()]],2),_c('v-btn',{staticClass:\"error\",on:{\"click\":_vm.removeIcon}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.form.removeIconButton'))+\" \")])],1)]):_vm._e()],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.settingsValidation},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { cloneDeep } from 'lodash';\nimport IconService from '@/services/IconService';\nimport IconList from '@/ui/components/components/IconList.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport {\n IDevicesState,\n} from '@/store/modules/devices/types';\nimport { IVariable } from '@/types/variables.types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IRule } from '@/types/rules.types';\nimport { IDevice, IDevicesTypes, IDeviceMapping } from '@/types/devices.types';\nimport { Icon } from '@/types/common.types';\n\n/**\n * Scheme to create, modify a specific device.\n * Specified in the device type definition in store/devices/devicesTypes.ts\n */\n@Component({\n components: {\n IconList,\n ComboboxField,\n },\n})\nexport default class DefaultSchema extends mixins(FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n mappings: {},\n },\n collection_id: '',\n }),\n }) deviceData!: IDevice;\n @Prop({}) isEditModal!: boolean;\n @Prop({ default: '' }) activeRoomId!: string;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n @State('measurements') measurementsState!: IVariablesState;\n @State('devices') devicesState!: IDevicesState;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: IProject;\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string;\n rulesList: IRule[];\n }) => Promise;\n @Action('rules/deleteRule') deleteRule!: (payload: { project_id: string; rule_id: string }) => Promise;\n\n stage = 1;\n localDeviceData: IDevice = JSON.parse(JSON.stringify(this.deviceData));\n showOptionalFields = false;\n\n unit = ''\n\n iconObject?: Icon\n icons: Icon[] = []\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n removeIcon() {\n this.localDeviceData.data.meta.cover = '';\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n\n // steps validation\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.deviceMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n return optionalFields.map((el: string) => this.localDeviceData.data.mappings[el]).every((el: string) => el);\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n\n get deviceSchema() {\n return this.devicesTypes[this.deviceData.data.type];\n }\n get deviceMinMaxBorders() {\n const device = this.devicesTypes[this.deviceData.data.type];\n const arrayOfMappings = Object.entries(device.mappings).filter((field: [string, IDeviceMapping]) => field[1].minMaxBorders);\n let obj: any = {};\n if (arrayOfMappings.length) {\n arrayOfMappings.forEach((field: [string, IDeviceMapping]) => obj = { ...obj, [field[0]]: field[1].minMaxBorders });\n }\n return obj;\n }\n get deviceMappings() {\n return this.deviceSchema.mappings;\n }\n get deviceMappingsList() {\n if (this.localDeviceData?.data?.type) {\n return Object.keys(this.deviceSchema.mappings);\n }\n return [];\n }\n\n /**\n * Search icons by inserted name\n * @param q name of the icon\n * @return list of icons\n */\n async search(q: string) {\n // clear icons if the query is smaller than 3 chars\n if (q.length < 3) {\n this.icons = [];\n return Promise.resolve();\n }\n\n return IconService.fetchIcons(q).then((res: Icon[]) => {\n this.icons = res.map((icon: Icon) => ({ term: icon.term, id: icon.id }));\n });\n }\n onSelected(icon: Icon) {\n this.iconObject = icon;\n }\n\n /**\n * Goes through device mappings list and create options for every item\n * @return form of mappings options\n */\n initMappingsForDevice() {\n let mappingsSchema: Record = {};\n Object.keys(this.devicesTypes[this.deviceData.data.type].mappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for device according to ShowEvent_errorWarningState field,\n * save ids of created rules in current device object\n * @param deviceData current device data object\n */\n async addRulesWhenCreateDevice(deviceData: IDevice) {\n if (!deviceData.data.mappings.ShowEvent_errorWarningState\n || !deviceData.data.mappings.ShowEvent_errorWarningState.length) return;\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n if (this.project.id) {\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when ShowEvent_errorWarningState field is changed\n * @param deviceData current device data object\n */\n async addRulesWhenEditDevice(deviceData: IDevice) {\n if (!this.project.id) return;\n const oldErrorWarningVar = this.deviceData.data.mappings.ShowEvent_errorWarningState;\n const newErrorWarningVar = deviceData.data.mappings.ShowEvent_errorWarningState;\n // if errorWarning was changed\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n if (oldErrorWarningVar !== newErrorWarningVar && newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar.length) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n // create new rules\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n\n /**\n * Save device data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true); // disable confirmation dialog when save\n const copy: IDevice = cloneDeep(this.localDeviceData);\n\n copy.data.meta.deviceSchema = { ...this.deviceSchema.devicesSchemas };\n copy.data.meta.minMaxBorders = this.deviceMinMaxBorders;\n\n if (this.deviceSchema.unitSelection) {\n copy.data.meta.unit = this.unit;\n }\n\n if (this.deviceSchema.iconSelection) {\n const checkIsCoverExist = () => (this.localDeviceData.data?.meta?.cover ? this.localDeviceData.data?.meta?.cover : null);\n copy.data.meta.cover = this.iconObject ? this.iconObject.id : checkIsCoverExist();\n copy.data.meta.coverType = 'icon';\n }\n\n // add rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n async created() {\n this.localDeviceData = cloneDeep(this.deviceData);\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n this.localDeviceData.data.mappings = this.initMappingsForDevice();\n this.localDeviceData.data.mappings = { ...this.localDeviceData.data.mappings, ...this.deviceData.data.mappings };\n if (!this.localDeviceData.data.meta) this.localDeviceData.data.meta = {};\n\n if (this.deviceSchema.unitSelection) {\n this.unit = this.localDeviceData.data.meta?.unit ? this.localDeviceData.data.meta.unit : '';\n }\n\n if (!this.isEditModal) this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultSchema.vue?vue&type=template&id=66e10ae0&\"\nimport script from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"40\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameValidation},on:{\"click\":function($event){return _vm.handleGoToStage2()}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_vm._l((_vm.deviceMappingsList),function(item,index){return _c('v-col',{key:index,staticClass:\"mapping-field\",class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.deviceMappings[item].optional) },attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"optional\"},[(_vm.deviceMappings[item].optional)?_c('div',[_vm._v(\"Optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.label`),\"optional\":_vm.deviceMappings[item].optional},model:{value:(_vm.localDeviceData.data.mappings[item]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.mappings, item, $$v)},expression:\"localDeviceData.data.mappings[item]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.description`))+\" \")])],1)])}),(_vm.deviceSchema.unitSelection)?_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('div',{staticClass:\"optional\"}),_c('v-text-field',{attrs:{\"label\":\"Device Unit\",\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"4\"},model:{value:(_vm.unit),callback:function ($$v) {_vm.unit=$$v},expression:\"unit\"}}),_c('div',{staticClass:\"description\"})],1):_vm._e()],2),_c('v-row',[_c('v-col',{staticClass:\"mapping-field\",attrs:{\"cols\":4}},[_c('ComboboxField',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageDevice.chargeID'),\"optional\":false},model:{value:(_vm.chargeID),callback:function ($$v) {_vm.chargeID=$$v},expression:\"chargeID\"}})],1),_c('v-col',{staticClass:\"mapping-field\",attrs:{\"cols\":12}},[_c('v-combobox',{ref:\"userSelectionField\",attrs:{\"items\":_vm.selectableMembers,\"small-chips\":\"\",\"label\":_vm.$t('modals.manageDevice.selectUsers'),\"multiple\":\"\",\"outlined\":\"\",\"color\":\"blue\",\"hide-selected\":\"\",\"menu-props\":{ maxHeight: '300' }},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, select, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click\":select,\"click:close\":function($event){return _vm.handleDeleteUser(item)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(item.text))])])]}}]),model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}})],1)],1)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageDevice.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageDevice.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1),(_vm.deviceSchema.iconSelection)?_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('div',[_c('IconList',{attrs:{\"search-timeout\":350,\"icons\":_vm.icons,\"search\":_vm.search,\"outlined\":true},on:{\"selected\":_vm.onSelected}}),_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.form.iconDescription')))]),_c('div',{staticStyle:{\"height\":\"30px\"}},[[(_vm.localDeviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.localDeviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e(),(!_vm.localDeviceData.data.meta.cover)?_c('div',{staticStyle:{\"overflow\":\"hidden\",\"white-space\":\"nowrap\",\"text-overflow\":\"ellipsis\"}},[_vm._v(\"No Icon Selected\")]):_vm._e()]],2),_c('v-btn',{staticClass:\"error\",on:{\"click\":_vm.removeIcon}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.form.removeIconButton'))+\" \")])],1)]):_vm._e()],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){return _vm.handleGoToStage2()}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.settingsValidation},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { cloneDeep } from 'lodash';\nimport IconService from '@/services/IconService';\nimport IconList from '@/ui/components/components/IconList.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport {\n IDevicesState,\n} from '@/store/modules/devices/types';\nimport { IVariable } from '@/types/variables.types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IRule } from '@/types/rules.types';\nimport { IDevice, IDevicesTypes, IDeviceMapping } from '@/types/devices.types';\nimport { Icon } from '@/types/common.types';\nimport { IMember } from '@/types/members.types';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Scheme to create, modify a specific device.\n * Specified in the device type definition in store/devices/devicesTypes.ts\n */\n@Component({\n components: {\n IconList,\n ComboboxField,\n },\n})\nexport default class DefaultSchemaWithUserSelection extends mixins(FormUpdateTracker, Validation) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n mappings: {},\n },\n collection_id: '',\n }),\n }) deviceData!: IDevice;\n @Prop({}) isEditModal!: boolean;\n @Prop({ default: '' }) activeRoomId!: string;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n @State('measurements') measurementsState!: IVariablesState;\n @State('devices') devicesState!: IDevicesState;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('projects/project') project!: IProject;\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('members/members') members!: IMember[];\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string;\n rulesList: IRule[];\n }) => Promise;\n @Action('rules/deleteRule') deleteRule!: (payload: { project_id: string; rule_id: string }) => Promise;\n\n stage = 1;\n localDeviceData: IDevice = JSON.parse(JSON.stringify(this.deviceData));\n showOptionalFields = false;\n\n unit = ''\n\n iconObject?: Icon\n icons: Icon[] = []\n\n // user selection part\n\n handleGoToStage2() {\n this.stage = 2;\n }\n\n selectedUsers: { text: string; value: string }[] = [];\n chargeID = '';\n\n handleDeleteUser(item: { text: string; value: string }) {\n // remove user counter variables if a user is removed\n this.selectedUsers.splice(this.selectedUsers.indexOf(item), 1);\n }\n\n /**\n * List of members for user selection\n */\n get selectableMembers() {\n return this.members.map((member: IMember) => ({\n value: member.id,\n text: `${member.first_name} ${member.last_name}`,\n }));\n }\n\n // end of user selection part\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n removeIcon() {\n this.localDeviceData.data.meta.cover = '';\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n\n // steps validation\n get nameValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.deviceMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n return optionalFields.map((el: string) => this.localDeviceData.data.mappings[el]).every((el: string) => el) && this.chargeID !== '';\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n\n get deviceSchema() {\n return this.devicesTypes[this.deviceData.data.type];\n }\n get deviceMinMaxBorders() {\n const device = this.devicesTypes[this.deviceData.data.type];\n const arrayOfMappings = Object.entries(device.mappings).filter((field: [string, IDeviceMapping]) => field[1].minMaxBorders);\n let obj: any = {};\n if (arrayOfMappings.length) {\n arrayOfMappings.forEach((field: [string, IDeviceMapping]) => obj = { ...obj, [field[0]]: field[1].minMaxBorders });\n }\n return obj;\n }\n get deviceMappings() {\n return this.deviceSchema.mappings;\n }\n get deviceMappingsList() {\n if (this.localDeviceData?.data?.type) {\n return Object.keys(this.deviceSchema.mappings);\n }\n return [];\n }\n\n /**\n * Search icons by inserted name\n * @param q name of the icon\n * @return list of icons\n */\n async search(q: string) {\n // clear icons if the query is smaller than 3 chars\n if (q.length < 3) {\n this.icons = [];\n return Promise.resolve();\n }\n\n return IconService.fetchIcons(q).then((res: Icon[]) => {\n this.icons = res.map((icon: Icon) => ({ term: icon.term, id: icon.id }));\n });\n }\n onSelected(icon: Icon) {\n this.iconObject = icon;\n }\n\n /**\n * Goes through device mappings list and create options for every item\n * @return form of mappings options\n */\n initMappingsForDevice() {\n let mappingsSchema: Record = {};\n Object.keys(this.devicesTypes[this.deviceData.data.type].mappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for device according to ShowEvent_errorWarningState field,\n * save ids of created rules in current device object\n * @param deviceData current device data object\n */\n async addRulesWhenCreateDevice(deviceData: IDevice) {\n if (!deviceData.data.mappings.ShowEvent_errorWarningState\n || !deviceData.data.mappings.ShowEvent_errorWarningState.length) return;\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n if (this.project.id) {\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when ShowEvent_errorWarningState field is changed\n * @param deviceData current device data object\n */\n async addRulesWhenEditDevice(deviceData: IDevice) {\n if (!this.project.id) return;\n const oldErrorWarningVar = this.deviceData.data.mappings.ShowEvent_errorWarningState;\n const newErrorWarningVar = deviceData.data.mappings.ShowEvent_errorWarningState;\n // if errorWarning was changed\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n if (oldErrorWarningVar !== newErrorWarningVar && newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar.length) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n // create new rules\n const res: any = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: any = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n\n /**\n * Save device data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true); // disable confirmation dialog when save\n const copy: IDevice = cloneDeep(this.localDeviceData);\n\n copy.data.meta.deviceSchema = { ...this.deviceSchema.devicesSchemas };\n copy.data.meta.minMaxBorders = this.deviceMinMaxBorders;\n copy.data.meta.selectedUsers = this.selectedUsers.map((user: { text: string; value: string }) => user.value);\n copy.data.meta.chargeID = this.chargeID;\n if (copy.data.meta.charge_id) {\n delete copy.data.meta.charge_id;\n }\n\n if (this.deviceSchema.unitSelection) {\n copy.data.meta.unit = this.unit;\n }\n\n if (this.deviceSchema.iconSelection) {\n const checkIsCoverExist = () => (this.localDeviceData.data?.meta?.cover ? this.localDeviceData.data?.meta?.cover : null);\n copy.data.meta.cover = this.iconObject ? this.iconObject.id : checkIsCoverExist();\n copy.data.meta.coverType = 'icon';\n }\n\n // add rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n async created() {\n this.localDeviceData = cloneDeep(this.deviceData);\n if (this.activeRoomId.length && !this.isEditModal) this.localDeviceData.collection_id = this.activeRoomId;\n this.localDeviceData.data.mappings = this.initMappingsForDevice();\n this.localDeviceData.data.mappings = { ...this.localDeviceData.data.mappings, ...this.deviceData.data.mappings };\n if (!this.localDeviceData.data.meta) this.localDeviceData.data.meta = {};\n\n if (this.deviceSchema.unitSelection) {\n this.unit = this.localDeviceData.data.meta?.unit ? this.localDeviceData.data.meta.unit : '';\n }\n\n if (this.localDeviceData.data.meta?.selectedUsers) {\n // load selected users\n this.selectedUsers = this.localDeviceData.data.meta.selectedUsers.map((user: string) => {\n const member: any = this.members.find((el: IMember) => el.id === user);\n return { text: `${member.first_name} ${member.last_name}`, value: user };\n });\n }\n\n if (this.localDeviceData.data.meta?.chargeID) {\n this.chargeID = this.localDeviceData.data.meta.chargeID;\n }\n\n if (!this.isEditModal) this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchemaWithUserSelection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchemaWithUserSelection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultSchemaWithUserSelection.vue?vue&type=template&id=ca995f3a&scoped=true&\"\nimport script from \"./DefaultSchemaWithUserSelection.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultSchemaWithUserSelection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ca995f3a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"40\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameTypeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameTypeValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_vm._l((_vm.deviceMappingsList),function(item,index){return _c('v-col',{key:index,staticClass:\"mapping-field\",class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.deviceMappings[item].optional) },attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"optional\"},[(_vm.deviceMappings[item].optional)?_c('div',[_vm._v(\"Optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.label`),\"optional\":false},model:{value:(_vm.localDeviceData.data.mappings[item]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.mappings, item, $$v)},expression:\"localDeviceData.data.mappings[item]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.description`))+\" \")])],1)])}),_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('div',{staticClass:\"optional\"}),_c('v-text-field',{attrs:{\"label\":\"Unit\",\"color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"maxLength\":\"4\"},model:{value:(_vm.localDeviceData.data.meta.unit),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta, \"unit\", $$v)},expression:\"localDeviceData.data.meta.unit\"}}),_c('div',{staticClass:\"description\"})],1),_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('div',{staticClass:\"optional\"}),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":\"Min\",\"type\":\"number\",\"color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.data.meta.scaling.min),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.scaling, \"min\", $$v)},expression:\"localDeviceData.data.meta.scaling.min\"}}),_c('v-text-field',{staticStyle:{\"padding-left\":\"4px\"},attrs:{\"label\":\"Max\",\"color\":\"accent\",\"type\":\"number\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.data.meta.scaling.max),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.scaling, \"max\", $$v)},expression:\"localDeviceData.data.meta.scaling.max\"}})],1),_c('div',{staticClass:\"description\"},[(!_vm.scalingValidation)?_c('div',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" Min Value can't be higher than the Max Value ! \")]):_vm._e()])])],2)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation() || !_vm.scalingValidation},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageDevice.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"3\",\"sm\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageDevice.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1)],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.settingsValidation},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { cloneDeep } from 'lodash';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IRule } from '@/types/rules.types';\nimport { IDevice, IDevicesTypes } from '@/types/devices.types';\n\n/**\n * Scheme to create, modify a specific device.\n * Specified in the device type definition in store/devices/devicesTypes.ts\n */\n@Component({\n components: {\n ComboboxField,\n },\n})\nexport default class GaugeSchema extends mixins(FormUpdateTracker) {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n mappings: {},\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData!: IDevice;\n @Prop() isEditModal!: boolean;\n @Prop({ default: '' }) activeRoomId!: string;\n\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('projects/project') project!: IProject;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string;\n rulesList: IRule[];\n }) => Promise;\n @Action('rules/deleteRule') deleteRule!: (payload: { project_id: string; rule_id: string }) => Promise;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n\n stage = 1\n localDeviceData: IDevice = JSON.parse(JSON.stringify(this.deviceData));\n showOptionalFields = false;\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n // steps validation\n get nameTypeValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.deviceMappings)\n .filter((field: any) => !field[1].optional)\n .map((field: any) => field[0]);\n return optionalFields.map((el: any) => this.localDeviceData.data.mappings[el]).every((el: any) => el);\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n get scalingValidation() {\n return +this.localDeviceData.data.meta.scaling.min < +this.localDeviceData.data.meta.scaling.max;\n }\n\n get deviceSchema() {\n return this.devicesTypes[this.deviceData.data.type];\n }\n get deviceMappings() {\n return this.deviceSchema.mappings;\n }\n get deviceMappingsList() {\n if (this.localDeviceData?.data?.type) {\n return Object.keys(this.deviceSchema.mappings);\n }\n return [];\n }\n\n /**\n * Goes through device mappings list and create options for every item\n * @return form of mappings options\n */\n initMappingsForDevice() {\n let mappingsSchema: any = {};\n Object.keys(this.devicesTypes[this.deviceData.data.type].mappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for device according to ShowEvent_errorWarningState field,\n * save ids of created rules in current device object\n * @param deviceData current device data object\n */\n async addRulesWhenCreateDevice(deviceData: IDevice) {\n if (!deviceData.data.mappings.ShowEvent_errorWarningState.length) return;\n const rulesList: any = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n if (this.project.id) {\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when ShowEvent_errorWarningState field is changed\n * @param deviceData current device data object\n */\n async addRulesWhenEditDevice(deviceData: IDevice) {\n if (!this.project.id) return;\n const oldErrorWarningVar = this.deviceData.data.mappings.ShowEvent_errorWarningState;\n const newErrorWarningVar = deviceData.data.mappings.ShowEvent_errorWarningState;\n // if errorWarning was changed\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n if (oldErrorWarningVar !== newErrorWarningVar && newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar.length) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n const rulesList = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n // create new rules\n const res = await this.addRules({ project_id: this.project.id, rulesList });\n const getWarningRule = () => {\n const warningRuleObj: IRule | undefined = res.find((rule: any) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj?.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: IRule | undefined = res.find((rule: any) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj?.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n\n /**\n * Save device data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true);\n const copy = cloneDeep(this.localDeviceData);\n\n // add rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n async created() {\n const copy = cloneDeep(this.deviceData);\n\n if (this.activeRoomId.length && !this.isEditModal) copy.collection_id = this.activeRoomId;\n\n if (!copy.data.meta?.scaling) {\n copy.data.meta = {\n scaling: {\n min: null,\n max: null,\n },\n unit: '',\n };\n }\n\n this.localDeviceData = copy;\n this.localDeviceData.data.mappings = this.initMappingsForDevice();\n this.localDeviceData.data.mappings = { ...this.localDeviceData.data.mappings, ...this.deviceData.data.mappings };\n\n if (!this.isEditModal) this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GaugeSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GaugeSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GaugeSchema.vue?vue&type=template&id=9674f7de&\"\nimport script from \"./GaugeSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./GaugeSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-stepper',{staticClass:\"elevation-0 full-height-stepper\",model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground elevation-0\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground\"},[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"offset-sm\":\"4\",\"sm\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageDevice.form.name'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"40\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[(!_vm.isEditModal)?_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"color\":\"#C4C4C4\",\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('backToChoosingType')}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.back'))+\" \")]):_vm._e(),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameTypeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.nameTypeValidation},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.nameType')))])])],1)]),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_vm._l((_vm.deviceMappingsList),function(item,index){return _c('v-col',{key:index,staticClass:\"mapping-field\",class:{ 'hide-optional': (!_vm.showOptionalFields && _vm.deviceMappings[item].optional) },attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('div',[_c('div',{staticClass:\"optional\"},[(_vm.deviceMappings[item].optional)?_c('div',[_vm._v(\"Optional\")]):_vm._e()]),_c('ComboboxField',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.label`),\"optional\":_vm.deviceMappings[item].optional},model:{value:(_vm.localDeviceData.data.mappings[item]),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.mappings, item, $$v)},expression:\"localDeviceData.data.mappings[item]\"}}),_c('div',{staticClass:\"description\"},[_vm._v(\" \"+_vm._s(_vm.$t(`devices.${_vm.deviceData.data.type}.mappings.${item}.description`))+\" \")])],1)])}),_c('v-col',{attrs:{\"sm\":\"4\"}},[_c('div',[_c('div',{staticClass:\"optional\"}),_c('v-text-field',{attrs:{\"color\":\"accent\",\"autocomplete\":\"off\",\"hide-details\":\"\",\"outlined\":\"\",\"label\":\"Title Dropdown\"},model:{value:(_vm.localDeviceData.data.meta.dropDownTexts.DropDown_title),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data.meta.dropDownTexts, \"DropDown_title\", $$v)},expression:\"localDeviceData.data.meta.dropDownTexts.DropDown_title\"}}),_c('div',{staticClass:\"description\"})],1)])],2),_c('v-row',[_c('v-col',{attrs:{\"sm\":\"4\"}},[(_vm.textMapping.length === 0)?_c('v-btn',{attrs:{\"color\":\"accent lynus-small-btn\",\"elevation\":\"0\"},on:{\"click\":_vm.addMapTest}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":\"20\",\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageDevice.dropDownSchema.addTextButton')))])],1):_vm._e()],1)],1),_c('v-row',{staticStyle:{\"overflow-y\":\"auto\",\"max-height\":\"420px\"}},_vm._l((_vm.textMapping),function(item,index){return _c('v-col',{key:index,attrs:{\"cols\":_vm.$vuetify.breakpoint.xsOnly ? 12 : 4}},[_c('v-btn',{staticClass:\"error lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.deleteVariable(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.dropDownSchema.deleteButton'))+\" \")]),_c('v-btn',{style:({visibility: _vm.textMapping.length -1 === index ? 'visible' : 'hidden'}),attrs:{\"color\":\"accent lynus-small-btn ml-4\",\"elevation\":\"0\"},on:{\"click\":_vm.addMapTest}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":\"20\",\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageDevice.dropDownSchema.addTextButton')))])],1),_c('v-text-field',{staticClass:\"mt-3\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('modals.manageDevice.dropDownSchema.textFieldLabels.valueField'),\"color\":\"blue\"},model:{value:(item.key),callback:function ($$v) {_vm.$set(item, \"key\", $$v)},expression:\"item.key\"}}),_c('v-text-field',{staticClass:\"pt-1\",attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"label\":_vm.$t('modals.manageDevice.dropDownSchema.textFieldLabels.textField'),\"color\":\"blue\"},model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})],1)}),1)],1)],1),_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.mappingValidation()},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.mappingValidation()},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.requiredFields')))])])],1),_c('div',[_c('v-checkbox',{staticClass:\"mt-0 pt-0\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.manageDevice.showOptionalFields'),\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.showOptionalFields),callback:function ($$v) {_vm.showOptionalFields=$$v},expression:\"showOptionalFields\"}})],1)])]),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('v-select',{attrs:{\"items\":_vm.sortedRoomsByName,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageDevice.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}})],1),_c('v-col',{attrs:{\"offset\":\"3\",\"cols\":\"6\"}},[_c('div',[_c('IconList',{attrs:{\"search-timeout\":350,\"icons\":_vm.icons,\"search\":_vm.search,\"outlined\":true},on:{\"selected\":_vm.onSelected}}),_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.form.iconDescription')))]),_c('div',{staticStyle:{\"height\":\"30px\"}},[[(_vm.localDeviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.localDeviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e(),(!_vm.localDeviceData.data.meta.cover)?_c('div',{staticStyle:{\"overflow\":\"hidden\",\"white-space\":\"nowrap\",\"text-overflow\":\"ellipsis\"}},[_vm._v(_vm._s(_vm.$t('modals.manageDevice.form.noIconSelected')))]):_vm._e()]],2),_c('v-btn',{staticClass:\"error\",on:{\"click\":_vm.removeIcon}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageDevice.form.removeIconButton'))+\" \")])],1)])],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.settingsValidation},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageDevice.tooltips.areaFields')))])])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport IconList from '@/ui/components/components/IconList.vue';\nimport ComboboxField from '@/ui/components/modals/components/form/ComboboxField.vue';\nimport { getDefaultRulesObject } from '@/utils/utilsFunctions';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IVariable } from '@/types/variables.types';\nimport { cloneDeep, isEqual } from 'lodash';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IRule } from '@/types/rules.types';\nimport { IDevice, IDevicesTypes, IDeviceMapping } from '@/types/devices.types';\nimport IconService from '@/services/IconService';\nimport { Icon, TextMapping } from '@/types/common.types';\n\n/**\n * Scheme to create, modify a specific device.\n * Specified in the device type definition in store/devices/devicesTypes.ts\n */\n@Component({\n components: {\n IconList,\n ComboboxField,\n },\n})\nexport default class DropDownSchema extends mixins(FormUpdateTracker) {\n @Prop() deviceData!: IDevice;\n @Prop() isEditModal!: boolean\n @Prop({ default: '' }) activeRoomId!: string;\n\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('rooms/sortedRoomsByName') sortedRoomsByName!: IRoom[];\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('projects/project') project!: IProject;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRules') addRules!: (payload: {\n project_id: string;\n rulesList: IRule[];\n }) => Promise;\n @Action('rules/deleteRule') deleteRule!: (payload: { project_id: string; rule_id: string }) => Promise;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n\n stage = 1\n localDeviceData: Partial = {};\n showOptionalFields = false;\n\n iconObject?: Icon\n icons: Icon[] = []\n\n textMapping: TextMapping[] = []\n textMappingSnapshot: TextMapping[] = []\n\n @Watch('stage')\n onStageChange(val: number) {\n if (val === 2) {\n this.fetchVariables(this.$route.params.id);\n }\n }\n\n // Overwrite FormUpdateTracker default isFormUnchanged\n get isFormUnchanged() {\n const isTextMappingEqual = isEqual(this.textMapping, this.textMappingSnapshot);\n if (this.isEditModal) {\n const isDeviceDataEqual = isEqual(this.deviceData, this.localDeviceData);\n return isDeviceDataEqual && isTextMappingEqual;\n } else {\n return isEqual(this.dataSnapshot, this.localDeviceData);\n }\n }\n\n removeIcon() {\n this.localDeviceData.data.meta.cover = '';\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n\n // steps validation\n get nameTypeValidation() {\n return !!this.localDeviceData?.name?.length;\n }\n\n /**\n * Checks mappings if they not valid\n * @return true if mapping filled, else false\n */\n mappingValidation() {\n if (this.stage === 2) {\n const optionalFields = Object.entries(this.deviceMappings)\n .filter((field: [string, IDeviceMapping]) => !field[1].optional)\n .map((field: [string, IDeviceMapping]) => field[0]);\n return optionalFields.map((el: string) => this.localDeviceData.data.mappings[el]).every((el: string) => el);\n } else {\n return false;\n }\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id?.length;\n }\n\n get deviceSchema() {\n return this.devicesTypes[this.deviceData.data.type];\n }\n get deviceMappings() {\n return this.deviceSchema.mappings;\n }\n get deviceMappingsList() {\n if (this.localDeviceData?.data?.type) {\n return Object.keys(this.deviceSchema.mappings);\n }\n return [];\n }\n\n mapToObj(map: Map) {\n const obj: Record = {};\n // eslint-disable-next-line no-restricted-syntax\n for (const [k, v] of map) obj[k] = v;\n return obj;\n }\n makeArrayOfJsonObj() {\n const convertedArr: TextMapping[] = [];\n Object.keys(this.deviceData.data.meta.dropDownTexts.DropDown_textmapping).forEach((element: string) => {\n convertedArr.push({ key: element, value: this.deviceData.data.meta.dropDownTexts.DropDown_textmapping[element] });\n });\n this.textMapping = convertedArr;\n }\n\n addMapTest() {\n this.textMapping.push({ key: '', value: '' });\n }\n deleteVariable(index: number) {\n this.textMapping.splice(index, 1);\n }\n\n /**\n * Search icons by inserted name\n * @param q name of the icon\n * @return list of icons\n */\n async search(q: string) {\n // clear icons if the query is smaller than 3 chars\n if (q.length < 3) {\n this.icons = [];\n return Promise.resolve();\n }\n\n return IconService.fetchIcons(q).then((res: Icon[]) => {\n this.icons = res.map((icon: Icon) => ({ term: icon.term, id: icon.id }));\n });\n }\n onSelected(icon: Icon) {\n this.iconObject = icon;\n }\n\n /**\n * Goes through device mappings list and create options for every item\n * @return form of mappings options\n */\n initMappingsForDevice() {\n let mappingsSchema: Record = {};\n Object.keys(this.devicesTypes[this.deviceData.data.type].mappings).forEach((item: string) => {\n mappingsSchema = { ...mappingsSchema, [item]: '' };\n });\n return mappingsSchema;\n }\n\n /**\n * Creates rules for device according to ShowEvent_errorWarningState field,\n * save ids of created rules in current device object\n * @param deviceData current device data object\n */\n async addRulesWhenCreateDevice(deviceData: IDevice) {\n if (!deviceData.data.mappings.ShowEvent_errorWarningState.length) return;\n const rulesList: IRule[] = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n if (this.project.id) {\n const res = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n deviceData.data.meta.warningRule = res[0].id;\n deviceData.data.meta.errorRule = res[1].id;\n }\n }\n\n /**\n * Replacing existing rules with new ones when ShowEvent_errorWarningState field is changed\n * @param deviceData current device data object\n */\n async addRulesWhenEditDevice(deviceData: IDevice) {\n if (!this.project.id) return;\n const oldErrorWarningVar = this.deviceData.data.mappings.ShowEvent_errorWarningState;\n const newErrorWarningVar = deviceData.data.mappings.ShowEvent_errorWarningState;\n // if errorWarning was changed\n if (oldErrorWarningVar && !newErrorWarningVar) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n if (oldErrorWarningVar !== newErrorWarningVar && newErrorWarningVar) {\n // delete old rules\n if (oldErrorWarningVar.length) {\n await Promise.all([\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.warningRule,\n }),\n this.deleteRule({\n project_id: this.project.id,\n rule_id: deviceData.data.meta.errorRule,\n }),\n ]);\n }\n const rulesList: IRule[] = getDefaultRulesObject(deviceData.name, deviceData.data.mappings.ShowEvent_errorWarningState, 'Device');\n // create new rules\n const res: IRule[] = await this.addRules({\n project_id: this.project.id,\n rulesList,\n });\n const getWarningRule = () => {\n const warningRuleObj: IRule | undefined = res.find((rule: IRule) => rule.name === `${deviceData.name} Warning Rule`);\n return warningRuleObj?.id;\n };\n const getErrorRule = () => {\n const errorRuleObj: IRule | undefined = res.find((rule: IRule) => rule.name === `${deviceData.name} Error Rule`);\n return errorRuleObj?.id;\n };\n deviceData.data.meta.warningRule = getWarningRule();\n deviceData.data.meta.errorRule = getErrorRule();\n }\n }\n\n /**\n * Save device data in data base\n */\n async sendForm() {\n this.$emit('onFormUnchanged', true);\n const copy = JSON.parse(JSON.stringify(this.localDeviceData));\n\n copy.data.meta.deviceSchema = { ...this.deviceSchema.devicesSchemas };\n copy.data.meta.minMaxBorders = {};\n\n // icon\n const checkIsCoverExist = () => (this.localDeviceData.data?.meta?.cover ? this.localDeviceData.data?.meta?.cover : null);\n copy.data.meta.cover = this.iconObject ? this.iconObject.id : checkIsCoverExist();\n copy.data.meta.coverType = 'icon';\n\n // text mappings\n const DropDown_textmapping = new Map();\n Object.values(this.textMapping).forEach((element: TextMapping) => {\n DropDown_textmapping.set(element.key, element.value);\n });\n const myJson: Record> = {};\n myJson.DropDown_textmapping = this.mapToObj(DropDown_textmapping);\n copy.data.meta.dropDownTexts.DropDown_textmapping = this.mapToObj(DropDown_textmapping);\n\n // add rules\n if (!this.isEditModal) {\n await this.addRulesWhenCreateDevice(copy);\n } else {\n await this.addRulesWhenEditDevice(copy);\n }\n\n this.$emit('handleControl', copy);\n this.$emit('closeDialog');\n }\n\n async created() {\n const copy = cloneDeep(this.deviceData);\n if (this.activeRoomId.length && !this.isEditModal) copy.collection_id = this.activeRoomId;\n\n if (!this.deviceData.data.meta?.hasOwnProperty('dropDownTexts')) {\n copy.data.meta = {\n dropDownTexts: {\n DropDown_title: '',\n },\n };\n } else {\n this.textMapping = copy.data.meta.dropDownTexts.DropDown_textmapping;\n this.makeArrayOfJsonObj();\n }\n this.localDeviceData = copy;\n\n // init schema if device create\n this.localDeviceData.data.mappings = this.initMappingsForDevice();\n this.localDeviceData.data.mappings = { ...this.localDeviceData.data.mappings, ...this.deviceData.data.mappings };\n\n if (!this.isEditModal) this.dataSnapshot = cloneDeep(this.localDeviceData);\n\n this.textMappingSnapshot = cloneDeep(this.textMapping);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownSchema.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownSchema.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownSchema.vue?vue&type=template&id=456dcb4f&\"\nimport script from \"./DropDownSchema.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownSchema.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport IconList from '@/ui/components/components/IconList.vue';\nimport DefaultSchema from '@/ui/components/modals/ManageDevice/schemas/DefaultSchema.vue';\nimport DefaultSchemaWithUserSelection from '@/ui/components/modals/ManageDevice/schemas/DefaultSchemaWithUserSelection.vue';\nimport GaugeSchema from '@/ui/components/modals/ManageDevice/schemas/GaugeSchema.vue';\nimport DropDownSchema from '@/ui/components/modals/ManageDevice/schemas/DropDownSchema.vue';\nimport EMSSchema from '@/ui/components/modals/ManageMLModel/schemas/EMSSchema.vue';\nimport PreviewImage from '@/ui/components/components/PreviewImage.vue';\nimport i18n from '@/ui/plugins/i18n';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport VueI18n from 'vue-i18n';\nimport { IDevice, IDevicesTypes } from '@/types/devices.types';\n\n/**\n * A component that allows to create or modify device\n */\n@Component({\n components: {\n PreviewImage,\n DropDownSchema,\n GaugeSchema,\n DefaultSchema,\n EMSSchema,\n IconList,\n ModalWindow,\n DefaultSchemaWithUserSelection,\n },\n})\nexport default class ManageDevice extends Vue {\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: '',\n mappings: {},\n meta: {},\n },\n collection_id: '',\n }),\n }) deviceData?: IDevice;\n @Prop({ default: '' }) formTitle?: string | VueI18n.TranslateResult;\n @Prop({ default: '' }) activeRoomId!: string;\n @Getter('devices/lastCreatedDevice') lastCreatedDevice!: string;\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('devices/devicesTypesWithLocaleNamesList') devicesTypesWithLocaleNamesList!: { value: string; title: VueI18n.TranslateResult }[];\n\n deviceType = { title: '', value: '' }\n deviceFormView = false\n currentSelectedTheme = '';\n imageMaxHeight = window.innerHeight * 0.7;\n devicesTypesArrayList = [];\n isConfirmationDialog = false;\n\n get isEditModal() {\n return !!this.deviceData?.data.type;\n }\n\n get lastCreatedDeviceType() {\n return this.lastCreatedDevice;\n }\n\n // steps validation\n get typeValidation() {\n return !!this.deviceType?.value?.length;\n }\n\n get currentDeviceType() {\n if (this.deviceType.value) {\n return this.devicesTypes[this.deviceType.value];\n }\n return { manageSchema: '' };\n }\n\n get deviceDataWithType() {\n const clone = JSON.parse(JSON.stringify(this.deviceData));\n clone.data.type = this.deviceType.value;\n if (this.deviceData?.data.type === 'Robot' && this.deviceData?.data.meta !== undefined) {\n clone.data.meta.deviceSchema = this.devicesTypes.Robot.devicesSchemas;\n }\n return clone;\n }\n\n /**\n * Define device preview image according to type\n * @return path to preview image or null if device don`t have it\n */\n get currentPreviewImage() {\n const currentImgPreview = this.deviceType.value;\n if (currentImgPreview) {\n try {\n return require(`../../../assets/images/previews/${this.currentSelectedTheme}/${currentImgPreview}.png`);\n } catch (e) {\n // maybe load fallback image?\n console.log(e);\n return null;\n }\n } else {\n return null;\n }\n }\n\n onFormUnchanged(value: boolean) {\n this.isConfirmationDialog = !value;\n }\n\n closeDialog() {\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n handleControl(device: IDevice) {\n this.$emit('handleControl', device);\n }\n\n /**\n * Controls deviceFormView status, deviceType, currentSelectedTheme according to dialog status\n * @param status dialog status\n */\n handleModalWindowStatus(status: boolean) {\n if (status) {\n this.deviceFormView = !!this.deviceData?.data.type;\n if (this.deviceData?.created_at) {\n this.deviceType.value = this.deviceData.data.type;\n }\n const clone = JSON.parse(JSON.stringify(this.devicesTypesWithLocaleNamesList));\n this.devicesTypesArrayList = clone.filter((deviceObject: any) => {\n return deviceObject.value !== 'Robot' && deviceObject.value !== 'SurveyClient';\n });\n } else {\n this.deviceFormView = false;\n this.$store.commit('devices/setLastCreatedDevice', this.deviceType.value);\n this.devicesTypesArrayList = [];\n }\n this.currentSelectedTheme = this.$vuetify.theme.dark ? 'themeDark' : 'themeLight';\n }\n\n created() {\n this.deviceType.value = this.lastCreatedDeviceType;\n this.deviceType.title = this.deviceType.value ? i18n.t(`devices.${this.deviceType.value}.previewName`).toString() : '';\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=36c3ff32&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=36c3ff32&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { CirclePosition } from './EnergyCircleDisplayData';\n\nexport enum EnergyCircleType {\n // EMS, EnergyView\n pv = 'pv',\n chp = 'chp',\n generator = 'generator',\n battery = 'battery',\n grid = 'grid',\n house = 'house',\n charge_station = 'charge_station',\n electric_heating = 'electric_heating',\n heating_pump = 'heating_pump',\n big_consumer = 'big_consumer',\n // setpoint optimizer\n heating_air_systems = 'heating_air_systems',\n heating_water_systems = 'heating_water_systems',\n cooling_air_systems = 'cooling_air_systems',\n cooling_water_systems = 'cooling_water_systems',\n hybrid_water_systems = 'hybrid_water_systems',\n hybrid_air_systems = 'hybrid_air_systems'\n}\n\nexport enum IOEnergyCircleType {\n // EnergyIO\n inputs = 'inputs',\n outputs = 'outputs',\n hybrids = 'hybrids',\n}\n\nexport enum EnergyDevicesCircleTypes {\n // EMS, EnergyView\n pv = 'pv',\n chp = 'chp',\n generator = 'generator',\n battery = 'battery',\n grid = 'grid',\n house = 'house',\n charge_station = 'charge_station',\n electric_heating = 'electric_heating',\n heating_pump = 'heating_pump',\n big_consumer = 'big_consumer',\n}\n\nexport const allEnergyCircleTypes: EnergyCircleType[] = Object.values(EnergyCircleType);\nexport const allIOEnergyCircleTypes: IOEnergyCircleType[] = Object.values(IOEnergyCircleType);\nexport const allEnergyDevicesCircleTypes: EnergyDevicesCircleTypes[] = Object.values(EnergyDevicesCircleTypes);\n\nexport const positionMappings: Record = {\n // EMS, EnergyView\n [EnergyCircleType.pv]: CirclePosition.top,\n [EnergyCircleType.chp]: CirclePosition.top,\n [IOEnergyCircleType.inputs]: CirclePosition.top,\n [EnergyCircleType.generator]: CirclePosition.top,\n [EnergyCircleType.battery]: CirclePosition.middleLeft,\n [IOEnergyCircleType.hybrids]: CirclePosition.middleLeft,\n [EnergyCircleType.grid]: CirclePosition.middleRight,\n [IOEnergyCircleType.outputs]: CirclePosition.bottom,\n [EnergyCircleType.house]: CirclePosition.bottom,\n [EnergyCircleType.charge_station]: CirclePosition.bottom,\n [EnergyCircleType.electric_heating]: CirclePosition.bottom,\n [EnergyCircleType.heating_pump]: CirclePosition.bottom,\n [EnergyCircleType.big_consumer]: CirclePosition.bottom,\n // setpoint optimizer\n [EnergyCircleType.heating_water_systems]: CirclePosition.top,\n [EnergyCircleType.heating_air_systems]: CirclePosition.top,\n [EnergyCircleType.hybrid_water_systems]: CirclePosition.middleRight,\n [EnergyCircleType.hybrid_air_systems]: CirclePosition.middleLeft,\n [EnergyCircleType.cooling_air_systems]: CirclePosition.bottom,\n [EnergyCircleType.cooling_water_systems]: CirclePosition.bottom,\n};\n\nexport const isProducer = (type: EnergyCircleType): boolean => positionMappings[type] === CirclePosition.top;\nexport const isHybrid = (type: EnergyCircleType): boolean => positionMappings[type] === CirclePosition.middleLeft || positionMappings[type] === CirclePosition.middleRight;\nexport const isConsumer = (type: EnergyCircleType): boolean => positionMappings[type] === CirclePosition.bottom;\nexport const getCirclePositionForType = (type: EnergyCircleType | IOEnergyCircleType): CirclePosition => positionMappings[type];\nexport const producers = allEnergyCircleTypes.filter(isProducer);\nexport const consumers = allEnergyCircleTypes.filter(isConsumer);\nexport const hybrids = allEnergyCircleTypes.filter(isHybrid);\n\nexport const iconMappings: Record = {\n // EMS, EnergyView\n [EnergyCircleType.pv]: 'photovoltaic',\n [EnergyCircleType.chp]: 'chp_xrgi',\n [EnergyCircleType.battery]: 'battery',\n [EnergyCircleType.grid]: 'main-connection',\n [EnergyCircleType.generator]: 'generator',\n [EnergyCircleType.house]: 'house-consumption',\n [EnergyCircleType.charge_station]: 'electric-charging-station',\n [EnergyCircleType.electric_heating]: 'electric-charging-boiler',\n [EnergyCircleType.heating_pump]: 'heating-capacity',\n [EnergyCircleType.big_consumer]: 'socket-switch',\n // setpoint optimizer\n [EnergyCircleType.heating_air_systems]: 'heating_air',\n [EnergyCircleType.heating_water_systems]: 'hot-water',\n [EnergyCircleType.cooling_air_systems]: 'cooling_air',\n [EnergyCircleType.cooling_water_systems]: 'cold-water',\n [EnergyCircleType.hybrid_water_systems]: 'hybrid_water',\n [EnergyCircleType.hybrid_air_systems]: 'hybrid_air',\n};\nexport const energyCircleIconForType = (type: EnergyCircleType) => iconMappings[type];\n\n/**\n * Systems that show alternative values, if the actual power variables are not\n * mapped.\n */\nexport const systemsWithAlternativeValues = [\n EnergyCircleType.charge_station,\n EnergyCircleType.heating_pump,\n EnergyCircleType.electric_heating,\n EnergyCircleType.big_consumer,\n];\nexport const isSystemWithAlternativeValue = (type: EnergyCircleType) => systemsWithAlternativeValues.includes(type);\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"generator-system-instance-view-content\"},[_c('LabelUnitWrapper',{attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.switch_enable, _vm.instanceData.state_enable]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.enableGenerator')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VEnable,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"is-default-view\":false,\"variables-list-for-check\":[_vm.instanceData.state_timelock, _vm.instanceData.enable_timelock]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.generator.settings.timelock')))]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 0 10px\"},attrs:{\"variable-data\":_vm.switch2VTimelock,\"instance\":\"Switch2V\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.switch_reset, _vm.instanceData.state_reset],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.reset')))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.pushButtonReset,\"instance\":\"PushButton\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEnableSOCMappings,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":5,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.enableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_c('div',{staticClass:\"pr-10\"},[_vm._v(\"%\")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldDisableSOCMappings,\"instance\":\"InputField1\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":6,\"max\":100,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.disableSOC')))]},proxy:true},{key:\"unit\",fn:function(){return [_c('div',{staticClass:\"pr-10\"},[_vm._v(\"%\")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' },\"variables-list-for-check\":[_vm.instanceData.hour_on]},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.generator.settings.timelock'))+\" \"+_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOn,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' },\"variables-list-for-check\":[_vm.instanceData.minute_on]},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.generator.settings.timelock'))+\" \"+_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldHourOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":23,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' },\"variables-list-for-check\":[_vm.instanceData.hour_off]},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.generator.settings.timelock'))+\" \"+_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',{staticClass:\"pt-2\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldMinOff,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":0,\"max\":59,\"description-styles\":{ width: '300px', paddingTop: '5px' },\"input-field-styles\":{ width: '250px' },\"unit-styles\":{ flexGrow: '1', textAlign: 'center', paddingTop: '5px' },\"icon-styles\":{ width: '40px', textAlign: 'center' },\"variables-list-for-check\":[_vm.instanceData.minute_off]},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.systems.generator.settings.timelock'))+\" \"+_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.power],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.actualGeneratorPower')))]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldActualPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.instanceData.state_generator],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.generator.settings.stateGenerator')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotMappings,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport PreviewMQTTControls\n from '@/ui/components/devices/components/EnergyParts/PreviewMQTTControls.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\n\n/**\n * Generator single system settings.\n */\n@Component({\n methods: { minMaxValidation },\n components: {\n PushButtonBase,\n ShowEventDotBase,\n InputFieldBase,\n OutputFieldBase,\n Switch2VBase,\n PreviewMQTTControls,\n LabelUnitWrapper,\n },\n})\nexport default class GeneratorSystemSettings extends mixins(Validation) {\n @Prop({ default: null }) instanceData!: any;\n\n get outputFieldActualPower() {\n return {\n 'OutputField_actualValue': this.instanceData.power,\n };\n }\n get switch2VEnable() {\n return {\n 'Switch2V_onOff': this.instanceData.switch_enable,\n 'Switch2V_state': this.instanceData.state_enable,\n };\n }\n get switch2VTimelock() {\n return {\n 'Switch2V_onOff': this.instanceData.enable_timelock,\n 'Switch2V_state': this.instanceData.state_timelock,\n };\n }\n get inputFieldHourOn() {\n return {\n 'InputField_targetValue': this.instanceData.hour_on,\n };\n }\n get inputFieldMinOn() {\n return {\n 'InputField_targetValue': this.instanceData.minute_on,\n };\n }\n get inputFieldHourOff() {\n return {\n 'InputField_targetValue': this.instanceData.hour_off,\n };\n }\n get inputFieldMinOff() {\n return {\n 'InputField_targetValue': this.instanceData.minute_off,\n };\n }\n get pushButtonReset() {\n return {\n 'PushButton_onOff': this.instanceData.switch_reset,\n 'PushButton_state': this.instanceData.state_reset,\n };\n }\n get showEventDotMappings() {\n return {\n 'ShowEventDot_errorWarningState': this.instanceData.state_generator,\n };\n }\n get inputFieldEnableSOCMappings() {\n return {\n 'InputField_targetValue': this.instanceData.enable_soc,\n };\n }\n get inputFieldDisableSOCMappings() {\n return {\n 'InputField1_targetValue': this.instanceData.disable_soc,\n };\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=706f2f89&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=706f2f89&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomePage.vue?vue&type=style&index=0&id=d1f629e6&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-6\",staticStyle:{\"width\":\"150px\"}},[_c('v-select',{attrs:{\"items\":_vm.methodItems,\"label\":_vm.$t('modals.webhookActions.method'),\"color\":\"blue\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\"},model:{value:(_vm.params.method),callback:function ($$v) {_vm.$set(_vm.params, \"method\", $$v)},expression:\"params.method\"}})],1),_c('v-text-field',{attrs:{\"outlined\":\"\",\"label\":\"URL\",\"color\":\"blue\"},model:{value:(_vm.params.url),callback:function ($$v) {_vm.$set(_vm.params, \"url\", $$v)},expression:\"params.url\"}})],1),_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t('modals.webhookActions.headers')))]),_c('div',_vm._l((_vm.headers),function(header,index){return _c('div',{key:index,staticClass:\"d-flex mt-6\"},[_c('div',{staticClass:\"flex-grow-1 d-flex\"},[_c('v-text-field',{staticClass:\"mr-6\",attrs:{\"label\":_vm.$t('modals.webhookActions.key'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"blue\"},model:{value:(header.key),callback:function ($$v) {_vm.$set(header, \"key\", $$v)},expression:\"header.key\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.webhookActions.value'),\"hide-details\":\"\",\"outlined\":\"\",\"color\":\"blue\"},model:{value:(header.value),callback:function ($$v) {_vm.$set(header, \"value\", $$v)},expression:\"header.value\"}})],1),_c('v-btn',{staticClass:\"lynus-small-btn ml-6 mt-3\",attrs:{\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.removeHeader(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.webhookActions.remove'))+\" \")])],1)}),0),_c('v-btn',{staticClass:\"accent lynus-small-btn my-6\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.addHeader}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.webhookActions.addHeader'))+\" \")])],1),(!_vm.disableBody)?_c('v-textarea',{attrs:{\"label\":_vm.$t('modals.webhookActions.body'),\"outlined\":\"\",\"color\":\"blue\"},model:{value:(_vm.params.body),callback:function ($$v) {_vm.$set(_vm.params, \"body\", $$v)},expression:\"params.body\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {\n Component, Prop, Vue, Watch,\n} from 'vue-property-decorator';\n\n/**\n * Webhook action component.\n * Manages webhook.\n */\n@Component\nexport default class WebhookAction extends Vue {\n @Prop({ default: {} }) params: any;\n @Prop({ default: false }) disableBody?: boolean;\n\n headers: any = []\n\n get methodItems() {\n return this.disableBody\n ? ['POST', 'PUT', 'DELETE', 'GET', 'PATCH']\n : ['POST', 'PUT', 'DELETE', 'PATCH'];\n }\n\n @Watch('headers', { deep: true })\n onHeadersChange() {\n this.params.headers = this.headers.reduce((acc: any, cur: any) => {\n acc[cur.key] = cur.value;\n return acc;\n }, {});\n }\n\n addHeader() {\n this.headers.push({ key: '', value: '' });\n }\n removeHeader(index: number | string) {\n this.headers.splice(Number(index), 1);\n }\n\n created() {\n this.headers = Object.keys(this.params.headers).map(k => ({ key: k, value: this.params.headers[k] }));\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebhookAction.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebhookAction.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WebhookAction.vue?vue&type=template&id=feed3858&\"\nimport script from \"./WebhookAction.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebhookAction.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/WeatherStation.bdd0b765.png\";","module.exports = \"data:image/png;base64,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\"","// Contains System Types List for Selectfields\n// availableFrom contains UNIX Timestamp in milliseconds. If Project was created after this timestamp the user can select this product\nimport {\n mennekesEnerchargeDate,\n newChargeStationLimitDate,\n versionLimitedChargeStations\n} from '@/utils/versionManagementUtils';\nimport { ChargeStationType } from '@/types/project.types';\n\nexport enum batteryOptions {\n BatteryTower = 'Battery Tower',\n BatteryRackSystem = 'Battery Rack System',\n WecoBatteryStack = 'Weco Battery Stack',\n WecoSlimStack = 'Weco Slim Stack',\n}\nexport enum LoggerType {\n SolarmanLogger = 'Solarman Logger (Deye)',\n}\n\nexport const loggerTypes = [LoggerType.SolarmanLogger];\nexport const inverterPowers = {\n [LoggerType.SolarmanLogger]: [\n // no inverter info needed\n ],\n};\n\nexport const batteryCapacity = {\n [LoggerType.SolarmanLogger]: {\n [batteryOptions.BatteryTower]: [\n { name: '8.2 kWh', value: '8.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '12.3 kWh', value: '12.3Wh', availableFrom: new Date('1970-01-01') },\n { name: '16.4 kWh', value: '16.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '20.5 kWh', value: '20.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '24.6 kWh', value: '24.6 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [batteryOptions.BatteryRackSystem]: [\n { name: '20,5 kWh', value: '20,5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '25.6 kWh', value: '25.6 kWh', availableFrom: new Date('1970-01-01') },\n { name: '30.7 kWh', value: '30.7 kWh', availableFrom: new Date('1970-01-01') },\n { name: '35.8 kWh', value: '35.8 kWh', availableFrom: new Date('1970-01-01') },\n { name: '41 kWh', value: '41 kWh', availableFrom: new Date('1970-01-01') },\n { name: '46.1 kWh', value: '46.1 kWh', availableFrom: new Date('1970-01-01') },\n { name: '51.2 kWh', value: '51.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '56.2 kWh', value: '56.2 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [batteryOptions.WecoBatteryStack]: [\n { name: '21.2 kWh', value: '21.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '26.5 kWh', value: '26.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '31.8 kWh', value: '31.8 kWh', availableFrom: new Date('1970-01-01') },\n { name: '42.4 kWh', value: '42.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '47.7 kWh', value: '47.7 kWh', availableFrom: new Date('1970-01-01') },\n { name: '53 kWh', value: '53 kWh', availableFrom: new Date('1970-01-01') },\n { name: '58.3 kWh', value: '58.3 kWh', availableFrom: new Date('1970-01-01') },\n { name: '68.9 kWh', value: '68.9 kWh', availableFrom: new Date('1970-01-01') },\n { name: '74.2 kWh', value: '74.2 kWh', availableFrom: new Date('1970-01-01') },\n ],\n [batteryOptions.WecoSlimStack]: [\n { name: '5.1 kWh', value: '5.1 kWh', availableFrom: new Date('1970-01-01') },\n { name: '10.2 kWh', value: '10.2 kWh', availableFrom: new Date('1970-01-01') },\n { name: '15.3 kWh', value: '15.3 kWh', availableFrom: new Date('1970-01-01') },\n { name: '20.4 kWh', value: '20.4 kWh', availableFrom: new Date('1970-01-01') },\n { name: '25.5 kWh', value: '25.5 kWh', availableFrom: new Date('1970-01-01') },\n { name: '30.6 kWh', value: '30.6 kWh', availableFrom: new Date('1970-01-01') },\n ],\n },\n};\n\nexport const chargeStationTypes = [\n { name: 'Webasto 11 kW', value: 'Webasto11', availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Webasto 22 kW', value: 'Webasto22', availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Value 11 kW', value: ChargeStationType.internalWeidmüller11, availableFrom: versionLimitedChargeStations.weidmueller11kWInternal, disabled: false },\n { name: 'Weidmüller AC Smart Value 22 kW', value: ChargeStationType.internalWeidmüller22, availableFrom: versionLimitedChargeStations.weidmueller22kWInternal, disabled: false },\n { name: 'Weidmüller AC Smart Eco 11 kW (externe Messung)', value: ChargeStationType.externalWeidmüller11, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Eco 22 kW (externe Messung)', value: ChargeStationType.externalWeidmüller22, availableFrom: new Date('1970-01-01'), disabled: false },\n { name: 'Weidmüller AC Smart Advanced 11 kW (für Mieterstrom)', value: ChargeStationType.internalWeidmüllerMS11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Weidmüller AC Smart Advanced 22 kW (für Mieterstrom)', value: ChargeStationType.internalWeidmüllerMS22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Schneider EVlink Pro AC 11 kW', value: ChargeStationType.Schneider11, availableFrom: newChargeStationLimitDate, disabled: false },\n { name: 'Schneider EVlink Pro AC 22 kW', value: ChargeStationType.Schneider22, availableFrom: newChargeStationLimitDate, disabled: false },\n { name: 'AMTRON Charge Control 11 kW', value: ChargeStationType.AmtronCC11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON Professional 11 kW', value: ChargeStationType.AmtronPro11, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON Professional 22 kW', value: ChargeStationType.AmtronPro22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMTRON TwinCharge 22 kW', value: ChargeStationType.AmtronTC22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'AMEDIO Professional 22 kW', value: ChargeStationType.AmedioPro22, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Enercharge 50 kW', value: ChargeStationType.Enercharge50, availableFrom: mennekesEnerchargeDate, disabled: false },\n { name: 'Enercharge 100 kW', value: ChargeStationType.Enercharge100, availableFrom: mennekesEnerchargeDate, disabled: false },\n];\n\nexport type IWizardComponentMap = Record>;\n\nexport const chargeStationMapTypes = ['WebastoUnite', 'WebastoNext', 'Weidmüller', 'Schneider', 'Amtron', 'AmtronTC', 'Amedio', 'Enercharge'];\n\nexport const heatingPumpMapTypes = ['Lambda Eureka', 'Soltop M-Tech'];\nexport const defineSystemMap = (systemTypes: string[], maximumSystemCount: number) => {\n const systemMap: IWizardComponentMap = {};\n systemTypes.forEach((type) => {\n systemMap[type] = Array.from({ length: maximumSystemCount }, (_, i) => 0);\n });\n return systemMap;\n};\n\nexport const electricHeatingTypes = [\n { name: 'Askoma 3.5 kW', value: 'Askoma 3.5 kW', availableFrom: new Date('1970-01-01'), rawValue: 3.5 },\n { name: 'Askoma 5.8 kW', value: 'Askoma 5.8 kW', availableFrom: new Date('1970-01-01'), rawValue: 5.8 },\n];\nexport function getRawValueBySystemTypeElectricHeating(system: string) {\n return electricHeatingTypes.find((item: any) => item.name === system)?.rawValue ?? system;\n}\n\nexport const avaliableExternalMeasurementTypes = ['big_consumer', 'electric_heating', 'charge_station', 'heating_pump'];\n\nexport function getChargeStationNameByValue(value: string) {\n const foundItem = chargeStationTypes.find(item => item.value === value);\n return foundItem ? foundItem.name : null;\n}\n\nexport function getChargeStationPower(key: string) {\n const chargeStationPower: Record = {\n 'Webasto11': 11,\n 'Webasto22': 22,\n [ChargeStationType.WebastoNext11]: 11,\n [ChargeStationType.WebastoNext22]: 22,\n [ChargeStationType.WebastoUnite11]: 11,\n [ChargeStationType.WebastoUnite22]: 22,\n [ChargeStationType.internalWeidmüller11]: 11,\n [ChargeStationType.internalWeidmüller22]: 22,\n [ChargeStationType.externalWeidmüller11]: 11,\n [ChargeStationType.externalWeidmüller22]: 22,\n [ChargeStationType.internalWeidmüllerMS11]: 11,\n [ChargeStationType.internalWeidmüllerMS22]: 22,\n [ChargeStationType.Schneider11]: 11,\n [ChargeStationType.Schneider22]: 22,\n [ChargeStationType.AmtronCC11]: 11,\n [ChargeStationType.AmtronPro11]: 11,\n [ChargeStationType.AmtronPro22]: 22,\n [ChargeStationType.AmtronTC22]: 22,\n [ChargeStationType.AmedioPro22]: 22,\n [ChargeStationType.Enercharge50]: 50,\n [ChargeStationType.Enercharge100]: 100,\n };\n\n return chargeStationPower[key];\n}\n\nexport function getChargeStationTypeInformationBySystemType(name: string) {\n const chargeStationPower: Record = {\n 'Webasto11': { type: 'Webasto', isExternal: false },\n 'Webasto22': { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoNext11]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoNext22]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoUnite22]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.WebastoUnite22]: { type: 'Webasto', isExternal: false },\n [ChargeStationType.internalWeidmüller11]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.internalWeidmüller22]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.externalWeidmüller11]: { type: 'Weidmüller', isExternal: true },\n [ChargeStationType.externalWeidmüller22]: { type: 'Weidmüller', isExternal: true },\n [ChargeStationType.internalWeidmüllerMS11]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.internalWeidmüllerMS22]: { type: 'Weidmüller', isExternal: false },\n [ChargeStationType.Schneider11]: { type: 'Schneider', isExternal: false },\n [ChargeStationType.Schneider22]: { type: 'Schneider', isExternal: false },\n [ChargeStationType.AmtronCC11]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronPro11]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronPro22]: { type: 'Amtron', isExternal: false },\n [ChargeStationType.AmtronTC22]: { type: 'AmtronTC', isExternal: false },\n [ChargeStationType.AmedioPro22]: { type: 'Amedio', isExternal: false },\n [ChargeStationType.Enercharge50]: { type: 'Enercharge', isExternal: false },\n [ChargeStationType.Enercharge100]: { type: 'Enercharge', isExternal: false },\n };\n return chargeStationPower[name];\n}\n","module.exports = __webpack_public_path__ + \"img/ElectricChargingStationV2.99803f26.png\";","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { envUserRolesAccessBlockList } from '@/utils/env';\nimport _ from 'lodash';\nimport { IChartsState } from '@/store/modules/charts/types';\nimport { IProject } from '@/types/project.types';\nimport { IMLModel, IMLModelType, IMLModelTypes } from '@/types/mpc/mpc.types';\nimport { IDevicesTypes, IDeviceType, IDevice } from '@/types/devices.types';\nimport { ActionsSchemasListItem } from '@/types/common.types';\nimport { CanAccessCheck, IMember } from '@/types/members.types';\n\nenum DeviceAction {\n addToFavorites = 'addToFavorites',\n deleteFromFavorites = 'deleteFromFavorites',\n settings = 'settings',\n edit = 'edit',\n duplicate = 'duplicate',\n delete = 'delete',\n priority = 'priority',\n}\nconst DEFAULT_ACTIONS_TYPES_LIST = [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.settings,\n DeviceAction.edit,\n DeviceAction.duplicate,\n DeviceAction.delete,\n];\n\n/**\n * Component that represent devices actions list\n */\n@Component({\n components: {\n ManageMLModel: () => import('@/ui/components/modals/ManageMLModel/index.vue'),\n ManageDevice: () => import('@/ui/components/modals/ManageDevice/index.vue'),\n DeleteModalForm: () => import('@/ui/components/modals/DeleteModalForm.vue'),\n ManageAnomalyDetection: () => import('@/ui/components/modals/ManageAnomalyDetection/index.vue'),\n ManageCharts: () => import('@/ui/components/modals/ManageChart/index.vue'),\n DuplicateDeviceWindow: () => import('@/ui/components/devices/actions/DuplicateDeviceWindow.vue'),\n ManagePriorities: () => import('@/ui/components/modals/ManagePriorities/index.vue'),\n },\n})\nexport default class DeviceActions extends Vue {\n @Prop() device!: any;\n @State('anomalyDetection') anomalyDetectionState!: IAnomalyDetectionState;\n @State('charts') chartsState!: IChartsState;\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('devices/deviceTypeSchemaByKey') deviceTypeSchemaByKey!: (key: string) => IDeviceType;\n @Getter('mpc/mlModelTypes') mlModelTypes!: IMLModelTypes;\n @Getter('mpc/mlModelTypeSchemaByKey') mlModelTypeSchemaByKey!: (key: string) => IMLModelType;\n @Getter('projects/project') project!: IProject;\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n @Getter('members/currentUserRole') currentUserRole!: string;\n @Action('devices/deleteDevice') deleteDevice!: (device: IDevice) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('devices/addDeviceToFavorites') addDeviceToFavorites!: (deviceId: string) => void;\n @Action('devices/removeDeviceFromFavorites') removeDeviceFromFavorites!: (deviceId: string) => void;\n @Action('mpc/addMPCToFavorites') addMPCToFavorites!: (mpcId: string) => void;\n @Action('mpc/removeMPCFromFavorites') removeMPCFromFavorites!: (mpcId: string) => void;\n @Action('mpc/deleteMPC') deleteMPC!: (mpcId: IMLModel) => void;\n @Action('mpc/updateMPC') updateMPC!: (mpc: IMLModel) => void;\n @Action('devices/createDevice') createDevice!: (control: IDevice) => void;\n @Action('mpc/createMCCInstance') createMCCInstance!: (control: IMLModel) => void;\n @Action('members/updateMemberMeta') updateMemberMeta!: (meta: { project_id: string; member: IMember }) => Promise;\n\n isMenuOpen = false;\n isCloseOnClick = true;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n /**\n * Schemas for all possible device actions\n * @return {object} collection of actions\n */\n get actionsSchemasList(): Record {\n return {\n [DeviceAction.addToFavorites]: {\n id: 'favorites',\n title: 'Add to favorites',\n locale: 'uiComponents.deviceActions.addToFavorites',\n handle: this.addToFavorites,\n visible: true,\n },\n [DeviceAction.deleteFromFavorites]: {\n id: 'favorites',\n title: 'Delete from favorites',\n locale: 'uiComponents.deviceActions.deleteFromFavorites',\n handle: this.deleteFromFavorites,\n visible: true,\n },\n [DeviceAction.settings]: {\n id: 'settings',\n title: 'Settings',\n locale: 'uiComponents.deviceActions.settings',\n handle: () => this.$emit('switchSettingsView', true),\n visible: this.settingsListView,\n isValidation: true,\n },\n [DeviceAction.edit]: {\n id: 'edit',\n title: 'Edit',\n locale: 'uiComponents.deviceActions.edit',\n handle: this.editControl,\n modal: this.manageModalType,\n formTitle: this.editFormTitle,\n visible: true,\n },\n [DeviceAction.delete]: {\n id: 'delete',\n title: 'Delete',\n locale: 'uiComponents.deviceActions.delete',\n handle: this.removeDevice,\n modal: 'DeleteModalForm',\n deleteText: this.device.name,\n visible: true,\n },\n [DeviceAction.duplicate]: {\n id: 'duplicate',\n title: 'Duplicate',\n locale: 'uiComponents.deviceActions.duplicate',\n modal: 'DuplicateDeviceWindow',\n visible: true,\n handle: () => {},\n },\n [DeviceAction.priority]: {\n id: 'priority',\n title: 'Priority',\n locale: 'modals.managePriorities.title',\n modal: 'ManagePriorities',\n visible: true,\n handle: () => {},\n },\n };\n }\n\n get actionTypesListByDeviceType(): any {\n return {\n Robot: [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.settings,\n DeviceAction.edit,\n ],\n SurveyClient: [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.settings,\n DeviceAction.edit,\n ],\n chart: [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.settings,\n DeviceAction.edit,\n DeviceAction.duplicate,\n DeviceAction.delete,\n ],\n EMSV2: [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.settings,\n DeviceAction.edit,\n DeviceAction.priority,\n DeviceAction.duplicate,\n DeviceAction.delete,\n ],\n EnergyIO: [\n DeviceAction.addToFavorites,\n DeviceAction.deleteFromFavorites,\n DeviceAction.edit,\n DeviceAction.duplicate,\n DeviceAction.delete,\n ],\n };\n }\n get actionTypesList() {\n return this.actionTypesListByDeviceType[this.device.data.type] || DEFAULT_ACTIONS_TYPES_LIST;\n }\n\n /**\n * Return true if current device id in currentMember favorite_devices list.\n */\n get isDeviceFavorite() {\n return this.$route.name === 'Favorites' || this.currentMember?.meta?.favorite_devices?.includes(this.device.id);\n }\n\n /**\n * Return filtered list of filtered actions list according to if device in favorites\n */\n get currentActionListAccordingToDeviceFavorites() {\n const currentActions = this.actionTypesList.filter((action: DeviceAction) => {\n return this.isDeviceFavorite\n ? action !== DeviceAction.addToFavorites\n : action !== DeviceAction.deleteFromFavorites;\n });\n return currentActions.map((action: DeviceAction) => this.actionsSchemasList[action]);\n }\n\n /**\n * Filter action from list if member not have access to it\n */\n get accessibleActionList() {\n return this.currentActionListAccordingToDeviceFavorites.filter((item: any) => {\n return this.canMemberAccess('DeviceActions', item.id);\n });\n }\n\n get currentActionsListFiltered() {\n const newList: any = this.currentActionListAccordingToDeviceFavorites.filter((element: any) => !envUserRolesAccessBlockList[this.currentUserRole].DeviceActions.includes(element.id));\n if (newList?.[0]?.id === 'settings' && this.settingsListView === false) {\n return [];\n }\n return newList;\n }\n // types (need to improve)\n get isDevice() {\n return Object.keys(this.devicesTypes).some(item => item === this.device.data.type);\n }\n get isChart() {\n return Object.keys(this.chartsState.chartsTypes).some(item => item === this.device.data.type);\n }\n get mlModel() {\n return Object.keys(this.mlModelTypes).some(item => item === this.device.data.type);\n }\n get isAnomalyDetection() {\n return Object.keys(this.anomalyDetectionState.anomalyDetectionTypes).some(item => item === this.device.data.type);\n }\n\n get isMPC() {\n const mpcApiTypes: string[] = [...Object.keys(this.mlModelTypes), ...Object.keys(this.anomalyDetectionState.anomalyDetectionTypes)];\n return mpcApiTypes.some((type: string) => type === this.device.data.type);\n }\n\n /**\n * Define modal window by device type\n * @return {string} name of manage modal\n */\n get manageModalType() {\n if (this.isDevice) return 'ManageDevice';\n if (this.isChart) return 'ManageCharts';\n if (this.mlModel) return 'ManageMLModel';\n return 'ManageAnomalyDetection';\n }\n\n /**\n * Define translation path for title edit modal form\n * @return {string} path to i18n translation\n */\n get editFormTitle() {\n if (this.isDevice) return 'modals.manageDevice.editDeviceTitle';\n if (this.isChart) return 'modals.manageCharts.editChartTitle';\n if (this.mlModel) return 'modals.manageMLModel.editDeviceTitle';\n return 'modals.manageAnomalyDetection.editAnomalyDetectionTitle';\n }\n\n /**\n * This getter check if current device has settings view\n * @return {boolean} is device has settings view\n */\n get settingsListView() {\n if (this.isChart) return false;\n if (this.isAnomalyDetection) return false;\n if (this.mlModel) return this.mlModelTypeSchemaByKey(this.device.data.type).isSettingsView;\n return this.devicesTypes[this.device.data.type].isSettingsView;\n }\n\n get deviceValidationWithMpcLogic() {\n return this.mpcValidationLogic(this.deviceTypeSchemaByKey(this.device.data.type));\n }\n\n mpcValidationLogic(currentMPCTypeSchema: any) {\n const { settingsMappings } = currentMPCTypeSchema;\n if (!this.device.data?.meta?.controllerMappings || !settingsMappings) return null;\n\n const isValid: any = settingsMappings.map((field: string) => {\n const isFieldAreObject: boolean = typeof this.device.data.meta.controllerMappings[field] === 'object';\n const isDynamicField: boolean = /#id#/.test(field);\n if (isDynamicField) {\n const deviceIdUnderline: string = this.device.id.replace(/-/g, '_');\n const fieldVariable: string = field.replace(/#id#/, deviceIdUnderline);\n const value: any = this.measurements.get(fieldVariable);\n const { min, max } = currentMPCTypeSchema.dynamicMappingsMinMax[field];\n return min > value || max < value || typeof value !== 'number';\n } else if (isFieldAreObject) {\n const { minMaxBorders } = currentMPCTypeSchema.controllerMappings[field];\n const fields = this.device.data.meta.controllerMappings[field];\n const valuesArray = Object.values(fields).map((val: any) => this.measurements.get(val));\n return valuesArray.some((value: any) => minMaxBorders.min > value || minMaxBorders.max < value || typeof value !== 'number');\n } else {\n const { minMaxBorders } = currentMPCTypeSchema.controllerMappings[field];\n const value: any = this.measurements.get(this.device.data.meta.controllerMappings[field]);\n return minMaxBorders.min > value || minMaxBorders.max < value || typeof value !== 'number';\n }\n });\n\n return isValid.some((el: boolean) => el);\n }\n\n /**\n * Validation for devices action list.\n * If some form field in device settings view not valid,\n * red frame around the settings list item flashes\n * @return {boolean} validation status\n */\n get devicesValidation() {\n const additionalBasicDevices: any = this.device.data?.meta?.deviceSchema?.additionalBasicDevices;\n if (!additionalBasicDevices?.length) return null;\n const inputFieldsArray = () => {\n const filtered: any = additionalBasicDevices.filter((field: string) => {\n const fieldWithoutNumbers: any = field.replace(/[0-9]/g, '');\n return fieldWithoutNumbers === 'InputField';\n });\n return filtered.length ? filtered.map((field: string) => `${field}_targetValue`) : null;\n };\n const isValid: any = !inputFieldsArray() ? [] : inputFieldsArray().map((field: string) => {\n const { minMaxBorders } = this.deviceTypeSchemaByKey(this.device.data.type).mappings[field];\n const value: any = this.measurements.get(this.device.data.mappings[field]);\n if (!minMaxBorders) return [];\n return minMaxBorders.min > value || minMaxBorders.max < value || typeof value !== 'number';\n });\n\n return isValid.some((el: boolean) => el);\n }\n\n /**\n * Validation for MPC devices action list.\n * If some form field in MPC device settings view not valid,\n * red frame around the settings list item flashes\n * @return {boolean} validation status\n */\n get mpcValidation() {\n return this.mpcValidationLogic(this.mlModelTypeSchemaByKey(this.device.data.type));\n }\n\n /**\n * The flashing frame is only visible on devices that have settings view\n * @return validation getter\n */\n get settingsValidation() {\n // special case for valdation because EMSV2 is normal device but has data structure from MPC\n if (this.device.data.type === 'EMSV2') {\n return this.deviceValidationWithMpcLogic;\n }\n if (this.isDevice) return this.devicesValidation;\n if (this.mlModel) return this.mpcValidation;\n return null;\n }\n\n /**\n * Checks device type and use deleteFromFavorites method according to it\n */\n async deleteFromFavorites() {\n const member = JSON.parse(JSON.stringify(this.currentMember));\n if (member.meta.favorite_devices !== undefined) {\n member.meta.favorite_devices = member.meta.favorite_devices.filter((deviceId: string) => deviceId !== this.device.id);\n }\n if (member.meta.favorite_positions !== undefined) {\n member.meta.favorite_positions = member.meta.favorite_positions.filter((device: any) => device.i !== this.device.id);\n }\n if (this.project.id) {\n await this.updateMemberMeta({ project_id: this.project.id, member });\n }\n }\n\n /**\n * Checks device type and use addToFavorites method according to it\n */\n async addToFavorites() {\n const member = JSON.parse(JSON.stringify(this.currentMember));\n if (member.meta === undefined) {\n member.meta = {};\n }\n if (this.currentMember?.meta?.favorite_devices === undefined) {\n member.meta.favorite_devices = [this.device.id];\n } else {\n member.meta.favorite_devices.push(this.device.id);\n }\n if (this.project.id) {\n await this.updateMemberMeta({ project_id: this.project.id, member });\n }\n }\n\n /**\n * Checks device type and use delete method according to it\n */\n removeDevice() {\n if (this.isMPC) {\n this.deleteMPC(this.device as IMLModel);\n } else {\n this.deleteDevice(this.device as IDevice);\n }\n }\n\n /**\n * Checks device type and use update method according to it\n * @param payload device or mpc data\n */\n async editControl(payload: any) {\n this.$emit('toggleLoading', true);\n if (this.isMPC) await this.updateMPC(payload);\n else await this.updateDevice({ device: payload, skipReport: false });\n\n this.$emit('toggleLoading', false);\n this.$emit('rerenderDevice', payload); // TODO: remove rerender key when old EMS will be removed\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [(_vm.currentActionsListFiltered.length >= 1)?_c('v-btn',{class:{ 'icon-animation-validation': _vm.settingsValidation },attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_c('v-icon',[_vm._v(\"fa-ellipsis-v\")])],1):_vm._e()]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',{staticClass:\"primary device-actions\"},[_vm._l((_vm.accessibleActionList),function(item,index){return [(item.visible)?_c('v-list-item',{key:index,attrs:{\"link\":\"\"}},[(item.modal)?[_c(item.modal,{tag:\"component\",attrs:{\"device-data\":_vm.device,\"model\":_vm.device,\"manageModalType\":_vm.manageModalType,\"deletedItemName\":item.deleteText,\"form-title\":_vm.$t(item.formTitle),\"color\":\"accent\"},on:{\"handleControl\":item.handle,\"deleteHandler\":_vm.removeDevice}},[_c('div',{staticClass:\"device-actions-item\",on:{\"click\":function($event){_vm.isMenuOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])])]:_vm._e(),(!item.modal)?[_c('div',{class:['device-actions-item', { 'device-actions-item-error': item.isValidation && _vm.settingsValidation }],on:{\"click\":item.handle}},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])]:_vm._e()],2):_vm._e()]})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceActions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceActions.vue?vue&type=template&id=594a5318&\"\nimport script from \"./DeviceActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceActions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeviceActions.vue?vue&type=style&index=0&id=594a5318&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import api from '@/services/api';\n\nexport default {\n async fetchUserByEmail(email: string) {\n return api.fetch(`/users?email=${email}`, 'GET');\n },\n};\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=style&index=0&id=75271fc4&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"input-field-mock\"},[_c('div',{staticClass:\"input-field-mock__description\",style:({ ..._vm.descriptionStyles })},[_vm._t(\"textDescription\")],2),_c('div',{staticClass:\"input-field-mock__field\",style:({ ..._vm.inputFieldStyles })},[_c('v-text-field',{attrs:{\"step\":1,\"solo\":\"\",\"flat\":\"\",\"min\":_vm.min,\"max\":_vm.max,\"height\":_vm.small ? 28 : 36,\"background-color\":_vm.background},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}})],1),_c('div',{staticClass:\"input-field-mock__unit\",style:({ ..._vm.unitStyles })},[_vm._t(\"unit\")],2),_c('div',{staticClass:\"input-field-mock__icon\",style:({ ..._vm.iconStyles })},[_vm._t(\"icon\")],2),_c('div',{staticClass:\"input-field-mock__button\"},[(_vm.isSubmitButton)?_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"accent\",\"small\":_vm.small}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class InputFieldMock extends Vue {\n @Prop() min!: number;\n @Prop() max!: number;\n @Prop({ default: true }) isSubmitButton!: boolean;\n @Prop({ default: '#fff' }) background!: string;\n @Prop({ default: false }) small!: boolean;\n @Prop({ default: null }) initState!: any;\n @Prop({ default: () => {} }) descriptionStyles!: any;\n @Prop({ default: () => {} }) inputFieldStyles!: any;\n @Prop({ default: () => {} }) unitStyles!: any;\n @Prop({ default: () => {} }) iconStyles!: any;\n\n state = 20\n\n mounted() {\n if (this.initState) {\n this.state = this.initState;\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputFieldMock.vue?vue&type=template&id=888d1ee0&\"\nimport script from \"./InputFieldMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputFieldMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputFieldMock.vue?vue&type=style&index=0&id=888d1ee0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconList.vue?vue&type=style&index=0&id=4be71c5d&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=style&index=0&id=40c9dde0&prod&lang=scss&scoped=true&\"","// this import is needed in case we want to use a config from config.json for testing.\nimport * as whitelabelConfig from './config.json';\n\nconst lynusDefaultConfig = {\n TITLE: 'Lynus',\n LOGO_URL_LIGHT: '/images/lynus.svg',\n LOGO_URL_DARK: '/images/lynus_dark.svg',\n FAVICON_URL: '/favicon.ico',\n PROJECT_OPEN_SUBPAGE: '/favorites',\n REALM: 'lynus',\n KEYCLOAK_URL: 'https://accounts.lynus.io/auth',\n CLIENT_ID: 'console',\n API: 'https://api.lynus.io/v1',\n MPC_API: 'https://mpc.lynus.dev',\n LOAD_MPC: true,\n MQTT: 'wss://mqtt.lynus.io',\n DEFAULTS_TO_DARKMODE: false,\n THEMES: {\n light: {\n primary: '#ffffff',\n sideBarHighlight: '#ffffff',\n sideBarColor: '#f2f2f2',\n surface: '#454545',\n secondary: '#e4f4ff',\n accent: '#6CC1FE',\n accentLight: '#E4F4FF',\n lynusText: '#525252',\n lynusTextInvert: '#FFFFFF',\n lynusTextSidebar: '#171717',\n projectBackground: '#f2f2f2',\n deviceBackground: '#f2f2f2',\n secondaryDeviceBackground: '#D6D6D6',\n dndItemBackground: '#E4F4FF',\n inactiveItem: '#eaeaea',\n activeItem: '#E4F4FF',\n primaryBorder: '#c6c6c6',\n error: '#E83B3A',\n overlay: '#1e4a5f',\n lynusIcon: '#707070',\n green: '#30BF54',\n },\n dark: {\n primary: '#171717',\n sideBarHighlight: '#171717',\n sideBarColor: '#1a1a1a',\n surface: '#272727',\n secondary: '#313131',\n accent: '#0d6efd',\n accentLight: '#E4F4FF',\n lynusText: '#FFFFFF',\n lynusTextInvert: '#525252',\n lynusTextSidebar: '#FFFFFF',\n projectBackground: '#313131',\n deviceBackground: '#313131',\n secondaryDeviceBackground: '#414141',\n dndItemBackground: '#313131',\n inactiveItem: '#313131',\n activeItem: '#0d6efd',\n primaryBorder: '#5f5f5f',\n error: '#E83B3A',\n overlay: '#1e4a5f',\n lynusIcon: '#dbdbdb',\n green: '#30BF54',\n },\n },\n DEVICES: [\n 'LightSwitch',\n 'GeneralSwitchV2',\n 'LightDimmer',\n 'Temperature',\n 'VariableOutputField',\n 'VariableInputField',\n 'VariableTextOutputField',\n 'VariableTextInputField',\n 'LightRGB',\n 'LightPushButton',\n 'SocketSwitch',\n 'ControlBlinds',\n 'ControlAwning',\n 'ControlShutter',\n 'ThermostatDigital',\n 'ThermostatAnalog',\n 'AirHumiditySensor',\n 'BrightnessSensor',\n 'SensorCO2',\n 'SensorLevel',\n 'WeatherStation',\n 'HotWaterMeter',\n 'ColdWaterMeter',\n 'HeatingMeter',\n 'ElectricityMeter',\n 'MotionSensor',\n 'Battery',\n 'PVSystem',\n 'HouseConsumption',\n 'Generator',\n 'MainsConnection',\n 'ElectricChargingStation',\n 'ElectronicBoiler',\n 'VentilatorSwitch',\n 'MusicSystem',\n 'TV',\n 'MotorWithoutVFD',\n 'PumpWithoutVFD',\n 'MotorWithVFD',\n 'PumpWithVFD',\n 'MixingValve',\n 'Ventilation',\n 'Gauge',\n 'DropDownOutputFieldWithVariable',\n 'DropDownInputFieldWithVariable',\n 'EMSV2',\n 'EnergyViewV2',\n 'ElectricChargingStationV2',\n 'EnergyIO',\n // 'RegentLighting',\n ],\n MPC_Devices_List: [\n // 'HeatingCircuitOptimization',\n 'PVProductionService',\n 'ConsumptionService',\n 'HppProductionService',\n 'EMS',\n 'PVMonitoringService',\n 'SetpointOptimizer',\n 'MpcEnergyView',\n ],\n SHOW_PROJECT_TYPE_SELECTION: false,\n PROJECT_MENU_ENTRIES: [\n 'Favorites',\n 'Areas',\n 'Devices Library',\n 'Variables',\n 'AI/ML Library',\n 'Workbench',\n 'Settings',\n 'Rules',\n 'Event List',\n 'Report',\n 'InstallationWizard',\n 'TenantWizard',\n ],\n PROJECT_SETTINGS_ENTRIES: [\n 'General',\n 'EnergyPrice',\n 'Notification',\n 'MQTT',\n 'Permissions',\n 'CheckProtocol',\n ],\n WORKBENCH_CATEGORIES: [\n 'Devices',\n 'Charts',\n 'Anomaly Detection',\n 'MPC',\n ],\n WORKBENCH_BUTTONS: [\n 'ManageCharts',\n 'ManageDevice',\n 'ManageAnomalyDetection',\n 'ManageMLModel',\n ],\n DEVICE_LIBRARY_CATEGORIES: {\n 'Building Automation': [\n 'Energy',\n 'Gauges',\n 'Multimedia',\n 'Light',\n 'Sensors',\n 'Meters',\n 'Motion',\n 'Shading',\n 'Variable I/O Fields',\n 'Sockets',\n 'Heating/Cooling',\n 'Ventilation',\n 'Switch',\n ],\n 'Charts': [\n 'Line',\n 'Column',\n ],\n },\n AIML_LIBRARY_CATEGORIES: [\n 'Anomaly Detection',\n 'MPC',\n ],\n MPC_Library_Tabs: [\n 'Energy',\n 'Heating',\n ],\n MAIN_MENU_ENTRIES: [\n 'Home',\n 'Billing',\n 'Documentation',\n 'Changelog',\n 'PartnerManagement',\n 'PartnerWorkspace',\n 'SerialNumberManagement',\n // 'Ticket',\n ],\n PARTNER_PROJECT_MENU_ENTRIES: [\n 'PartnerProjectView',\n ],\n SETTINGS_MAIL_SUPPORT: 'support@lynus.io',\n SETTINGS_DOWNLOAD_LIST: [\n\n ],\n SETTINGS_SHOW_WEATHER_SERVICE: true,\n ENABLE_CONTROLLER_SETTINGS: true,\n DOCUMENTATION_TABS: [\n 'UserManual',\n 'APIDocs',\n 'DeviceConnectivity',\n ],\n SHOW_PROJECT_INFO: true,\n SHOW_CREATE_DEVICE_BUTTON_IN_AREA: false,\n USER_ROLES_ACCESS_BLOCK_LIST: {\n 'ReadOnly': {\n 'CreateModals': [\n 'CreateProject',\n 'CreateArea',\n 'CreateDevice',\n 'CreateAiml',\n 'CreateCharts',\n 'CreateMpc',\n 'CreateRule',\n 'CreateReport',\n ],\n // Create is not needed because it is allready given up inside the CreateModals array\n 'DeviceActions': [\n 'edit',\n 'delete',\n 'duplicate',\n ],\n 'AreaActions': [\n 'edit',\n 'delete',\n ],\n 'ProjectMenuEntries': [\n // 'Favorites',\n 'Devices Library',\n 'Variables',\n 'AI/ML Library',\n 'Workbench',\n 'Rules',\n 'Event List',\n 'Report',\n 'Settings',\n 'InstallationWizard',\n ],\n 'ProjectSettingsEntries': [\n 'General',\n 'Downloads',\n 'Notification',\n 'MQTT',\n 'Permissions',\n 'CheckProtocol',\n ],\n 'ProjectActions': [\n 'DragAndDrop',\n ],\n 'Devices': [\n 'BasicControls',\n ],\n },\n 'User': {\n 'CreateModals': [],\n 'DeviceActions': [\n 'edit',\n 'delete',\n 'duplicate',\n ],\n 'AreaActions': [\n 'edit',\n 'delete',\n 'duplicate',\n ],\n 'ProjectMenuEntries': [\n 'Devices Library',\n 'AI/ML Library',\n 'InstallationWizard',\n 'Rules',\n 'Workbench',\n ],\n 'ProjectSettingsEntries': [\n 'General',\n 'Downloads',\n 'Notification',\n 'MQTT',\n ],\n 'ProjectActions': [],\n 'Devices': [],\n },\n 'Admin': {\n 'CreateModals': [],\n 'DeviceActions': [],\n 'AreaActions': [],\n 'ProjectMenuEntries': [],\n 'ProjectSettingsEntries': [],\n 'ProjectActions': [],\n 'Devices': [],\n },\n },\n};\n\n/**\n * The alternative whitelabel config that should be merged with the default\n * lynus config (this is usually only done for testing). It defaults to {},\n * and can be set e.g. to\n * `const alternativeConfig = whitelabelConfig['ronovatec.console.lynus.io'];`\n */\nconst alternativeConfig = {};\n\n/**\n * This is the exported config that is used in development mode and as a fallback\n * for the case that there is no whitelabel config defined in production.\n * The lynus default config is merged with the alternative one.\n */\nexport const config: any = { ...lynusDefaultConfig, ...alternativeConfig };\n","import { config } from '../../default-config';\n\n/**\n * returns environment value\n * @param name the desired environment variable\n */\nfunction getEnv(name: string): any {\n const w = window as any; // js window object\n\n // take value from window config, or from default config as fallback\n return w.config?.[name] ?? config[name];\n}\n\n// export environment variables\nexport const envApi = getEnv('API');\nexport const envMpcApi = getEnv('MPC_API');\nexport const envMqtt = getEnv('MQTT');\nexport const envTitle = getEnv('TITLE');\nexport const envLogoURLLight = getEnv('LOGO_URL_LIGHT');\nexport const envLogoURLDark = getEnv('LOGO_URL_DARK');\nexport const envFaviconURL = getEnv('FAVICON_URL');\nexport const envProjectOpenSubpage = getEnv('PROJECT_OPEN_SUBPAGE');\nexport const envKeycloakURL = getEnv('KEYCLOAK_URL');\nexport const envRealm = getEnv('REALM');\nexport const envClientId = getEnv('CLIENT_ID');\nexport const envDefaultsToDarkmode = getEnv('DEFAULTS_TO_DARKMODE');\nexport const envThemes = getEnv('THEMES');\nexport const envDevices = getEnv('DEVICES');\nexport const envAppShowProjectTypeSelection = getEnv('SHOW_PROJECT_TYPE_SELECTION');\nexport const envProjectMenuEntries: string[] = getEnv('PROJECT_MENU_ENTRIES');\nexport const envProjectSettingsEnteries: string[] = getEnv('PROJECT_SETTINGS_ENTRIES');\nexport const envWorkbenchCategories: string[] = getEnv('WORKBENCH_CATEGORIES');\nexport const envDeviceLibraryCategories: any = getEnv('DEVICE_LIBRARY_CATEGORIES');\nexport const envAimlLibraryCategories: string[] = getEnv('AIML_LIBRARY_CATEGORIES');\nexport const envMainMenuEntries: string[] = getEnv('MAIN_MENU_ENTRIES');\nexport const envWorkbenchButtons: string[] = getEnv('WORKBENCH_BUTTONS');\nexport const envSettingsMailSupport: string = getEnv('SETTINGS_MAIL_SUPPORT');\nexport const envSettingsDownloadList: string[] = getEnv('SETTINGS_DOWNLOAD_LIST');\nexport const envSettingsShowWeatherService: boolean = getEnv('SETTINGS_SHOW_WEATHER_SERVICE');\nexport const envDocumentationTabs: string[] = getEnv('DOCUMENTATION_TABS');\nexport const envLoadMPC: boolean = getEnv('LOAD_MPC');\nexport const envShowProjectInfo: boolean = getEnv('SHOW_PROJECT_INFO');\nexport const envMPCDeviceList: string[] = getEnv('MPC_Devices_List');\nexport const envMPCLibraryTabs: string[] = getEnv('MPC_Library_Tabs');\nexport const envUserRolesAccessBlockList: any = getEnv('USER_ROLES_ACCESS_BLOCK_LIST');\nexport const envEnableControllerSettings: any = getEnv('ENABLE_CONTROLLER_SETTINGS');\nexport const envPartnerProjectMenuEntries: string[] = getEnv('PARTNER_PROJECT_MENU_ENTRIES');\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemModalWindowView.vue?vue&type=style&index=0&id=d965a678&prod&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=style&index=0&id=204816c0&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/multiple_chp.ea5d79bc.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=style&index=0&id=1f59e114&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/TSGFrischwasser.6762a9e6.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"start-date-field\"},[_c('v-btn',{staticClass:\"lynus-mid-btn\",staticStyle:{\"width\":\"100%\"},attrs:{\"color\":_vm.value ? 'accent': '#9e9e9e',\"outlined\":!_vm.value},on:{\"click\":function($event){_vm.isCalendar = true}}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.label))]),_c('span',[_vm._v(_vm._s(_vm.convertToDate(_vm.value)))])]),_c('v-dialog',{attrs:{\"persistent\":\"\"},model:{value:(_vm.isCalendar),callback:function ($$v) {_vm.isCalendar=$$v},expression:\"isCalendar\"}},[_c('div',{staticClass:\"calendar-wrapper d-flex justify-center\"},[_c('v-date-picker',{attrs:{\"value\":_vm.convertToDate(_vm.value),\"min\":_vm.convertToDate(_vm.startingDate),\"max\":_vm.convertToDate(_vm.endDate) || _vm.lastCalendarDate,\"color\":\"accent\"},on:{\"input\":function($event){_vm.$emit('input', _vm.convertToSeconds($event))}}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.cancelStartDate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.cancel'))+\" \")]),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.acceptStartDate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.accept'))+\" \")])],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Form field Date Picker Custom, give possibility to handle date\n */\n@Component\nexport default class DatePickerCustom extends Vue {\n @Prop() value!: number; // Timestamp in seconds\n @Prop({ default: 'date' }) label!: string;\n @Prop() startingDate!: number; // Timestamp seconds\n @Prop() endDate!: number; // Timestamp seconds\n\n isCalendar = false\n\n get lastCalendarDate() {\n const [day, month, year] = new Date().toLocaleDateString('en-GB').split('/');\n return `${year}-${month}-${day}`;\n }\n\n cancelStartDate() {\n this.$emit('datePickerCustomClearDate');\n this.isCalendar = false;\n }\n acceptStartDate() {\n if (!this.value) return null;\n this.isCalendar = false;\n }\n\n /**\n * Converts seconds to date YYYY-MM-DD\n * @param seconds number of seconds\n * @return string date in format YYYY-MM-DD\n */\n convertToDate(seconds: number) {\n if (!seconds) return '';\n const [day, month, year] = new Date(seconds * 1000).toLocaleDateString('en-GB').split('/');\n return `${year}-${month}-${day}`;\n }\n\n /**\n * Converts date YYYY-MM-DD to seconds\n * @param date in format YYYY-MM-DD\n * @return date in seconds\n */\n convertToSeconds(date: string) {\n const [year, month, day] = date.split('-');\n return Date.UTC(+year, +month - 1, +day) / 1000;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePickerCustom.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DatePickerCustom.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DatePickerCustom.vue?vue&type=template&id=ec67692e&scoped=true&\"\nimport script from \"./DatePickerCustom.vue?vue&type=script&lang=ts&\"\nexport * from \"./DatePickerCustom.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ec67692e\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questionnaire.vue?vue&type=style&index=0&id=67a549b8&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=style&index=0&id=8906c68e&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"normal-report\"},[_vm._t(\"title\"),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.generalTitle')))])]),_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.nameRules,\"required\":\"\",\"label\":_vm.$t('modals.manageReport.textFields.nameReportField')},model:{value:(_vm.localReportData.name),callback:function ($$v) {_vm.$set(_vm.localReportData, \"name\", $$v)},expression:\"localReportData.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"items\":_vm.currencyOptions,\"label\":_vm.$t('modals.manageReport.textFields.currencyField')},model:{value:(_vm.localReportData.currency),callback:function ($$v) {_vm.$set(_vm.localReportData, \"currency\", $$v)},expression:\"localReportData.currency\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.addressTitle')))])]),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.streetRule,\"label\":_vm.$t('modals.manageReport.textFields.streetField')},model:{value:(_vm.localReportData.address.street),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"street\", $$v)},expression:\"localReportData.address.street\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.cityRule,\"label\":_vm.$t('modals.manageReport.textFields.cityField')},model:{value:(_vm.localReportData.address.city),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"city\", $$v)},expression:\"localReportData.address.city\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.countryRule,\"label\":_vm.$t('modals.manageReport.textFields.countryField')},model:{value:(_vm.localReportData.address.country),callback:function ($$v) {_vm.$set(_vm.localReportData.address, \"country\", $$v)},expression:\"localReportData.address.country\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.varibalesTitle')))])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.addVariable}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addVariable'))+\" \")])],1)],1),_vm._l((_vm.localReportData.variables),function(element,index){return _c('v-row',{key:index},[_c('v-col',[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"required\":\"\",\"rules\":_vm.titleRules,\"label\":_vm.$t('modals.manageReport.textFields.titleField')},model:{value:(element.title),callback:function ($$v) {_vm.$set(element, \"title\", $$v)},expression:\"element.title\"}})],1),_c('v-col',[_c('v-combobox',{attrs:{\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin,\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.variableNameRule,\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageReport.textFields.nameField'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false},model:{value:(element.name),callback:function ($$v) {_vm.$set(element, \"name\", $$v)},expression:\"element.name\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"type\":\"number\",\"rules\":_vm.unitCostRule,\"label\":_vm.$t('modals.manageReport.textFields.unitCostField')},model:{value:(element.unit_cost),callback:function ($$v) {_vm.$set(element, \"unit_cost\", _vm._n($$v))},expression:\"element.unit_cost\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":_vm.unitRule,\"label\":_vm.$t('modals.manageReport.textFields.unitField')},model:{value:(element.unit),callback:function ($$v) {_vm.$set(element, \"unit\", $$v)},expression:\"element.unit\"}})],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"2\"}},[_c('v-btn',{staticClass:\"mt-2\",style:({visibility: index >= 1 ? 'visible' : 'hidden'}),attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.removeVariableByIndex(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.deleteVariable'))+\" \")])],1)],1)})],2)],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.actionsTitle')))])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('email')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addEmail'))+\" \")]),_c('v-btn',{staticClass:\"accent lynus-small-btn ml-6\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction('webhook')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.addWebhook'))+\" \")])],1)],1),_vm._l((_vm.localReportData.actions),function(action,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h3',[_vm._v(\"Action \"+_vm._s(index + 1))])]),_c('v-col',{attrs:{\"lg\":\"2\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-select',{attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"items\":_vm.formatOptions,\"item-text\":\"state\",\"item-value\":\"abbr\",\"label\":_vm.$t('modals.manageReport.textFields.formatOptionField')},model:{value:(action.format),callback:function ($$v) {_vm.$set(action, \"format\", $$v)},expression:\"action.format\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c(action.type,{tag:\"component\",attrs:{\"params\":action.params,\"disableBody\":true,\"actionIndex\":index}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteAction(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.deleteAction'))+\" \")])],1)],1)}),_c('v-row',[_c('v-col',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('modals.manageReport.actionCheckBox'),\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.localReportData.active),callback:function ($$v) {_vm.$set(_vm.localReportData, \"active\", $$v)},expression:\"localReportData.active\"}})],1)],1)],2),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('PrintReport',{attrs:{\"report\":_vm.localReportData}})],1),_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('TriggerActions',{attrs:{\"report\":_vm.localReportData}})],1)],1)],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EmailAction from '@/ui/components/modals/actions/EmailAction.vue';\nimport WebhookAction from '@/ui/components/modals/actions/WebhookAction.vue';\nimport PrintReport from '@/ui/components/modals/ManageReport/PrintReport.vue';\nimport TriggerActions from '@/ui/components/modals/ManageReport/TriggerActions.vue';\nimport { ReportFormRules } from '@/ui/components/modals/ManageReport/mixins/rules';\nimport { Action, Getter, State } from 'vuex-class';\nimport moment from 'moment-timezone';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMember } from '@/types/members.types';\n\n/**\n * A component that allows to manage Normal report form\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n email: EmailAction,\n webhook: WebhookAction,\n PrintReport,\n TriggerActions,\n },\n})\nexport default class NormalReportNew extends mixins(ReportFormRules) {\n @Prop({ default: null }) report!: null | any;\n @Prop() isNewReport!: boolean;\n @Getter('measurements/measurementsKeys') measurementsKeys!: string[];\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n @Getter('members/currentMember') currentMember!: IMember;\n\n formValid = true;\n localReportData: any = {\n type: 'normal',\n name: '',\n currency: 'EUR',\n timezone: moment.tz.guess(),\n address: {\n street: '',\n city: '',\n country: '',\n },\n variables: [{ name: '', title: '', unit_cost: 0, unit: '' }],\n actions: [],\n meta: undefined,\n active: false,\n };\n\n get currencyOptions() {\n return [\n { state: 'EUR', abbr: 'EUR' },\n { state: 'CHF', abbr: 'CHF' },\n ];\n }\n\n get formatOptions() {\n return this.localReportData.type === 'zev'\n ? [\n { state: 'pdf', abbr: 'pdf' },\n { state: 'xml', abbr: 'xml' },\n ] : [\n { state: 'json', abbr: 'json' },\n { state: 'pdf', abbr: 'pdf' },\n { state: 'csv', abbr: 'csv' },\n ];\n }\n\n get reportDataToSend() {\n return this.localReportData;\n }\n\n @Watch('formValid')\n onFormValidStatusChange(status: boolean) {\n this.$emit('onFormValidStatusChange', status);\n }\n\n async addVariable() {\n this.localReportData.variables.push({ name: '', title: '', unit_cost: 0, unit: '' });\n await this.$nextTick();\n this.formValidate();\n }\n removeVariableByIndex(index: number) {\n this.localReportData.variables.splice(index, 1);\n }\n\n /**\n * Function that add new action to report\n * @param type string, action type key\n */\n addAction(type: string) {\n const newAction: any = { 'type': type, 'format': 'pdf' };\n\n switch (type) {\n case 'webhook':\n newAction.params = {\n headers: {\n 'content-type': 'application/json',\n },\n method: 'POST',\n url: '',\n };\n break;\n case 'email':\n newAction.params = {\n recipients: ['example@mail.com'],\n subject: '{{name}}',\n body: 'Report from {{start}} to {{end}}',\n };\n break;\n }\n this.$set(this.localReportData.actions, this.localReportData.actions.length, newAction);\n }\n deleteAction(index: number) {\n this.localReportData.actions.splice(index, 1);\n }\n\n formValidate() {\n (this.$refs.form as any).validate();\n }\n\n created() {\n if (this.report) {\n this.localReportData = JSON.parse(JSON.stringify(this.report));\n }\n }\n mounted() {\n this.formValidate();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NormalReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NormalReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NormalReport.vue?vue&type=template&id=690215fd&\"\nimport script from \"./NormalReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./NormalReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBCanvas.vue?vue&type=style&index=0&id=f1c01f9c&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/EnergyIO.a423f6ef.png\";","module.exports = __webpack_public_path__ + \"img/SurveyClient.497d8a72.png\";","module.exports = __webpack_public_path__ + \"img/logger.8e95b504.png\";","module.exports = __webpack_public_path__ + \"img/PVMonitoringService.f794b80a.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=style&index=0&id=8a70502a&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","import mlModelTypes from '@/store/modules/mpc/mlModelTypes';\n\n/**\n * A collection of device schemas with these options:\n * - **mappings** - collection of mappings used in device, are also the form fields in the manage modal form.\n * mapping name consists of Basic Control name and variable.\n * Example: Switch_on: {...} = BasicControl_variable: {...}\n * - **manageSchema** - manage modal form used to create, update device\n * - **isSettingsView** - status whether the device has a settings window\n * - **devicesSchemas** - basicDevices: basic controls which used on device main view;\n * additionalBasicDevices: basic controls which used on device settings view;\n */\nconst devicesTypes = {\n LightSwitch: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch'],\n additionalBasicDevices: [],\n },\n },\n GeneralSwitchV2: {\n mappings: {\n 'Switch2V_onOff': {\n optional: false,\n },\n 'Switch2V_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch'],\n additionalBasicDevices: [],\n },\n },\n LightDimmer: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'Slider_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch', 'OutputField', 'Slider'],\n additionalBasicDevices: [],\n },\n },\n Temperature: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: -100, max: 1500},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n VariableOutputField: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n iconSelection: true,\n unitSelection: true,\n devicesSchemas: {},\n },\n VariableInputField: {\n mappings: {\n 'InputField_targetValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n iconSelection: true,\n unitSelection: true,\n devicesSchemas: {\n basicDevices: ['InputField'],\n additionalBasicDevices: [],\n },\n },\n VariableTextOutputField: {\n mappings: {\n 'OutputFieldText_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 30},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n iconSelection: true,\n devicesSchemas: {\n basicDevices: ['OutputFieldText'],\n additionalBasicDevices: [],\n },\n },\n VariableTextInputField: {\n mappings: {\n 'InputFieldText_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 30},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n iconSelection: true,\n devicesSchemas: {\n basicDevices: ['InputFieldText'],\n additionalBasicDevices: [],\n },\n },\n LightRGB: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'SliderRGB_targetValue_red': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'SliderRGB_targetValue_green': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'SliderRGB_targetValue_blue': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'OutputField1_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField2_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'OutputField3_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'OutputField4_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 255},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['Switch', 'SliderRGB', 'OutputField2', 'OutputField3', 'OutputField4'],\n additionalBasicDevices: ['Slider', 'OutputField1'],\n },\n },\n LightPushButton: {\n mappings: {\n 'PushButton_onOff': {\n optional: false,\n },\n 'PushButton_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['PushButton'],\n additionalBasicDevices: [],\n },\n },\n SocketSwitch: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch'],\n additionalBasicDevices: [],\n },\n },\n ControlBlinds: {\n mappings: {\n 'ArrowUp_up': {\n optional: false,\n },\n 'ArrowUp_state': {\n optional: false,\n },\n 'ArrowDown_down': {\n optional: false,\n },\n 'ArrowDown_state': {\n optional: false,\n },\n 'DropDown_targetValue': {\n optional: true,\n },\n 'PushButton_onOff': {\n optional: true,\n },\n 'PushButton_state': {\n optional: true,\n },\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'InputField3_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10},\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['ArrowUp', 'ArrowDown', 'Slider', 'OutputField', 'DropDown'],\n additionalBasicDevices: ['PushButton', 'InputField1', 'InputField2', 'InputField3'],\n },\n },\n ControlAwning: {\n mappings: {\n 'ArrowOut_out': {\n optional: false,\n },\n 'ArrowOut_state': {\n optional: false,\n },\n 'ArrowIn_in': {\n optional: false,\n },\n 'ArrowIn_state': {\n optional: false,\n },\n 'PushButton_onOff': {\n optional: true,\n },\n 'PushButton_state': {\n optional: true,\n },\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['ArrowOut', 'ArrowIn', 'Slider', 'OutputField'],\n additionalBasicDevices: ['PushButton', 'InputField1', 'InputField2'],\n },\n },\n ControlShutter: {\n mappings: {\n 'ArrowUp_up': {\n optional: false,\n },\n 'ArrowUp_state': {\n optional: false,\n },\n 'ArrowDown_down': {\n optional: false,\n },\n 'ArrowDown_state': {\n optional: false,\n },\n 'PushButton_onOff': {\n optional: true,\n },\n 'PushButton_state': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 600},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['ArrowUp', 'ArrowDown', 'Slider', 'OutputField'],\n additionalBasicDevices: ['PushButton', 'InputField1', 'InputField2'],\n },\n },\n ThermostatDigital: {\n mappings: {\n 'Plus_commandPlus': {\n optional: false,\n },\n 'Minus_commandMinus': {\n optional: false,\n },\n 'Switch1_on': {\n optional: false,\n },\n 'Switch1_off': {\n optional: false,\n },\n 'Switch1_state': {\n optional: false,\n },\n 'Switch2_on': {\n optional: false,\n },\n 'Switch2_off': {\n optional: false,\n },\n 'Switch2_state': {\n optional: false,\n },\n 'Switch3_on': {\n optional: false,\n },\n 'Switch3_off': {\n optional: false,\n },\n 'Switch3_state': {\n optional: false,\n },\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 50},\n },\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField3_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField4_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'ShowEventDot1_errorWarningState': {\n optional: true,\n },\n 'ShowEventDot2_errorWarningState': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['Plus', 'Minus', 'OutputField', 'ShowEventDot1', 'ShowEventDot2'],\n additionalBasicDevices: ['InputField1', 'InputField2', 'InputField3', 'InputField4', 'Switch1', 'Switch2', 'Switch3'],\n },\n },\n ThermostatAnalog: {\n mappings: {\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 50},\n },\n 'InputField2_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 50},\n },\n 'InputField3_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField4_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField5_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField6_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 59},\n },\n 'Switch1_on': {\n optional: true,\n },\n 'Switch1_off': {\n optional: true,\n },\n 'Switch1_state': {\n optional: true,\n },\n 'Switch2_on': {\n optional: true,\n },\n 'Switch2_off': {\n optional: true,\n },\n 'Switch2_state': {\n optional: true,\n },\n 'Switch3_on': {\n optional: true,\n },\n 'Switch3_off': {\n optional: true,\n },\n 'Switch3_state': {\n optional: true,\n },\n 'ShowEventDot1_errorWarningState': {\n optional: true,\n },\n 'ShowEventDot2_errorWarningState': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['InputField1', 'ShowEventDot1', 'ShowEventDot2'],\n additionalBasicDevices: [\n 'InputField2',\n 'InputField3',\n 'InputField4',\n 'InputField5',\n 'InputField6',\n 'Switch1',\n 'Switch2',\n 'Switch3',\n ],\n },\n },\n AirHumiditySensor: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n BrightnessSensor: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n SensorCO2: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 5000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n SensorLevel: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n WeatherStation: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 200},\n },\n 'OutputField2_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 200},\n },\n 'OutputField3_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 200},\n },\n 'OutputField4_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'OutputField5_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField6_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 50},\n },\n 'OutputField7_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField1', 'OutputField2', 'OutputField3', 'OutputField4', 'OutputField5', 'OutputField6', 'OutputField7'],\n additionalBasicDevices: [],\n },\n },\n HotWaterMeter: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField1'],\n additionalBasicDevices: ['OutputField2'],\n },\n },\n ColdWaterMeter: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField1'],\n additionalBasicDevices: ['OutputField2'],\n },\n },\n HeatingMeter: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: false,\n },\n 'OutputField3_actualValue': {\n optional: true,\n },\n 'OutputField4_actualValue': {\n optional: true,\n },\n 'OutputField5_actualValue': {\n optional: true,\n },\n 'OutputField6_actualValue': {\n optional: true,\n },\n 'OutputField7_actualValue': {\n optional: true,\n },\n 'OutputField8_actualValue': {\n optional: true,\n },\n 'OutputField9_actualValue': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField2'],\n additionalBasicDevices: ['OutputField1', 'OutputField3', 'OutputField4', 'OutputField5', 'OutputField6', 'OutputField7', 'OutputField8', 'OutputField9'],\n },\n },\n ElectricityMeter: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: false,\n },\n 'OutputField3_actualValue': {\n optional: false,\n },\n 'OutputField4_actualValue': {\n optional: true,\n },\n 'OutputField5_actualValue': {\n optional: true,\n },\n 'OutputField6_actualValue': {\n optional: true,\n },\n 'OutputField7_actualValue': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField1', 'OutputField2', 'OutputField3'],\n additionalBasicDevices: ['OutputField4', 'OutputField5', 'OutputField6', 'OutputField7'],\n },\n },\n MotionSensor: {\n mappings: {\n 'InputField_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1200},\n },\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'PushButton_onOff': {\n optional: false,\n },\n 'PushButton_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['InputField', 'Switch', 'PushButton'],\n additionalBasicDevices: [],\n },\n },\n Battery: {\n mappings: {\n 'Battery_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField1_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'OutputField2_actualValue': {\n optional: true,\n minMaxBorders: {min: -30, max: 120},\n },\n 'OutputField3_actualValue': {\n optional: true,\n minMaxBorders: {min: -1000, max: 1000},\n },\n 'OutputField4_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['Battery'],\n additionalBasicDevices: ['OutputField1', 'OutputField2', 'OutputField3', 'OutputField4'],\n },\n },\n PVSystem: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'OutputField2_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'OutputField3_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField', 'OutputField2', 'OutputField3'],\n additionalBasicDevices: [],\n },\n },\n HouseConsumption: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n Generator: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'Switch_on': {\n optional: true,\n },\n 'Switch_off': {\n optional: true,\n },\n 'Switch_state': {\n optional: true,\n },\n 'PushButton_onOff': {\n optional: true,\n },\n 'PushButton_state': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: ['Switch', 'PushButton'],\n },\n },\n MainsConnection: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: -5000, max: 5000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['OutputField'],\n additionalBasicDevices: [],\n },\n },\n ElectricChargingStation: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'OutputField2_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 2000},\n },\n 'InputField_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'Switch1_on': {\n optional: true,\n },\n 'Switch1_off': {\n optional: true,\n },\n 'Switch1_state': {\n optional: true,\n },\n 'Switch2_on': {\n optional: true,\n },\n 'Switch2_off': {\n optional: true,\n },\n 'Switch2_state': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEventDot_errorWarningState': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField1', 'ShowEventDot'],\n additionalBasicDevices: ['OutputField2', 'InputField', 'Switch1', 'Switch2', 'Slider', 'OutputField'],\n },\n },\n ElectronicBoiler: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'InputField1_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField2_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField3_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField4_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 59},\n },\n 'Switch1_on': {\n optional: true,\n },\n 'Switch1_off': {\n optional: true,\n },\n 'Switch1_state': {\n optional: true,\n },\n 'Switch2_on': {\n optional: true,\n },\n 'Switch2_off': {\n optional: true,\n },\n 'Switch2_state': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField1'],\n additionalBasicDevices: ['InputField1', 'InputField2', 'InputField3', 'InputField4', 'Switch1', 'Switch2', 'Slider', 'OutputField'],\n },\n },\n VentilatorSwitch: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch'],\n additionalBasicDevices: [],\n },\n },\n MusicSystem: {\n mappings: {\n 'Plus_commandPlus': {\n optional: true,\n },\n 'Minus_commandMinus': {\n optional: true,\n },\n 'Play_commandPlay': {\n optional: true,\n },\n 'Stop_commandStop': {\n optional: true,\n },\n 'Pause_commandPause': {\n optional: true,\n },\n 'Forward_commandForward': {\n optional: true,\n },\n 'Reverse_commandReverse': {\n optional: true,\n },\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Plus', 'Minus', 'Play', 'Stop', 'Pause', 'Forward', 'Reverse', 'Switch'],\n additionalBasicDevices: [],\n },\n },\n TV: {\n mappings: {\n 'Plus_commandPlus': {\n optional: true,\n },\n 'Minus_commandMinus': {\n optional: true,\n },\n 'Forward_commandForward': {\n optional: true,\n },\n 'Reverse_commandReverse': {\n optional: true,\n },\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Plus', 'Minus', 'Forward', 'Reverse', 'Switch'],\n additionalBasicDevices: [],\n },\n },\n MotorWithoutVFD: {\n mappings: {\n 'PushButton1_onOff': {\n optional: true,\n },\n 'PushButton1_state': {\n optional: true,\n },\n 'PushButton2_onOff': {\n optional: true,\n },\n 'PushButton2_state': {\n optional: true,\n },\n 'PushButton3_onOff': {\n optional: true,\n },\n 'PushButton3_state': {\n optional: true,\n },\n 'PushButton4_onOff': {\n optional: true,\n },\n 'PushButton4_state': {\n optional: true,\n },\n 'ArrowLeft_commandLeft': {\n optional: false,\n },\n 'ArrowLeft_state': {\n optional: false,\n },\n 'ArrowRight_commandRight': {\n optional: false,\n },\n 'ArrowRight_state': {\n optional: false,\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['PushButton1', 'PushButton2', 'PushButton3', 'PushButton4', 'ArrowLeft', 'ArrowRight'],\n additionalBasicDevices: ['OutputField'],\n },\n },\n PumpWithoutVFD: {\n mappings: {\n 'PushButton1_onOff': {\n optional: true,\n },\n 'PushButton1_state': {\n optional: true,\n },\n 'PushButton2_onOff': {\n optional: true,\n },\n 'PushButton2_state': {\n optional: true,\n },\n 'PushButton3_onOff': {\n optional: true,\n },\n 'PushButton3_state': {\n optional: true,\n },\n 'PushButton4_onOff': {\n optional: true,\n },\n 'PushButton4_state': {\n optional: true,\n },\n 'ArrowLeft_commandLeft': {\n optional: false,\n },\n 'ArrowLeft_state': {\n optional: false,\n },\n 'ArrowRight_commandRight': {\n optional: false,\n },\n 'ArrowRight_state': {\n optional: false,\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['PushButton1', 'PushButton2', 'PushButton3', 'PushButton4', 'ArrowLeft', 'ArrowRight'],\n additionalBasicDevices: ['OutputField'],\n },\n },\n MotorWithVFD: {\n mappings: {\n 'PushButton1_onOff': {\n optional: true,\n },\n 'PushButton1_state': {\n optional: true,\n },\n 'PushButton2_onOff': {\n optional: true,\n },\n 'PushButton2_state': {\n optional: true,\n },\n 'PushButton3_onOff': {\n optional: true,\n },\n 'PushButton3_state': {\n optional: true,\n },\n 'PushButton4_onOff': {\n optional: true,\n },\n 'PushButton4_state': {\n optional: true,\n },\n 'ArrowLeft_commandLeft': {\n optional: false,\n },\n 'ArrowLeft_state': {\n optional: false,\n },\n 'ArrowRight_commandRight': {\n optional: false,\n },\n 'ArrowRight_state': {\n optional: false,\n },\n 'OutputField1_actualValue': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: true,\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['PushButton1', 'PushButton2', 'PushButton3', 'PushButton4', 'ArrowLeft', 'ArrowRight', 'OutputField', 'Slider'],\n additionalBasicDevices: ['OutputField1'],\n },\n },\n PumpWithVFD: {\n mappings: {\n 'PushButton1_onOff': {\n optional: true,\n },\n 'PushButton1_state': {\n optional: true,\n },\n 'PushButton2_onOff': {\n optional: true,\n },\n 'PushButton2_state': {\n optional: true,\n },\n 'PushButton3_onOff': {\n optional: true,\n },\n 'PushButton3_state': {\n optional: true,\n },\n 'PushButton4_onOff': {\n optional: true,\n },\n 'PushButton4_state': {\n optional: true,\n },\n 'ArrowLeft_commandLeft': {\n optional: false,\n },\n 'ArrowLeft_state': {\n optional: false,\n },\n 'ArrowRight_commandRight': {\n optional: false,\n },\n 'ArrowRight_state': {\n optional: false,\n },\n 'OutputField1_actualValue': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: true,\n },\n 'OutputField_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 1000},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['PushButton1', 'PushButton2', 'PushButton3', 'PushButton4', 'ArrowLeft', 'ArrowRight', 'OutputField', 'Slider'],\n additionalBasicDevices: ['OutputField1'],\n },\n },\n MixingValve: {\n mappings: {\n 'PushButton1_onOff': {\n optional: true,\n },\n 'PushButton1_state': {\n optional: true,\n },\n 'PushButton2_onOff': {\n optional: true,\n },\n 'PushButton2_state': {\n optional: true,\n },\n 'PushButton3_onOff': {\n optional: true,\n },\n 'PushButton3_state': {\n optional: true,\n },\n 'PushButton4_onOff': {\n optional: true,\n },\n 'PushButton4_state': {\n optional: true,\n },\n 'Slider_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['PushButton1', 'PushButton2', 'PushButton3', 'PushButton4', 'Slider', 'OutputField'],\n additionalBasicDevices: [],\n },\n },\n Ventilation: {\n mappings: {\n 'Switch_on': {\n optional: false,\n },\n 'Switch_off': {\n optional: false,\n },\n 'Switch_state': {\n optional: false,\n },\n 'InputField_targetValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 100},\n },\n 'OutputField1_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 3000},\n },\n 'OutputField2_actualValue': {\n optional: true,\n minMaxBorders: {min: 0, max: 3000},\n },\n 'PushButton_onOff': {\n optional: true,\n },\n 'PushButton_state': {\n optional: true,\n },\n 'ShowEventDot1_errorWarningState': {\n optional: true,\n },\n 'ShowEventDot2_errorWarningState': {\n optional: true,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['Switch', 'InputField', 'OutputField1', 'OutputField2', 'PushButton', 'ShowEventDot1', 'ShowEventDot2'],\n additionalBasicDevices: [],\n },\n },\n Gauge: {\n mappings: {\n 'CurrentValueGaugeChart_actualValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'GaugeSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['CurrentValueGaugeChart'],\n additionalBasicDevices: [],\n },\n },\n RegentLighting: {\n mappings: {\n 'clc_presence': {\n optional: false,\n },\n 'clc_deskinuse': {\n optional: false,\n },\n 'clc_brightness': {\n optional: false,\n },\n 'clc_temperature': {\n optional: false,\n },\n 'clc_humidity': {\n optional: false,\n },\n 'clc_tvoc': {\n optional: false,\n },\n 'clc_co2eq': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: [],\n additionalBasicDevices: [],\n },\n },\n DropDownOutputFieldWithVariable: {\n mappings: {\n 'DropDown_targetValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DropDownSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['DropDown'],\n additionalBasicDevices: [],\n },\n },\n DropDownInputFieldWithVariable: {\n mappings: {\n 'DropDown_targetValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DropDownSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: ['DropDown'],\n additionalBasicDevices: [],\n },\n },\n TSGFrischwasser: {\n mappings: {\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'InputField3_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'PushButton1_onOff': {\n optional: false,\n },\n 'PushButton1_state': {\n optional: false,\n },\n 'PushButton2_onOff': {\n optional: false,\n },\n 'PushButton2_state': {\n optional: false,\n },\n 'InputField4_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField5_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField6_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 25000},\n },\n 'InputField7_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField8_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField9_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField10_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField11_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 60},\n },\n 'InputField12_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField13_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField14_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'ShowEventDot1_errorWarningState': {\n optional: false,\n },\n 'ShowEventDot2_errorWarningState': {\n optional: false,\n },\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: false,\n },\n 'OutputField3_actualValue': {\n optional: false,\n },\n 'OutputField4_actualValue': {\n optional: false,\n },\n 'OutputField5_actualValue': {\n optional: false,\n },\n 'DropDown1_targetValue': {\n optional: false,\n },\n 'DropDown2_targetValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: [\n // reset button\n 'PushButton2',\n 'ShowEventDot1',\n 'ShowEventDot2',\n 'OutputField1',\n 'OutputField2',\n 'OutputField3',\n 'OutputField4',\n 'OutputField5',\n 'DropDown1',\n 'DropDown2',\n ],\n additionalBasicDevices: [\n 'InputField1',\n 'InputField2',\n 'InputField3',\n // other button\n 'PushButton1',\n 'InputField4',\n 'InputField5',\n 'InputField6',\n 'InputField7',\n 'InputField8',\n 'InputField9',\n 'InputField10',\n 'InputField11',\n 'InputField12',\n 'InputField13',\n 'InputField14',\n ],\n },\n },\n TSGBrauchwasser: {\n mappings: {\n 'InputField1_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'InputField2_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'InputField3_targetValue': {\n optional: false,\n minMaxBorders: {min: -999, max: 999},\n },\n 'PushButton1_onOff': {\n optional: false,\n },\n 'PushButton1_state': {\n optional: false,\n },\n 'PushButton2_onOff': {\n optional: false,\n },\n 'PushButton2_state': {\n optional: false,\n },\n 'InputField4_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField5_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField6_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 25000},\n },\n 'InputField7_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField8_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField9_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 23},\n },\n 'InputField10_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 59},\n },\n 'InputField11_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'InputField12_targetValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 10000},\n },\n 'ShowEventDot1_errorWarningState': {\n optional: false,\n },\n 'ShowEventDot2_errorWarningState': {\n optional: false,\n },\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: false,\n },\n 'OutputField3_actualValue': {\n optional: false,\n },\n 'DropDown1_targetValue': {\n optional: false,\n },\n 'DropDown2_targetValue': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: [\n // reset Button\n 'PushButton2',\n 'ShowEventDot1',\n 'ShowEventDot2',\n 'OutputField1',\n 'OutputField2',\n 'OutputField3',\n 'DropDown1',\n 'DropDown2',\n ],\n additionalBasicDevices: [\n 'InputField1',\n 'InputField2',\n 'InputField3',\n // other button\n 'PushButton1',\n 'InputField4',\n 'InputField5',\n 'InputField6',\n 'InputField7',\n 'InputField8',\n 'InputField9',\n 'InputField10',\n 'InputField11',\n 'InputField12',\n ],\n },\n },\n Robot: {\n mappings: {\n 'StatusIcon1_currentValue': {\n optional: false,\n },\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'StatusIcon2_currentValue': {\n optional: false,\n },\n 'StatusIcon3_currentValue': {\n optional: false,\n },\n 'OutputField7_actualValue': {\n optional: false,\n },\n 'StatusIcon4_currentValue': {\n optional: false,\n },\n 'OutputFieldText2_actualValue': {\n optional: false,\n },\n 'StatusIcon5_currentValue': {\n optional: false,\n },\n 'OutputFieldText3_actualValue': {\n optional: false,\n },\n 'OutputFieldText4_actualValue': {\n optional: false,\n },\n 'FillLevelDisplay1_actualValue': {\n optional: false,\n },\n 'Slider1_targetValue': {\n optional: false,\n },\n 'Slider2_targetValue': {\n optional: false,\n },\n 'PushButton1_onOff': {\n optional: false,\n },\n 'PushButton1_state': {\n optional: false,\n },\n 'PushButton2_onOff': {\n optional: false,\n },\n 'PushButton2_state': {\n optional: false,\n },\n 'DropDown1_targetValue': {\n optional: false,\n },\n 'OutputField5_actualValue': {\n optional: false,\n },\n 'DateTimePicker1_actualValue': {\n optional: false,\n },\n 'PushButton3_onOff': {\n optional: false,\n },\n 'PushButton3_state': {\n optional: false,\n },\n 'OutputField6_actualValue': {\n optional: false,\n },\n 'OutputField8_actualValue': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: [\n // Status Leiste\n 'StatusIcon1',\n // Number Satellites\n 'OutputField1',\n 'StatusIcon2',\n 'StatusIcon3',\n 'OutputField7',\n 'StatusIcon4',\n // Meldungs Box\n 'OutputFieldText2',\n 'StatusIcon5',\n 'OutputFieldText3',\n // Position/Progress Part\n 'OutputFieldText4',\n 'FillLevelDisplay1',\n // anhalten\n 'PushButton1',\n // abbrechen\n 'PushButton2',\n // sliderpart\n 'Slider1',\n 'Slider2',\n 'OutputField8',\n ],\n additionalBasicDevices: [\n // muster info: only text no image will be shown for dash\n 'DropDown1',\n 'OutputField5',\n 'DateTimePicker1',\n // upload Job\n 'PushButton3',\n // text mowing Job\n 'OutputField6',\n 'Slider1',\n 'Slider2',\n 'OutputFieldText4',\n 'OutputField8',\n ],\n },\n },\n SurveyClient: {\n mappings: {\n 'OutputField1_actualValue': {\n optional: false,\n },\n 'StatusIcon1_currentValue': {\n optional: false,\n },\n 'StatusIcon2_currentValue': {\n optional: false,\n },\n 'OutputField2_actualValue': {\n optional: false,\n },\n 'StatusIcon3_currentValue': {\n optional: false,\n },\n 'InputFieldText1_targetValue': {\n optional: false,\n },\n 'InputFieldText1_state': {\n optional: false,\n },\n 'DropDown1_targetValue': {\n optional: false,\n },\n 'DropDown1_state': {\n optional: false,\n },\n 'OutputFieldText1_actualValue': {\n optional: false,\n },\n 'StatusIcon4_currentValue': {\n optional: false,\n },\n 'OutputFieldText2_actualValue': {\n optional: false,\n },\n 'OutputFieldText3_actualValue': {\n optional: false,\n },\n 'ShowEventDot1_errorWarningState': {\n optional: false,\n },\n 'PushButton1_onOff': {\n optional: false,\n },\n 'PushButton2_onOff': {\n optional: false,\n },\n 'PushButton3_onOff': {\n optional: false,\n },\n 'PushButton3_state': {\n optional: false,\n },\n 'PushButton4_onOff': {\n optional: false,\n },\n 'PushButton4_state': {\n optional: false,\n },\n 'PushButton5_onOff': {\n optional: false,\n },\n 'PushButton5_state': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: [\n // Status Leiste\n 'StatusIcon1',\n 'OutputField1',\n 'StatusIcon2',\n 'OutputField2',\n 'StatusIcon3',\n // InputFieldTexts Fieldname/type\n 'InputFieldText1',\n 'DropDown1',\n // InstructionsField with Icon\n 'OutputFieldText1',\n 'StatusIcon4',\n 'OutputFieldText2',\n // Stepnumber Stuff\n 'OutputFieldText3',\n 'ShowEventDot1',\n // Buttons\n 'PushButton1',\n 'PushButton2',\n 'PushButton3',\n 'PushButton4',\n 'PushButton5',\n ],\n additionalBasicDevices: [],\n },\n },\n TSGLadestationNotAus: {\n mappings: {\n 'DropDown1_targetValue': {\n optional: false,\n },\n 'DropDown2_targetValue': {\n optional: false,\n },\n 'PushButton_onOff': {\n optional: false,\n },\n 'PushButton_state': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: [\n 'DropDown1',\n 'DropDown2',\n 'ShowEventDot1',\n 'ShowEventDot2',\n 'PushButton',\n ],\n additionalBasicDevices: [],\n },\n },\n TSGModulLadestation: {\n mappings: {\n 'ShowEventDot_errorWarningState': {\n optional: false,\n },\n // aktulle leistung kW\n 'OutputField1_actualValue': {\n optional: false,\n },\n // geladene energie der session kWh\n 'OutputField2_actualValue': {\n optional: false,\n },\n // ladedauer der session min\n 'OutputField3_actualValue': {\n optional: false,\n },\n // soc %\n 'OutputField4_actualValue': {\n optional: true,\n },\n // total energy kWh\n 'OutputField5_actualValue': {\n optional: false,\n },\n },\n manageSchema: 'DefaultSchema',\n isSettingsView: false,\n devicesSchemas: {\n basicDevices: [\n 'ShowEventDot_errorWarningState',\n 'OutputField1_actualValue',\n 'OutputField2_actualValue',\n 'OutputField3_actualValue',\n 'OutputField4_actualValue',\n 'OutputField5_actualValue',\n ],\n additionalBasicDevices: [],\n },\n },\n EMSV2: {\n mappingsByColumns: {\n inputMappings: [\n 'startDate', 'state_enable_ems', 'allow_charging_state', 'message', 'state_main_fuse', 'inverter_power',\n 'force_charge', 'force_charge_2', 'calibration_charge', 'maintenance_charge', 'charge_maintenance',\n 'feed_in_limitation_active', 'p14a_active', 'active_ems_mode', 'state_enable_regelenergie', 'state_enable_control_dynamic_tariff',\n ],\n outputMappings: [\n 'heartbeat', 'mpcReady', 'operation_mode',\n 'max_depth', 'reserve_battery', 'min_charge_battery', 'reserve_charge', 'update_time',\n 'enable_ems', 'calculated_battery_power', 'activate_heating_pump', 'allow_charging_button',\n 'enable_controlling', 'activate_main_fuse', 'size_main_fuse',\n 'enable_regelenergie', 'enable_control_dynamic_tariff',\n ],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n activate_heating_pump: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n calculated_battery_power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n state_enable_ems: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n enable_ems: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n mpcReady: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n size_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 30,\n minMaxBorders: {min: 0, max: 500},\n },\n operation_mode: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n max_depth: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: {min: 10, max: 100},\n },\n reserve_battery: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: {min: 11, max: 100},\n },\n min_charge_battery: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: {min: 25, max: 75},\n },\n reserve_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: {min: 0, max: 100},\n },\n update_time: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n minMaxBorders: {min: 10, max: 600},\n },\n message: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n allow_charging_button: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n allow_charging_state: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n enable_controlling: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n state_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n inverter_power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n activate_main_fuse: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n force_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n force_charge_2: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n calibration_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n maintenance_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n charge_maintenance: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n feed_in_limitation_active: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n p14a_active: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n active_ems_mode: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n enable_regelenergie: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n state_enable_regelenergie: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n enable_control_dynamic_tariff: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n state_enable_control_dynamic_tariff: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n },\n groups: {\n producer: {\n id: 'producer',\n title: 'Producer',\n systems: ['pv', 'chp', 'generator'],\n },\n producerConsumer: {\n id: 'producerConsumer',\n title: 'Producer Consumer',\n systems: ['grid', 'battery'],\n },\n consumer: {\n id: 'consumer',\n title: 'Consumer',\n systems: ['house', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'],\n },\n },\n systems: {\n pv: {\n id: 'pv',\n title: 'PV System',\n required: false,\n group: 'producer',\n quantity: 100,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n chp: {\n id: 'chp',\n title: 'CHP System',\n required: false,\n group: 'producer',\n quantity: 3,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'status', 'state_enable', 'operation', 'state_activate_cooling',\n 'state_activate_heating', 'target_power', 'return_temperature', 'flow_temperature',\n 'buffer_temperature_top', 'buffer_temperature_bottom', 'thermal_power_output', 'energy_counter',\n 'energy_counter_thermal',\n ],\n output: [\n 'switch_enable', 'switch_activate_cooling', 'switch_activate_heating',\n 'parallel_grid_target_power', 'parallel_grid_mode', 'buffer_storage_capacity', 'thermal_power_input', 'enable_soc', 'disable_soc',\n ],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n status: '',\n state_enable: '',\n operation: '',\n state_activate_cooling: '',\n state_activate_heating: '',\n target_power: '',\n return_temperature: '',\n flow_temperature: '',\n buffer_temperature_top: '',\n buffer_temperature_bottom: '',\n thermal_power_output: '',\n energy_counter: '',\n energy_counter_thermal: '',\n enable_soc: '',\n disable_soc: '',\n switch_enable: '',\n switch_activate_cooling: '',\n switch_activate_heating: '',\n parallel_grid_target_power: '',\n parallel_grid_mode: '',\n buffer_storage_capacity: '',\n thermal_power_input: '',\n title: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n status: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n operation: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_activate_cooling: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_activate_heating: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n target_power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n return_temperature: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n flow_temperature: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n buffer_temperature_top: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n buffer_temperature_bottom: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n thermal_power_output: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter_thermal: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n enable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n disable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_activate_cooling: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_activate_heating: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n parallel_grid_target_power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n parallel_grid_mode: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n buffer_storage_capacity: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n thermal_power_input: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n },\n },\n generator: {\n id: 'generator',\n title: 'Generator',\n required: false,\n group: 'producer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'state_reset', 'error', 'state_generator', 'state_enable', 'energy_counter', 'state_timelock'],\n output: ['enable_soc', 'disable_soc', 'switch_enable', 'switch_reset', 'hour_on', 'minute_on', 'hour_off', 'minute_off', 'enable_timelock'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n state_reset: '',\n state_generator: '',\n enable_soc: '',\n disable_soc: '',\n switch_enable: '',\n switch_reset: '',\n state_enable: '',\n energy_counter: '',\n hour_on: '',\n minute_on: '',\n hour_off: '',\n minute_off: '',\n enable_timelock: '',\n state_timelock: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n state_reset: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_generator: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n enable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n disable_soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_reset: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: 'power',\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n hour_on: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n minute_on: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n hour_off: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n minute_off: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n enable_timelock: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_timelock: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n battery: {\n id: 'battery',\n title: 'Battery',\n required: false,\n group: 'producerConsumer',\n quantity: 80,\n mappingsByColumns: {\n input: ['power', 'error', 'soc', 'target_power', 'state_enable', 'state_reset', 'capacity', 'energy_counter', 'reverse_energy_counter', 'state_p14a'],\n output: ['size_capacity', 'priority', 'switch_enable', 'switch_reset', 'switch_p14a'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n target_power: '',\n state_enable: '',\n state_reset: '',\n error: '',\n title: '',\n soc: '',\n size_capacity: '',\n capacity: '',\n priority: '',\n switch_enable: '',\n switch_reset: '',\n energy_counter: '',\n reverse_energy_counter: '',\n external_energy_measurement: false,\n switch_p14a: '',\n state_p14a: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n target_power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_reset: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n size_capacity: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n capacity: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n priority: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_reset: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_p14a: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_p14a: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n grid: {\n id: 'grid',\n title: 'Grid',\n required: true,\n group: 'producerConsumer',\n quantity: 1,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter', 'reverse_energy_counter', 'is_on_grid'],\n output: ['size'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n size: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n size: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n is_on_grid: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n house: {\n id: 'house',\n title: 'House Consumption',\n required: false,\n group: 'consumer',\n quantity: 40,\n mappingsByColumns: {\n input: ['power', 'error', 'state_enable', 'energy_counter'],\n output: ['switch_enable'],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n state_enable: '',\n switch_enable: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n switch_enable: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n charge_station: {\n id: 'charge_station',\n title: 'EV Charging Station',\n required: false,\n group: 'consumer',\n quantity: 250,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'car_connected', 'charging_time', 'state_charging_station', 'state_emergency',\n 'slider_target_power', 'state_manual', 'min_power', 'target_power', 'state_enable', 'energy_counter', 'state_p14a',\n ],\n output: [\n 'switch_emergency', 'priority',\n 'enable_soc', 'disable_soc', 'max_power', 'switch_manual', 'slider_manual',\n 'slider_min_power', 'switch_enable', 'switch_p14a',\n ],\n titles: ['title'],\n },\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'car_connected': '',\n 'charging_time': '',\n 'state_charging_station': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'min_power': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'max_power': '',\n 'slider_manual': '',\n 'slider_target_power': '',\n 'slider_min_power': '',\n 'target_power': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'switch_manual': '',\n 'energy_counter': '',\n 'external_energy_measurement': false,\n 'switch_p14a': '',\n 'state_p14a': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'car_connected': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'charging_time': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_charging_station': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'min_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_min_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'energy_counter': {\n optional: 'power',\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'external_energy_measurement': {\n optional: true,\n },\n 'switch_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n electric_heating: {\n id: 'electric_heating',\n title: 'Electric Heating Element',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'temperature', 'state_electric_heating', 'state_emergency', 'state_manual',\n 'state_time', 'state_disable_protection', 'slider_target_power', 'target_power', 'state_enable',\n 'energy_counter', 'state_p14a',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_disable_protection', 'switch_manual', 'slider_manual', 'switch_time', 'hour_on', 'minute_on',\n 'hour_off', 'minute_off', 'target_temp_on', 'target_temp_off', 'target_temp_max', 'switch_enable', 'max_power',\n 'switch_p14a',\n ],\n titles: ['title'],\n },\n isDynamicFields: true,\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'temperature': '',\n 'state_electric_heating': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'state_time': '',\n 'state_disable_protection': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_disable_protection': '',\n 'switch_manual': '',\n 'slider_target_power': '',\n 'switch_time': '',\n 'hour_on': '',\n 'minute_on': '',\n 'hour_off': '',\n 'minute_off': '',\n 'target_temp_on': '',\n 'target_temp_off': '',\n 'target_temp_max': '',\n 'max_power': {},\n 'target_power': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'slider_manual': '',\n 'energy_counter': '',\n 'external_energy_measurement': false,\n 'switch_p14a': '',\n 'state_p14a': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'external_energy_measurement': {\n optional: true,\n },\n 'temperature': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_electric_heating': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_disable_protection': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_disable_protection': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_temp_max': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n vuetifyComponent: 'DynamicField',\n isDynamic: true,\n optional: false,\n maxRange: 10,\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: 'power',\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n state_p14a: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n heating_pump: {\n id: 'heating_pump',\n title: 'Heating Pump',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'state_reset', 'state_heating_pump', 'state_emergency', 'state_manual', 'manual_power',\n 'state_time', 'state_time_power', 'flow_temperature', 'return_temperature', 'inlet_temperature',\n 'outlet_temperature', 'boiler_temperature', 'boiler_water_temperature', 'target_power', 'state_enable',\n 'energy_counter', 'state_p14a',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_reset', 'switch_manual', 'slider_manual', 'switch_time', 'slider_power', 'hour_on', 'minute_on',\n 'hour_off', 'minute_off', 'switch_enable', 'max_power', 'switch_p14a',\n ],\n titles: ['title'],\n },\n isDynamicFields: true,\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'state_reset': '',\n 'state_heating_pump': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'manual_power': '',\n 'state_time': '',\n 'state_time_power': '',\n 'flow_temperature': '',\n 'return_temperature': '',\n 'inlet_temperature': '',\n 'outlet_temperature': '',\n 'boiler_temperature': '',\n 'boiler_water_temperature': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_reset': '',\n 'switch_manual': '',\n 'slider_power': '',\n 'switch_time': '',\n 'hour_on': '',\n 'minute_on': '',\n 'hour_off': '',\n 'minute_off': '',\n 'max_power': {},\n 'switch_enable': '',\n 'slider_manual': '',\n 'target_power': '',\n 'state_enable': '',\n 'energy_counter': '',\n 'external_energy_measurement': false,\n 'switch_p14a': '',\n 'state_p14a': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'state_reset': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_heating_pump': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'manual_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_time_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'flow_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'return_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'inlet_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'outlet_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'boiler_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'boiler_water_temperature': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_reset': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_time': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_on': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'hour_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'minute_off': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n vuetifyComponent: 'DynamicField',\n isDynamic: true,\n optional: false,\n maxRange: 2,\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: 'power',\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'external_energy_measurement': {\n optional: true,\n },\n 'switch_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n big_consumer: {\n id: 'big_consumer',\n title: 'Other Big Consumer',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'state_consumer', 'state_emergency', 'state_manual', 'state_enable', 'target_power',\n 'slider_target_power', 'energy_counter', 'state_p14a',\n ],\n output: [\n 'switch_emergency', 'priority', 'enable_soc', 'disable_soc',\n 'switch_manual', 'switch_enable', 'slider_manual', 'max_power', 'switch_p14a',\n ],\n titles: ['title'],\n },\n initMappings: {\n 'power': '',\n 'error': '',\n 'title': '',\n 'state_consumer': '',\n 'state_emergency': '',\n 'state_manual': '',\n 'switch_emergency': '',\n 'priority': '',\n 'enable_soc': '',\n 'disable_soc': '',\n 'switch_manual': '',\n 'state_enable': '',\n 'switch_enable': '',\n 'target_power': '',\n 'slider_manual': '',\n 'slider_target_power': '',\n 'max_power': '',\n 'energy_counter': '',\n 'external_energy_measurement': false,\n 'switch_p14a': '',\n 'state_p14a': '',\n },\n mappings: {\n 'power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'error': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'title': {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n 'state_consumer': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_emergency': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'priority': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'enable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'disable_soc': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'switch_enable': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'target_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_manual': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'slider_target_power': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'max_power': {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'energy_counter': {\n optional: 'power',\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'external_energy_measurement': {\n optional: true,\n },\n 'switch_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n 'state_p14a': {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n },\n settingsMappings: ['size_main_fuse', 'max_depth', 'reserve_battery', 'min_charge_battery', 'reserve_charge', 'update_time'],\n manageSchema: 'EMSSchema',\n isSettingsView: true,\n },\n EnergyIO: {\n mappingsByColumns: {\n inputMappings: ['startDate'],\n outputMappings: [\n 'heartbeat',\n ],\n },\n controllerMappings: {\n startDate: {\n vuetifyComponent: 'DatePickerCustom',\n optional: false,\n },\n heartbeat: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n },\n },\n groups: {\n inputs: {\n id: 'inputs',\n title: 'Inputs',\n systems: ['inputs'],\n isDynamicFields: true,\n },\n outputs: {\n id: 'outputs',\n title: 'Outputs',\n systems: ['outputs'],\n isDynamicFields: true,\n },\n hybrids: {\n id: 'hybrids',\n title: 'Hybrids',\n systems: ['hybrids'],\n isDynamicFields: true,\n },\n },\n systems: {\n inputs: {\n id: 'inputs',\n title: 'Input Systems',\n required: false,\n group: 'inputs',\n quantity: 5,\n isDynamicFields: true,\n mappingsByColumns: {\n input: ['power', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n title: '',\n },\n mappings: {\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 10,\n minMaxBorders: {min: 0, max: 500},\n dependency: 'energy_counter',\n },\n energy_counter: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 10,\n minMaxBorders: {min: 0, max: 500},\n dependency: 'power',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n },\n },\n outputs: {\n id: 'outputs',\n title: 'Output Systems',\n required: false,\n group: 'outputs',\n quantity: 5,\n isDynamicFields: true,\n mappingsByColumns: {\n input: ['power', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n title: '',\n },\n mappings: {\n power: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 10,\n minMaxBorders: {min: 0, max: 500},\n dependency: 'energy_counter',\n },\n energy_counter: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: false,\n isSystem: false,\n isDynamic: true,\n maxRange: 10,\n minMaxBorders: {min: 0, max: 500},\n dependency: 'power',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n },\n },\n hybrids: {\n id: 'hybrids',\n title: 'Hybrid Systems',\n required: false,\n group: 'hybrids',\n quantity: 4,\n isDynamicFields: false,\n mappingsByColumns: {\n input: ['power', 'energy_counter', 'reverse_energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n title: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n },\n },\n },\n manageSchema: 'EMSSchema',\n },\n EnergyViewV2: {\n mappingsByColumns: {\n inputMappings: ['force_charge', 'force_charge_2', 'calibration_charge', 'maintenance_charge', 'charge_maintenance'],\n outputMappings: [],\n },\n controllerMappings: {\n force_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n force_charge_2: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n calibration_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n maintenance_charge: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n charge_maintenance: {\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n optional: true,\n isSystem: false,\n },\n },\n groups: {\n producer: {\n id: 'producer',\n title: 'Producer',\n systems: ['pv', 'chp', 'generator'],\n },\n producerConsumer: {\n id: 'producerConsumer',\n title: 'Producer Consumer',\n systems: ['grid', 'battery'],\n },\n consumer: {\n id: 'consumer',\n title: 'Consumer',\n systems: ['house', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'],\n },\n },\n systems: {\n pv: {\n id: 'pv',\n title: 'PV System',\n required: true,\n group: 'producer',\n quantity: 100,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n chp: {\n id: 'chp',\n title: 'CHP System',\n required: false,\n group: 'producer',\n quantity: 3,\n mappingsByColumns: {\n input: [\n 'power', 'error', 'energy_counter', 'energy_counter_thermal', 'thermal_power_output',\n 'flow_temperature', 'return_temperature', 'buffer_temperature_top',\n 'buffer_temperature_bottom',\n ],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n thermal_power_output: '',\n flow_temperature: '',\n return_temperature: '',\n buffer_temperature_top: '',\n buffer_temperature_bottom: '',\n energy_counter_thermal: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n thermal_power_output: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n flow_temperature: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n return_temperature: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n buffer_temperature_top: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n buffer_temperature_bottom: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter_thermal: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n generator: {\n id: 'generator',\n title: 'Generator',\n required: false,\n group: 'producer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n energy_counter: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n battery: {\n id: 'battery',\n title: 'Battery',\n required: false,\n group: 'producerConsumer',\n quantity: 80,\n mappingsByColumns: {\n input: ['power', 'error', 'soc', 'energy_counter', 'reverse_energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n soc: '',\n energy_counter: '',\n reverse_energy_counter: '',\n external_energy_measurement: false,\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n items: 'measurements',\n },\n soc: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n external_energy_measurement: {\n optional: true,\n },\n },\n },\n grid: {\n id: 'grid',\n title: 'Grid',\n required: true,\n group: 'producerConsumer',\n quantity: 1,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter', 'reverse_energy_counter', 'is_on_grid'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n reverse_energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n reverse_energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n is_on_grid: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n house: {\n id: 'house',\n title: 'House Consumption',\n required: false,\n group: 'consumer',\n quantity: 40,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n },\n },\n charge_station: {\n id: 'charge_station',\n title: 'EV Charging Station',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n external_energy_measurement: false,\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n external_energy_measurement: {\n optional: true,\n },\n },\n },\n electric_heating: {\n id: 'electric_heating',\n title: 'Electric Heating Element',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n external_energy_measurement: false,\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n external_energy_measurement: {\n optional: true,\n },\n },\n },\n heating_pump: {\n id: 'heating_pump',\n title: 'Heating Pump',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n external_energy_measurement: false,\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n external_energy_measurement: {\n optional: true,\n },\n },\n },\n big_consumer: {\n id: 'big_consumer',\n title: 'Other Big Consumer',\n required: false,\n group: 'consumer',\n quantity: 10,\n mappingsByColumns: {\n input: ['power', 'error', 'energy_counter'],\n output: [],\n titles: ['title'],\n },\n initMappings: {\n power: '',\n error: '',\n title: '',\n energy_counter: '',\n external_energy_measurement: false,\n },\n mappings: {\n power: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n error: {\n optional: true,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n title: {\n optional: false,\n vuetifyComponent: 'TextField',\n },\n energy_counter: {\n optional: false,\n vuetifyComponent: 'ComboboxField',\n items: 'measurements',\n },\n external_energy_measurement: {\n optional: true,\n },\n },\n },\n },\n manageSchema: 'EMSSchema',\n isSettingsView: false,\n },\n ElectricChargingStationV2: {\n mappings: {\n 'OutputField_actualValue': {\n optional: false,\n minMaxBorders: {min: 0, max: 100},\n },\n 'Switch2V_onOff': {\n optional: false,\n },\n 'Switch2V_state': {\n optional: false,\n },\n 'ShowEventDot_errorWarningState': {\n optional: false,\n },\n 'ShowEvent_errorWarningState': {\n optional: true,\n },\n },\n manageSchema: 'DefaultSchemaWithUserSelection',\n isSettingsView: true,\n devicesSchemas: {\n basicDevices: ['OutputField', 'ShowEventDot'],\n additionalBasicDevices: ['Switch'],\n },\n },\n};\n\nexport default devicesTypes;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariable.vue?vue&type=style&index=0&id=11d377b9&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=db8628d4&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClientPreview.vue?vue&type=style&index=0&id=5a2f11c5&prod&lang=scss&scoped=true&\"","import api from '@/services/api';\n\nexport default {\n async fetchDevices(projectId: string) {\n return api.fetch(`/projects/${projectId}/devices`, 'GET');\n },\n\n async createDevice(projectId: string, device: any) {\n return api.fetch(`/projects/${projectId}/devices`, 'POST', device);\n },\n\n async updateDevice(projectId: string, deviceId: string, device: any) {\n return api.fetch(`/projects/${projectId}/devices/${deviceId}`, 'PUT', device);\n },\n\n async deleteDevice(projectId: string, deviceId: string) {\n return api.fetch(`/projects/${projectId}/devices/${deviceId}`, 'DELETE');\n },\n\n async addToFavorites(projectId: string, deviceId: string) {\n return api.fetch(`/projects/${projectId}/favorites/${deviceId}`, 'PUT');\n },\n\n async deleteFromFavorites(projectId: string, deviceId: string) {\n return api.fetch(`/projects/${projectId}/favorites/${deviceId}`, 'DELETE');\n },\n\n async fetchEnergyData(projectId: string, deviceId: string, start: number, end: number) {\n return api.fetch(`/projects/${projectId}/devices/${deviceId}/energy?start=${start}&end=${end}`, 'GET');\n },\n\n async transferToRegelenergie(projectId: string, device: any) {\n return api.fetch(`/projects/${projectId}/regelenergie`, 'POST', device);\n },\n};\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantStatistic.vue?vue&type=style&index=0&id=e727b21a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerInformation.vue?vue&type=style&index=0&id=3fe0c272&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB9CAMAAABpnM9OAAAAjVBMVEUxMTFETFBRUEwxMjhSUlJKSEX3/Pz///8XFxfGxsbt7e03PkXZ2dlCOTM3NDP75bZeXl5/f4Rvb2+16P+Tk5NpHxdzt+hKPzMXF2w9kcqTHxfW/P///dMlW5bgrmw7GBf+/eq/v7+goKCRZT2W0PmvsrLSlzgXGj790ZazaxoXHJG22erfu48aOGT+88npVtZ2AAAFBElEQVR42u2c63KqShCFvQwzcgkBJBq3USNKzM7t/R/vdA8oxFinRGPSsteqCsWo44/50r26x9HOAJKjDpbgn6MxeviDpT6WxvtaG+PNF6e8wf3w9g40vpHG/fBhtXgf6ecFaPw+jYl+outm9AQaEmiYp9149qrNI+es9W1Mt7zS9qE3uqHwMfp2NRi8TN9G+vHvHo3t1JF9hq+cAe1M0Diexmz6+LZabNd2tbGxsjYP88VEz8uHvL+DzZoS2mz48YdomOfxfmzsps6mcx49L3jCZsIj0Gjg4pOp4X/6RZm0Nmta4DWtOq8pLf28/N+3CY2vFBuLL5lqN9VOn01LLIMRvRFoNKpwZ7lnDGcZu2y8gLyklsb9sIycic1AL9MaoDqNaiq/kEfFhO0IatJvzIa0bGtj9VCjsfONwg8+hUudRjWVnuZENRgVj4DGKd0fm3m1bBUNyj/xq5kfFxv25VQBUKIqJ6CmakbjPb/b0qgWsE6juNn6xvwwjWoq3Qa8/EXlDBpN+w1ycCp+rPlSBTt7JQfZ0XgZvt3ZyqheUx2gUU21NdeCn/qgrvKVkxxoHJ+p2BmKxsDe2p5iR2PDFdcjF1G1fqNOo3CHp2oqxULRwdgdl48VYuME34BAAwIN0IBAAzQg0AANCDRAA/oxGh1IgEoaIVZCBo4OIkOOwg5gCEtWEGhAoAEaEGiABgQaoAGdrVwbLwENGcr43JMHGjIU2GNoMWiABrSnGJlKklLPCxRooMKFDsWG64AGfAPaU+iipkKFC6EXl6/cYJ8KFS50SGoZZKAhRJEm33BBQ4aKCjcBDVS40NeSyhjtgIaIXtzh4EjhG1KUJAo1FfoNCDRAA/oBGmGydC+lwDMtl/bic2l8+jZg5l5SrcdhTH4WjX63d1OLDNcFjvMUN6DR76pCJQMe13BcGIYbtJ+GdzoNO+xVOC5Nw20/DdOMxjgMQ7+gsWWzwwEaP07Dd5xuAcBXyun2HKXGoPFrNGqZaswu7iNTSYgNGn+qqSTS8GKlIrstTTcJlQE6VhG/Tx63ggZVsv7OKsTTyBPPLBVRSBNPp5FnskS7yjM6CtpBw69VuOJpWKml0fRHCHITZzQOxIbGOTQ6ff8mlE5DZxQSAceHSdKCxlJsaDTPVB2/3vJ1hNMgn6CVXyp7H5s05kyVxUGkRBJp6uK9HseGT7VtyL7h3NDVCQXHRk5xsaPhJUrlXuRRmGRJSypc1bOXov2jjqMXSvaNJKsylVWasncE6vppkFVYIE7ReDh2d2Qs2sWjrHJxW/ZSUdUSGuTc3ITfsIU7tiV3nFCsb2Sx/lzhlqHBYZK2IFNta6owZAZ9ey0/5ZDa/fE8zd1fAcNjKC1x8Y7PnjHmBDUO+epwNxhe0c5IIHln/pQKd1/ONdEwumW7hjZX+da+eexg1/D393CvovtrN41+8WkTNYFF99eT3v21mUbPcZzt57Gqu+0ECxdfXhgGPhc//Lk4M/jS/eHMyPlqdGaEOr1S9e5vHOI81ffohPNUfZw1vIi+4azh/x09hHAqul2Klm4egoYQ5ZSkY9AQIjZifO9PilKiEYGGFCVxBBdHTQV9ke2n8buGkmjAN6SY+BI0UFNBoAEaEGhcsYsvI9CQU+G6+O02STTwu4aCBRqgAYEGaECgARoQaIAGBBqgAYEGaECgAYEGaEDH0QAOUTQG+NqSEBaWBqJDimkMIDn6D4jhk00OAwAkAAAAAElFTkSuQmCC\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"500\",\"overlay-opacity\":\"0.8\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),on),[_vm._t(\"default\")],2)]}}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"deviceBackground\",staticStyle:{\"border-radius\":\"20px\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('img',{attrs:{\"width\":\"50px\",\"src\":require(\"../../assets/delete.png\"),\"alt\":\"delete\"}})])],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('p',[_vm._v(_vm._s(_vm.$t('modals.routeSwitchModal.text', { name: _vm.pageAboutToLeave })))]),(_vm.additionalInformation)?_c('span',[_vm._v(\" \"+_vm._s(_vm.additionalInformation)+\" \")]):_vm._e()])],1)],1),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.handleCancel}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.routeSwitchModal.btnNo'))+\" \")]),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.handleApprove}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.routeSwitchModal.btnYes'))+\" \")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Route } from 'vue-router';\nimport VueI18n from 'vue-i18n';\nimport { Action } from 'vuex-class';\nimport { IMQTTVariable } from '@/types/wizards/installationWizard.types';\n\n/**\n * Modal for when a route is about to change and needs confirmation\n */\n@Component\nexport default class LeaveConfirmationModal extends Vue {\n @Prop({ default: '' }) pageAboutToLeave?: string | VueI18n.TranslateResult;\n @Prop() additionalInformation!: string | VueI18n.TranslateResult;\n @Prop({ default: false }) sendWizardVariables!: boolean;\n @Action('installationWizard/sendVariables') sendVariables!: (variablesToSend: IMQTTVariable[]) => Promise;\n\n dialog = false\n next = false\n localTo?: Route = undefined;\n localNext?: any = undefined;\n\n confirmAction(to?: Route, next?: any) {\n this.dialog = true;\n this.localTo = to;\n this.localNext = next;\n }\n\n handleRouteChange() {\n this.dialog = false;\n this.$router.push({ name: this.localTo?.name as string });\n this.$emit('handleRouteChange');\n this.localNext(true);\n }\n\n async handleApprove() {\n try {\n if (this.$route.name === 'InstallationWizard' && this.sendWizardVariables) {\n await this.sendVariables([{ variable: 'prgEMS.fbEMS.bEnable', value: 1, feedbackVariable: 'prgEMS.fbEMS.bStateEnable', isBoolean: true }]);\n }\n this.dialog = false;\n if (this.localTo) this.handleRouteChange();\n else this.$emit('handleRouteChange');\n } catch (error) {\n console.log(error);\n }\n }\n\n handleCancel() {\n this.dialog = false;\n }\n beforeDestroy() {\n this.next = false;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeaveConfirmationModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LeaveConfirmationModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LeaveConfirmationModal.vue?vue&type=template&id=9670327e&scoped=true&\"\nimport script from \"./LeaveConfirmationModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./LeaveConfirmationModal.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9670327e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'PVMonitoringService' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"solar_panel\",\"device-size\":\"x2h\",\"settings-modal-width\":\"700\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-monitoring-service\"},[_c('div',{staticClass:\"pv-monitoring-service-gauge-wrapper\"},[_c('MonitorGaugeMock')],1),_c('div',{staticClass:\"pv-monitoring-service-actual\"},[_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.pvPower'))+\":\")]),_c('span',{staticClass:\"px-1\"},[_vm._v(\"100\")]),_c('span',[_vm._v(\"kW\")])]),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.efficiency'))+\":\")]),_c('span',{staticClass:\"px-1\"},[_vm._v(\"80\")]),_c('span',[_vm._v(\"%\")])]),_c('div',{staticClass:\"pv-monitoring-service-ready d-flex align-center justify-center\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.service')))])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '200px', marginTop: '7px' },\"input-field-styles\":{ width: '300px' },\"unit-styles\":{ flexGrow: '1', marginTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.settingsView.pvEfficiencyDecay')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":60,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour','day'],\"chartHeight\":700}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"chartDiv\",staticClass:\"gauge\",attrs:{\"id\":\"chartDiv\"}},[_c('VueGauge',{key:_vm.chartKey,staticStyle:{\"margin-top\":\"10px\"},attrs:{\"refid\":\"previewPVMonitoring\",\"options\":{\n arcLabels:[\"25%\",\"50%\",\"75%\"],\n needleValue: 80,\n needleColor: \"black\",\n needleStartValue:0,\n hasNeedle: true,\n rangeLabel: [\"0\",\"100\"],\n arcDelimiters: [25,50,75],\n chartWidth: `${_vm.gaugeWidth}`,\n arcColors: [`${_vm.$vuetify.theme.currentTheme.error}`,`${_vm.$vuetify.theme.currentTheme.error}`,\"#FF9800\",\"#30BF54\"\n ]}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport Highcharts from 'highcharts';\nimport solidGauge from 'highcharts/modules/solid-gauge';\nimport highchartsMore from 'highcharts/highcharts-more';\nimport { Chart } from 'highcharts-vue';\n\nhighchartsMore(Highcharts);\nsolidGauge(Highcharts);\n\n@Component({\n components: {\n highcharts: Chart,\n },\n})\nexport default class MonitorGaugeMock extends Vue {\n val = 40;\n gaugeWidth = 320;\n chartKey = 1;\n\n get description() {\n return this.$t('devicesDescriptions.Gauge');\n }\n get previewNameLang() {\n return this.$t('devices.Gauge.previewName');\n }\n\n mounted() {\n this.$nextTick(() => this.resizeChart());\n window.addEventListener('resize', this.resizeChart);\n }\n\n resizeChart() {\n const element: any = this.$refs.chartDiv;\n if (element !== undefined) {\n if (element.clientWidth > 320) {\n this.gaugeWidth = 320;\n } else {\n this.gaugeWidth = element.clientWidth;\n }\n this.chartKey += 1;\n }\n }\n\n destroyed() {\n window.removeEventListener('resize', this.resizeChart);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitorGaugeMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitorGaugeMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonitorGaugeMock.vue?vue&type=template&id=5996ae6a&scoped=true&\"\nimport script from \"./MonitorGaugeMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./MonitorGaugeMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MonitorGaugeMock.vue?vue&type=style&index=0&id=5996ae6a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5996ae6a\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport MonitorGaugeMock\n from '@/ui/components/devices/previews/mpc/PVMonitoringService/MonitorGaugeMock.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n MonitorGaugeMock,\n InputFieldMock,\n OfflineChart,\n MPCLayout,\n },\n})\nexport default class PVMonitoringServicePreview extends Vue {\n get description() {\n return this.$t('mlModelsDescriptions.PVMonitoringService');\n }\n\n get previewNameLang() {\n return this.$t('mlModel.PVMonitoringService.previewName');\n }\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: 'Efficiency',\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: '%',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=302eef72&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=302eef72&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCLayout.vue?vue&type=style&index=0&id=c35e7b0c&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"canvas\",staticClass:\"ems-preview-forecast-view\"},[_c('div',{staticClass:\"ems-preview-forecast-view-row\"},_vm._l((_vm.producers),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system.system,refInFor:true,staticClass:\"actual-view-system-holder\"},[(_vm.loadLine)?_c('AnimatedLine',{key:_vm.canvasSize.width,attrs:{\"line-data\":_vm.canvasLines[system.system],\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-reverse-movement-default\":true,\"color2-reverse\":\"#f3db04\",\"color2\":\"#f3db04\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.EMS.systems.${system.system}.title`)},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('Preview',{attrs:{\"actual-value\":_vm.allGroupSliderStates[system.system],\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":system.previewIcon,\"system-count\":2}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"ems-preview-actual-view-system-instances\"},[_c('div',{ref:\"instancesCanvas\",refInFor:true,staticClass:\"ems-preview-system-instances-grid\"},[_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"},_vm._l((2),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:`instance-${systemInstanceIndex}`,refInFor:true},[(_vm.isDataForInstancesAnimatedLineReady)?_c('AnimatedLine',{key:_vm.instancesCanvasSize.width,attrs:{\"line-data\":_vm.instancesCanvasLines[`instance-${systemInstanceIndex}`],\"width\":_vm.instancesCanvasSize.width,\"height\":_vm.instancesCanvasSize.height,\"center\":_vm.instancesCanvasCenter,\"is-reverse-movement-default\":true,\"color2-reverse\":\"#f3db04\",\"color2\":\"#f3db04\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.getCurrentValue(`${system.system}${systemInstanceIndex + 1}`, _vm.sliders[system.system].slider),\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":system.previewIcon}})],1)}),0),_c('div',{ref:\"instancesCentralEndpoint\",refInFor:true,staticClass:\"ems-preview-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"})]),_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.showTimeSlider)?_c('div',{staticStyle:{\"width\":\"550px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.forecastData.pv1},model:{value:(_vm.sliders[system.system].slider),callback:function ($$v) {_vm.$set(_vm.sliders[system.system], \"slider\", $$v)},expression:\"sliders[system.system].slider\"}})],1):_vm._e()])])]},proxy:true}],null,true)})],1)}),0),_c('div',{staticClass:\"ems-preview-forecast-view-row\"},[_c('div',[_c('div',{ref:\"battery\",staticClass:\"actual-view-system-holder\"},[(_vm.loadLine)?_c('AnimatedLine',{key:_vm.canvasSize.width,attrs:{\"line-data\":_vm.canvasLines['battery'],\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-reverse-movement-default\":true,\"color2-reverse\":\"#fc0328\",\"color2\":\"#fc0328\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.EMS.systems.${_vm.producerConsumers.battery.system}.title`)},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('Preview',{attrs:{\"actual-value\":_vm.allGroupSliderStates['battery'],\"rotating-backlight-color\":\"#fc0328\",\"is-battery-s-o-c\":true,\"system-count\":2}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"ems-preview-actual-view-system-instances\"},[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-preview-system-instances-grid\"},[_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"},_vm._l((2),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:`instance-${systemInstanceIndex}`,refInFor:true},[(_vm.isDataForInstancesAnimatedLineReady)?_c('AnimatedLine',{key:_vm.instancesCanvasSize.width,attrs:{\"line-data\":_vm.instancesCanvasLines[`instance-${systemInstanceIndex}`],\"width\":_vm.instancesCanvasSize.width,\"height\":_vm.instancesCanvasSize.height,\"center\":_vm.instancesCanvasCenter,\"is-reverse-movement-default\":true,\"color2-reverse\":\"#fc0328\",\"color2\":\"#fc0328\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.getCurrentValue(`battery${systemInstanceIndex + 1}`, _vm.sliders['battery'].slider),\"rotating-backlight-color\":\"#fc0328\",\"is-battery-s-o-c\":true}})],1)}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-preview-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"})]),_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.showTimeSlider)?_c('div',{staticStyle:{\"width\":\"550px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.forecastData.battery1},model:{value:(_vm.sliders['battery'].slider),callback:function ($$v) {_vm.$set(_vm.sliders['battery'], \"slider\", $$v)},expression:\"sliders['battery'].slider\"}})],1):_vm._e()])])]},proxy:true}])})],1)]),_c('div',{ref:\"centralEndpoint\"},[_c('CentralEndpoint')],1),_c('div',[_c('div',{ref:\"grid\",staticClass:\"actual-view-system-holder\"},[(_vm.loadLine)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}`,attrs:{\"line-data\":_vm.canvasLines['grid'],\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"color2-reverse\":\"#29810e\",\"color2\":\"#29810e\",\"is-reverse-movement-default\":true,\"is-movement-reverse\":true,\"is-line-active\":true}}):_vm._e(),_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.EMS.systems.${_vm.producerConsumers.grid.system}.title`)},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('Preview',{attrs:{\"actual-value\":_vm.getCurrentValue('grid1', _vm.groupSliderState),\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":_vm.producerConsumers.grid.previewIcon,\"system-count\":1}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"ems-preview-actual-view-system-instances\"},[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-preview-system-instances-grid\"},[_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"},_vm._l((1),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:`instance-${systemInstanceIndex}`,refInFor:true},[(_vm.isDataForInstancesAnimatedLineReady)?_c('AnimatedLine',{key:_vm.instancesCanvasSize.width,attrs:{\"line-data\":_vm.instancesCanvasLines[`instance-${systemInstanceIndex}`],\"width\":_vm.instancesCanvasSize.width,\"height\":_vm.instancesCanvasSize.height,\"center\":_vm.instancesCanvasCenter,\"is-reverse-movement-default\":true,\"color2-reverse\":\"#29810e\",\"color2\":\"#29810e\",\"is-movement-reverse\":true,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.getCurrentValue(`grid${systemInstanceIndex + 1}`, _vm.sliders['grid'].slider),\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":_vm.producerConsumers.grid.previewIcon}})],1)}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-preview-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"})]),_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.showTimeSlider)?_c('div',{staticStyle:{\"width\":\"550px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.forecastData.grid1},model:{value:(_vm.sliders['grid'].slider),callback:function ($$v) {_vm.$set(_vm.sliders['grid'], \"slider\", $$v)},expression:\"sliders['grid'].slider\"}})],1):_vm._e()])])]},proxy:true}])})],1)])]),_c('div',{staticClass:\"ems-preview-forecast-view-row\"},_vm._l((_vm.consumers),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system.system,refInFor:true,staticClass:\"actual-view-system-holder\"},[(_vm.loadLine)?_c('AnimatedLine',{key:_vm.canvasSize.width,attrs:{\"line-data\":_vm.canvasLines[system.system],\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.EMS.systems.${system.system}.title`)},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [_c('Preview',{attrs:{\"actual-value\":_vm.allGroupSliderStates[system.system],\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":system.previewIcon,\"system-count\":2}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"ems-preview-actual-view-system-instances\"},[_c('div',{ref:\"instancesCanvas\",refInFor:true,staticClass:\"ems-preview-system-instances-grid\"},[_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"},_vm._l((2),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:`instance-${systemInstanceIndex}`,refInFor:true},[(_vm.isDataForInstancesAnimatedLineReady)?_c('AnimatedLine',{key:_vm.instancesCanvasSize.width,attrs:{\"line-data\":_vm.instancesCanvasLines[`instance-${systemInstanceIndex}`],\"width\":_vm.instancesCanvasSize.width,\"height\":_vm.instancesCanvasSize.height,\"center\":_vm.instancesCanvasCenter,\"color2-reverse\":\"#29810e\",\"color2\":\"#29810e\",\"is-movement-reverse\":false,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.getCurrentValue(`${system.system}${systemInstanceIndex + 1}`, _vm.sliders[system.system].slider),\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":system.previewIcon}})],1)}),0),_c('div',{ref:\"instancesCentralEndpoint\",refInFor:true,staticClass:\"ems-preview-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-preview-system-instances-grid-row\"})]),_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.showTimeSlider)?_c('div',{staticStyle:{\"width\":\"550px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.forecastData.pv1},model:{value:(_vm.sliders[system.system].slider),callback:function ($$v) {_vm.$set(_vm.sliders[system.system], \"slider\", $$v)},expression:\"sliders[system.system].slider\"}})],1):_vm._e()])])]},proxy:true}],null,true)})],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { throttle } from 'lodash';\n\n@Component({\n components: {\n Preview,\n SystemModalWindowView,\n TimeSlider,\n AnimatedLine,\n CentralEndpoint,\n },\n})\nexport default class ForecastView extends Vue {\n @Prop({ default: null }) groupSliderState!: any;\n @Prop({ default: null }) forecastData!: any;\n @Prop({ default: true }) showTimeSlider!: any;\n @Prop({ default: false }) isPreviewManageModalOpen!: boolean;\n\n canvasSize: any = null\n canvasCenter: any = null\n canvasLines: any = {}\n systemsList = ['pv', 'generator', 'battery', 'grid', 'house',\n 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer']\n\n sliders: any = {\n pv: { slider: 0 },\n generator: { slider: 0 },\n grid: { slider: 0 },\n battery: { slider: 0 },\n house: { slider: 0 },\n charge_station: { slider: 0 },\n electric_heating: { slider: 0 },\n heating_pump: { slider: 0 },\n big_consumer: { slider: 0 },\n }\n\n instancesCanvasSize: any = null\n instancesCanvasCenter: any = null\n instancesCanvasLines: any = {}\n\n // systems\n producers = [\n {\n system: 'generator',\n previewIcon: 'generator',\n },\n {\n system: 'pv',\n previewIcon: 'photovoltaic',\n },\n ]\n producerConsumers = {\n battery: {\n system: 'battery',\n },\n grid: {\n system: 'grid',\n previewIcon: 'main-connection',\n },\n }\n consumers = [\n {\n system: 'house',\n previewIcon: 'house-consumption',\n },\n {\n system: 'charge_station',\n previewIcon: 'electric-charging-station',\n },\n {\n system: 'electric_heating',\n previewIcon: 'electric-charging-boiler',\n },\n {\n system: 'heating_pump',\n previewIcon: 'heating-capacity',\n },\n {\n system: 'big_consumer',\n previewIcon: 'socket-switch',\n },\n ]\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get loadLine() {\n return !!this.canvasSize && !!this.canvasCenter && !!Object.values(this.canvasLines);\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return !!this.instancesCanvasSize && !!this.instancesCanvasCenter && !!Object.values(this.instancesCanvasLines);\n }\n\n get sumPV() {\n const { pv1, pv2 } = this.forecastData;\n const arr: any = Object.values({ pv1, pv2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumGenerator() {\n const { generator1, generator2 } = this.forecastData;\n const arr: any = Object.values({ generator1, generator2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumBattery() {\n const { battery1, battery2 } = this.forecastData;\n const arr: any = Object.values({ battery1, battery2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumHouse() {\n const { house1, house2 } = this.forecastData;\n const arr: any = Object.values({ house1, house2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumChargeStation() {\n const { charge_station1, charge_station2 } = this.forecastData;\n const arr: any = Object.values({ charge_station1, charge_station2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumElectricHeating() {\n const { electric_heating1, electric_heating2 } = this.forecastData;\n const arr: any = Object.values({ electric_heating1, electric_heating2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumHeatingPump() {\n const { heating_pump1, heating_pump2 } = this.forecastData;\n const arr: any = Object.values({ heating_pump1, heating_pump2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n get sumBigConsumer() {\n const { big_consumer1, big_consumer2 } = this.forecastData;\n const arr: any = Object.values({ big_consumer1, big_consumer2 }).map((system: any) => system[this.groupSliderState] || [null, null]);\n const res: any = arr.map((el: any) => el[1]);\n const num: any = res.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n }\n\n get allGroupSliderStates() {\n return {\n pv: this.sumPV,\n generator: this.sumGenerator,\n battery: this.sumBattery,\n house: this.sumHouse,\n charge_station: this.sumChargeStation,\n electric_heating: this.sumElectricHeating,\n heating_pump: this.sumHeatingPump,\n big_consumer: this.sumBigConsumer,\n };\n }\n\n handleGetCoords() {\n this.getCoords();\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getCoords() {\n const central: any = this.$refs.centralEndpoint;\n const actualViewRef: any = this.$refs.canvas;\n this.canvasSize = { width: actualViewRef?.clientWidth, height: actualViewRef?.clientHeight };\n this.canvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n this.systemsList.forEach((system: string) => {\n const target: any = this.$refs[system];\n if (Array.isArray(target)) {\n this.canvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n } else {\n this.canvasLines[system] = {\n key: system,\n x: target.offsetLeft + target.offsetWidth / 2,\n y: target.offsetTop + target.offsetHeight / 2,\n w: target.offsetWidth,\n h: target.offsetHeight,\n };\n }\n });\n }\n getCoordsThrottle = throttle(this.getCoords, 500)\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n if (central) {\n const arrItem: any = Array.isArray(central) ? central[0] : central;\n this.instancesCanvasCenter = {\n x: arrItem.offsetLeft + arrItem.offsetWidth / 2,\n y: arrItem.offsetTop + arrItem.offsetHeight / 2,\n w: arrItem.offsetWidth,\n h: arrItem.offsetHeight,\n };\n }\n if (actualViewRef) {\n const arrItem: any = Array.isArray(actualViewRef) ? actualViewRef[0] : actualViewRef;\n this.instancesCanvasSize = { width: arrItem?.clientWidth, height: arrItem?.clientHeight };\n }\n\n ['instance-0', 'instance-1'].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target?.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500)\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n this.instancesCanvasSize = null;\n this.instancesCanvasCenter = null;\n this.instancesCanvasLines = {};\n }\n }\n\n getCurrentValue(systemInstance: string, sliderState: number) {\n return this.forecastData[systemInstance][sliderState][1];\n }\n\n async mounted() {\n window.addEventListener('resize', this.getCoordsThrottle);\n this.getCoords();\n if (this.isPreviewManageModalOpen) {\n await this.$nextTick();\n this.getCoords();\n }\n }\n destroyed() {\n window.removeEventListener('resize', this.getCoordsThrottle);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForecastView.vue?vue&type=template&id=67ca3dbe&\"\nimport script from \"./ForecastView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForecastView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForecastView.vue?vue&type=style&index=0&id=67ca3dbe&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=style&index=0&id=a6675560&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn-toggle',{attrs:{\"tile\":\"\",\"color\":\"accent\",\"group\":\"\",\"dense\":\"\",\"mandatory\":\"\"},model:{value:(_vm.active),callback:function ($$v) {_vm.active=$$v},expression:\"active\"}},_vm._l((_vm.items),function(item,i){return _c('v-btn',{key:i,attrs:{\"disabled\":_vm.disableNavButton,\"small\":\"\"},on:{\"click\":function($event){return _vm.onItemChange(item.data)}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.langPath))+\" \")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { cloneDeep } from 'lodash';\nimport {\n Vue, Component, Prop, Watch,\n} from 'vue-property-decorator';\nimport { Periods } from '../charts/ChartUtils';\n\n/**\n * Component that represent periods navigation in charts\n */\n@Component\nexport default class PeriodSelection extends Vue {\n @Prop({ default: 0 }) countLines!: number;\n @Prop({ default: 0 }) countColumns!: number;\n @Prop({ default: false }) disableNavButton!: boolean;\n @Prop({ default: Periods.DAY }) period!: string;\n @Prop({ default: null }) navigationItemsToExclude!: any; // array of ids buttons to exclude, example: ['week', 'day']\n @Prop({ default: null }) modularDefaultPeriod!: string;\n\n active = 2;\n defaultItems: any[] = [\n { id: 'live', langPath: 'uiComponents.chartNavigation.LIVE', data: Periods.LIVE },\n { id: 'hour', langPath: 'uiComponents.chartNavigation.HOUR', data: Periods.HOUR },\n { id: 'day', langPath: 'uiComponents.chartNavigation.DAY', data: Periods.DAY },\n { id: 'week', langPath: 'uiComponents.chartNavigation.WEEK', data: Periods.WEEK },\n { id: 'month', langPath: 'uiComponents.chartNavigation.MONTH', data: Periods.MONTH },\n { id: 'year', langPath: 'uiComponents.chartNavigation.YEAR', data: Periods.YEAR },\n ]\n items!: any[];\n\n @Watch('period')\n onPeriodChange() {\n this.active = this.items.map(e => e.id).indexOf(this.period);\n }\n\n @Watch('countColumns')\n updateVisibilityButtons() {\n if (this.items.length === 4 && this.isLineChart) {\n this.items = cloneDeep(this.defaultItems);\n this.active = 0;\n\n this.excludeNotWantedItems();\n }\n if (this.items.length === 5 && this.isColumnChart) {\n this.items = this.items.filter((el: any) => el.id !== 'live' || el.id !== 'hour');\n this.active = 0;\n\n this.excludeNotWantedItems();\n }\n }\n\n get isLineChart() {\n return this.countLines > 0 && this.countColumns === 0;\n }\n get isColumnChart() {\n return this.countLines === 0 && this.countColumns > 0;\n }\n\n onItemChange(x: string) {\n this.$emit('selected', x);\n }\n\n /**\n * Excludes periods from navigation\n */\n excludeNotWantedItems() {\n if (this.navigationItemsToExclude) {\n this.navigationItemsToExclude.forEach((btn: any) => {\n this.items = this.items.filter((el: any) => el.id !== btn);\n });\n }\n }\n\n created(): void {\n this.items = cloneDeep(this.defaultItems);\n\n // Disable the LiveButton for Charts with only Column Series\n if (this.countColumns) {\n const periodsToExclude: string[] = ['live', 'hour'];\n this.items = this.items.filter((el: any) => !periodsToExclude.some((per: string) => per === el.id));\n this.active = 0;\n }\n this.excludeNotWantedItems();\n if (this.modularDefaultPeriod !== null) {\n this.active = this.items.findIndex((element: any) => {\n return element.id === this.modularDefaultPeriod;\n });\n } else {\n if (this.navigationItemsToExclude !== null && !this.navigationItemsToExclude.includes('day')) {\n this.active = this.items.findIndex((element: any) => {\n return element.id === 'day';\n });\n }\n }\n }\n mounted(): void {\n this.onItemChange(this.items[this.active].data);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeriodSelection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PeriodSelection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PeriodSelection.vue?vue&type=template&id=d05a22be&\"\nimport script from \"./PeriodSelection.vue?vue&type=script&lang=ts&\"\nexport * from \"./PeriodSelection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[_vm.warningClass, 'show-event-base']})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent ShowEvent Basic Control\n */\n@Component\nexport default class ShowEventBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n\n get errorStatus() {\n return this.measurements.get(this.mappingsClean.errorWarningState);\n }\n get warningClass() {\n return {\n 'device-warning-state': this.errorStatus === 1,\n 'device-error-state': this.errorStatus === 2,\n };\n }\n get isNotMapped(): boolean {\n return this.mappingsClean.errorWarningState === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShowEventBase.vue?vue&type=template&id=a938f354&\"\nimport script from \"./ShowEventBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShowEventBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShowEventBase.vue?vue&type=style&index=0&id=a938f354&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=style&index=0&id=205ab868&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileModal.vue?vue&type=style&index=0&id=fe1bdfc8&prod&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAK40lEQVR4nO2cC3BU1RnHf3d3s5v3i0cSxBCVgGjjFJxStGXEWMRHO8P4qDJWOyogWrXMoLXTBz7qjBUHB9upClpROtpYatWKGq2OOlpaFAatBQUFSiAkgYAkm5Dn3tv57p5NVlgCmz27mzDnN5NJ9u7u2XPvf8/3Ot8NBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDYbhj6Zh/a2tLSi5DXl4+a9euZeHCRRQWFuD1eg9/SRbwI+Ai4BvACKAZ+AxYA9QA7cmaX23tawmP4dMyk/QjX6zbgZ8DpYfNRkSZCMwG7gd+C/wOcIbiiXiGwBziwnEc9ycKOYf1wLIYYhxOqXrdWiAwFM9v2AnS3d1NZ2dnxFzJRd0MTIlzmGnA58mZYWIMK0FsO8TEiRM55ZQKWltb5dAzyhwNhgpgVVpPKAZDXRBZAdkR89Le3s6YMWO48MKZNDQ0XuzxeK5KcPxrge/rmaoehpogGcA84E1gK7AL2K1+b3UcR47fWF19vsfr9d7R3NyMz5dwXHKTnqnrYSgJskDZ9RXATKASGAUUqd+VlmXN7OrqfPKMM87Ydtddd07t7e2lsbExUVG+A2RGPS4GShI/ncExVAR5BXgMOPVYLxSH3tFxqGLu3BtzH3vsD9i2Q0NDQyKiiOAFwNnAq2o11qkVukTlNikj3YJI/vBhPHbc4/HQ09NDe3sbU6dOpabmWTIzs6iv3xMrUTweJIZ+QYXOlyif5Vcr9E4VxX1P50kPeH6p+qCj8BbwrXjfZFkWoVCItrYglZWVPPDA/Uqkdve5eIdTZutoSDT2D7WKkk46BZkDVA/2zXLhbdt2RZk+fTqLFi10TVcS+WMyB4+QLkEKgeWJDhIRRbjiisupqKigpSVpdbXLgZOSNXiEdAlyi9QKdQwkosgqyc3N46KLZtHcvL/PbEmJRUybiHZYuWWwfFPHIAORruLit3UOFlklF1xQzerVf3VXyYEDX5GRkYHf78dxbFVu8VFWVupGZJH3xMl2nfOORboEOVPnYBHTVVk5Hp8vgwMH9nPzzTcxfvxpZGVluc+1tgZZt24da9a8SmZmJmVlZUgeEwdiC0erKOxL9Vg76dgPkYqrdu8rIa8Is3LlM0yZMplp06bFfF1tbS3Llj1CU9Nexo4dG48oHVE5iRTSXle503v9Yye+H5IOQc4CPtHxudGIj5CVUFhY5B4NBlvdYxF/Is8FAgE3Z2lqamTOnGtpaTnorhTxMwkgeys/RZMg6XDqO4CErkAs5MKLb5CEUcRAHYsQSSiDwRZKSkpZunSJu6o6OjoS/WjZGPuVrvNIpSA+ZX97kmGyiFolA2PR2dnB5MmTmT79u+zdu1fHR/9GrfyESbYg04GngI+Bnapyu10V8NKGbHIJ5557jlsL0xQSL9ExSLKirFPUMr4hSeMnRMSUTZgwgaKiItexS4icIFU65pYMQWaoqml2EsbWijh5+RGnrkEQLddStyCSyb6jecyksWXLFjZu3Mjo0aPx+bzk5ORQXFzsrqBBmDEtdk+nIMXDSQyJuCSLnz9/HiUlo91K8ZYtW1m/fgP5+XmMHDkyVofLQAR1zEunID9TRcNhwaFD7VRXn8+sWbP6ptvV1Ult7RssX/4EO3fWUV5+cjyrpUbHeetKDEWIJrWxM2yQix19wcVkWZbHXS333nsfq1e/wKRJp7vPHUOU/wGn1da+NqgCWTS6Vsg1w00MYjTdBYNB93FBQSFLljzIvn3NbNiwgfLy8oGyeam9XC3FAB1z0pWH/EDTOGlFVotk9FJSER5//FFKS0vZs2ePezwG/wVkCa3TNW9dK6RC0zj9xNqKdUhJS65cfKnP5ecXMG/ejRsWLlz0UVZWVqCoqMgTCoV6VRPEJrUXrxVdgugxV1L2kKpt7tH3rpz2NpAKbexvrFba2tq48sorG32+jJsXL77HjcxKSkriLdvHhS6n/nkCLZ39eH0QyMR+50Xsui+xcpQwMsvuLhw7hO+S6yC/CLoSLgoeE/En4eQxc8ynn37aMH/+Atfhy1axiHM4Q+l2hK0JC+LYWNnZ2PU76Vl+N3R1QlZO+DmPF6d+G94Zs7Fyc3XVno6J+JSuri5ZEeOrqqoaVqx4nAULbmH79h1UVIxLtGwfE13r/qWER/CGSxeht1e7D61Tz8QqLccqG4eVk481voqM2x6EzGzoPJT4jI8T1XLULj6lqqqKJ59cQXFxEfX19TraWI9AlyDSRd426HfLRlJODvaWTwi9+TzWqJPcFdP39FdN+K74CdaoUpxgMCX+I4pOy7I2iTCyzzJp0iRqap5zi5KbN3/Wl8voQteZ9ao7kwaHJ9xxGHp/DRwKQkDtlIqpatiJZ8oMfJfMwZGyuaMl3I8HWf1dKJ8iokgH/qpVT7uZ/tatX1BXt8vtnNSBzi3cgNrvGBnXm8V35BdiN9XTs/i68IwC2eGwt7sTp7kR/90r8Zx5No7kB6ldHag211ejD8gmmCSPQk3N87z//gduM8XSpQ8l/GG699THqo2o479qXp/rzHseXUzonb9hjR0Pdsg1Y87e3fhu+AUZF/6wL/twOruguwOslAjzsro38QhEFCm1SJdLBB2mS7dX2q12CVfK/s8xXy2+QyKr3TsIffgW1sgxYTGEjnask8fjPetc7JYDOG1Bd8VY4tQl7B1cX1U8fHA0MVDJo+zHW1b49jpdkV8yNqjWqluSpVX0+gFfqbrVQ+++BG0tUDiq30eIH7E89Cy7A0eiKuk+3L0N360P4KuejaMaGZKE9PHOPZ6hRQidiWKy24CkznMecKkSKexf5Nvtz8STlemEvtzU033P9SOsvELwR90YK8tf4nxJAMV8tezHe+m13RlX39rl2E44W9dHSOVSbwN/UT0AcSOllkRJdufi5+on0lidJybJKgj3TvW+90pb74tP/Amf7xo3v7CjEi0xAeLAJTmU8lF27r+9M2ZfRiCrDf3O3U7mPxSIh1S3kgblwjsH99P73COE3vhzhVU8+hprRMnA33ivdzedh86xt2/GM64SPPri/qFGagXxeLACAXqeuI/evz+F5/Szi/B4HqS3t1O9YoK6bySaHrDOc81X3RfqsBFEE+pCSgQ1skz8xEYcZ2PU2ItiCDLT7eVyo7Ft0NMNPj/0dqd26ikidVmWGxZaYUkKRnzdX/Tzy8Me3x5pZrb8Wa5jd6Mrf2as954QpEYQiaqy87BysgltWo+99WOs/COaF29Td8RGeBj4fd+jDD9OW4srSmpywvSQ3FOTVSHFt4JCLJ+H3tefo/u+uTgHmiD3iAaVe6L+rlXmq5+MABxsxq7fcSK7kCT5EBHCH8DKDJsWZ9c2elY9hL3+XazRJ7mrxQ1l+5kS1e8rpZeLY44r/qNpV1KmPFTQIoiVl3/kwZBN6ON/Yn/4FqGP3nUzcau8MpzwHek/Ir6jUbWixkaqvx0qXRC7lfrKb9LRIkjvy0/3P5BSumNjf7Ye+z//cjNta9QYKC3vKxoexmnAZerQbNXjFBsxVV1qcypFu4apRo8gzz789QNysbJysIpLwvvk8k2OHVUJv1a/RYyB22n8fmhuDJdUpMp6Aoa+ekxW2bijPzmwWZF/KvNj4GlV6h74c7JysZt24exrBPFFJ6Ag6Q4gr1J5xsBV4Qj+TJyD+7Cb6k7o0NdgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAMX4D/A8P/0diAJpvUAAAAAElFTkSuQmCC\"","export class ValueUnit {\n constructor(value: number | undefined, unit: string) {\n this.value = value;\n this.unit = unit;\n }\n\n value?: number;\n unit: string;\n\n get valueFormatted() {\n return this.value !== undefined ? Intl.NumberFormat('de-GE', { maximumFractionDigits: 1 }).format(this.value) : '';\n }\n\n get formattedWithUnit() {\n return `${this.valueFormatted} ${this.unit}`;\n }\n}\n","import { ValueUnit } from '@/utils/unit/valueUnit';\n\nexport default class Unit {\n constructor(unit: string, conversions?: Map) {\n this.unit = unit;\n this.conversions = conversions;\n }\n\n /// Initial unit value, e.g. \"kW\"\n unit: string;\n\n /// Possible conversions of the unit, as a mapping from factor to unit,\n /// e.g. { 1000: \"MW\" }.\n conversions?: Map;\n\n unitForValue(value?: number): ValueUnit {\n let result = new ValueUnit(value, this.unit);\n if (value) {\n this.conversions?.forEach((thresholdUnit, threshold) => {\n if (value > threshold || value < -threshold) {\n result = new ValueUnit(value * (1 / threshold), thresholdUnit);\n }\n });\n }\n\n return result;\n }\n}\n","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=706f2f89&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=style&index=0&id=85d8615c&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"d-flex flex-wrap justify-center\"},_vm._l((_vm.items),function(group,groupIndex){return _c('div',{key:groupIndex,staticClass:\"d-flex\"},[_c('v-menu',{key:_vm.rerenderKey,attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":groupIndex === _vm.selectedGroup ? 'accent' : '#acacac',\"hide-slider\":groupIndex !== _vm.selectedGroup,\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.currentGroup),callback:function ($$v) {_vm.currentGroup=$$v},expression:\"currentGroup\"}},[(_vm.groupLength(group))?_c('v-tab',{key:groupIndex,on:{\"click\":function($event){return _vm.handleCurrentChart(group, 0, groupIndex)}}},[_c('div',[_c('div',[_vm._v(\" \"+_vm._s(_vm.systemName === 'EnergyIO' ? group[1].title : _vm.$t(`mlModel.${_vm.systemName}.systems.${group[0]}.title`))+\" \")]),(_vm.systemName === 'EnergyIO')?_c('div',{staticStyle:{\"font-size\":\"12px\"}},[_vm._v(_vm._s(_vm.$t(`mlModel.${_vm.systemName}.groups.${_vm.defineIoSystemType(group[0])}.system`)))]):_vm._e()]),(group[1].length > 1)?_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-light fa-chevron-down \")]):_vm._e()],1):_c('v-tab',_vm._b({key:groupIndex,on:{\"click\":function($event){return _vm.handleClick(on, groupIndex, $event)}}},'v-tab',attrs,false),[_vm._v(\" \"+_vm._s(_vm.systemName === 'EnergyIO' ? group[1].title : _vm.$t(`mlModel.${_vm.systemName}.systems.${group[0]}.title`))+\" \"),(group[1].length > 1)?_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-light fa-chevron-down \")]):_vm._e()],1)],1)]}}],null,true)},[_c('v-tabs-items',{model:{value:(_vm.currentGroup),callback:function ($$v) {_vm.currentGroup=$$v},expression:\"currentGroup\"}},[_c('v-radio-group',{staticClass:\"my-0 py-0\",attrs:{\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_c('v-tab-item',[(_vm.items[_vm.menuGroup][1].length)?_c('v-list',{attrs:{\"dense\":\"\"}},_vm._l((_vm.items[\n _vm.menuGroup\n ][1]),function(arrayOfSystemInstanceNames,arrayOfSystemInstanceNamesIndex){return _c('v-list-item',{key:arrayOfSystemInstanceNamesIndex,attrs:{\"link\":\"\"},on:{\"click\":function($event){return _vm.handleCurrentChart(\n _vm.items[_vm.menuGroup],\n arrayOfSystemInstanceNamesIndex,\n _vm.menuGroup,\n )}}},[_c('v-list-item-title',[_c('v-radio',{attrs:{\"label\":`${_vm.defineMenuItemName(_vm.items[_vm.menuGroup][0])} ${_vm.defineMenuItemCount(\n arrayOfSystemInstanceNames,\n )}`,\"value\":_vm.items[_vm.menuGroup][0] + arrayOfSystemInstanceNamesIndex,\"color\":_vm.selected === _vm.items[_vm.menuGroup][0] + arrayOfSystemInstanceNamesIndex\n ? 'accent'\n : _vm.themeColor}})],1)],1)}),1):_vm._e()],1)],1)],1)],1)],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { defineIoSystemType } from '../../../components/EnergyParts/EMS/utils';\n\n@Component({\n methods: {defineIoSystemType}\n})\nexport default class SystemsNavigation extends Vue {\n @Prop({default: 'SetpointOptimizer'}) systemName!: string;\n @Prop({default: null}) items!: any;\n @Prop({default: true}) isListItemsPlural!: boolean;\n\n // Selected Radio Button in Menu\n selected: any = null;\n\n // Highlighted Tab\n selectedGroup = 0;\n\n // Rendered Menu for tab that was clicked on\n currentGroup = 0;\n\n // Displayed menu when clicked on tab\n menuGroup = 0;\n rerenderKey = 0;\n\n get themeColor() {\n return this.$vuetify.theme.dark ? '#313131' : '#f2f2f2';\n }\n\n groupLength(group: any) {\n if (this.systemName === 'EnergyIO') return Object.keys(group[1].energy_counter).length;\n return group[1].length === 1;\n }\n\n defineMenuItemName(system: string) {\n if (this.isListItemsPlural) return this.$t(`mlModel.${this.systemName}.systems.${system}.title`);\n else return this.$t(`mlModel.${this.systemName}.systems.${system}.single`);\n }\n\n defineMenuItemCount(arr: any) {\n const filterFromNotNumber = (str: string) => +str.replace(/\\D+/g, '');\n if (!arr.length) return null;\n if (arr.length === 1) return filterFromNotNumber(arr[0]);\n else {\n const first: any = arr[0];\n const last: any = arr[arr.length - 1];\n return `${filterFromNotNumber(first)}-${filterFromNotNumber(last)}`;\n }\n }\n\n // Changes Tab Selection and opens selected chart\n handleCurrentChart(group: any, index: number, groupIndex: number) {\n const system = group[0];\n let arr = [];\n if (this.systemName === 'EnergyIO') {\n if (system.includes('hybrid')) arr = ['instance'];\n else arr = Object.keys(group[1].energy_counter);\n } else {\n // eslint-disable-next-line prefer-destructuring\n arr = group[1][index];\n }\n this.$emit('handleCurrentChart', { system, arr }, groupIndex);\n this.selected = system + index;\n this.selectedGroup = groupIndex;\n this.rerenderKey++;\n }\n\n // Selects clicked menu and open it using v-menu's \"on\" function\n handleClick(func: any, index: any, event: any) {\n this.currentGroup = index;\n this.menuGroup = index;\n func.click(event);\n }\n\n created() {\n this.selected = this.items[0] ? this.items[0][0] + 0 : 0;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsNavigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsNavigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemsNavigation.vue?vue&type=template&id=562f2548&scoped=true&\"\nimport script from \"./SystemsNavigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemsNavigation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemsNavigation.vue?vue&type=style&index=0&id=562f2548&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"562f2548\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{style:(`height: ${_vm.energyVisualisationHeight}; margin-top:16px`)},[_c('EnergyVisualisation',{attrs:{\"circlesDisplayData\":_vm.localCirclesDisplayData,\"linesDisplayData\":_vm.localLinesDisplayData,\"view\":\"ActualView\"}})],1),(_vm.showDialog && _vm.openedSystem)?_c('ActualViewSystemDialog',{attrs:{\"device-data\":_vm.data,\"opened-system\":_vm.openedSystem},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Provide, Vue } from 'vue-property-decorator';\nimport _ from 'lodash';\nimport EnergyVisualisation from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport ActualViewSystemDialog from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue';\nimport { circlesDisplayDataMock, linesDisplayDataMock } from '@/ui/components/devices/previews/mockObjects/energyDevicesMockObjects';\nimport { EnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent EMS EnergyFlow view\n */\n@Component({\n components: {\n EnergyVisualisation,\n ActualViewSystemDialog,\n },\n})\nexport default class ActualView extends Vue {\n @Prop() data!: IDevice;\n @Prop({ default: '650px' }) energyVisualisationHeight!: string;\n\n @Provide('onCircleClick') onCircleClick = this.onCircleClickCallback;\n\n showDialog = false;\n showSystemSettingsDialog = false;\n openedSystem?: EnergyCircleType;\n\n onCircleClickCallback(circleData: EnergyCircleDisplayData) {\n this.openedSystem = circleData.id as EnergyCircleType;\n this.showDialog = true;\n }\n\n localCirclesDisplayData = circlesDisplayDataMock;\n localLinesDisplayData = linesDisplayDataMock;\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActualView.vue?vue&type=template&id=2616b963&\"\nimport script from \"./ActualView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActualView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"overlay-opacity\":\"0.8\",\"max-width\":_vm.maxWidth,\"persistent\":\"\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[(_vm.value)?_c('v-card',{staticClass:\"modal-window\"},[_c('div',{staticClass:\"modal-window__header\"},[_c('div',{staticClass:\"modal-window-header-title\"},[_vm._t(\"title-text\")],2),_c('div',{staticClass:\"pb-2\"},[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\",\"disabled\":_vm.disableCloseButton},on:{\"click\":_vm.closeDialog}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"modal-window__body\"},[_vm._t(\"body\")],2)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class SystemDialog extends Vue {\n @Prop({ default: false }) value!: boolean;\n @Prop({ default: 1024 }) maxWidth!: number | string;\n @Prop({ default: false }) disableCloseButton!: boolean;\n\n closeDialog() {\n this.$emit('input', false);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemDialog.vue?vue&type=template&id=446ab6b9&scoped=true&\"\nimport script from \"./SystemDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemDialog.vue?vue&type=style&index=0&id=446ab6b9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"446ab6b9\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=style&index=0&id=03231768&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rules.vue?vue&type=style&index=0&id=55ff1fc3&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=style&index=0&id=18f5563d&prod&lang=scss&scoped=true&\"","import { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport { IMeasurements } from '@/types/measurements.types';\nimport {\n allEnergyCircleTypes,\n EnergyCircleType,\n isConsumer,\n systemsWithAlternativeValues,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n ArrowDirection,\n EnergyLineColors,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport {\n energyConsumerColors,\n energyGreyColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport {\n EnergyDataExtractor,\n} from '@/types/energyVisualisation/EnergyDataExtractor';\nimport { IDevice } from '@/types/devices.types';\nimport { isNil } from 'lodash';\nimport Unit from '@/utils/unit/unit';\nimport { IGetSumOfSystemInstancesValuesParams } from '@/types/common.types';\nimport { EnergyDataByPeriodResponse } from '@/types/energyVisualisation/energyVisualisation.types';\n\n/**\n * Helper for extracting data from EnergyView, EMS.\n */\n@Component\nexport default class EnergyComponent extends Vue implements EnergyDataExtractor {\n @Prop({ default: null }) deviceData!: IDevice;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n /**\n * Returns list of all present systems where can be enabled external measurements.\n */\n get externalMeasurementsSystems(): EnergyCircleType[] {\n return this.filterPresentExternalMeasurementsSystems(this.deviceData, allEnergyCircleTypes);\n }\n\n /**\n * Returns sum of all variables in systems where external measurements was enabled.\n */\n get sumOfAllEnabledExternalMeasurementsSystemsValues(): number {\n const sum = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n const componentsExternalMeasurements = this.getSystemComponentsWithEnabledExternalMeasurements(this.deviceData, systemType);\n const componentsCalculateAsExternalMeasurement = this.getSystemComponentsWithCalculateAsExternalMeasurements(this.deviceData, systemType);\n\n // combine components with external_energy_measurement and components with calculate_as_external_device\n // to get all components that need to be subtracted from the sum of house values\n return this.getSumOfSystemInstancesValues({\n systemInstances: { ...componentsExternalMeasurements, ...componentsCalculateAsExternalMeasurement },\n measurements: this.measurements,\n }) ?? 0;\n });\n return sum.reduce((acc: number, val: number) => acc + val, 0);\n }\n\n /**\n * Returns all mapped systems that have either external_energy_measurement or calculate_as_external_device enabled.\n */\n get measurementsOfAllEnabledExternalMeasurementsSystems(): Record[] {\n const measurements = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n const componentsExternalMeasurements = this.getSystemComponentsWithEnabledExternalMeasurements(this.deviceData, systemType);\n const componentsCalculateAsExternalMeasurement = this.getSystemComponentsWithCalculateAsExternalMeasurements(this.deviceData, systemType);\n\n // combine components with external_energy_measurement and components with calculate_as_external_device\n // to get all components that need to be subtracted from the sum of house values\n return { ...componentsExternalMeasurements, ...componentsCalculateAsExternalMeasurement };\n });\n return measurements;\n }\n\n getSystems(device: any): Record {\n return allEnergyCircleTypes.reduce((acc: any, type: EnergyCircleType) => {\n return { ...acc, [type]: device.data.meta.controllerMappings[type] };\n }, {});\n }\n\n getSystem(device: any, type: EnergyCircleType): Record {\n return device.data.meta.controllerMappings[type];\n }\n\n getSystemComponents(device: any, type: EnergyCircleType): Record {\n return device.data.meta.controllerMappings[type]?.components ?? {};\n }\n\n getSystemKeys(device: any, type: EnergyCircleType): string[] {\n if (!this.getSystemCount(device, type)) return [];\n return Object.keys(this.getSystemComponents(device, type));\n }\n\n getTitle(device: any, type: EnergyCircleType, index: number): string | undefined {\n return this.getVariableMappings(device, type, 'title')[index];\n }\n\n getSystemCount(device: any, type: EnergyCircleType): number {\n return device.data.meta.controllerMappings?.[type]?.count ?? 0;\n }\n\n isSystemPresent(device: any, type: EnergyCircleType): boolean {\n return this.getSystemCount(device, type) > 0;\n }\n\n filterPresentSystems(device: any, types: EnergyCircleType[]): EnergyCircleType[] {\n return types.filter((type) => this.getSystemCount(device, type) > 0);\n }\n\n filterPresentExternalMeasurementsSystems(device: any, types: EnergyCircleType[]): EnergyCircleType[] {\n const presentSystems = this.filterPresentSystems(device, types);\n return presentSystems.filter((type: EnergyCircleType) => type !== EnergyCircleType.house && isConsumer(type));\n }\n\n filterComponentsWithEnabledExternalMeasurements(components: Record): Record {\n const list = Object.entries(components).filter(([_, mappings]: [string, Record]) => {\n return mappings.external_energy_measurement;\n });\n return list.reduce((\n acc: Record>, [instance, mappings]: [string, Record],\n ) => {\n return { ...acc, [instance]: mappings };\n }, {});\n }\n\n getSystemComponentsWithCalculateAsExternalMeasurements(device: any, type: EnergyCircleType): Record {\n const components = this.getSystemComponents(device, type);\n return this.filterComponentsWithCalculateAsExternalMeasurements(components);\n }\n\n filterComponentsWithCalculateAsExternalMeasurements(components: Record): Record {\n const list = Object.entries(components).filter(([_, mappings]: [string, Record]) => {\n return mappings.calculate_as_external_device;\n });\n return list.reduce((\n acc: Record>, [instance, mappings]: [string, Record],\n ) => {\n return { ...acc, [instance]: mappings };\n }, {});\n }\n\n getSystemComponentsWithEnabledExternalMeasurements(device: any, type: EnergyCircleType): Record {\n const components = this.getSystemComponents(device, type);\n return this.filterComponentsWithEnabledExternalMeasurements(components);\n }\n\n filterComponentsWithEnabledExternalMeasurementsList(components: Record): string[] {\n const list = Object.entries(components).filter(([_, mappings]: [string, Record]) => {\n return mappings.external_energy_measurement;\n });\n return list.map(([instance, _]: [string, Record]) => instance);\n }\n\n getSystemInstancesWithEnabledExternalMeasurements(device: any, type: EnergyCircleType): string[] {\n const components = this.getSystemComponents(device, type);\n return this.filterComponentsWithEnabledExternalMeasurementsList(components);\n }\n\n getVariableValue(device: any, type: EnergyCircleType, instance: string, variableToLookFor: string) {\n return device.data.meta.controllerMappings[type].components[instance][variableToLookFor];\n }\n\n getVariableMappings(\n device: any,\n type: EnergyCircleType,\n variableToLookFor = 'power',\n ): (string | undefined)[] {\n return this.getSystemCount(device, type) > 0\n ? Object.values(this.getSystemComponents(device, type)).map((e: any) => e[variableToLookFor])\n : [];\n }\n\n getBatterySocMappings(device: any): (string | undefined)[] {\n return this.getVariableMappings(device, EnergyCircleType.battery, 'soc');\n }\n\n getErrorWarningMappings(device: any, type: EnergyCircleType): (string | undefined)[] {\n return this.getVariableMappings(device, type, 'error');\n }\n\n getAlternativeArrowDirection(value?: number): ArrowDirection | undefined {\n return value !== null && value !== undefined && value > 0\n ? ArrowDirection.awayFromCenter\n : undefined;\n }\n\n getAlternativeLineColors(value?: number): EnergyLineColors {\n return value != null && value !== undefined && value > 0\n ? energyConsumerColors\n : energyGreyColors;\n }\n\n getAlternativeVariableMappings(device: any, type: EnergyCircleType): (string | undefined)[] {\n return systemsWithAlternativeValues.includes(type)\n ? this.getVariableMappings(device, type, 'target_power')\n : [];\n }\n\n /**\n * Returns the prediction data points for the given [type] of system\n * and [suffix]. The [suffix] specifies the type of variable, e.g.\n * \"power\", \"energy\", ... without \"_\". The underscore \"_\" is added\n * automatically.\n *\n * The resulting `Map` looks e.g. like this:\n * {\n * \"pv1\": [[, ], ...],\n * }\n */\n predictionDataPoints(\n device: any,\n type: EnergyCircleType,\n suffix: string,\n ): Map {\n return new Map(\n this.getSystemKeys(device, type).map((k) => [\n k,\n device.data.meta.charts.prediction.data[type][`${k}_${suffix}`] ?? [],\n ]),\n );\n }\n\n /**\n * Calculate sum of system instances mappedVariable.\n * @param systemInstances\n * @param mappedVariable\n * @param measurements\n */\n getSumOfSystemInstancesValues(\n { systemInstances, mappedVariable = 'power', measurements }: IGetSumOfSystemInstancesValuesParams,\n ): number | undefined {\n const values = Object.values(systemInstances).map((systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return measurements[measurement];\n });\n if (values.every((value: any) => typeof value !== 'number')) return;\n\n return values.reduce((acc: number, value: any) => {\n const valueNumber = typeof value === 'number' ? value : 0;\n return acc + valueNumber;\n }, 0);\n }\n\n getAverageOfSystemInstancesValues(\n { systemInstances, mappedVariable = 'power', measurements }: IGetSumOfSystemInstancesValuesParams,\n ): number | undefined {\n const sum = this.getSumOfSystemInstancesValues({\n systemInstances, mappedVariable, measurements,\n });\n const count = Object.keys(systemInstances).length;\n\n return typeof sum === 'number' ? sum / count : undefined;\n }\n\n /**\n * Calculate sum of system instances values which present in energyDataByPeriodResponse.\n * @param systemType one of the systems keys: pv, generator...\n * @param energyDataByPeriodResponse\n * @param device EMS or Energy device\n */\n getSumOfExternalMeasurementsSystemInstancesValues(\n systemType: EnergyCircleType,\n energyDataByPeriodResponse: EnergyDataByPeriodResponse | null,\n device: any,\n ): number | undefined {\n if (!energyDataByPeriodResponse) return undefined;\n\n const instancesWithEnabledExternalMeasurements = this.getSystemKeys(device, systemType);\n const systemInstances = energyDataByPeriodResponse.energies[systemType];\n return systemInstances\n ? instancesWithEnabledExternalMeasurements.map((type: any) => systemInstances[type] ?? 0).reduce((acc: number, el: number) => acc + el, 0)\n : undefined;\n }\n\n getHouseValue(value: any, externalMeasurementsSum: number) {\n if (typeof value === 'number') {\n const calculatedValue = value - externalMeasurementsSum;\n return calculatedValue >= 0 ? calculatedValue : value;\n } else return undefined;\n }\n\n getElectricHeatingValue(\n { power, temperature, status }: { power: any; temperature: any; status: boolean },\n ): { v?: number; u?: Unit; isTemperature?: boolean } {\n const hasPower = !isNil(power);\n const hasTemperature = !isNil(temperature);\n\n if (!hasPower && !hasTemperature) return { v: undefined, u: undefined, isTemperature: undefined };\n else {\n return {\n v: !status ? power : temperature,\n u: !status ? undefined : new Unit('°C'),\n isTemperature: status,\n };\n }\n }\n}\n","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowProductionChart.vue?vue&type=style&index=0&id=772a5e84&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[{ online: _vm.status }, 'status-indicator']})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent StatusIndicator of the project\n * Used in AppBar.vue\n * Shows current mqtt connection\n */\n@Component\nexport default class StatusIndicator extends Vue {\n @Prop(Boolean) status!: boolean;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatusIndicator.vue?vue&type=template&id=b17db72a&scoped=true&\"\nimport script from \"./StatusIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatusIndicator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StatusIndicator.vue?vue&type=style&index=0&id=b17db72a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b17db72a\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=style&index=0&id=555a101c&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"error-page primary\",style:(`background-image: url(${_vm.currentBg})`)},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\",\"offset\":\"1\"}},[_c('div',{staticClass:\"text-section\"},[_c('p',[_vm._v(\"OOPS\")]),_c('p',[_vm._v(\"404 - Page not found\")]),_c('p',[_vm._v(\"Either something went wrong or the page does not exist anymore.\")])]),_c('div',{staticClass:\"d-flex justify-center pt-16\"},[_c('v-btn',{staticClass:\"accent\",attrs:{\"rounded\":\"\",\"elevation\":\"0\",\"width\":\"300\"},on:{\"click\":function($event){return _vm.$router.push({ name: 'Home' })}}},[_vm._v(\" Home \")])],1)]),_c('v-col')],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch } from 'vue-property-decorator';\n\n/**\n * 404 page that shows if path is not found\n */\n@Component\nexport default class Page404 extends Vue {\n light = require('../assets/images/error-page-bg-light.png')\n dark = require('../assets/images/error-page-bg-dark.png')\n\n currentBg = ''\n\n // check current theme state and change background image of 404 page\n @Watch('$vuetify.theme.dark')\n onThemeChange(val: any) {\n if (val) this.currentBg = this.dark;\n else this.currentBg = this.light;\n }\n\n // load dark or light background image for 404 page regarding of current theme state\n mounted() {\n if (this.$vuetify.theme.dark) this.currentBg = this.dark;\n else this.currentBg = this.light;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./404.vue?vue&type=template&id=204816c0&scoped=true&\"\nimport script from \"./404.vue?vue&type=script&lang=ts&\"\nexport * from \"./404.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./404.vue?vue&type=style&index=0&id=204816c0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"204816c0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary home-view app-navigation-view\"},[(!_vm.projectsLoader)?_c('MapBanner',{attrs:{\"projects\":_vm.projects}}):_c('v-card',{staticClass:\"d-flex align-center justify-center\",attrs:{\"height\":\"40vh\",\"color\":\"deviceBackground\",\"flat\":\"\"}},[_c('CircleSpinner',{staticClass:\"circle-spinner\",attrs:{\"color\":\"accent\",\"size\":60}})],1),(!_vm.projectsLoader)?_c('ProjectsListFlexGrid'):_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((8),function(item){return _c('v-col',{key:item,attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('ProjectItemPlaceholder')],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"pa-0 project-list-flex\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.filteredProjects),function(project,projectIndex){return _c('v-col',{key:projectIndex,staticClass:\"project-list-item\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-lazy',{attrs:{\"min-height\":\"340\",\"transition\":\"fade-transition\"}},[_c('ProjectItem',{attrs:{\"project\":project}})],1)],1)}),1),_c('LynusPopup',{attrs:{\"showPopup\":_vm.showPopup},on:{\"closeLynusPopup\":_vm.handleClose},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Neue App \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column justify-center align-center pa-6\",staticStyle:{\"height\":\"200px\"}},[_vm._v(\" Wir haben eine Beta der neuen Web App veröffentlicht. Zum ausprobieren klicken Sie auf den folgenden Link. \"),_c('a',{staticStyle:{\"color\":\"#3a9cd7\"},attrs:{\"href\":\"https://app.lynus.io/\",\"target\":\"_blank\"},on:{\"click\":() => {\n _vm.console.log('clicked');\n }}},[_vm._v(\" https://app.lynus.io/ \")]),_c('div',{staticClass:\"pt-4 d-flex justify-end\",staticStyle:{\"width\":\"100%\"}},[_c('v-btn',{staticClass:\"mr-2\",on:{\"click\":_vm.handleClose}},[_vm._v(\" Nein danke \")])],1)])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-card',{staticClass:\"project-item primary\",attrs:{\"flat\":\"\",\"height\":_vm.breakpoints,\"link\":\"\"},on:{\"click\":_vm.openProject,\"mouseenter\":function($event){_vm.onCard = true},\"mouseleave\":function($event){_vm.onCard = false}}},[_c('v-card',{staticClass:\"project-item-wrapper\",style:(_vm.extended ? `height: ${_vm.itemHeight + _vm.extension}px;` + 'transition: height 0.3s ease-out;' : `height: ${_vm.itemHeight}px;` + 'transition: height 0.3s ease-out;'),attrs:{\"flat\":\"\",\"elevation\":\"1\",\"color\":\"projectBackground\"}},[_c('div',{staticClass:\"project-item-title\"},[_vm._v(_vm._s(_vm.project.name))]),_c('div',{staticClass:\"image\",style:(`height: ${_vm.styles.image}px`)},[(_vm.project.meta.imageId)?_c('v-img',{staticClass:\"image\",attrs:{\"src\":`https://static.lynus.io/assets/${_vm.project.meta.imageId}`,\"alt\":\"project-logo\",\"position\":\"center center\",\"height\":_vm.styles.image,\"contain\":\"\"}}):_c('PlaceHolderImage',{staticStyle:{\"width\":\"80%\"},attrs:{\"height\":_vm.styles.image}})],1),_c('div',{staticClass:\"project-item-content\"},[_c('div',{staticClass:\"content\"},[(_vm.showProjectInfo)?_c('div',{staticClass:\"information\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"location\",\"size\":_vm.styles.icon,\"color\":\"theme\"}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.projectLocationName))])],1)]),_c('div',[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":_vm.statusIcons[_vm.status[1]].icon,\"color\":\"theme\",\"size\":_vm.styles.icon}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.statusIcons[_vm.status[1]].text))])],1)])]):_vm._e()]),_c('v-expand-transition',[(_vm.extended)?_c('div',{staticClass:\"additional-info d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-space-around mt-2\"},[_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.batteryCapacity'))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.projectBatteryCapacity))])]),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.inverterPower'))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.pvPower))])])]),(_vm.wizardState && _vm.wizardDoneDate)?_c('div',{staticClass:\"d-flex flex-column align-center mt-3\"},[_c('div',{staticStyle:{\"font-size\":\"14px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.form.setupDate'))+\" \")]),_c('span',[_vm._v(_vm._s(_vm.wizardDoneDate))])]):_vm._e()])]):_vm._e()])],1)])],1),_c('div',{staticClass:\"extension-arrow\",class:{ show: _vm.onCard || _vm.onButton || _vm.extended }},[_c('v-btn',{attrs:{\"color\":\"primary\",\"height\":\"35px\",\"width\":\"35px\",\"fab\":\"\"},on:{\"mouseenter\":function($event){_vm.onButton = true},\"mouseleave\":function($event){_vm.onButton = false},\"click\":_vm.toggleExtension}},[_c('lynus-icon',{attrs:{\"name\":_vm.extended ? 'arrow-2_up' : 'arrow-2_down',\"color\":\"theme\",\"size\":\"22\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"status-indicator-line d-flex justify-center align-center\"},[_vm._v(\" pending \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class StatusIndicatorLine extends Vue {\n @Prop(Boolean) status!: boolean;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicatorLine.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicatorLine.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatusIndicatorLine.vue?vue&type=template&id=6c301239&scoped=true&\"\nimport script from \"./StatusIndicatorLine.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatusIndicatorLine.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StatusIndicatorLine.vue?vue&type=style&index=0&id=6c301239&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c301239\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport PlaceHolderImage from '@/ui/components/components/PlaceHolderImage.vue';\nimport StatusIndicatorLine from '@/ui/components/lists/ProjectsList/StatusIndicatorLine.vue';\nimport { envProjectOpenSubpage, envShowProjectInfo } from '@/utils/env';\nimport { IProject } from '@/types/project.types';\nimport { buildCommaSeparatedString, formatDate, roundNumber } from '@/utils/utilsFunctions';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { Action, Getter } from 'vuex-class';\n\n/**\n * Component that represent project item\n */\n@Component({\n components: {\n StatusIndicatorLine,\n PlaceHolderImage,\n },\n})\nexport default class ProjectItem extends Vue {\n @Prop({ default: null }) project!: IProject;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n readonly showProjectInfo: boolean = envShowProjectInfo;\n onCard = false;\n onButton = false;\n extended = false;\n\n savedMeasurements: any = {};\n\n /**\n * Defines current project city name\n * @return {string} city name\n */\n get projectLocationName(): string {\n const displayName = this.project.meta?.location?.display_name;\n if (displayName) {\n const partsOfName = displayName.split(',');\n return buildCommaSeparatedString(partsOfName, 4);\n }\n return '';\n }\n\n get wizardState() {\n return !!this.project?.meta?.wasInstallationWizardCompleted;\n }\n\n get wizardDoneDate() {\n const date = this.project?.meta.wizard_completed_at;\n return date ? formatDate(new Date(date)) : '';\n }\n\n get pvPower() {\n const pvPowerVariable = 'prgEnergy.fbI.rMaxPowerInverter';\n const power = this.savedMeasurements[pvPowerVariable] as number ?? 0;\n return power ? `${roundNumber(power / 1000, 2)} kW` : '0.0 kW';\n }\n\n get projectBatteryCapacity() {\n let totalPower = 0;\n for (let i = 1; i <= 20; i++) {\n const powerVariable = `prgEnergy.lrMaxCapacityBattery${i}`;\n totalPower += this.savedMeasurements[powerVariable] as number ?? 0;\n }\n return `${roundNumber(totalPower, 2)} kWh`;\n }\n\n itemHeight = 340;\n\n get extension() {\n const extensionValue = this.hasWizardDoneDate ? 120 : 80;\n return this.extended ? extensionValue : 0;\n }\n\n get hasWizardDoneDate() {\n return !!this.project?.meta.wizard_completed_at;\n }\n\n /**\n * Define height of element according to window size\n * @return {number} height of project item\n */\n get breakpoints(): number {\n return this.itemHeight + this.extension;\n }\n\n /**\n * Define project image, icons sizes according to window size\n * @return {object} image, icons sizes\n */\n get styles(): object {\n return {\n image: 210,\n icon: 22,\n };\n }\n get statusIcons() {\n return {\n ok: {\n icon: 'ok',\n text: 'ok',\n },\n warning: {\n icon: 'warning',\n text: 'warning',\n },\n error: {\n icon: 'fault',\n text: 'error',\n },\n };\n }\n\n /**\n * Checks projects warnings, errors and define status according to them\n * @return {array} current status\n */\n get status(): any {\n const { errors, warnings } = this.project?.stats as any;\n const arr: any = [[errors, 'error'], [warnings, 'warning']];\n return arr.find((el: any) => el[0]) || [null, 'ok'];\n }\n\n async toggleExtension() {\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n this.savedMeasurements = { ...this.measurements };\n this.extended = !this.extended;\n }\n\n openProject() {\n this.$store.commit('router/setScrollPosition', {\n x: window.scrollX,\n y: window.scrollY,\n });\n this.$router.push(`/projects/${this.project.id}${envProjectOpenSubpage}`);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectItem.vue?vue&type=template&id=6c7443f8&scoped=true&\"\nimport script from \"./ProjectItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProjectItem.vue?vue&type=style&index=0&id=6c7443f8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c7443f8\",\n null\n \n)\n\nexport default component.exports","import { IProject, IProjectControl, IProjectFilters, IProjectMeta } from '@/types/project.types';\n\n/**\n * @param projectList list of all projects as IProject[]\n * @param filterName filter as string\n * @returns list of projects filtered by name\n */\nexport function projectsFilteredByName(projectList: IProject[], filterName: string) {\n if (!filterName) return projectList;\n return projectList.filter((project: IProject) => {\n return project.name.toLowerCase().includes(filterName.toLowerCase());\n });\n}\n\n/**\n * @param projectList list of all projects as IProject[]\n * @param filterName filter as string\n * @returns list of projects filtered by controller project id\n */\nexport function projectsFilteredByControllerProjectId(projectList: IProject[], filterName: string) {\n if (!filterName) return projectList;\n return projectList.filter((project: IProject) => {\n return project.meta?.controller?.projectId.toLowerCase().includes(filterName.toLowerCase());\n });\n}\n\n/**\n * @param project project as IProject\n * @param filterName filter as string\n * @returns if project name or controller projectId is included in Project Object\n */\nexport function projectsFilteredByIdAndName(project: IProject, filterName: string) {\n if (!filterName) return project;\n return project.name.toLowerCase().includes(filterName.toLowerCase()) ||\n project.meta?.controller?.projectId?.toLowerCase().includes(filterName.toLowerCase());\n}\n\n/**\n * @param project project as IProject\n * @param filterName filter as string\n * @returns list of projects filtered based on the selected project status\n */\nexport function filterProjectsByStatus(project: IProject, status: string) {\n if (!status || status === '') return project;\n if (!project.stats) return false;\n switch (status) {\n case 'ok':\n return project.stats.warnings === 0 && project.stats.errors === 0;\n case 'suspend':\n return project.stats.warnings !== 0 && project.stats.errors === 0;\n case 'error':\n return project.stats.errors !== 0;\n }\n}\n\n/**\n * @param project project as IProject\n * @param key key of IProjectControl\n * @param filter filter as string\n * @returns if filter matches the controller info\n */\nexport function fuctionFilterByControllerInfo(project: IProject, key: keyof IProjectControl, filter: string) {\n if (project.meta.controller === undefined) return false;\n return project.meta.controller[key] === filter;\n}\n\n/**\n * Filter projects based on the given filters (projectTags, projectName, projectStatus, systemType, batterySystemType, projectId)\n * @param projectList list of all projects as IProject[]\n * @param projectFilters filter object as IProjectFilters\n * @returns list of projects filtered by the given filters\n */\nexport function filterProjects(projectList: IProject[], projectFilters: IProjectFilters) {\n let localProjectList = projectList;\n // check if filter for project tags is set\n if (projectFilters.projectTags !== undefined && projectFilters.projectTags.length > 0) {\n // filter project by project tags\n localProjectList = localProjectList.filter((project: IProject) => {\n const projectTags = project?.meta?.tags ?? [];\n return projectFilters.projectTags.some((tag: string) => projectTags.includes(tag)); // if tagsForFilter is [], it will return true\n });\n }\n // check if filter for project name is set\n if (projectFilters.projectName && projectFilters.projectName !== '') {\n // filter project by project name or controller project id\n localProjectList = localProjectList.filter((project: IProject) => {\n return projectsFilteredByIdAndName(project, projectFilters.projectName);\n });\n }\n // check if filter for project status is set\n if (projectFilters.projectStatus !== undefined && projectFilters.projectStatus !== '') {\n const status = projectFilters.projectStatus ?? '';\n // filter project by project status\n localProjectList = localProjectList.filter((project: IProject) => {\n return filterProjectsByStatus(project, status);\n });\n }\n // check if system type filter is set\n if (projectFilters.systemType !== undefined && projectFilters.systemType !== '') {\n // filter project by system type\n localProjectList = localProjectList.filter((project: IProject) => {\n return fuctionFilterByControllerInfo(project, 'batterySystemType', projectFilters.systemType ?? '');\n });\n }\n // check if battery system type filter is set\n if (projectFilters.batterySystemType !== undefined && projectFilters.batterySystemType !== '') {\n // filter project by battery system type (deyetype)\n localProjectList = localProjectList.filter((project: IProject) => {\n return fuctionFilterByControllerInfo(project, 'deyeType', projectFilters.batterySystemType ?? '');\n });\n }\n return localProjectList;\n}\n","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport ProjectItem from '@/ui/components/components/ProjectItem.vue';\nimport { IProject } from '@/types/project.types';\nimport { filterProjects } from '@/utils/filterUtils';\nimport LynusPopup from '@/ui/components/components/LynusPopup.vue';\n\n\n/**\n * Component that represent all projects in Flex grid.\n * Used in Home page.\n */\n@Component({\n components: {\n ProjectItem,\n LynusPopup\n },\n})\nexport default class ProjectsListFlexGrid extends Vue {\n @State('projects') projectsState!: any;\n @Getter('projects/projects') projects!: IProject[];\n\n showPopup = false;\n localStorageKey = 'lynusNewAppPopup';\n\n get filteredProjects() {\n const { projectFilters } = this.projectsState;\n return filterProjects(this.projects, projectFilters) ?? [];\n }\n\n handleClose() {\n this.showPopup = false;\n }\n\n mounted() {\n const lastShown = localStorage.getItem(this.localStorageKey);\n const oneWeek = 7 * 24 * 60 * 60 * 1000; // One week in milliseconds\n const now = new Date().getTime();\n\n // Check if the popup was never shown or if a week has passed since last shown\n if (!lastShown || now - parseInt(lastShown) > oneWeek) {\n setTimeout(() => {\n this.showPopup = true;\n // Update localStorage with the current timestamp\n localStorage.setItem(this.localStorageKey, now.toString());\n }, 3000);\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=de60dfa2&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=de60dfa2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de60dfa2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-column justify-end\",staticStyle:{\"height\":\"400px\"}},[_c('v-card',{staticStyle:{\"border-radius\":\"8px\"},attrs:{\"flat\":\"\",\"color\":\"deviceBackground\",\"height\":\"360\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class ProjectItemPlaceholder extends Vue {}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectItemPlaceholder.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectItemPlaceholder.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectItemPlaceholder.vue?vue&type=template&id=42af4c7e&\"\nimport script from \"./ProjectItemPlaceholder.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectItemPlaceholder.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport MapBanner from '@/ui/components/components/MapBanner.vue';\nimport CreateProject from '@/ui/components/modals/CreateProject.vue';\nimport ProjectsListFlexGrid from '@/ui/components/lists/ProjectsListFlexGrid/index.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ProjectItemPlaceholder\n from '@/ui/components/lists/ProjectsListFlexGrid/ProjectItemPlaceholder.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IProject } from '@/types/project.types';\n\nComponent.registerHooks(['beforeRouteEnter']);\n\n/**\n * Home page that shows projects\n */\n@Component({\n components: {\n MapBanner,\n CreateProject,\n ProjectsListFlexGrid,\n CircleSpinner,\n ProjectItemPlaceholder,\n },\n})\nexport default class Home extends Vue {\n @State('projects') projectsState!: IProjectsState;\n @Action('projects/loadProjects') loadProjects!: () => Promise;\n @Mutation('router/setHomeDataLoaded') setHomeDataLoaded!: (data: boolean) => void;\n @Getter('router/scrollPosition') scrollPosition!: { x: number; y: number };\n @Getter('router/homeDataLoaded') homeDataLoaded!: boolean;\n @Getter('projects/projects') projects!: IProject[];\n\n @Watch('homeDataLoaded')\n onHomeDataLoaded() {\n if (this.homeDataLoaded && !this.projectsState.projectsLoader) {\n setTimeout(() => {\n this.scrollToSavedPosition();\n }, 100);\n }\n }\n\n get projectsLoader() {\n return this.projectsState.projectsLoader;\n }\n\n async created() {\n await this.loadProjects();\n }\n\n scrollToSavedPosition() {\n const savedPosition = this.scrollPosition;\n window.scrollTo({\n top: savedPosition.y,\n left: savedPosition.x,\n behavior: 'smooth',\n });\n }\n\n beforeDestroy() {\n this.setHomeDataLoaded(false);\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=0bf248a3&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary project-workbench\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"show-arrows\":\"\"},model:{value:(_vm.workbenchCurrentTab),callback:function ($$v) {_vm.workbenchCurrentTab=$$v},expression:\"workbenchCurrentTab\"}},_vm._l((_vm.workbenchFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.tabName)+\" \")])}),1),_c('v-tabs-items',{attrs:{\"touchless\":true},model:{value:(_vm.workbenchCurrentTab),callback:function ($$v) {_vm.workbenchCurrentTab=$$v},expression:\"workbenchCurrentTab\"}},_vm._l((_vm.workbenchFiltered),function(item,index){return _c('v-tab-item',{key:`c-${index}`,staticClass:\"primary\"},[(_vm.actualDevicesLoaded)?_c('v-col',{staticClass:\"px-0\",staticStyle:{\"overflow\":\"auto\"}},[(_vm.workbenchCurrentTab === index)?_c(item.table,_vm._b({tag:\"component\"},'component',{ itemsPerPage: _vm.itemCountPerPage },false)):_vm._e()],1):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"elevation-0 primary devices-table\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredBySearch,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.currentPage,\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.data.type))]),_c('td',[_vm._v(_vm._s(_vm.deviceRoomName(item.collection_id)))]),_c('td',{staticClass:\"d-flex align-center\"},[_c('ManageDevice',{attrs:{\"form-title\":_vm.$t('modals.manageDevice.editDeviceTitle'),\"device-data\":item},on:{\"handleControl\":_vm.editControl}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"settings\",\"size\":\"20\"}})],1)])],1),(!_vm.excludedDevices.includes(item.data.type))?_c('DeleteModalForm',{attrs:{\"color\":\"accent\",\"deletedItemName\":item.name},on:{\"deleteHandler\":function($event){return _vm.deleteControlHandle(item)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)])],1):_vm._e()],1)])}),0)]}}])}),_c('div',{staticStyle:{\"max-width\":\"600px\",\"margin\":\"auto\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.pageNumber},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Getter, Action, State } from 'vuex-class';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageDevice from '@/ui/components/modals/ManageDevice/index.vue';\nimport { calculatePageCount } from '@/utils/utilsFunctions';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IDevice, IDevicesTypes } from '@/types/devices.types';\n\n/**\n * Component that shows table of devices\n */\n@Component({\n components: {\n DeleteModalForm,\n ManageDevice,\n },\n})\nexport default class DevicesTable extends Vue {\n @Prop({ default: 100 }) itemsPerPage !: number;\n @State('devices') devicesState!: IDevicesState;\n @Getter('devices/devices') devices!: IDevice[];\n @Getter('devices/devicesTypes') devicesTypes!: IDevicesTypes;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('devices/deleteDevice') deleteDevice!: (control: IDevice) => void;\n\n excludedDevices = ['Robot', 'SurveyClient'];\n currentPage = 1;\n\n get pageNumber() {\n return calculatePageCount(this.filteredBySearch.length, this.itemsPerPage);\n }\n\n get headers() {\n return [\n { text: this.$t('uiComponents.workbenchTable.name'), align: 'start', value: 'name' },\n { text: this.$t('uiComponents.workbenchTable.type'), value: 'data.type' },\n { text: this.$t('uiComponents.workbenchTable.area'), value: '' },\n { text: this.$t('uiComponents.workbenchTable.actions'), value: 'actions', sortable: false },\n ];\n }\n\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n get filterByDevices() {\n const devicesTypes = Object.keys(this.devicesTypes);\n return this.devices.filter((device: IDevice) => devicesTypes.includes(device.data.type));\n }\n /**\n * Filters the existing list of devices by type, name, area affiliation\n * @return filtered devices\n */\n get filteredBySearch() {\n return this.devicesFilter ? this.filterByDevices.filter((device: IDevice) => `${device.name} ${this.deviceRoomName(device.collection_id)} ${device.data.type}`\n .toLowerCase().includes(this.devicesFilter.toLowerCase())) :\n this.filterByDevices;\n }\n /**\n * Defines the name of the room to which the device belongs\n * @param roomId id of the room\n * @return room name if room has named or empty string\n */\n deviceRoomName(roomId: string) {\n if (this.rooms.length) {\n const room = this.rooms.find((room: IRoom) => room.id === roomId);\n return room?.name || null;\n }\n return '';\n }\n\n editControl(payload: IDevice) {\n this.updateDevice({ device: payload, skipReport: false });\n }\n deleteControlHandle(control: IDevice) {\n this.deleteDevice(control);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DevicesTable.vue?vue&type=template&id=41c7ee76&\"\nimport script from \"./DevicesTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DevicesTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DevicesTable.vue?vue&type=style&index=0&id=41c7ee76&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"elevation-0 primary ai-ml-table\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredBySearch,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.currentPage,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.data.type))]),_c('td',[_vm._v(_vm._s(_vm.deviceRoomName(item.collection_id)))]),_c('td',{staticClass:\"d-flex align-center\"},[_c('ManageAnomalyDetection',{attrs:{\"form-title\":_vm.$t('modals.manageAnomalyDetection.editAnomalyDetectionTitle'),\"device-data\":item},on:{\"handleControl\":_vm.editControl}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"settings\",\"size\":\"20\"}})],1)])],1),_c('DeleteModalForm',{attrs:{\"color\":\"accent\",\"deletedItemName\":item.name},on:{\"deleteHandler\":function($event){return _vm.deleteControlHandle(item)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)])],1)],1)])}),0)]}}])}),_c('div',{staticStyle:{\"max-width\":\"600px\",\"margin\":\"auto\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.pageNumber},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageAnomalyDetection from '@/ui/components/modals/ManageAnomalyDetection/index.vue';\nimport { calculatePageCount } from '@/utils/utilsFunctions';\nimport Workbench from '@/ui/views/Project/Workbench.vue';\n\n/**\n * Component that shows table of Anomaly Detection devices\n */\n@Component({\n components: {\n DeleteModalForm,\n ManageAnomalyDetection,\n },\n})\nexport default class AnomalyDetectionTable extends Vue {\n @Prop({ default: 100 }) itemsPerPage !: number;\n @State('devices') devicesState!: any;\n @Getter('anomalyDetection/anomalyDetectionDevices') anomalyDetectionDevices!: any;\n @Getter('rooms/rooms') rooms!: any;\n @Action('mpc/updateMPC') updateMPC!: (mpc: any) => Promise;\n @Action('mpc/deleteMPC') deleteMPC!: (mpcId: any) => Promise;\n\n currentPage = 1;\n\n get pageNumber() {\n return calculatePageCount(this.filteredBySearch.length, this.itemsPerPage);\n }\n\n get headers() {\n return [\n { text: this.$t('uiComponents.workbenchTable.name'), align: 'start', value: 'name' },\n { text: this.$t('uiComponents.workbenchTable.type'), value: 'data.type' },\n { text: this.$t('uiComponents.workbenchTable.area'), value: '' },\n { text: this.$t('uiComponents.workbenchTable.actions'), value: 'actions', sortable: false },\n ];\n }\n\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n /**\n * Filters the existing list of Anomaly Detection devices by type, name, area affiliation\n * @return filtered Anomaly Detection devices\n */\n get filteredBySearch() {\n return this.devicesFilter ? this.anomalyDetectionDevices.filter((device: any) => `${device.name} ${this.deviceRoomName(device.collection_id)} ${device.data.type}`\n .toLowerCase().includes(this.devicesFilter.toLowerCase())) :\n this.anomalyDetectionDevices;\n }\n\n /**\n * Defines the name of the room to which the Anomaly Detection device belongs\n * @param roomId id of the room\n * @return room name if room has named or empty string\n */\n deviceRoomName(roomId: any) {\n if (this.rooms.length) {\n const room: any = this.rooms.find((room: any) => room.id === roomId);\n return room?.name || null;\n }\n return '';\n }\n\n editControl(payload: any) {\n this.updateMPC(payload);\n }\n deleteControlHandle(control: any) {\n this.deleteMPC(control);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetectionTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetectionTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnomalyDetectionTable.vue?vue&type=template&id=11ce1b88&\"\nimport script from \"./AnomalyDetectionTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnomalyDetectionTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnomalyDetectionTable.vue?vue&type=style&index=0&id=11ce1b88&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"elevation-0 primary charts-table\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredBySearch,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.currentPage,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.data.type))]),_c('td',[_vm._v(_vm._s(_vm.deviceRoomName(item.collection_id)))]),_c('td',{staticClass:\"d-flex align-center\"},[_c('ManageCharts',{attrs:{\"form-title\":\"Edit Chart\",\"device-data\":item,\"model\":item},on:{\"handleControl\":_vm.editControl}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"settings\",\"size\":\"20\"}})],1)])],1),_c('DeleteModalForm',{attrs:{\"color\":\"accent\",\"deletedItemName\":item.name},on:{\"deleteHandler\":function($event){return _vm.deleteControlHandle(item)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)])],1)],1)])}),0)]}}])}),_c('div',{staticStyle:{\"max-width\":\"600px\",\"margin\":\"auto\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.pageNumber},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageCharts from '@/ui/components/modals/ManageChart/index.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport { calculatePageCount } from '@/utils/utilsFunctions';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that shows table of charts\n */\n@Component({\n components: {\n DeleteModalForm,\n ManageCharts,\n },\n})\nexport default class ChartsTable extends Vue {\n @Prop({ default: 100 }) itemsPerPage !: number;\n @State('devices') devicesState!: IDevicesState;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('charts/charts') chartsList!: IDevice[];\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('devices/deleteDevice') deleteDevice!: (control: IDevice) => void;\n\n currentPage = 1;\n\n get pageNumber() {\n return calculatePageCount(this.filteredBySearch.length, this.itemsPerPage);\n }\n\n get headers() {\n return [\n { text: this.$t('uiComponents.workbenchTable.name'), align: 'start', value: 'name' },\n { text: this.$t('uiComponents.workbenchTable.type'), value: 'data.type' },\n { text: this.$t('uiComponents.workbenchTable.area'), value: '' },\n { text: this.$t('uiComponents.workbenchTable.actions'), value: 'actions', sortable: false },\n ];\n }\n\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n /**\n * Filters the existing list of chart by type, name, area affiliation\n * @return filtered charts\n */\n get filteredBySearch() {\n return this.devicesFilter ? this.chartsList\n .filter((device: IDevice) => `${device.name} ${this.deviceRoomName(device.collection_id)} ${device.data.type}`\n .toLowerCase().includes(this.devicesFilter.toLowerCase())) :\n this.chartsList;\n }\n\n /**\n * Defines the name of the room to which the chart belongs\n * @param roomId id of the room\n * @return room name if room has named or empty string\n */\n deviceRoomName(roomId: string) {\n if (this.rooms.length) {\n const room: any = this.rooms.find((room: any) => room.id === roomId);\n return room?.name || null;\n }\n return '';\n }\n\n editControl(payload: IDevice) {\n this.updateDevice({ device: payload, skipReport: false });\n }\n deleteControlHandle(control: IDevice) {\n this.deleteDevice(control);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartsTable.vue?vue&type=template&id=749b71be&\"\nimport script from \"./ChartsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartsTable.vue?vue&type=style&index=0&id=749b71be&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-data-table',{staticClass:\"elevation-0 primary charts-table\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredBySearch,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.currentPage,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.data.type))]),_c('td',[_vm._v(_vm._s(_vm.deviceRoomName(item.collection_id)))]),_c('td',{staticClass:\"d-flex align-center\"},[(!_vm.loaders[item.id])?[_c('ManageMLModel',{attrs:{\"form-title\":_vm.$t('modals.manageMLModel.editDeviceTitle'),\"device-data\":item},on:{\"handleControl\":_vm.editControl}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"settings\",\"size\":\"20\"}})],1)])],1),_c('DeleteModalForm',{attrs:{\"color\":\"accent\",\"deletedItemName\":item.name},on:{\"deleteHandler\":function($event){return _vm.deleteControlHandle(item)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)])],1)]:_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\",\"loading\":\"\"}})]}}],null,true),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMS.deleteLoader'))+\"...\")])])],2)])}),0)]}}])}),_c('div',{staticStyle:{\"max-width\":\"600px\",\"margin\":\"auto\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.pageNumber},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch, Prop } from 'vue-property-decorator';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageMLModel from '@/ui/components/modals/ManageMLModel/index.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { calculatePageCount } from '@/utils/utilsFunctions';\nimport { IRoom } from '@/types/rooms.types';\nimport { IMLModel } from '@/types/mpc/mpc.types';\n\n/**\n * Component that shows table of ML Model devices\n */\n@Component({\n components: {\n ManageMLModel,\n DeleteModalForm,\n },\n})\nexport default class MPCTable extends Vue {\n @Prop({ default: 100 }) itemsPerPage !: number;\n @State('devices') devicesState!: IDevicesState;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('mpc/mpcControllers') mpcControllersList!: IMLModel[];\n @Getter('mpc/mlModelDevices') mlModelDevices!: IMLModel[];\n @Action('mpc/updateMPC') updateMPC!: (mpc: IMLModel) => Promise;\n @Action('mpc/deleteMPC') deleteMPC!: (mpc: IMLModel) => Promise;\n\n isTooltip = true\n loaders: Record = {}\n currentPage = 1;\n\n get pageNumber() {\n return calculatePageCount(this.filteredBySearch.length, this.itemsPerPage);\n }\n\n /**\n * Triggers a message when attempting to leave the page during device removal\n * @param val object, list of loaders\n */\n @Watch('loaders')\n onLoaders(val: any) {\n const count: number = Object.values(val).length;\n if (count) {\n this.addBlockedAlert();\n } else {\n this.removeBlockedAlert();\n }\n }\n\n blockedMessage(event: BeforeUnloadEvent) {\n event.returnValue = 'Are you sure you want to leave?';\n }\n addBlockedAlert() {\n window.addEventListener('beforeunload', this.blockedMessage);\n }\n removeBlockedAlert() {\n window.removeEventListener('beforeunload', this.blockedMessage);\n }\n\n get headers() {\n return [\n { text: this.$t('uiComponents.workbenchTable.name'), align: 'start', value: 'name' },\n { text: this.$t('uiComponents.workbenchTable.type'), value: 'data.type' },\n { text: this.$t('uiComponents.workbenchTable.area'), value: '' },\n { text: this.$t('uiComponents.workbenchTable.actions'), value: 'actions', sortable: false },\n ];\n }\n\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n\n /**\n * Filters the existing list of ML Model devices by type, name, area affiliation\n * @return filtered ML Model devices\n */\n get filteredBySearch() {\n return this.devicesFilter ? this.mlModelDevices\n .filter((device: IMLModel) => `${device.name} ${this.deviceRoomName(device.collection_id)} ${device.data.type}`\n .toLowerCase().includes(this.devicesFilter.toLowerCase())) :\n this.mlModelDevices;\n }\n\n /**\n * Defines the name of the room to which the device belongs\n * @param roomId id of the room\n * @return room name if room has named or empty string\n */\n deviceRoomName(roomId: string) {\n if (this.rooms.length) {\n const room: any = this.rooms.find((room: IRoom) => room.id === roomId);\n return room?.name || null;\n }\n return '';\n }\n\n editControl(payload: IMLModel) {\n this.updateMPC(payload);\n }\n async deleteControlHandle(control: IMLModel) {\n this.$set(this.loaders, control.id, true);\n await this.deleteMPC(control);\n this.$delete(this.loaders, control.id);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MPCTable.vue?vue&type=template&id=79c150e9&\"\nimport script from \"./MPCTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./MPCTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MPCTable.vue?vue&type=style&index=0&id=79c150e9&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport {\n Action, Mutation, Getter, State,\n} from 'vuex-class';\nimport DevicesTable from '@/ui/components/tables/DevicesTable.vue';\nimport AnomalyDetectionTable from '@/ui/components/tables/AnomalyDetectionTable.vue';\nimport ChartsTable from '@/ui/components/tables/ChartsTable.vue';\nimport MPCTable from '@/ui/components/tables/MPCTable.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport { envWorkbenchCategories } from '@/utils/env';\nimport { IAnomalyDetection } from '@/types/anomalyDetection.types';\nimport { IMLModel } from '@/types/mpc/mpc.types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Page for creating devices, charts, MPC devices\n */\n@Component({\n components: {\n DevicesTable,\n AnomalyDetectionTable,\n ChartsTable,\n MPCTable,\n },\n})\nexport default class Workbench extends Vue {\n @State('app') appState!: IAppState;\n @Getter('charts/charts') charts!: any;\n @Getter('mpc/mpcControllers') mpcControllers!: any;\n @Getter('anomalyDetection/anomalyDetectionDevices') anomalyDetectionDevices!: IAnomalyDetection[];\n @Getter('devices/devices') devices!: IDevice[];\n @Getter('mpc/mlModelDevices') mlModelDevices!: IMLModel[];\n @Mutation('aiml/addMLControl') addMLControl!: (payload: any) => void;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Mutation('app/setWorkbenchTab') setWorkbenchTab!: (payload: any) => void;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('mpc/fetchMPCWeatherStatus') fetchMPCWeatherStatus!: () => Promise;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n\n readonly itemCountPerPage: number = 100;\n actualDevicesLoaded = false;\n\n get workbenchCurrentTab() {\n return this.appState.workbenchCurrentTab;\n }\n set workbenchCurrentTab(value: any) {\n this.setWorkbenchTab(value);\n }\n\n get workbench() {\n return [\n {\n tab: 'Devices',\n tabName: `${(this.$t(this.localisationPath) as any)[0]} (${this.devices.length || 0})`,\n table: 'DevicesTable',\n },\n {\n tab: 'Anomaly Detection',\n tabName: `${(this.$t(this.localisationPath) as any)[1]} (${this.anomalyDetectionDevices.length || 0})`,\n table: 'AnomalyDetectionTable',\n },\n {\n tab: 'Charts',\n tabName: `${(this.$t(this.localisationPath) as any)[2]} (${this.charts.length || 0})`,\n table: 'ChartsTable',\n },\n {\n tab: 'MPC',\n tabName: `${(this.$t(this.localisationPath) as any)[3]} (${this.mlModelDevices.length || 0})`,\n table: 'MPCTable',\n },\n ];\n }\n get workbenchFiltered() {\n return this.workbench.filter((e) => envWorkbenchCategories.includes(e.tab));\n }\n\n get localisationPath() {\n return 'uiComponents.workbench.workbenchTabs';\n }\n\n async mounted() {\n this.setProjectLoader(true);\n // Load Rooms, Devices, MPC\n await Promise.allSettled([\n this.fetchRooms(this.$route.params.id),\n this.fetchDevices(this.$route.params.id),\n ]);\n // turn of loader\n this.actualDevicesLoaded = true;\n await this.fetchMPCWeatherStatus();\n await this.fetchMPCListByProject();\n this.setProjectLoader(false);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workbench.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Workbench.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Workbench.vue?vue&type=template&id=68fafa8e&\"\nimport script from \"./Workbench.vue?vue&type=script&lang=ts&\"\nexport * from \"./Workbench.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pa-10\"},[_c('v-data-table',{staticClass:\"elevation-0 primary devices-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.sortedItems,\"items-per-page\":_vm.itemsPerPage,\"page\":_vm.currentPage,\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('tr',[_c('td',{staticClass:\"pl-4\"},[_vm._v(_vm._s(item.id))]),_c('td',[_vm._v(_vm._s(item.description))]),_c('td',[_vm._v(_vm._s(_vm.serialNumberType[item.type]))]),_c('td',{class:{ 'pl-6': item.project_id === '-' }},[_vm._v(_vm._s(item.project_id))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(new Date(item.created_at).toLocaleString()))]),_c('td',{staticClass:\"d-flex align-center justify-center\"},[_c('DeleteModalForm',{attrs:{\"deletedItemName\":`${item.id}`},on:{\"deleteHandler\":function($event){return _vm.deleteSerialNumber(item.id)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"color\":\"red\",\"size\":\"20\"}})],1)],1)],1)])]}}])}),_c('div',{staticStyle:{\"max-width\":\"600px\",\"margin\":\"auto\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.pageNumber,\"circle\":\"\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { calculatePageCount } from '@/utils/utilsFunctions';\nimport { Action, Getter } from 'vuex-class';\nimport { IInverter } from '@/types/serialNumber.types';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport { TranslateResult } from 'vue-i18n';\n\n@Component({\n components: { DeleteModalForm },\n})\nexport default class SerialNumberManagement extends Vue {\n @Prop({ default: 10 }) itemsPerPage!: number;\n @Action('serialNumber/fetchInverters') fetchSerialNumbers!: () => Promise;\n @Getter('serialNumber/inverters') inverters!: IInverter[];\n @Getter('serialNumber/inverterFilter') inverterFilter!: string;\n currentPage = 1;\n sortBy: keyof IInverter = 'id';\n sortDesc = false;\n\n serialNumberType: { [key: number]: string | TranslateResult } = {\n 0: this.$t('modals.createSerialNumber.form.hybridInverter'),\n 1: this.$t('modals.createSerialNumber.form.stringInverter'),\n 2: this.$t('modals.createSerialNumber.form.chargeStation'),\n };\n\n get items() {\n return this.inverters;\n }\n\n customSort(items: IInverter[], sortBy: keyof IInverter, sortDesc: boolean) {\n return items.sort((a, b) => {\n let modifier = 1;\n if (sortDesc) modifier = -1;\n if (sortBy === 'created_at') {\n return modifier * (new Date(a[sortBy]).getTime() - new Date(b[sortBy]).getTime());\n } else {\n const aValue = a[sortBy] ?? -Infinity;\n const bValue = b[sortBy] ?? -Infinity;\n\n if (aValue < bValue) return -1 * modifier;\n if (aValue > bValue) return modifier;\n return 0;\n }\n });\n }\n\n get filteredItems() {\n let filteredBySearchItems: IInverter[] = [];\n if (!this.inverterFilter || this.inverterFilter.length === 0) {\n filteredBySearchItems = this.items;\n } else {\n filteredBySearchItems = this.items.filter((inverter: IInverter) => inverter.id.toLowerCase().includes(this.inverterFilter.toLowerCase()) ||\n inverter.project_id?.toLowerCase().includes(this.inverterFilter.toLowerCase()) ||\n inverter.description?.toLowerCase().includes(this.inverterFilter.toLowerCase()));\n }\n\n return filteredBySearchItems.map((inverter: IInverter) => {\n if (inverter.project_id === null) {\n inverter.project_id = '-';\n }\n return inverter;\n });\n }\n\n get sortedItems() {\n return this.customSort(this.filteredItems, this.sortBy, this.sortDesc);\n }\n\n get pageNumber() {\n return calculatePageCount(this.filteredItems.length, this.itemsPerPage);\n }\n\n get headers() {\n return [\n {\n text: this.$t('uiComponents.serialNumberTable.number'),\n align: 'start',\n value: 'id',\n width: '25%',\n },\n {\n text: this.$t('uiComponents.serialNumberTable.description'),\n align: 'start',\n value: 'description',\n width: '20%',\n },\n {\n text: this.$t('uiComponents.serialNumberTable.type'),\n align: 'start',\n value: 'type',\n width: '15%',\n },\n {\n text: this.$t('uiComponents.serialNumberTable.project'),\n align: 'start',\n value: 'project_id',\n width: '15%',\n },\n {\n text: this.$t('uiComponents.serialNumberTable.createdAt'),\n align: 'center',\n value: 'created_at',\n width: '15%',\n },\n {\n text: this.$t('uiComponents.serialNumberTable.actions'),\n align: 'center',\n value: 'actions',\n sortable: false,\n width: '10%',\n },\n ];\n }\n\n deleteSerialNumber(id: string) {\n this.$store.dispatch('serialNumber/deleteSerialNumber', id);\n }\n\n async created() {\n await this.fetchSerialNumbers();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SerialNumberManagement.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SerialNumberManagement.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SerialNumberManagement.vue?vue&type=template&id=03153dc8&\"\nimport script from \"./SerialNumberManagement.vue?vue&type=script&lang=ts&\"\nexport * from \"./SerialNumberManagement.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SerialNumberManagement.vue?vue&type=style&index=0&id=03153dc8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"project-favorites\"},[(_vm.favoritesDataLoaded)?[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{class:[_vm.$vuetify.breakpoint.mobile ? 'pt-0' : 'py-0'],attrs:{\"lg\":\"8\",\"md\":\"12\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('GeneralInfoBanner')],1),_c('v-col',{class:[_vm.$vuetify.breakpoint.mobile ? 'pt-0' : 'py-0'],attrs:{\"lg\":\"4\",\"md\":\"12\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('MembersWidget')],1)],1)],1),(_vm.$vuetify.breakpoint.mobile)?_c('DevicesListFlexGrid',{attrs:{\"devices\":_vm.favoritesDevices}}):_c('div',{staticClass:\"devices-dnd-grid-wrapper\"},[(_vm.devicesFilter.length)?_c('DevicesList',_vm._b({},'DevicesList',{ devicesByRoomLocal: _vm.favoritesDevices },false)):_c('DevicesListFavorites')],1)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary banner lynusText--text\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"d-flex banner-title\"},[_c('div',[_vm._v(_vm._s(_vm.locationData))]),_c('div',{staticClass:\"pl-16\"},[_vm._v(_vm._s(_vm.currentDate))])]),_c('v-card',{staticClass:\"primary content\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"content-wrapper\"},[_c('div',{staticClass:\"temperature\"},[_c('div',{staticClass:\"temperature-wrapper\"},[_c('div',[_vm._v(_vm._s(_vm.currentTemperature)+\" °C\")]),_c('div',[_vm._v(_vm._s(_vm.$t('uiComponents.generalInfoBanner.outdoor')))])])]),_c('div',{staticClass:\"weather-image\"},[(_vm.weatherIcon().icon.startsWith('01'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/01.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('02'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/02.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('03'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/03.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('04'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/04.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('09'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/09.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('10'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/10.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('11'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/11.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('13'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/13.png\")}}):_vm._e(),(_vm.weatherIcon().icon.startsWith('50'))?_c('img',{attrs:{\"src\":require(\"../../assets/images/weather/50.png\")}}):_vm._e()]),_c('div',{staticClass:\"advanced\"},[_c('div',{staticClass:\"advanced-content-wrapper\"},[_c('div',{staticClass:\"d-flex align-center humidity\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"scale\":\"md\",\"color\":\"theme\"}}),_c('span',{staticClass:\"mr-2 ml-4 text\"},[_vm._v(\" \"+_vm._s(_vm.weatherData.main.humidity || '...')+\" % \")]),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.generalInfoBanner.humidity')))])],1),_c('div',{staticClass:\"d-flex align-center windspeed\"},[_c('lynus-icon',{attrs:{\"name\":\"windspeed\",\"scale\":\"md\",\"color\":\"theme\"}}),_c('span',{staticClass:\"mr-2 ml-4 text\"},[_vm._v(\" \"+_vm._s(_vm.weatherData.wind.speed || '...')+\" km/h \")]),_c('span',{staticClass:\"text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.generalInfoBanner.windSpeed')))])],1)])])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IProject } from '@/types/project.types';\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport { buildCommaSeparatedString } from '@/utils/utilsFunctions';\n\n/**\n * Component that represent general info banner on Favorites page\n */\n@Component\nexport default class GeneralInfoBanner extends Vue {\n @State('app') appState!: any;\n @Getter('projects/project') project!: IProject;\n\n get weatherData() {\n return this.appState.weatherData || { main: {}, wind: {} };\n }\n\n get currentTemperature() {\n if (this.weatherData.main.temp) return Math.round(this.weatherData.main.temp);\n return '...';\n }\n\n get currentDate() {\n const d = new Date();\n return this.$d(d, 'long');\n }\n\n get locationData() {\n const displayName = this.project.meta?.location?.display_name;\n if (displayName) {\n const partsOfName = displayName.split(',');\n return buildCommaSeparatedString(partsOfName, 4);\n }\n return '';\n }\n\n weatherIcon() {\n if (!this.weatherData.weather) {\n return { icon: '', main: '' };\n }\n return this.weatherData.weather[0];\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInfoBanner.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInfoBanner.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralInfoBanner.vue?vue&type=template&id=4939389b&scoped=true&\"\nimport script from \"./GeneralInfoBanner.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralInfoBanner.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralInfoBanner.vue?vue&type=style&index=0&id=4939389b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4939389b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary banner lynusText--text members-widget\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"members-widget-title\"},[_vm._v(_vm._s(_vm.$t('uiComponents.membersWidget.title')))]),_c('v-card',{staticClass:\"primary pt-5 members-group\",attrs:{\"flat\":\"\",\"min-height\":\"120\"}},[_c('div',{staticClass:\"members-group-wrapper\"},[_c('v-slide-group',{attrs:{\"active-class\":\"success\",\"show-arrows\":true},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}},_vm._l((_vm.members),function(member,index){return _c('v-slide-item',{key:index},[_c('div',{staticClass:\"avatar d-flex flex-column align-center\",on:{\"click\":function($event){return _vm.$router.push(`/projects/${_vm.$route.params.id}/settings`)}}},[_c('lynus-icon',{attrs:{\"name\":\"avatar\",\"size\":_vm.iconSizes,\"color\":member.admin ? 'accent' : null}}),_c('div',{style:(`color: ${member.admin ? 'accent' : '#707070'}; font-weight: 500;`)},[_vm._v(\" \"+_vm._s(_vm.initials(member))+\" \")])],1)])}),1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IMember } from '@/types/members.types';\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\n\n/**\n * Component that represent project members list on Favorites page\n */\n@Component\nexport default class MembersWidget extends Vue {\n @Getter('members/members') members!: IMember[];\n\n model = null\n\n get iconSizes() {\n switch (this.$vuetify.breakpoint.name) {\n case 'xs': return 36;\n case 'sm': return 36;\n case 'md': return 40;\n case 'lg': return 57;\n case 'xl': return 57;\n }\n }\n\n initials(m: IMember): string {\n return m.first_name.charAt(0).toUpperCase()\n + m.last_name.charAt(0).toUpperCase();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MembersWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MembersWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MembersWidget.vue?vue&type=template&id=756a50ce&scoped=true&\"\nimport script from \"./MembersWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./MembersWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MembersWidget.vue?vue&type=style&index=0&id=756a50ce&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"756a50ce\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"px-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.filteredDevices),function(device,deviceIndex){return _c('v-col',_vm._b({key:deviceIndex},'v-col',{ ..._vm.defineFlexSizesByDeviceType(device.data.type) },false),[_c(device.data.type,{tag:\"component\",class:{ 'disable-device-on-event-offline': !_vm.isProjectOnline },attrs:{\"device-data\":device,\"chart-data\":device}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport class DevicesSizesFlex extends Vue {\n /**\n * Returns device dimensions according to type,\n * which used in flex grid on Favorites, Rooms pages\n * @param deviceType type of device\n * @return object with props md (1-12), sm (1-12), xs (1-12)\n */\n defineFlexSizesByDeviceType(deviceType: string) {\n const customSizes: any = {\n chart: { md: 12, sm: 12, xs: 12 },\n HistoryAnomalyDetection: { md: 12, sm: 12, xs: 12 },\n StreamAnomalyDetection: { md: 12, sm: 12, xs: 12 },\n LiveAnomalyDetection: { md: 12, sm: 12, xs: 12 },\n Gauge: { md: 12, sm: 12, xs: 12 },\n TSGFrischwasser: { md: 12, sm: 12, xs: 12 },\n TSGBrauchwasser: { md: 12, sm: 12, xs: 12 },\n EnergyViewV2: { md: 12, sm: 12, xs: 12 },\n MpcEnergyView: { md: 12, sm: 12, xs: 12 },\n EMSV2: { md: 12, sm: 12, xs: 12 },\n EMS: { md: 12, sm: 12, xs: 12 },\n EnergyIO: { md: 12, sm: 12, xs: 12 },\n SetpointOptimizer: { md: 12, sm: 12, xs: 12 },\n };\n return customSizes[deviceType] || { md: 6, sm: 12, xs: 12 };\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"chart-wrapper primary\",attrs:{\"elevation\":\"0\"}},[(_vm.chartData.name)?_c('div',{staticClass:\"chart-wrapper__header\"},[_vm._v(_vm._s(_vm.chartData.name))]):_vm._e(),_c('div',{ref:\"chartBody\",staticClass:\"deviceBackground chart-wrapper__body\"},[_c('BaseChart',{attrs:{\"chart-data\":_vm.chartData,\"chart-width\":_vm.chartWidth,\"chart-height\":_vm.chartBodyHeight,\"showTotalOfSeries\":true,\"show-device-actions\":_vm.showDeviceActions,\"enableMultiSelect\":false,\"customApproximationValue\":_vm.customApproximationValue},on:{\"handleAutarkiegrad\":function($event){return _vm.$emit('handleAutarkiegrad', $event)}}})],1),_c('div',{staticClass:\"device-dnd-button\"},[_vm._t(\"dnd\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/charts/charts/BaseChart.vue';\nimport { ChartData } from '@/types/chart.types';\n\n@Component({\n components: {\n BaseChart,\n },\n})\n\n/**\n * Component that represent chart\n */\nexport default class ChartDevice extends Vue {\n @Prop() chartData!: ChartData;\n @Prop() chartWidth!: number;\n @Prop({ default: true }) showDeviceActions!: boolean;\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: any;\n\n chartBodyHeight = 0;\n\n mounted() {\n const chartBody = this.$refs.chartBody as any;\n this.chartBodyHeight = chartBody.clientHeight - 140;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartDevice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartDevice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartDevice.vue?vue&type=template&id=cd5d72a2&\"\nimport script from \"./ChartDevice.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartDevice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartDevice.vue?vue&type=style&index=0&id=cd5d72a2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"drop-down-output-field-with-variable\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.deviceData.data.meta.dropDownTexts.DropDown_textmapping,\"instance\":\"DropDown\",\"label\":_vm.deviceData.data.meta.dropDownTexts.DropDown_title,\"is-output\":true}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{class:['device-layout', 'primary', `device-size-${_vm.deviceSize}`],attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"device-layout__header\"},[_c('div',[_vm._v(_vm._s(_vm.isPreview ? _vm.previewData.name : _vm.deviceData.name))])]),_c('div',{staticClass:\"device-layout__body\"},[(!_vm.isPreview)?_c('ShowEventBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEvent\"}}):_vm._e(),_c('div',{class:['device-icon', { 'align-start': _vm.deviceSize !== 'default' }]},[(_vm.deviceIcon)?_c('lynus-icon',{attrs:{\"name\":_vm.deviceIcon,\"size\":_vm.deviceIconSize,\"color\":_vm.deviceIconTheme}}):_vm._e(),_vm._t(\"custom-icon\")],2),_c('div',{staticClass:\"device-basic-controls\"},[_vm._t(\"basic-controls\")],2),_c('div',{class:!_vm.showSmallerDeviceActions ? 'device-actions' : 'device-actions-smaller'},[(_vm.deviceData)?_c('DeviceActions',{attrs:{\"device\":_vm.deviceData},on:{\"switchSettingsView\":_vm.switchSettingsView,\"rerenderDevice\":function($event){return _vm.$emit('rerenderDevice', $event)}}}):_vm._e(),(_vm.previewData)?_c('PreviewActions',{attrs:{\"is-settings-view\":_vm.isSettingsView,\"device-type\":_vm.previewData.type},on:{\"switchSettingsView\":_vm.switchSettingsView}}):_vm._e(),_c('div',{staticClass:\"device-actions-additional\"},[_vm._t(\"additional-actions\"),(_vm.isPreview)?_c('div',{staticClass:\"pt-2 d-flex justify-center\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.$t(`devicesDescriptions.${_vm.previewData.type}`) },false))],1):_vm._e(),(!_vm.isPreview)?_c('div',{staticClass:\"d-flex justify-center\"},[_vm._t(\"dnd\")],2):_vm._e(),(_vm.deviceModal)?_c('div',{class:!_vm.showSmallerDeviceActions ? 'pt-2' : '',attrs:{\"window-width\":_vm.chartsModalWidth,\"button-size-class\":_vm.chartsButtonSize}},[_vm._t(\"modal-window\")],2):_vm._e()],2)],1)],1),_c('SettingsView',_vm._b({attrs:{\"modal-width\":_vm.settingsModalWidth},on:{\"switchSettingsView\":_vm.switchSettingsView},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_vm._t(\"settings-view\")]},proxy:true}],null,true)},'SettingsView',{ isSettingsView: _vm.isSettingsView, deviceData: _vm.isPreview ? _vm.previewData : _vm.deviceData },false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that defines the structure of the device\n */\n@Component({\n components: {\n SettingsView,\n DeviceActions,\n ShowEventBase,\n PreviewActions,\n DeviceDescription,\n },\n})\nexport default class DeviceLayout extends Vue {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: null }) previewData!: { name: string; type: string };\n @Prop({ default: false }) isPreview!: boolean;\n @Prop({ default: 'default' }) deviceSize!: 'default' | 'x2h' | 'x4h' | 'x5h';\n @Prop({ default: null }) deviceIcon!: string;\n @Prop({ default: '30' }) deviceIconSize!: string | number;\n @Prop({ default: 'theme' }) deviceIconTheme!: string;\n @Prop() settingsModalWidth!: string | number;\n @Prop({ default: false }) isCharts!: boolean; // is device charts visible\n @Prop({ default: false }) deviceModal!: boolean; // is device charts visible\n @Prop({ default: '1750' }) chartsModalWidth!: string | number;\n @Prop({ default: 'x-small' }) chartsButtonSize!: 'x-small' | 'small' | 'large' | 'x-large';\n // makes padding between elements (DeviceDescription, DeviceActions...) smaller. Is needed for \"default\" size devices inside Preview. When they have an Chart Window.\n @Prop({ default: false }) showSmallerDeviceActions!: boolean;\n\n isSettingsView = false;\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n this.$emit('switchSettingsView', setting);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceLayout.vue?vue&type=template&id=579b9589&scoped=true&\"\nimport script from \"./DeviceLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeviceLayout.vue?vue&type=style&index=0&id=579b9589&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"579b9589\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent DropDownOutputFieldWithVariable device\n */\n@Component({\n components: {\n OutputFieldBase,\n DropDownBase,\n DeviceLayout,\n },\n})\nexport default class DropDownOutputFieldWithVariable extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownOutputFieldWithVariable.vue?vue&type=template&id=11d377b9&scoped=true&\"\nimport script from \"./DropDownOutputFieldWithVariable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownOutputFieldWithVariable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownOutputFieldWithVariable.vue?vue&type=style&index=0&id=11d377b9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11d377b9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"drop-down-input-field-with-variable\"},[_c('DropDownBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.deviceData.data.meta.dropDownTexts.DropDown_textmapping,\"instance\":\"DropDown\",\"label\":_vm.deviceData.data.meta.dropDownTexts.DropDown_title}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent DropDownInputFieldWithVariable device\n */\n@Component({\n components: {\n OutputFieldBase,\n DropDownBase,\n DeviceLayout,\n },\n})\nexport default class DropDownInputFieldWithVariable extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownInputFieldWithVariable.vue?vue&type=template&id=372b92ea&scoped=true&\"\nimport script from \"./DropDownInputFieldWithVariable.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownInputFieldWithVariable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownInputFieldWithVariable.vue?vue&type=style&index=0&id=372b92ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"372b92ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"fresh_water\",\"device-size\":\"x2h\",\"settings-modal-width\":\"1300\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center tsg-frischwasser\"},[_c('div',{staticClass:\"pr-4\",staticStyle:{\"width\":\"50%\"}},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot1_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Schwimmerschalter\")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-sm-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot2_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Status Reedkontakt Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot2\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-sm-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Sensorwert Redox Sonde\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":-999,\"max\":999,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"mV\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-sm-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Durchfluss Frischwasser\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-sm-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Zählerstand Frischwasser\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])]},proxy:true}])})],1),_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField3_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Durchfluss Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField5_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Zählerstand Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex pt-2\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingError,\"instance\":\"DropDown2\",\"label\":\"Error\"}})],1),_c('div',{staticClass:\"d-flex pt-2\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingAlarm,\"instance\":\"DropDown1\",\"label\":\"Alarm\"}})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Reset\")]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"push_reset\",\"icon-size\":\"20\",\"button-size\":\"30\"}})]},proxy:true}])})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"d-flex tsg-frischwasser-settings-view\"},[_c('div',{staticClass:\"tsg-frischwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Offset Redox Sonde\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Wert Redox\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"is-decimal\":true},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Wert Redox\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":10000,\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Impulslänge Pumpe\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField5\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Pausezeit Pumpe\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField6\",\"step\":1,\"min\":0,\"max\":25000,\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.onTimeRule,_vm.rules.twoCommas],\"is-decimal\":true},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Nachlaufzeit bei Dauer Ein\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\" Pumpe Dauer Ein statt Impuls \")]),_c('div',{staticClass:\"pr-3\"},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]),_c('div',{staticClass:\"tsg-frischwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField7\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.hourRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField8\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.minuteRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField9\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.hourRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField10\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.minuteRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField11\",\"step\":1,\"min\":0,\"max\":60,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.timeToMaxRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"s\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Zeitverz. zum regeln auf Max Wert\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField12\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Frischwasser\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField13\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Chemie\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField14\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Chemie 24h\")]},proxy:true}])})],1)])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent TSGFrischwasser device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n DropDownBase,\n InputFieldBase,\n ShowEventDotBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class TSGFrischwasser extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n textMappingError = {\n 0: 'Keine Fehler',\n 1: 'KL1512 Konfiguration Fehler',\n 2: 'Redox Sensor AI Fehler',\n 3: 'Systemzeit Fehler',\n 4: 'Fehler Ein-Aus Schaltzeit',\n };\n textMappingAlarm = {\n 0: 'Kein Alarm',\n 1: 'Zu hoher Frischwasserverbrauch',\n 2: 'Zu hoher Chemieverbrauch',\n 3: 'Zu hoher Chemie und Frischwasserverbrauch',\n 4: 'Chemieverbrauch zu tief',\n 5: 'Min Wert der Redox Sonde erreicht',\n 6: 'Max Wert der Redox Sonde erreicht',\n 7: 'Schwimmerschalter hat ausgelöst',\n 8: 'Reed Contact Chemiebehälter hat ausgelöst',\n }\n\n rulesForInputFields = {\n field999Rule: (value: number) => value >= -999 && value <= 999 || 'Value should be between -999 and 999',\n hourRule: (value: number) => value >= 0 && value <= 23 || 'Value should be between 0 and 23',\n minuteRule: (value: number) => value >= 0 && value <= 59 || 'Value should be between 0 and 59',\n tenThousandRule: (value: number) => value >= 0 && value <= 10000 || 'Value should be between 0 and 10000',\n onTimeRule: (value: number) => value >= 0 && value <= 25000 || 'Value should be between 0 and 25000',\n timeToMaxRule: (value: number) => value >= 0 && value <= 60 || 'Value should be between 0 and 60',\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGFrischwasser.vue?vue&type=template&id=306e0582&\"\nimport script from \"./TSGFrischwasser.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGFrischwasser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGFrischwasser.vue?vue&type=style&index=0&id=306e0582&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"waste_water\",\"device-size\":\"x2h\",\"settings-modal-width\":\"1300\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center tsg-brauchwasser\"},[_c('div',{staticClass:\"pr-4\",staticStyle:{\"width\":\"50%\"}},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot1_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Schwimmerschalter\")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot2_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Status Reedkontakt Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot2\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"width\":\"15\",\"height\":\"15\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-sm-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Sensorwert Redox Sonde\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":-999,\"max\":999,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"mV\")])]},proxy:true}])})],1),_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Durchfluss Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Zählerstand Chemie\")]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"min\":0,\"max\":4294967295,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex pt-2\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingError,\"instance\":\"DropDown1\",\"label\":\"Error\"}})],1),_c('div',{staticClass:\"d-flex pt-2\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingAlarm,\"instance\":\"DropDown2\",\"label\":\"Alarm\"}})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Reset\")]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"push_reset\",\"icon-size\":\"20\",\"button-size\":\"30\"}})]},proxy:true}])})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"d-flex tsg-brauchwasser-settings-view\"},[_c('div',{staticClass:\"tsg-brauchwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Offset Redox Sonde\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Wert Redox\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":1,\"min\":-999,\"max\":999,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.field999Rule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Wert Redox\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Impulslänge Pumpe\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField5\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Pausezeit Pumpe\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField6\",\"step\":1,\"min\":0,\"max\":25000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.onTimeRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Nachlaufzeit bei Dauer Ein\")]},proxy:true}])})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.PushButton1_onOff,\n _vm.deviceData.data.mappings.PushButton1_state\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Pumpe Dauer Ein statt Impuls\")]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{staticClass:\"mr-3\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"tsg-brauchwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField7\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.hourRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField8\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.minuteRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField9\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.hourRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField10\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.minuteRule],\"is-decimal\":false,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField11\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Chemie\")]},proxy:true}])})],1),_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField12\",\"step\":1,\"min\":0,\"max\":10000,\"field-rules\":[_vm.rules.required, _vm.rulesForInputFields.tenThousandRule,_vm.rules.twoCommas],\"is-decimal\":true,\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Chemie 24h\")]},proxy:true}])})],1)])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent TSGBrauchwasser device\n */\n@Component({\n components: {\n InputFieldMock,\n OutputFieldBase,\n DropDownBase,\n InputFieldBase,\n ShowEventDotBase,\n PushButtonBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class TSGBrauchwasser extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n textMappingError = {\n 0: 'Keine Fehler',\n 1: 'KL1512 Konfiguration Fehler',\n 2: 'Redox Sensor AI Fehler',\n 3: 'Systemzeit Fehler​',\n 4: 'Fehler Ein-Aus Schaltzeit​',\n };\n textMappingAlarm ={\n 0: 'Kein Alarm',\n 1: 'Zu hoher Frischwasserverbrauch',\n 2: 'Zu hoher Chemieverbrauch',\n 3: 'Zu hoher Chemie und Frischwasserverbrauch',\n 4: 'Chemieverbrauch zu tief',\n 5: 'Min Wert der Redox Sonde erreicht',\n 6: 'Max Wert der Redox Sonde erreicht',\n 7: 'Schwimmerschalter hat ausgelöst',\n 8: 'Reed Contact Chemiebehälter hat ausgelöst',\n }\n\n rulesForInputFields={\n field999Rule: (value: number) => value >= -999 && value <= 999 || 'Value should be between -999 and 999',\n hourRule: (value: number) => value >= 0 && value <= 23 || 'Value should be between 0 and 23',\n minuteRule: (value: number) => value >= 0 && value <= 59 || 'Value should be between 0 and 59',\n tenThousandRule: (value: number) => value >= 0 && value <= 10000 || 'Value should be between 0 and 10000',\n onTimeRule: (value: number) => value >= 0 && value <= 25000 || 'Value should be between 0 and 25000',\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasser.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGBrauchwasser.vue?vue&type=template&id=4b8e000f&\"\nimport script from \"./TSGBrauchwasser.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGBrauchwasser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGBrauchwasser.vue?vue&type=style&index=0&id=4b8e000f&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary robot\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"device-header\"},[_c('div',[_vm._v(_vm._s(_vm.deviceData.name))])]),_c('div',{staticClass:\"device-body\"},[_c('ShowEventBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEvent\"}}),_c('div',{staticClass:\"device-actions\"},[_c('DeviceActions',{attrs:{\"device\":_vm.deviceData,\"is-settings-view\":_vm.isSettingsView},on:{\"switchSettingsView\":_vm.switchSettingsView}})],1),_c('div',{staticClass:\"robot-icon\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_robot\",\"color\":\"theme\",\"size\":\"35\"}})],1),_c('div',{staticClass:\"device-basic-controls\"},[_c('div',{staticClass:\"device-status-bar d-flex pt-10 justify-end align-center\"},[_c('div',{staticClass:\"pr-1\"},[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon1\",\"iconMapping\":_vm.wifiStatusObject}})],1),_c('div',{staticClass:\"pr-1\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":99,\"is-decimal\":true}})],1),_c('div',{staticClass:\"pr-1\"},[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon2\",\"iconMapping\":_vm.satelliteCount}})],1),_c('div',{staticClass:\"pr-1\"},[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon3\",\"iconMapping\":_vm.gpsStatus}})],1),_c('div',{staticClass:\"d-flex pr-1\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField7\",\"min\":0,\"max\":100,\"is-decimal\":true}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"%\")])],1),_c('div',[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon4\",\"iconMapping\":_vm.batteryStatus}})],1)]),_c('div',[(_vm.statusMessageBox !== -1)?_c('div',{staticClass:\"message-box\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"font-weight-bold\"},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText2\",\"min\":0,\"max\":25}})],1),_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon5\",\"min\":0,\"max\":2,\"iconMapping\":_vm.messageBoxObject,\"setErrorWarningColorSwitch\":true}})],1),_c('div',[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText3\",\"min\":0,\"max\":60}})],1)]):_vm._e()]),_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t('devices.Robot.mainView.positionText')))]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText4\",\"min\":0,\"max\":25}})],1)]),(_vm.isScrollContainerShown)?_c('div',[_c('div',{staticClass:\"robot-progress-bar\"},[_c('div',{staticClass:\"robot-progress-bar-prefix\"},[_c('div',[_vm._v(_vm._s(_vm.$t('devices.Robot.mainView.progressBarText')))]),_c('div',[_c('span',[_vm._v(_vm._s(_vm.progressMowingJob))]),_c('span',[_vm._v(\"%\")])])]),_c('div',{staticClass:\"robot-progress-bar-level\"},[_c('FillLevelDisplayBase',{staticStyle:{\"padding-top\":\"5px\",\"padding-left\":\"5px\",\"padding-right\":\"5px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"costumHeight\":15,\"costumBarColor\":\"white !important\",\"costumBGColor\":\"accent\",\"instance\":\"FillLevelDisplay1\",\"is-decimal\":true,\"min\":0,\"max\":100}})],1)]),_c('div',{staticClass:\"d-flex justify-space-around pt-6\"},[_c('div',[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecPlayPauseButton\",\"variable-data\":_vm.deviceData.data.mappings,\"buttonHeight\":65,\"instance\":\"PushButton1\",\"icon\":\"ronova_pause\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_c('div',[_vm._v(\"Anhalten\")])]},proxy:true}],null,false,3636424399)})],1),_c('div',[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecConfirmationDialogButton\",\"variable-data\":_vm.deviceData.data.mappings,\"buttonHeight\":65,\"icon-color\":\"red\",\"instance\":\"PushButton2\",\"icon\":\"ronova_cancel\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_vm._v(\" Abbrechen \")]},proxy:true}],null,false,1144087872)})],1)]),_c('div',{staticClass:\"pt-10\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Max. Spindeldrehzahl\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.spindelSpeedValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"rpm\")])])])]),_c('div',{staticClass:\"pt-2\"},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"FOC (Frequency of clip)\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.focValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"mm\")])])]),_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider1\",\"is-active\":true,\"state\":_vm.sliderActualValue1,\"minSilderValue\":5,\"maxSliderValue\":50,\"sending-timeout\":250,\"show-output\":false}})],1),_c('div',{staticClass:\"pt-2\"},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Mähgeschwindigkeit\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.speedValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"km/h\")])])]),_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider2\",\"is-active\":true,\"state\":_vm.sliderActualValue2,\"sending-timeout\":250,\"minSilderValue\":2.5,\"maxSliderValue\":6.5,\"customStepSize\":0.1,\"show-output\":false}})],1)])]):_vm._e()])]),_c('div',{staticClass:\"device-dnd-button\"},[_vm._t(\"dnd\")],2)],1),_c('SettingsView',_vm._b({on:{\"switchSettingsView\":_vm.switchSettingsView},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticStyle:{\"justify-content\":\"center\",\"display\":\"grid\",\"padding-bottom\":\"10px\",\"width\":\"100%\"}},[_c('h3',[_vm._v(\"Neuer Mähjob Screen\")])]),_c('div',[_c('div',{staticStyle:{\"display\":\"flex\",\"width\":\"100%\",\"justify-content\":\"center\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\"}},[_c('DropDownBase',{staticStyle:{\"padding-left\":\"50px\",\"padding-right\":\"50px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.musterMapping,\"instance\":\"DropDown1\",\"label\":\"Muster\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\",\"width\":\"100%\",\"justify-content\":\"center\",\"padding-top\":\"10px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"min\":0,\"max\":25}})],1),_c('v-divider'),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('div',{staticStyle:{\"padding-top\":\"20px\"}},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Max. Spindeldrehzahl\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.spindelSpeedValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"rpm\")])])])]),_c('div',{staticStyle:{\"padding-top\":\"20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',[_vm._v(\" FOC (Frequency of clip) \")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" \"+_vm._s(_vm.focValue)+\" mm \")])]),_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider1\",\"is-active\":true,\"state\":_vm.sliderActualValue1,\"minSilderValue\":5,\"maxSliderValue\":50,\"sending-timeout\":250,\"show-output\":false}})],1),_c('div',{staticStyle:{\"padding-top\":\"20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',[_vm._v(\" Mähgeschwindigkeit \")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" \"+_vm._s(_vm.speedValue)+\" km/h \")])]),_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider2\",\"is-active\":true,\"state\":_vm.sliderActualValue2,\"sending-timeout\":250,\"minSilderValue\":2.5,\"maxSliderValue\":6.5,\"customStepSize\":0.1,\"show-output\":false}})],1)]),_c('v-divider'),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('div',{staticStyle:{\"padding-top\":\"10px\"}},[_vm._v(\" Startzeit \")]),_c('div',[_c('DateTimePickerBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"DateTimePicker1\",\"alignRight\":true}})],1)]),_c('v-divider'),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"button-width\":180,\"buttonHeight\":52,\"customButtonDisabledValue\":0,\"isSendSingleValue\":true,\"singleSendValue\":1,\"button-color\":\"#215B28\",\"icon-color\":\"white\",\"instance\":\"PushButton3\",\"icon\":\"ronova_upload\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_c('div',{staticStyle:{\"color\":\"white\"}},[_vm._v(\" Mähjob \"),_c('br'),_vm._v(\" hochladen \")])]},proxy:true}])})],1),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"color\":\"#AA3536\"}},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField6\",\"min\":0,\"max\":60}})],1)],1)]},proxy:true}])},'SettingsView',{ isSettingsView: _vm.isSettingsView, deviceData: _vm.deviceData },false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[(_vm.showNumberValue === true)?_c('div',{staticStyle:{\"padding-top\":\"2px\",\"width\":\"30px\",\"display\":\"flex\",\"justify-content\":\"flex-end\"}},[_vm._v(\" \"+_vm._s(_vm.currentValue)+\" \")]):_vm._e(),(_vm.showNumberValue === true && _vm.currentValue !== undefined)?_c('div',{staticStyle:{\"padding-top\":\"2px\"}},[_vm._v(\"%\")]):_vm._e(),_c('lynus-icon',{attrs:{\"name\":_vm.currentIcon,\"color\":_vm.iconColorErrorWarning,\"size\":\"30\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent StatusIcon Basic Control\n */\n@Component\nexport default class StatusIconBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() iconMapping!: any;\n @Prop({ default: false }) showNumberValue!: boolean;\n @Prop({ default: false }) setErrorWarningColorSwitch!: boolean;\n @Prop({ default: 2 }) errorValue!: number;\n @Prop({ default: 1 }) warningValue!: number;\n @Prop({ default: 0 }) okValue!: number;\n @Prop({ default: -1 }) min!: number;\n @Prop({ default: 100 }) max!: number;\n\n items = Object.keys(this.iconMapping).map((key: string) => {\n return {\n name: this.iconMapping[key],\n value: key,\n };\n });\n tempName = '';\n\n get currentValue(): any {\n let resultCurrentValue:any = this.measurements.get(this.mappingsClean.currentValue);\n if( resultCurrentValue >= this.max){\n return this.max;\n }else if(resultCurrentValue <= this.min){\n return this.min;\n }\n return this.measurements.get(this.mappingsClean.currentValue);\n }\n\n /**\n * gets Current Icon for status bar\n */\n get currentIcon() {\n Object.entries(this.items).forEach((object: any, index: number) => {\n // input number > lowest Value && input number < highestValue\n if (this.currentValue >= object[1].name[0] && this.currentValue <= object[1].name[1]) {\n this.tempName = object[1].value;\n return object[1].value;\n }\n });\n // if value = undefined than the first Icon of the mapping will be shown\n if (this.currentValue === undefined){\n return this.items[0].value;\n }\n return this.tempName;\n }\n\n get iconColorErrorWarning(){\n if(this.setErrorWarningColorSwitch === true){\n if(this.currentValue === this.errorValue){\n return \"red\";\n }else if(this.currentValue === this.warningValue){\n return \"warning\";\n }\n }\n return \"theme\";\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.currentValue;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIconBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIconBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StatusIconBase.vue?vue&type=template&id=3321496a&\"\nimport script from \"./StatusIconBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./StatusIconBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._v(\" \"+_vm._s(_vm.actualValue)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent OutputFieldText Basic Control\n */\n@Component\nexport default class OutputFieldTextBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() min?: number;\n @Prop() max?: number;\n\n get actualValue(): any {\n let returnText: any = this.checkFallbackText();\n // cut String at max lenght\n returnText = returnText.substring(0, this.max);\n return returnText;\n }\n\n checkFallbackText() {\n if (typeof this.measurements.get(this.mappingsClean.actualValue) === 'string') {\n return this.measurements.get(this.mappingsClean.actualValue);\n } else {\n return 'No Text';\n }\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldTextBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldTextBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OutputFieldTextBase.vue?vue&type=template&id=405135e3&scoped=true&\"\nimport script from \"./OutputFieldTextBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./OutputFieldTextBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"405135e3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-progress-linear',{staticClass:\"fill-level-display-base\",attrs:{\"value\":_vm.fieldFilteredValue,\"color\":_vm.costumBarColor,\"background-color\":_vm.costumBGColor,\"height\":_vm.costumHeight,\"rounded\":\"\"},scopedSlots:_vm._u([(_vm.isText)?{key:\"default\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.filteredValue)+\"%\")])]},proxy:true}:null],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent FillLevelDisplay Basic Control\n */\n@Component\nexport default class FillLevelDisplayBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() min!: number;\n @Prop() max!: number;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop({ default: 'accent' }) costumBarColor!: string;\n @Prop({ default: '#fff' }) costumBGColor!: string;\n @Prop({ default: 30 }) costumHeight!: number;\n @Prop({ default: false }) isText!: boolean;\n\n get actualValue(): any {\n return this.measurements.get(this.mappingsClean.actualValue);\n }\n\n /**\n * Round actualValue\n */\n get rounded() {\n if (!this.isDecimal) return Math.round(this.actualValue);\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return +(`${Math.round(`${this.actualValue}e+2`)}e-2`);\n }\n\n /**\n * round up the value if it is out of range\n */\n get filteredValue() {\n if (this.rounded < this.min) return this.min;\n if (this.rounded > this.max) return this.max;\n return this.rounded;\n }\n get fieldFilteredValue() {\n if (this.max) return (this.rounded * 100) / this.max;\n return this.rounded;\n }\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FillLevelDisplayBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FillLevelDisplayBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FillLevelDisplayBase.vue?vue&type=template&id=5cf445ba&\"\nimport script from \"./FillLevelDisplayBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./FillLevelDisplayBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FillLevelDisplayBase.vue?vue&type=style&index=0&id=5cf445ba&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"display\":\"flex\"}},[_c('VueCtkDateTimePicker',{staticStyle:{\"padding-right\":\"4px\"},attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":_vm.alignRight,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent},model:{value:(_vm.dateValue),callback:function ($$v) {_vm.dateValue=$$v},expression:\"dateValue\"}}),_c('v-btn',{staticStyle:{\"height\":\"42px !important\"},attrs:{\"color\":\"accent\",\"disabled\":_vm.disableSendButton},on:{\"click\":_vm.emitDate}},[_vm._v(\"Send\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent DateTimePicker Basic Control\n */\n@Component\nexport default class DateTimePickerBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) alignRight !: boolean;\n @Prop({ default: true }) convertToUnixTime!: boolean\n\n // value of DateTimePicker\n dateValue = '';\n disableSendButton = true;\n\n created() {\n const valueDatabase: any = this.measurements.get(this.mappingsClean.actualValue);\n const currentDateValue = Math.trunc(new Date().getTime() / 1000);\n if (valueDatabase - currentDateValue > 0) {\n const d = new Date(valueDatabase * 1000);\n this.dateValue = d.toISOString();\n }\n }\n\n @Watch('dateValue')\n enableSendButton() {\n if (this.dateValue !== null) {\n this.disableSendButton = false;\n }\n }\n\n emitDate() {\n const date = new Date(this.dateValue);\n const unixTimeStamp = Math.trunc(date.getTime() / 1000);\n\n this.send([{ n: this.mappingsClean.actualValue, v: unixTimeStamp, u: '' }]);\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimePickerBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimePickerBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DateTimePickerBase.vue?vue&type=template&id=232dc2ce&scoped=true&\"\nimport script from \"./DateTimePickerBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateTimePickerBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DateTimePickerBase.vue?vue&type=style&index=0&id=232dc2ce&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"232dc2ce\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport StatusIconBase from '@/ui/components/devices/devices/base/StatusIconBase.vue';\nimport OutputFieldTextBase from '@/ui/components/devices/devices/base/OutputFieldTextBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport FillLevelDisplayBase from '@/ui/components/devices/devices/base/FillLevelDisplayBase.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DateTimePickerBase from '@/ui/components/devices/devices/base/DateTimePickerBase.vue';\nimport _ from 'lodash';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Robot device\n */\n@Component({\n components: {\n DateTimePickerBase,\n DropDownBase,\n SettingsView,\n FillLevelDisplayBase,\n SliderBase,\n PushButtonBase,\n OutputFieldBase,\n OutputFieldTextBase,\n StatusIconBase,\n InputFieldBase,\n DeviceActions,\n ShowEventBase,\n },\n})\nexport default class Robot extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n isSettingsView = false\n\n messageBoxObject = {\n ronova_info: [0, 1],\n ronova_warning: [2, 2],\n }\n wifiStatusObject = {\n ronova_wifi_no: [-1, -1],\n ronova_wifi_low: [0, 33],\n ronova_wifi_med: [34, 66],\n ronova_wifi_full: [67, 100],\n }\n satelliteCount = {\n ronova_gps_no_fix: [-1, -1],\n ronova_gps_fix: [0, 100],\n }\n gpsStatus = {\n ronova_lte_no: [-1, -1],\n ronova_lte_low: [0, 33],\n ronova_lte_med: [34, 66],\n ronova_lte_full: [67, 100],\n }\n batteryStatus={\n ronova_battery_charge: [-1, -1],\n ronova_battery_0: [0, 11],\n ronova_battery_25: [12, 37],\n ronova_battery_50: [38, 63],\n ronova_battery_75: [64, 88],\n ronova_battery_100: [89, 100],\n }\n musterMapping = {\n 0: 'Muster 0',\n 1: 'Muster 1',\n 2: 'Muster 2',\n 3: 'Muster 3',\n 4: 'Muster 4',\n 5: 'Muster 5',\n 6: 'Muster 6',\n 7: 'Muster 7',\n 8: 'Muster 8',\n 9: 'Muster 9',\n 10: 'Muster 10',\n }\n\n focValue: any = 0\n speedValue: any = 0\n currentProgressLevel: any = 0\n\n // spindelSpeed\n get spindelSpeedValue() {\n let val: any = this.measurements.get(this.deviceData.data.mappings.OutputField8_actualValue);\n val = _.clamp(val, 0, 9999);\n return val;\n }\n\n get statusMessageBox() {\n if (this.measurements.get(this.deviceData.data.mappings.StatusIcon5_currentValue) === undefined) {\n return -1;\n } else {\n return this.measurements.get(this.deviceData.data.mappings.StatusIcon5_currentValue);\n }\n }\n\n // FOC (Frequency of clip) Value\n get sliderActualValue1() {\n this.focValue = this.measurements.get(this.deviceData.data.mappings.Slider1_targetValue);\n return this.measurements.get(this.deviceData.data.mappings.Slider1_targetValue);\n }\n\n // Speed Robot\n get sliderActualValue2() {\n this.speedValue = this.measurements.get(this.deviceData.data.mappings.Slider2_targetValue);\n return this.measurements.get(this.deviceData.data.mappings.Slider2_targetValue);\n }\n\n get isScrollContainerShown() {\n // contains Buttonstate for upload Job\n return this.measurements.get(this.deviceData.data.mappings.FillLevelDisplay1_actualValue) !== -1;\n }\n\n get progressMowingJob() {\n return this.measurements.get(this.deviceData.data.mappings.FillLevelDisplay1_actualValue);\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get unit() {\n return this.deviceData.data.meta && this.deviceData.data.meta.unit ? this.deviceData.data.meta.unit : '';\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Robot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Robot.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Robot.vue?vue&type=template&id=6cd0264d&scoped=true&\"\nimport script from \"./Robot.vue?vue&type=script&lang=ts&\"\nexport * from \"./Robot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Robot.vue?vue&type=style&index=0&id=6cd0264d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6cd0264d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary survey-client\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"device-header\"},[_c('div',[_vm._v(_vm._s(_vm.deviceData.name))])]),_c('div',{staticClass:\"device-body\"},[_c('ShowEventBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEvent\"}}),_c('div',{staticClass:\"device-actions\"},[_c('DeviceActions',{attrs:{\"device\":_vm.deviceData}})],1),_c('div',{staticClass:\"survey-client-icon\"},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"ronova_survey_client\",\"color\":\"theme\",\"size\":\"30\"}})],1)]),_c('div',{staticClass:\"device-basic-controls\"},[_c('div',{staticClass:\"device-status-bar d-flex pt-10 justify-end align-center\"},[_c('div',{staticClass:\"pr-1\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":99,\"is-decimal\":true}})],1),_c('div',{staticClass:\"pr-1\"},[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon1\",\"iconMapping\":_vm.satelliteCount}})],1),_c('div',{staticClass:\"pr-1\"},[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon2\",\"iconMapping\":_vm.gpsStatus}})],1),_c('div',{staticClass:\"d-flex pr-1\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":100,\"is-decimal\":true}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"%\")])],1),_c('div',[_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon3\",\"iconMapping\":_vm.batteryStatus}})],1)]),_c('div',[_c('div',[_vm._v(\"Field Name\")]),_c('InputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputFieldText1\",\"background\":\"#ffffff\",\"enableVariabelButtonColor\":true,\"min\":0,\"max\":25}})],1),_c('div',[_c('div',[_vm._v(\"Figure Type\")]),_c('DropDownBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"text-mapping\":_vm.musterMapping,\"enable-send-button\":true,\"enable-variable-button-color\":true,\"instance\":\"DropDown1\",\"label\":\"\"}})],1),(_vm.statusMessageBox !== -1)?_c('div',{staticClass:\"message-box\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"font-weight-bold\"},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText1\",\"min\":0,\"max\":25}})],1),_c('StatusIconBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"StatusIcon4\",\"min\":0,\"max\":2,\"iconMapping\":_vm.messageBoxObject,\"setErrorWarningColorSwitch\":true}})],1),_c('div',[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText2\",\"min\":0,\"max\":150}})],1)]):_vm._e(),_c('div',{staticClass:\"step-number-section\"},[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecUpDownButton\",\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"arrow-2_left\",\"icon-size\":\"20\",\"button-size\":\"30\"}}),_c('div',{staticClass:\"step-number-output-text\"},[_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText3\",\"min\":0,\"max\":25}})],1),_c('div',{staticClass:\"pl-1\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":'#606369',\"width\":\"15\",\"height\":\"15\"}})],1),_c('div',{staticClass:\"pl-1\"},[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecUpDownButton\",\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"arrow-2_right\",\"icon-size\":\"20\",\"button-size\":\"30\"}})],1)],1),_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecOverEachOtherButton\",\"variable-data\":_vm.deviceData.data.mappings,\"button-width\":150,\"buttonHeight\":65,\"singleSendValue\":1,\"icon-color\":\"red\",\"instance\":\"PushButton3\",\"icon\":\"ronova_record\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_vm._v(\" Messen \")]},proxy:true}])})],1),_c('div',[_c('PushButtonBase',{attrs:{\"push-button-base-type\":\"RonovatecOverEachOtherButton\",\"variable-data\":_vm.deviceData.data.mappings,\"button-width\":150,\"buttonHeight\":65,\"singleSendValue\":1,\"icon-color\":\"accent\",\"instance\":\"PushButton4\",\"icon\":\"ronova_close_figure\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_vm._v(\" Schließen \")]},proxy:true}])})],1)]),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('div',[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"button-width\":180,\"isSendSingleValue\":true,\"icon-color\":\"red\",\"instance\":\"PushButton5\",\"icon\":\"ronova_cancel\"},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_vm._v(\" Abbrechen \")]},proxy:true}])})],1)])])]),_c('div',{staticClass:\"device-dnd-button\"},[_vm._t(\"dnd\")],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{staticStyle:{\"width\":\"100%\"},attrs:{\"sendingState\":_vm.sendingState}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},on:{\"submit\":function($event){$event.preventDefault();}},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex input-field-text-base\"},[_c('v-text-field',{attrs:{\"type\":\"text\",\"solo\":\"\",\"flat\":\"\",\"rules\":[..._vm.fieldRules],\"height\":_vm.small ? 28 : 36,\"minLength\":_vm.min,\"maxLength\":_vm.max,\"counter\":_vm.max,\"background-color\":_vm.background,\"disabled\":_vm.isDisabled},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.stopPropagation();return _vm.handleState.apply(null, arguments)}},model:{value:(_vm.state),callback:function ($$v) {_vm.state=$$v},expression:\"state\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"depressed\":\"\",\"color\":_vm.sendButtonColor,\"disabled\":!_vm.valid || _vm.isDisabled,\"small\":_vm.small},on:{\"mousedown\":_vm.validate}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent InputFieldText Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class InputFieldTextBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: 0 }) min?: number;\n @Prop({ default: 100 }) max?: number;\n @Prop({ default: () => [] }) fieldRules?: any;\n @Prop({ default: '#fff' }) background!: string;\n @Prop({ default: false }) small!: boolean;\n @Prop({ default: false }) enableVariabelButtonColor !: boolean;\n\n state: any = ''\n timer: any\n valid = true\n\n @Watch('actualValue')\n onActualValueChange(val: any) {\n if (typeof val === 'string') this.state = val;\n }\n\n get actualValue(): any {\n return this.measurements.get(this.mappingsClean.targetValue) || 'No Text';\n }\n\n /**\n * Define button color\n */\n get sendButtonColor() {\n // default way Button only has one color\n if (!this.enableVariabelButtonColor) return 'accent';\n if (this.measurements.get(this.mappingsClean.state) === 1) return 'accent';\n else return '#4b6978';\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.targetValue === '';\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.handleState();\n }\n\n handleState() {\n if (!this.valid) return;\n this.onSendStart();\n this.timer = setTimeout(() => {\n this.send([{ vs: this.state, n: this.mappingsClean.targetValue, u: '' }]);\n this.onSendSuccess();\n }, 200);\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n this.state = this.actualValue;\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldTextBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldTextBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InputFieldTextBase.vue?vue&type=template&id=7c5e680f&\"\nimport script from \"./InputFieldTextBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./InputFieldTextBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InputFieldTextBase.vue?vue&type=style&index=0&id=7c5e680f&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport StatusIconBase from '@/ui/components/devices/devices/base/StatusIconBase.vue';\nimport OutputFieldTextBase from '@/ui/components/devices/devices/base/OutputFieldTextBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport InputFieldTextBase from '@/ui/components/devices/devices/base/InputFieldTextBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent SurveyClient device\n */\n@Component({\n components: {\n ShowEventDotBase,\n DropDownBase,\n InputFieldTextBase,\n PushButtonBase,\n OutputFieldBase,\n OutputFieldTextBase,\n StatusIconBase,\n InputFieldBase,\n DeviceActions,\n ShowEventBase,\n },\n})\nexport default class SurveyClient extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n messageBoxObject = {\n ronova_info: [0, 1],\n ronova_warning: [2, 2],\n };\n wifiStatusObject = {\n ronova_wifi_no: [-1, -1],\n ronova_wifi_low: [0, 33],\n ronova_wifi_med: [34, 66],\n ronova_wifi_full: [67, 100],\n };\n satelliteCount = {\n ronova_gps_no_fix: [-1, -1],\n ronova_gps_fix: [0, 100],\n };\n gpsStatus = {\n ronova_lte_no: [-1, -1],\n ronova_lte_low: [0, 33],\n ronova_lte_med: [34, 66],\n ronova_lte_full: [67, 100],\n };\n batteryStatus = {\n ronova_battery_charge: [-1, -1],\n ronova_battery_0: [0, 11],\n ronova_battery_25: [12, 37],\n ronova_battery_50: [38, 63],\n ronova_battery_75: [64, 88],\n ronova_battery_100: [89, 100],\n };\n musterMapping = {\n 0: 'none',\n 1: 'contour',\n 2: 'playfield',\n 3: 'obstacles',\n 4: 'no_work',\n }\n\n get statusMessageBox() {\n if (this.measurements.get(this.deviceData.data.mappings.StatusIcon4_currentValue) === undefined) {\n return -1;\n } else {\n return this.measurements.get(this.deviceData.data.mappings.StatusIcon4_currentValue);\n }\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get unit() {\n return this.deviceData.data.meta && this.deviceData.data.meta.unit ? this.deviceData.data.meta.unit : '';\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClient.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClient.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SurveyClient.vue?vue&type=template&id=fa24f53c&scoped=true&\"\nimport script from \"./SurveyClient.vue?vue&type=script&lang=ts&\"\nexport * from \"./SurveyClient.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SurveyClient.vue?vue&type=style&index=0&id=fa24f53c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fa24f53c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.errorWarningMqtt,\"is-charts\":true,\"device-icon\":\"solar_panel\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-production-service\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.actualPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.actualPowerMqtt,\"instance\":\"OutputField1\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedPowerMqtt,\"instance\":\"OutputField2\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedEnergy`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedEnergyMqtt,\"instance\":\"OutputField3\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kWh\")])],1)]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.readyMqtt,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"pv-production-charts-content\"},[_c('SettingsCharts',{attrs:{\"charts-scaling\":_vm.chartScaling,\"mpc-id\":_vm.mpcId,\"mqtt-charts-variables\":{ actualPower: _vm.actualPower, calculatedPower: _vm.calculatedPower, calculatedEnergy: _vm.calculatedEnergy, producedEnergy: _vm.producedEnergy }}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pv-production-service-charts\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[(index === _vm.tab)?_c('div',[_c(item.component,{tag:\"component\",attrs:{\"charts-scaling\":_vm.chartsScaling,\"mqtt-charts-variables\":_vm.mqttChartsVariables,\"mpc-id\":_vm.mpcId}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('BaseChart',_vm._b({key:_vm.rerenderKey},'BaseChart',{..._vm.chartData},false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"simple-chart\"},[_c('div',{staticClass:\"chart-instance-actions\"},[_c('DataExport',{attrs:{\"dataToExport\":_vm.series}}),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.handleFullScreen}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fa-expand\")])],1)]}}])},[_c('span',[_vm._v(\"Full screen\")])])],1),_c('div',{staticStyle:{\"overflow-x\":\"auto\"}},[_c('div',{style:(`width: ${_vm.chartWidth}px`)},[_c('highcharts',{ref:\"hc\",style:(`height: ${_vm.chartHeight}px`),attrs:{\"constructor-type\":'stockChart',\"options\":_vm.chartOptions}})],1),(_vm.chartVariables)?_c('div',{staticClass:\"ma-4 d-flex\"},_vm._l((Object.entries(_vm.chartVariables)),function(variable,inx){return _c('div',{key:inx,staticClass:\"pr-10\"},[_c('strong',[_vm._v(_vm._s(variable[0]))]),_c('span',[_vm._v(\": \"+_vm._s(_vm.round(variable[1].value))+\" \"+_vm._s(variable[1].unit))])])}),0):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport DataExport from '@/ui/components/devices/charts/components/DataExport.vue';\nimport stockInit from 'highcharts/modules/stock';\nimport fullscreen from 'highcharts/modules/full-screen';\nimport Highcharts from 'highcharts';\nimport { Chart } from 'highcharts-vue';\nimport { roundNumber } from '@/utils/utilsFunctions';\n\nstockInit(Highcharts);\nfullscreen(Highcharts);\n\n/**\n * Component that represent chart.\n * Used in MPC devices.\n */\n@Component({\n components: {\n highcharts: Chart,\n DataExport,\n },\n})\nexport default class BaseChart extends Vue {\n @Prop() chartType!: string;\n @Prop() chartTitle!: string;\n @Prop() chartVariables!: any;\n @Prop() series!: any;\n @Prop() yAxis!: any;\n @Prop({ default: null }) chartWidth!: any;\n @Prop({ default: 400 }) chartHeight!: any;\n\n get chartOptions() {\n return {\n chart: {\n animation: false,\n backgroundColor: this.$vuetify.theme.dark ? '#313131' : '#f2f2f2',\n width: null,\n height: null,\n events: {\n redraw: (e: any) => {\n this.handleFullScreenChartName(e);\n },\n },\n },\n exporting: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n navigator: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n tooltip: {\n shared: true,\n split: false,\n },\n plotOptions: {\n series: {\n marker: {\n enabled: false,\n },\n },\n area: {\n marker: {\n enabled: false,\n },\n },\n },\n series: this.series,\n legend: {\n enabled: true,\n itemStyle: {\n color: this.$vuetify.theme.dark ? '#ffffff' : '#000000',\n },\n },\n time: {\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n useUTC: false,\n },\n credits: {\n enabled: false,\n },\n xAxis: {\n crosshair: {\n width: 0,\n },\n },\n yAxis: this.yAxis,\n loading: {\n labelStyle: {\n color: 'black',\n },\n },\n };\n }\n\n get isChartLoaded() {\n const seriesStatuses = this.series\n .map((s: any) => !!s.data.length)\n .filter((s: any) => s === true);\n return seriesStatuses.length;\n }\n\n @Watch('isChartLoaded')\n async onChartLoad(val: number) {\n if (val === 0) {\n await this.$nextTick();\n (this.$refs.hc as any).chart.showLoading('No data in selected period.');\n } else {\n await this.$nextTick();\n (this.$refs.hc as any).chart.hideLoading();\n }\n }\n\n handleFullScreen() {\n const { chart } = this.$refs.hc as any;\n chart.fullscreen.open();\n }\n handleFullScreenChartName(e: any) {\n const { chart } = this.$refs.hc as any;\n if (!chart?.fullscreen?.isOpen) {\n chart.setTitle({ text: null });\n } else {\n chart.setTitle({ text: this.chartTitle });\n }\n }\n\n round(num: any) {\n return roundNumber(num);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseChart.vue?vue&type=template&id=18f5563d&scoped=true&\"\nimport script from \"./BaseChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BaseChart.vue?vue&type=style&index=0&id=18f5563d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18f5563d\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport { Action } from 'vuex-class';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\n\n/**\n * Component that represent forecast chart.\n */\n@Component({\n components: {\n BaseChart,\n },\n})\nexport default class Forecast extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n rerenderKey = 0\n\n mpc: any = null\n timer: any = null\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n get charts() {\n if (this.mpc) {\n return this.mpc?.data?.meta.charts;\n }\n return null;\n }\n\n /**\n * Converts time to milliseconds for every item of predictedEnergy array\n */\n get predictedEnergy() {\n if (this.charts?.predictedEnergy) {\n return this.charts.predictedEnergy.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n\n /**\n * Converts time to milliseconds for every item of predictedPower array\n */\n get predictedPower() {\n if (this.charts?.predictedPower) {\n return this.charts.predictedPower.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n\n /**\n * Prepares series for chart\n */\n get seriesForecast() {\n return [\n {\n name: this.$t('mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedEnergy'),\n type: 'line',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.predictedEnergy,\n },\n {\n name: this.$t('mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedPower'),\n type: 'line',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.predictedPower,\n },\n ];\n }\n\n /**\n * Prepares Y-axis for chart\n */\n get yAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: 0,\n max: this.chartsScaling * 12,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kWh',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: this.chartsScaling * 2,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n ];\n }\n\n get chartData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 700,\n series: this.seriesForecast,\n yAxis: this.yAxisForecast,\n };\n }\n\n /**\n * Updates chart data every 90 seconds\n */\n fetchChartData() {\n this.timer = setInterval(async () => {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.rerenderKey += 1;\n }, 900000);\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.fetchChartData();\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=adead39e&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pv-production-service-mqtt-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-width\":_vm.chartData.chartWidth,\"settings-wrapper-height\":_vm.chartData.chartHeight,\"chart-data\":_vm.chartData.chartData,\"navigation-items-to-exclude\":_vm.chartData.navigationItemsToExclude,\"use-default-period-configs\":false}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n/**\n * Component that represent chart of actual data according to chosen period.\n */\n@Component({\n components: {\n BaseChartWrapper,\n },\n})\nexport default class Charts extends Vue {\n @Prop() httpCharts!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n producedEnergy: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.PVProductionService.settingsView';\n }\n\n /**\n * Prepares chart options object suitable for the chart component\n */\n get power() {\n return {\n name: '',\n data: {\n chartOptions: [\n {\n agg: 'avg',\n name: this.$t(`${this.langPath}.chartLabels.power.actualPower`),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.actualPower,\n },\n {\n agg: 'avg',\n name: this.$t(`${this.langPath}.chartLabels.power.calculatedPower`),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.calculatedPower,\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n get chartData() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: this.power,\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Charts.vue?vue&type=template&id=a6675560&\"\nimport script from \"./Charts.vue?vue&type=script&lang=ts&\"\nexport * from \"./Charts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Charts.vue?vue&type=style&index=0&id=a6675560&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/mpc/PVProductionService/SettingsCharts/Forecast.vue';\nimport Charts from '@/ui/components/devices/mpc/PVProductionService/SettingsCharts/Charts.vue';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in PVProductionService.\n */\n@Component({\n components: {\n Forecast,\n Charts,\n },\n})\nexport default class SettingsCharts extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n producedEnergy: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.PVProductionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'chart',\n locale: this.langPath,\n component: 'Charts',\n chartsScaling: this.chartsScaling,\n mqttChartsVariables: this.mqttChartsVariables,\n },\n {\n title: 'forecast',\n locale: this.langPath,\n component: 'Forecast',\n chartsScaling: this.chartsScaling,\n mpcId: this.mpcId,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=830a4982&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=830a4982&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SettingsCharts from '@/ui/components/devices/mpc/PVProductionService/SettingsCharts/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { Action } from 'vuex-class';\n\n/**\n * Component that represent PVProductionService MPC device\n */\n@Component({\n components: {\n ShowEventDotBase,\n SettingsCharts,\n OutputFieldBase,\n MPCLayout,\n },\n})\nexport default class PVProductionService extends Vue {\n @Prop() deviceData!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n mpc: any = null\n\n isSettingsView = false\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get langPath() {\n return `mlModel.${this.deviceData.data.type}`;\n }\n\n get mpcId() {\n if (this.deviceData) return this.deviceData.id;\n return null;\n }\n get mpcIdMod() {\n if (this.mpcId) return this.mpcId.replace(/-/g, '_');\n return null;\n }\n get chartScaling() {\n return this.deviceData?.data?.meta.chartScaling;\n }\n\n get ready() {\n return this.deviceData?.data?.meta?.controllerMappings?.mpcReady;\n }\n get actualPower() {\n return this.deviceData?.data?.meta?.controllerMappings?.power;\n }\n get calculatedPower() {\n return `PV.${this.mpcIdMod}.pow`;\n }\n get calculatedPowerMainView() {\n return `PV.${this.mpcIdMod}.mean`;\n }\n get calculatedEnergy() {\n return `PV.${this.mpcIdMod}.en`;\n }\n get producedEnergy() {\n return `PV.${this.mpcIdMod}.cen`;\n }\n\n get errorWarningMqtt() {\n return {\n ShowEvent_errorWarningState: this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n get actualPowerMqtt() {\n return {\n OutputField1_actualValue: this.actualPower,\n };\n }\n get calculatedPowerMqtt() {\n return {\n OutputField2_actualValue: this.calculatedPowerMainView,\n };\n }\n get calculatedEnergyMqtt() {\n return {\n OutputField3_actualValue: this.calculatedEnergy,\n };\n }\n get readyMqtt() {\n return {\n ShowEventDot1_errorWarningState: this.ready,\n };\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2a0f0acd&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=2a0f0acd&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.deviceData,\"show-event-variable\":_vm.showEventGeneralErrorWarning,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},on:{\"toggleLoading\":_vm.toggleLoading},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex fill-height pt-10 flex-column flex-lg-row pb-4 pb-lg-0\"},[(_vm.allSystems && _vm.loaded)?[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('ActualView',{staticClass:\"mt-15\",attrs:{\"isHybridSystem\":_vm.isHybridSystem,\"device-data\":_vm.deviceData}})],1),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView')))]),_c('EnergyFlowView',{attrs:{\"displayEnergyFlowHouseInfo\":_vm.displayEnergyFlowHouseInfo,\"device-data\":_vm.deviceData}})],1)]:_c('div',{staticClass:\"d-flex align-center justify-center fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":60}})],1)],2)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EnergyViewCharts',{key:_vm.reRenderKey,attrs:{\"all-systems-data\":_vm.allSystems,\"scaling\":_vm.deviceData.data.meta.scaling,\"mpc-data\":_vm.deviceData,\"mpc-id\":_vm.mpcIdMod,\"isHybridSystem\":_vm.isHybridSystem}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{style:(_vm.enableMinWidth ? 'height: 650px; min-width:700px' : 'height: 650px;')},[_c('EnergyVisualisation',{attrs:{\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData,\"view\":\"ActualView\"}}),(_vm.showDialog && _vm.openedSystem)?_c('ActualViewSystemDialog',{attrs:{\"device-data\":_vm.deviceData,\"opened-system\":_vm.openedSystem,\"devices-with-dynamic-bottom-value\":_vm.devicesWithDynamicBottomValue,\"actualViewCiclesDisplayData\":_vm.circlesDisplayData,\"isHybridSystem\":_vm.isHybridSystem},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport EnergyVisualisation\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport {\n allEnergyCircleTypes,\n energyCircleIconForType,\n EnergyCircleType,\n getCirclePositionForType,\n isProducer,\n isSystemWithAlternativeValue,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n EnergyCircleDisplayData,\n IconContent,\n SocContent,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n getDefaultArrowDirection,\n getDefaultLineColors,\n getDefaultSpinnerColor,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport {\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport ActualViewSystemDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemDialog.vue';\nimport { IDevice } from '@/types/devices.types';\nimport Unit from '@/utils/unit/unit';\nimport {\n energyGreyColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\n\ntype SystemInstances = Record\ntype SystemInstance = Record\n\nconst devicesWithDynamicBottomValue: string[] = ['EMS', 'EMSV2'];\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n EnergyVisualisation,\n ActualViewSystemDialog,\n },\n computed: {\n devicesWithDynamicBottomValue: () => devicesWithDynamicBottomValue,\n },\n})\nexport default class ActualView extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: false }) enableMinWidth!: boolean;\n @Prop({ default: false }) isHybridSystem!: boolean;\n @Getter('projects/project') project!: IProject;\n\n showDialog = false;\n showSystemSettingsDialog = false;\n openedSystem?: EnergyCircleType;\n previousHouseValue = -1;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n\n onLineAnimationEndCallback(id: string) {\n if (id === EnergyCircleType.electric_heating) {\n this.electricHeatingAnimationBottomValue = !this.electricHeatingAnimationBottomValue;\n }\n }\n\n electricHeatingAnimationBottomValue = false;\n\n @Provide('onCircleClick') onCircleClick = this.onCircleClickCallback;\n\n onCircleClickCallback(circleData: EnergyCircleDisplayData) {\n this.openedSystem = circleData.id as EnergyCircleType;\n this.showDialog = true;\n }\n\n sum(systemInstances: Record>, mappedVariable = 'power') {\n const values = Object.values(systemInstances).map(\n (systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return this.measurements[measurement];\n },\n );\n if (values.every((value: any) => typeof value !== 'number')) return;\n\n return values.reduce((acc: number, value: any) => {\n const valueNumber = typeof value === 'number' ? value : 0;\n return acc + valueNumber;\n }, 0);\n }\n\n avg(systemInstances: Record>, mappedVariable = 'soc', skipExternal = false) {\n let systemInstanceArray = Object.values(systemInstances);\n\n if (skipExternal) {\n // filter out external energy measurements for average calculation\n systemInstanceArray = systemInstanceArray.filter((systemInstance: any) => {\n return systemInstance.external_energy_measurement !== true;\n });\n }\n\n const values: number[] = systemInstanceArray.map(\n (systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return this.measurements[measurement] as number;\n },\n );\n const sum: number = values.reduce((acc: number, value: number) => acc + value, 0);\n const result = sum / values.length;\n return Number.isNaN(result) ? 0 : result;\n }\n\n getErrorWarningMode(systemInstances: SystemInstances) {\n const systemInstancesErrorValues = Object.values(systemInstances)\n .map((instance: SystemInstance) => this.measurements[instance.error])\n .filter((el: any) => typeof el === 'number');\n\n return systemInstancesErrorValues.length ? Math.max.apply(null, systemInstancesErrorValues as number[]) : undefined;\n }\n\n shouldShowCross(systemType: string, deviceData: IDevice) {\n if (systemType === EnergyCircleType.grid) {\n const variablenameToCheck = deviceData.data.meta.controllerMappings.grid.components.grid1.is_on_grid;\n if (this.measurements[variablenameToCheck] === 1) {\n return true;\n }\n }\n return false;\n }\n\n get forceCharge() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.force_charge];\n }\n\n get forceCharge2() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.force_charge_2];\n }\n\n get calibrationCharge() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.calibration_charge];\n }\n\n get maintenanceCharge() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.maintenance_charge];\n }\n\n get chargeMaintenance() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.charge_maintenance];\n }\n\n get feedInLimit() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.feed_in_limitation_active];\n }\n\n get p14CmdIsSet() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.p14a_active];\n }\n\n get activeEmsMode() {\n return this.measurements[this.deviceData.data.meta.controllerMappings.active_ems_mode];\n }\n\n get shownSystems() {\n return this.filterPresentSystems(this.deviceData, allEnergyCircleTypes);\n }\n\n get houseSystemOriginalValue() {\n if (!this.isSystemPresent(this.deviceData, EnergyCircleType.house)) return undefined;\n\n const components = this.getSystemComponents(this.deviceData, EnergyCircleType.house);\n return this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n }) ?? 0;\n }\n\n /**\n * Returns the sum of all power values that are needed for the house power calculation\n * from producer elements (pv, generator, battery, chp)\n */\n get houseCalculationProducerElementsSum() {\n const producerElements = [\n EnergyCircleType.pv,\n EnergyCircleType.generator,\n EnergyCircleType.battery,\n EnergyCircleType.chp,\n EnergyCircleType.grid,\n ];\n return producerElements.reduce((acc: number, systemType: EnergyCircleType) => {\n if (!this.isSystemPresent(this.deviceData, systemType)) return acc;\n\n const components = this.getSystemComponents(this.deviceData, systemType);\n let sum = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n });\n\n // convert new value to positive value if device is a producer\n if (isProducer(systemType)) {\n if (sum !== undefined && sum < 0) {\n sum *= -1;\n }\n }\n\n return acc + (sum ?? 0);\n }, 0);\n }\n\n /**\n * Returns the sum of all power values that are needed for the house power calculation\n * from consumer elements (charge_station, electric_heating, heating_pump, big_consumer)\n */\n get houseCalculationConsumerElementsSum() {\n const consumerElements = [\n EnergyCircleType.charge_station,\n EnergyCircleType.electric_heating,\n EnergyCircleType.heating_pump,\n EnergyCircleType.big_consumer,\n ];\n return consumerElements.reduce((acc: number, systemType: EnergyCircleType) => {\n if (!this.isSystemPresent(this.deviceData, systemType)) return acc;\n\n const components = this.getSystemComponents(this.deviceData, systemType);\n let sum = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n });\n\n // convert to positive if sum i negative\n if (sum !== undefined && sum < 0) {\n sum *= -1;\n }\n\n return acc + (sum ?? 0);\n }, 0);\n }\n\n /**\n * Calculated Value for the house system\n */\n get houseSystemValueHybridSystem() {\n return this.houseCalculationProducerElementsSum - this.houseCalculationConsumerElementsSum;\n }\n\n get houseSystemValue() {\n return this.getHouseValue(this.houseSystemOriginalValue, this.sumOfAllEnabledExternalMeasurementsSystemsValues);\n }\n\n get electricHeatingValueUnit(): { v?: number; u?: Unit; isTemperature?: boolean } {\n const components = this.getSystemComponents(this.deviceData, EnergyCircleType.electric_heating);\n const power = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n });\n const temperature = this.getAverageOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n mappedVariable: 'temperature',\n });\n return this.getElectricHeatingValue({\n power,\n temperature,\n status: this.electricHeatingAnimationBottomValue,\n });\n }\n\n get circlesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType) => {\n const components = this.getSystemComponents(this.deviceData, systemType);\n const position = getCirclePositionForType(systemType);\n let bottomValue;\n let unit;\n let additionalContent: any = {};\n let bottomDynamicValue;\n let disableSpinner;\n\n if (systemType === EnergyCircleType.house) {\n const houseSystemCount = this.getSystemCount(this.deviceData, EnergyCircleType.house);\n if (this.previousHouseValue < 0 && houseSystemCount === 1) {\n // if previous value is negative (only initialy) use calculated value (positive and negative)\n // also check for amount of houses. caluclated value is only used if there is only one house\n bottomValue = this.houseSystemValueHybridSystem;\n // if there is a hybrid system and the house value is negative, show the loading animation until the house value is positive or 0\n additionalContent = {\n showLoadingAnimationHouseCircle: this.isHybridSystem && this.houseSystemValueHybridSystem < 0 && this.previousHouseValue < 0,\n };\n } else if (this.previousHouseValue >= 0 && houseSystemCount === 1) {\n // if the previous value is positive and there is a hybrid system, show 0 else show the calculated value (if positive)\n // also check for amount of houses. caluclated value is only used if there is only one house\n bottomValue = this.houseSystemValueHybridSystem < 0 ? this.previousHouseValue : this.houseSystemValueHybridSystem;\n additionalContent = {\n showLoadingAnimationHouseCircle: false,\n };\n } else {\n // if there is no hybrid system, show the normal house value from plc\n bottomValue = this.houseSystemValue;\n }\n if ((bottomValue as number) < 0) {\n // if the house value is negative, show 0 or the previous value if it was positive\n if (this.previousHouseValue < 0) {\n bottomValue = 0;\n } else {\n bottomValue = this.previousHouseValue;\n }\n }\n this.previousHouseValue = (bottomValue as number) ?? 0;\n if (!this.isHybridSystem) {\n // if there is no hybrid system we never show the loading animation\n additionalContent = {\n showLoadingAnimationHouseCircle: false,\n };\n }\n } else if (systemType === EnergyCircleType.electric_heating) {\n if (devicesWithDynamicBottomValue.includes(this.deviceData.data.type)) {\n bottomValue = this.electricHeatingValueUnit.v;\n unit = this.electricHeatingValueUnit.u;\n bottomDynamicValue = this.electricHeatingValueUnit.isTemperature;\n\n const power = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n }) ?? 0;\n\n // if the power is negative and the temperature is visible, disable the spinner\n disableSpinner = this.electricHeatingValueUnit.isTemperature && power <= 0;\n } else {\n bottomValue = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n });\n }\n } else {\n bottomValue = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n });\n }\n\n if (systemType === EnergyCircleType.battery) {\n // here we add all the needed information for the forceChargeIndicator\n additionalContent = {\n forceCharge: this.forceCharge === 1 || this.forceCharge2 === 1,\n calibrationCharge: this.calibrationCharge === 1,\n maintenanceCharge: this.maintenanceCharge === 1,\n chargeMaintenance: this.chargeMaintenance === 1,\n };\n }\n\n if (systemType === EnergyCircleType.grid) {\n additionalContent = {\n ...additionalContent,\n feedInLimitationActive: this.feedInLimit === 1,\n p14aActive: this.p14CmdIsSet === 1,\n activeEmsMode: this.activeEmsMode,\n };\n }\n\n let centerContent: IconContent | SocContent = {\n type: 'icon',\n value: energyCircleIconForType(systemType),\n };\n if (systemType === EnergyCircleType.battery) {\n centerContent = { type: 'soc', value: this.avg(components, 'soc', true) ?? 0 };\n }\n\n // consumers (except house) look on target_power, if power is not mapped, for arrow animation\n let alternativeValue;\n if (isSystemWithAlternativeValue(systemType) && !bottomValue) {\n alternativeValue = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n mappedVariable: 'target_power',\n });\n }\n\n let currentSpinnerColor = getDefaultSpinnerColor(systemType, bottomValue ?? alternativeValue);\n if (systemType === EnergyCircleType.electric_heating && this.electricHeatingValueUnit.isTemperature && !disableSpinner) {\n // if the boiler temperature is visible, the spinner color is dependent on the power value not the temperature value\n // we then also force the animations to be visible\n const power = this.getSumOfSystemInstancesValues({\n systemInstances: components,\n measurements: this.measurements,\n }) ?? 0;\n currentSpinnerColor = getDefaultSpinnerColor(systemType, power);\n additionalContent.forceAnimation = power > 0;\n } else {\n additionalContent.forceAnimation = false;\n }\n\n if ((bottomValue as number) >= 0.01 && (bottomValue as number) < 0.1) {\n // if value is between 0.01 and 0.1, but the bottom value is 0, show 0.1\n bottomValue = 0.1;\n }\n\n return {\n id: systemType,\n bottomValue,\n centerContent,\n position,\n systemCount: this.getSystemCount(this.deviceData, systemType),\n spinnerColor: currentSpinnerColor,\n disableSpinner,\n alternativeValue,\n errorWarningMode: this.getErrorWarningMode(components),\n unit,\n bottomDynamicValue,\n additionalDisplayData: additionalContent,\n } as EnergyCircleDisplayData;\n });\n }\n\n get linesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType, index: number) => {\n const displayData = this.circlesDisplayData[index];\n let arrowDirection;\n let colors;\n\n // if the temperature is visible and the power is negative, the arrow should not be visible else it should be visible (currently only for electric_heating systems)\n if (systemType === EnergyCircleType.electric_heating && displayData.bottomDynamicValue === true && displayData.disableSpinner) {\n arrowDirection = 0;\n colors = energyGreyColors;\n } else {\n arrowDirection = getDefaultArrowDirection(systemType, displayData);\n colors = getDefaultLineColors(systemType, displayData);\n }\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n showCross: this.shouldShowCross(systemType, this.deviceData),\n } as Partial;\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=6863e15f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6863e15f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"base-chart\"},[_c('CalendarNavigation',{ref:\"calendarDialog\",attrs:{\"disable-nav-button\":_vm.disableNavButton,\"navigation-items-to-exclude\":_vm.navigationItemsToExclude},on:{\"handleCalendar\":function($event){return _vm.handleCalendar($event)},\"handleNavigation\":function($event){return _vm.handleNavigation($event)},\"next\":function($event){return _vm.handlePrevNextButtonCalendar('next')},\"prev\":function($event){return _vm.handlePrevNextButtonCalendar('prev')}},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center align-center\"},[(_vm.isProjectCurrencyUndefined)?_c('v-btn',{staticStyle:{\"max-width\":\"90%\",\"height\":\"80%\"},on:{\"click\":function($event){_vm.changeCurrency = !_vm.changeCurrency}}},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.EnergyFlowView.switchCurrency')))]),_c('span',{staticStyle:{\"width\":\"40px\"}},[_vm._v(_vm._s(!_vm.changeCurrency ? 'CHF' : '€'))])]):_vm._e()],1)]},proxy:true}])},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.displayDate))]),_c('div',{staticStyle:{\"height\":\"650px\"}},[(_vm.loader)?_c('div',{staticClass:\"d-flex justify-center align-center fill-height\"},[_c('CircleSpinner',{staticClass:\"circle-spinner\",attrs:{\"color\":\"accent\",\"size\":80}})],1):_c('EnergyVisualisation',{attrs:{\"central-end-point-text\":_vm.calculatedAutarkiegrad,\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData,\"view\":\"EnergyFlowView\"}}),(_vm.showDialog)?_c('EnergyFlowViewSystemDialog',{attrs:{\"device-data\":_vm.deviceData,\"opened-system\":_vm.openedSystem,\"energy-data-by-period-response\":_vm.energyDataByPeriodResponse,\"displayEnergyFlowHouseInfo\":_vm.displayEnergyFlowHouseInfo},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1),_c('div',{staticClass:\"pb-8 device-background\",attrs:{\"data-testid\":\"additional-info\"}},[_c('div',{staticClass:\"d-flex justify-space-around flex-wrap\"},[_c('IconValueFieldWithTooltip',{attrs:{\"icon\":'savings',\"value\":_vm.changeCurrency ? (_vm.costSavings * _vm.currentExchangeRate).toFixed(2) : _vm.costSavings.toFixed(2),\"unit\":_vm.changeCurrency ? 'CHF' : '€',\"text\":_vm.$t(`mlModel.EMS.systems.EnergyFlowView.savings`)}}),_c('IconValueFieldWithTooltip',{attrs:{\"icon\":'co2',\"value\":_vm.roundNumber(_vm.co2ReductionUnit.unitForValue(_vm.emissionReduction).value),\"unit\":_vm.co2ReductionUnit.unitForValue(_vm.emissionReduction).unit,\"text\":_vm.$t(`mlModel.EMS.systems.EnergyFlowView.reduction`)}}),_c('IconValueFieldWithTooltip',{attrs:{\"icon\":'electrical_services',\"value\":_vm.roundNumber(_vm.totalConsumptionUnit.unitForValue(_vm.totalConsumption).value) || 0,\"unit\":_vm.totalConsumptionUnit.unitForValue(_vm.totalConsumption).unit,\"text\":_vm.$t(`mlModel.EMS.systems.EnergyFlowView.inHouseConsumption`)}}),_c('IconValueFieldWithTooltip',{attrs:{\"icon\":'flash_auto',\"value\":_vm.autarchyScore,\"unit\":'%',\"text\":_vm.$t('mlModel.EMS.charts.autarchy')}})],1)])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({staticClass:\"activator activator-styles\"},on),[_c('v-icon',[_vm._v(_vm._s(_vm.icon))]),_c('div',{staticClass:\"pl-2\",attrs:{\"data-testid\":\"value\"}},[_vm._v(_vm._s(_vm.value))]),_c('div',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.unit))])],1)]}}])},[_c('div',{staticClass:\"content\"},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent EMS\n */\n@Component({\n components: {\n\n },\n})\nexport default class IconValueFieldWithTooltip extends Vue {\n @Prop({ default: '' }) icon!: string;\n @Prop({ default: '' }) value!: string;\n @Prop({ default: '' }) text!: string;\n @Prop({ default: '' }) unit!: string;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconValueFieldWithTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconValueFieldWithTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconValueFieldWithTooltip.vue?vue&type=template&id=fb3a33cc&scoped=true&\"\nimport script from \"./IconValueFieldWithTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconValueFieldWithTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./IconValueFieldWithTooltip.vue?vue&type=style&index=0&id=fb3a33cc&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fb3a33cc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('SystemDialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.EMS.systems.${_vm.openedSystem}.title`)))]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticStyle:{\"position\":\"relative\"}},[_c('SystemDialogView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines}}),(_vm.openedSystem === 'house' && _vm.displayEnergyFlowHouseInfo === true)?_c('div',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"0\",\"right\":\"0\",\"display\":\"flex\"}},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":\"accent\",\"size\":\"24\"}})],1),_c('a',{staticClass:\"ml-2 docs-link\",attrs:{\"href\":\"https://lynus.zammad.com/help/de-de/68-faq/167-warum-kann-es-bei-einem-mischsystem-zu-leichten-abweichungen-in-den-anzeigen-kw-und-kwh-kommen\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMSV2.systems.EnergyFlowView.counterDeviationInfo`))+\" \")])]):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Getter } from 'vuex-class';\nimport EnergyComponent from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport SystemDialog from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport SystemDialogView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue';\nimport {\n EnergyCircleType,\n isHybrid,\n energyCircleIconForType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport EnergyVisualisation from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport {\n CirclePosition,\n EnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n energyConsumerColors,\n energyHybridColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IMeasurements } from '@/types/measurements.types';\nimport {\n getDefaultArrowDirection,\n getDefaultLineColors,\n getDefaultSpinnerColor,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport { IDevice } from '@/types/devices.types';\nimport { EnergyDataByPeriodResponse, EnergyDataByPeriodResponseEnergies } from '@/types/energyVisualisation/energyVisualisation.types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\n\n@Component({\n components: {\n SystemDialogView,\n SystemDialog,\n EnergyVisualisation,\n InfoTooltip,\n },\n methods: { roundNumber },\n})\nexport default class EnergyFlowViewSystemDialog extends mixins(EnergyComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop() openedSystem!: EnergyCircleType;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() energyDataByPeriodResponse!: EnergyDataByPeriodResponse | null;\n @Prop({ default: false }) displayEnergyFlowHouseInfo!: boolean;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n @Provide('onDialogLineAnimationEnd') onDialogLineAnimationEnd =\n this.onDialogLineAnimationEndCallback;\n dialogHybridHighlightBottomValue = false;\n dialogHybridArrowDirection = ArrowDirection.toCenter;\n dialogHybridLineColors = energyHybridColors;\n onDialogLineAnimationEndCallback() {\n this.dialogHybridHighlightBottomValue = !this.dialogHybridHighlightBottomValue;\n this.dialogHybridArrowDirection =\n this.dialogHybridArrowDirection === ArrowDirection.toCenter\n ? ArrowDirection.awayFromCenter\n : ArrowDirection.toCenter;\n this.dialogHybridLineColors =\n this.dialogHybridLineColors === energyHybridColors\n ? energyConsumerColors\n : energyHybridColors;\n }\n\n getSystemInstanceValue({\n systemType,\n systemInstanceName,\n key,\n }: {\n systemType: EnergyCircleType;\n systemInstanceName: string;\n key?: 'to_consumer' | 'from_production';\n }) {\n if (!this.energyDataByPeriodResponse) return undefined;\n\n const systemInstanceFullKey = key ? `${systemInstanceName}_${key}` : systemInstanceName;\n const systemInstances = this.energyDataByPeriodResponse.energies[\n systemType as keyof EnergyDataByPeriodResponseEnergies\n ] as Record;\n return systemInstances[systemInstanceFullKey];\n }\n\n defineHouseValue(value: any) {\n const externalMeasurementsSystemsValueList = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n return this.getSumOfExternalMeasurementsSystemInstancesValues(systemType, this.energyDataByPeriodResponse, this.deviceData) ?? 0;\n });\n const sumOfExternalMeasurementsSystemsValues = externalMeasurementsSystemsValueList.reduce((acc: number, val: number) => acc + val, 0);\n return typeof value === 'number' ? value - sumOfExternalMeasurementsSystemsValues : undefined;\n }\n\n get systemDialogCircles() {\n if (!this.openedSystem) return [];\n\n const systems = this.getSystemComponents(this.deviceData, this.openedSystem);\n return Object.entries(systems).map(([key, systemComponent], index: number) => {\n let bottomValue;\n let highlightBottomValue;\n let spinnerColor;\n\n if (isHybrid(this.openedSystem)) {\n bottomValue = this.dialogHybridHighlightBottomValue\n ? this.getSystemInstanceValue({\n systemType: this.openedSystem,\n systemInstanceName: key,\n key: 'from_production',\n })\n : this.getSystemInstanceValue({\n systemType: this.openedSystem,\n systemInstanceName: key,\n key: 'to_consumer',\n });\n spinnerColor = this.dialogHybridLineColors.colorAtCircle;\n highlightBottomValue = this.dialogHybridHighlightBottomValue;\n } else if (this.openedSystem === EnergyCircleType.house && !this.displayEnergyFlowHouseInfo && this.getSystemCount(this.deviceData, EnergyCircleType.house) === 1) {\n // but only use calculated value if we dont have a hybrid system\n // house\n bottomValue = this.defineHouseBottomValue();\n } else {\n bottomValue = this.getSystemInstanceValue({\n systemType: this.openedSystem,\n systemInstanceName: key,\n });\n }\n\n return {\n id: key,\n centerContent: { type: 'icon', value: energyCircleIconForType(this.openedSystem) },\n bottomValue,\n position: index < 5 ? CirclePosition.top : CirclePosition.bottom,\n errorWarningMode: this.measurements[systemComponent.error],\n title: systemComponent.title,\n spinnerColor: spinnerColor ?? getDefaultSpinnerColor(this.openedSystem, bottomValue),\n highlightBottomValue,\n unit: kiloWattHourUnit,\n } as EnergyCircleDisplayData;\n });\n }\n get systemDialogLines(): Partial[] {\n if (!this.openedSystem) return [];\n\n return this.systemDialogCircles.map((displayData: EnergyCircleDisplayData) => {\n if (isHybrid(this.openedSystem)) {\n return {\n id: displayData.id,\n arrowDirection: this.dialogHybridArrowDirection,\n colors: this.dialogHybridLineColors,\n oneArrowOnly: true,\n } as Partial;\n } else {\n return {\n id: displayData.id,\n arrowDirection: getDefaultArrowDirection(this.openedSystem, displayData),\n colors: getDefaultLineColors(this.openedSystem, displayData),\n } as Partial;\n }\n });\n }\n\n get totalConsumption(): number | undefined {\n return this.energyDataByPeriodResponse?.calculations.total_consumption;\n }\n\n defineHouseBottomValue() {\n const externalMeasurementsSystemsValueList = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n return this.getSumOfExternalMeasurementsSystemInstancesValues(systemType, this.energyDataByPeriodResponse, this.deviceData) ?? 0;\n });\n const sumOfExternalMeasurementsSystemsValues = externalMeasurementsSystemsValueList.reduce((acc: number, val: number) => acc + val, 0);\n return this.getHouseValue(this.totalConsumption, sumOfExternalMeasurementsSystemsValues);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowViewSystemDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowViewSystemDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowViewSystemDialog.vue?vue&type=template&id=6e26df32&scoped=true&\"\nimport script from \"./EnergyFlowViewSystemDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowViewSystemDialog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyFlowViewSystemDialog.vue?vue&type=style&index=0&id=6e26df32&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e26df32\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Action, Getter } from 'vuex-class';\nimport { kiloWattHourUnit, kilogramUnit } from '@/utils/unit/unitConstants';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport EnergyComponent from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n EnergyCircleType,\n isHybrid,\n energyCircleIconForType,\n getCirclePositionForType,\n allEnergyCircleTypes,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport EnergyVisualisation from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport {\n getDateBoundsByPeriod,\n periodConfigurations,\n Periods,\n} from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { changeDate, countDecimalPlaces, formatDateForPeriod, roundNumber } from '@/utils/utilsFunctions';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n energyConsumerColors,\n energyHybridColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport {\n getDefaultArrowDirection,\n getDefaultLineColors,\n getDefaultSpinnerColor,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport CalendarNavigation from '@/ui/components/devices/charts/charts/CalendarNavigation.vue';\nimport IconValueFieldWithTooltip from '@/ui/components/components/IconValueFieldWithTooltip.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { IProject } from '@/types/project.types';\nimport { EnergyDataByPeriodResponse } from '@/types/energyVisualisation/energyVisualisation.types';\nimport EnergyFlowViewSystemDialog from './EnergyFlowViewSystemDialog.vue';\n\n@Component({\n components: {\n CalendarNavigation,\n CircleSpinner,\n EnergyVisualisation,\n EnergyFlowViewSystemDialog,\n IconValueFieldWithTooltip,\n },\n methods: { roundNumber },\n})\nexport default class EnergyFlowView extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: false }) displayEnergyFlowHouseInfo!: boolean;\n @Getter('projects/projectStartedAtNumber') startedAt!: number;\n @Getter('projects/project') currentProject!: IProject;\n @Getter('projects/projectCurrency') projectCurrency!: '€' | 'CHF' | undefined;\n @Action('mpc/fetchDataByPeriodMpc') fetchDataByPeriodMpc!: ({\n id,\n start,\n end,\n period,\n }: {\n id: string;\n start: number;\n end: number;\n period: string;\n }) => Promise;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: ({\n id,\n start,\n end,\n period,\n }: {\n id: string;\n start: number;\n end: number;\n period: string;\n }) => Promise;\n\n loader = true;\n energyDataByPeriodResponse: EnergyDataByPeriodResponse | null = null;\n\n // ========================== systems dialogs ==========================\n showDialog = false;\n openedSystem?: EnergyCircleType;\n @Provide('onCircleClick') onCircleClick = this.onCircleClickCallback;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n hybridHighlightBottomValue = false;\n hybridArrowDirection = ArrowDirection.toCenter;\n hybridLineColors = energyHybridColors;\n onLineAnimationEndCallback() {\n this.hybridHighlightBottomValue = !this.hybridHighlightBottomValue;\n this.hybridArrowDirection =\n this.hybridArrowDirection === ArrowDirection.toCenter\n ? ArrowDirection.awayFromCenter\n : ArrowDirection.toCenter;\n this.hybridLineColors =\n this.hybridLineColors === energyHybridColors ? energyConsumerColors : energyHybridColors;\n }\n\n onCircleClickCallback(circleData: EnergyCircleDisplayData) {\n this.openedSystem = circleData.id as EnergyCircleType;\n this.showDialog = true;\n }\n\n autoReloadInterval: any = null;\n\n // ========================== calendar ==========================\n currentPeriod: string = Periods.DAY;\n currentCalendarStartDate: number | null = null;\n disableNavButton = false;\n navigationItemsToExclude = ['live', 'hour']\n\n // ========================== bottom, top info ==========================\n displayDate: string | null = null;\n changeCurrency = false;\n currentExchangeRate = 1.02;\n co2ReductionUnit = kilogramUnit;\n totalConsumptionUnit = kiloWattHourUnit;\n get costSavings() {\n return roundNumber(this.energyDataByPeriodResponse?.calculations.cost_saved as number) || 0;\n }\n get emissionReduction() {\n return roundNumber(this.energyDataByPeriodResponse?.calculations.co2_saved as number) || 0;\n }\n get autarchyScore() {\n return roundNumber(this.energyDataByPeriodResponse?.calculations.autarchy_score as number) || 0;\n }\n get calculatedAutarkiegrad() {\n return `${this.$t('mlModel.EMS.charts.autarchy')} \\n${this.autarchyScore}%`;\n }\n\n get isProjectCurrencyUndefined() {\n return this.currentProject.meta?.projectCurrency === undefined;\n }\n\n get isMpc() {\n const mpcDevices: any = ['MpcEnergyView', 'EMS'];\n return mpcDevices.includes(this.deviceData.data.type);\n }\n\n get totalConsumption(): number | undefined {\n return this.energyDataByPeriodResponse?.calculations.total_consumption;\n }\n\n get shownSystems() {\n return this.filterPresentSystems(this.deviceData, allEnergyCircleTypes);\n }\n\n get circlesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType) => {\n const position = getCirclePositionForType(systemType);\n\n let bottomValue;\n let highlightBottomValue;\n let spinnerColor;\n if (isHybrid(systemType)) {\n // battery/grid\n bottomValue = this.hybridHighlightBottomValue\n ? this.defineHybridSystemsBottomValue(systemType, 'from_production')\n : this.defineHybridSystemsBottomValue(systemType, 'to_consumer');\n highlightBottomValue = this.hybridHighlightBottomValue;\n spinnerColor = this.hybridLineColors.colorAtCircle;\n } else if (systemType === EnergyCircleType.house && !this.displayEnergyFlowHouseInfo) {\n // but only use calculated value if we dont have a hybrid system\n // house\n bottomValue = this.defineHouseBottomValue();\n } else {\n // all other systems\n bottomValue = this.defineSystemsBottomValue(systemType);\n }\n\n return {\n id: systemType,\n bottomValue,\n centerContent: {\n type: 'icon',\n value: energyCircleIconForType(systemType),\n },\n position,\n systemCount: this.getSystemCount(this.deviceData, systemType),\n spinnerColor: spinnerColor ?? getDefaultSpinnerColor(systemType, bottomValue),\n unit: kiloWattHourUnit,\n highlightBottomValue,\n } as EnergyCircleDisplayData;\n });\n }\n\n get linesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType, index: number) => {\n const displayData = this.circlesDisplayData[index];\n\n if (isHybrid(systemType)) {\n return {\n id: displayData.id,\n arrowDirection: this.hybridArrowDirection,\n colors: this.hybridLineColors,\n oneArrowOnly: true,\n } as Partial;\n }\n\n return {\n id: displayData.id,\n arrowDirection: getDefaultArrowDirection(systemType, displayData),\n colors: getDefaultLineColors(systemType, displayData),\n } as Partial;\n });\n }\n\n setDisplayDate({ start, end }: { start: number; end: number }) {\n this.currentCalendarStartDate = start;\n this.displayDate = formatDateForPeriod(\n this.currentPeriod,\n this.currentPeriod === 'week' ? ([start * 1000, end * 1000] as any) : ([start * 1000] as any),\n );\n }\n\n fetchEnergyDataFunction = this.isMpc ? this.fetchDataByPeriodMpc : this.fetchDataByPeriod;\n async fetchEnergyData({ start, end }: { start: number; end: number }) {\n this.disableNavButton = true;\n this.loader = true;\n try {\n this.energyDataByPeriodResponse = await this.fetchEnergyDataFunction({\n id: this.deviceData.id.replaceAll('_', '-'),\n start,\n end,\n period: this.currentPeriod,\n });\n } catch (e) {\n this.energyDataByPeriodResponse = null;\n console.error(e);\n } finally {\n this.disableNavButton = false;\n this.loader = false;\n }\n clearInterval(this.autoReloadInterval);\n this.autoReloadInterval = setInterval(() => {\n this.fetchEnergyData({ start, end });\n }, 3600000);\n }\n\n defineHybridSystemsBottomValue(\n systemType: EnergyCircleType,\n key: 'to_consumer' | 'from_production',\n ) {\n if (!this.energyDataByPeriodResponse) return undefined;\n\n const systemInstances = this.energyDataByPeriodResponse.energies[systemType];\n const systemInstancesFilteredByKey = Object.entries(systemInstances)\n .filter(([k, v]) => new RegExp(key).test(k));\n return systemInstancesFilteredByKey.length\n ? systemInstancesFilteredByKey.reduce((acc: number, [k, v]: any) => acc + v, 0)\n : undefined;\n }\n defineSystemsBottomValue(systemType: EnergyCircleType) {\n if (!this.energyDataByPeriodResponse) return undefined;\n\n const systemInstances = this.energyDataByPeriodResponse.energies[systemType];\n return systemInstances\n ? Object.values(systemInstances).reduce((acc: number, el: number) => acc + el, 0)\n : undefined;\n }\n\n defineHouseBottomValue() {\n const externalMeasurementsSystemsValueList = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n return this.getSumOfExternalMeasurementsSystemInstancesValues(systemType, this.energyDataByPeriodResponse, this.deviceData) ?? 0;\n });\n const sumOfExternalMeasurementsSystemsValues = externalMeasurementsSystemsValueList.reduce((acc: number, val: number) => acc + val, 0);\n return this.getHouseValue(this.totalConsumption, sumOfExternalMeasurementsSystemsValues);\n }\n\n async handleNavigation(period: string) {\n this.currentPeriod = period;\n const { start, end } = periodConfigurations[this.currentPeriod].period();\n this.setDisplayDate({ start, end });\n await this.fetchEnergyData({ start, end });\n }\n\n async handleCalendar(data: any) {\n (this.$refs.calendarDialog as any).closeDialog();\n await this.loadCalendarRange(data);\n }\n startOfCreatedAtDate() {\n const createdAtDate = new Date(this.startedAt);\n switch (this.currentPeriod) {\n case 'day':\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate(),\n );\n case 'week':\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate() - createdAtDate.getDay(),\n );\n case 'month':\n return new Date(createdAtDate.getFullYear(), createdAtDate.getMonth(), 1);\n case 'year':\n return new Date(createdAtDate.getFullYear(), 0, 1);\n default:\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate(),\n );\n }\n }\n async handlePrevNextButtonCalendar(direction: string) {\n const date = changeDate(this.currentCalendarStartDate as number, direction, this.currentPeriod);\n const start = this.startOfCreatedAtDate().getTime() / 1000;\n const end = new Date().getTime() / 1000;\n if (date < end && date >= start) {\n await this.loadCalendarRange(date);\n }\n }\n async loadCalendarRange(date: number) {\n const now = Math.trunc(new Date().getTime() / 1000);\n const chartBounds = getDateBoundsByPeriod(date, this.currentPeriod);\n const { start, end } = chartBounds as { start: number; end: number; endChart: number };\n const maxEnd = end > now ? now : end;\n\n this.setDisplayDate({ start, end: maxEnd });\n await this.fetchEnergyData({ start, end: maxEnd });\n }\n beforeDestroy() {\n clearInterval(this.autoReloadInterval);\n }\n mounted() {\n if (this.projectCurrency !== undefined) {\n this.changeCurrency = this.projectCurrency === 'CHF';\n }\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3b8af70d&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"energy-view-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,_vm._b({tag:\"component\",attrs:{\"shownSystems\":_vm.shownSystemsSingleSystemsChart,\"showScores\":false,\"device-data\":_vm.mpcData,\"isHybridSystem\":_vm.isHybridSystem,\"systemsVars\":item.systemsVars,\"defaultAggregation\":item.defaultAggregation,\"showColumnChart\":item.showColumnChart,\"navItemsToExclude\":item.navItemsToExclude}},'component',{ allSystemsData: _vm.allSystemsData, scaling: _vm.scaling, mpcId: _vm.mpcId },false)):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('div',{staticClass:\"d-flex justify-center pt-2\"},[_c('SystemsNavigation',{attrs:{\"system-name\":_vm.deviceData.data.type,\"is-list-items-plural\":false,\"items\":_vm.systemSchema},on:{\"handleCurrentChart\":_vm.handleCurrentChart}})],1),(_vm.showCurrentChartData)?_c('div',{staticClass:\"pt-2\"},[_c('BaseChartWrapper',_vm._b({key:_vm.reRenderKey,ref:\"chartWrapper\",attrs:{\"parent-component-width\":1710,\"navigationItemsToExclude\":_vm.currentChartData.data.navigationItemsToExclude,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"chartScores\":_vm.scoresForDataExport,\"modularDefaultPeriod\":_vm.navItemsToExclude.includes('day') ? 'week': 'day'},on:{\"chartRangeChange\":_vm.chartRangeChange},scopedSlots:_vm._u([(_vm.showScores)?{key:\"additional-content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-wrap py-2\"},_vm._l((_vm.scores),function(value,key){return _c('div',{key:key,staticClass:\"px-4\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(key)+\": \")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(value))]),_c('span',[_vm._v(_vm._s('kWh'))])])}),0)]},proxy:true}:null],null,true)},'BaseChartWrapper',{ ..._vm.currentChartData.data },false)),(_vm.isHybridSystem && _vm.showHouseCalculationTooltip)?_c('div',{staticClass:\"d-flex justify-end\"},[_c('div',{staticStyle:{\"width\":\"30px\"}},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":'accent',\"size\":\"30\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.charts.hybridHouseCalculationInfo'))+\" \")]},proxy:true}],null,false,2902523305)})],1)]):_vm._e()],1):_c('div',{staticClass:\"noDevicesConfiguredStyles\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * Chart scaling for charts (in EnergyView/EMS) that contain mixed types of systems\n */\nexport const mixedEnergyChartScaling = {\n min: -2,\n max: 5,\n};\n\n/**\n * Chart scaling for charts (in EnergyView/EMS) that contain single systems,\n * which are not hybrid (battery, grid)\n */\nexport const singleEnergyChartScaling = {\n min: 0,\n max: 5,\n};\n\n/**\n * Chart scaling for charts (in EnergyView/EMS) that contain single systems,\n * which are hybrid (battery, grid)\n */\nexport const singleEnergyChartScalingHybrid = {\n min: -5,\n max: 5,\n};\n\nexport const temperatureScaling = {\n min: 0,\n max: 40,\n};\n","import {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { getVariableValue } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\nimport { IAggregationProps, IExpressionProps, ICalculationProps } from '@/types/energyVisualisation/energyVisualisation.types';\nimport { IDevice } from '@/types/devices.types';\n\nexport function getAggregation({ system, variable, externalMeasurementsList }: IAggregationProps, defaultAggregation = 'avg') {\n switch (system) {\n case EnergyCircleType.house: return [variable, ...externalMeasurementsList].fill(defaultAggregation);\n case EnergyCircleType.battery: return variable === 'soc' ? ['last'] : [defaultAggregation];\n default: return [defaultAggregation];\n }\n}\n\nexport function getExpression({ system, variableValue, expressionWrapperFn, externalMeasurementsList }: IExpressionProps) {\n switch (system) {\n case EnergyCircleType.house: {\n const exp = [variableValue, ...externalMeasurementsList].join(' - ');\n return typeof expressionWrapperFn === 'function' ? expressionWrapperFn(exp) : exp;\n }\n default: return typeof expressionWrapperFn === 'function' ? expressionWrapperFn(variableValue) : variableValue;\n }\n}\n\nexport function getCalculation({\n system, instance, variable, device, expressionWrapperFn, externalMeasurementsList, defaultAggregation = 'avg',\n}: ICalculationProps) {\n const variableValue = getVariableValue(device.data.meta.controllerMappings, system, instance, variable);\n return {\n aggregations: getAggregation({ system, variable, externalMeasurementsList }, defaultAggregation),\n expression: getExpression({ system, variableValue, expressionWrapperFn, externalMeasurementsList }),\n };\n}\n\n/**\n * @param array EnergyCircleType array\n * @param variableKey key of variable to be extracted\n * @param deviceData device data of EMS or EnergyView\n * @returns array of all mapped variable names\n */\nexport function getVariableNames(array: EnergyCircleType[], variableKey: string, deviceData: IDevice) {\n const variableArray: string[] = [];\n array.forEach((systemType: EnergyCircleType) => {\n const systemComponents = deviceData.data.meta.controllerMappings[systemType].components;\n\n Object.values(systemComponents).forEach((component: any) => {\n const variableName = component[variableKey];\n variableArray.push(variableName);\n });\n });\n return variableArray;\n}\n\n/**\n * @param device Device data of EMS or EnergyView\n * @returns calculation object with aggregations and expression\n */\nexport function getCalculationHouse(device: IDevice) {\n const finalCalculationExpression: { aggregations: string[]; expression: string } = {\n aggregations: [],\n expression: '',\n };\n const producerElements = [\n EnergyCircleType.pv,\n EnergyCircleType.generator,\n EnergyCircleType.battery,\n EnergyCircleType.chp,\n EnergyCircleType.grid,\n ];\n const consumerElements = [\n EnergyCircleType.charge_station,\n EnergyCircleType.electric_heating,\n EnergyCircleType.heating_pump,\n EnergyCircleType.big_consumer,\n ];\n // will contain list of all mapped variables of producer and consumer elements\n const producerVariables: string[] = getVariableNames(producerElements, 'power', device);\n const consumerVariables: string[] = getVariableNames(consumerElements, 'power', device);\n\n if (producerVariables.length !== 0 && consumerVariables.length !== 0) {\n // case if there are any other consumers present\n finalCalculationExpression.expression = `max(( ${producerVariables.join(' + ')} ) - ( ${consumerVariables.join(' + ')} ), 0)`;\n } else {\n // case if only house is present as consumer\n finalCalculationExpression.expression = `max(( ${producerVariables.join(' + ')} ), 0)`;\n }\n\n const countOfVariables = producerVariables.length + consumerVariables.length;\n // fill aggregations array with avg for all variables\n finalCalculationExpression.aggregations = [...Array(countOfVariables).fill('avg')];\n\n return finalCalculationExpression;\n}\n","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport {\n defineInstancesGroups,\n getChartSystemInstanceName,\n} from '@/ui/components/devices/components/EnergyParts/EMS/utils';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport {\n singleEnergyChartScaling,\n singleEnergyChartScalingHybrid,\n temperatureScaling,\n} from '@/utils/scalingConstants';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n getCalculation,\n getExpression,\n getCalculationHouse,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/energyChartsUtils';\nimport { IDevice } from '@/types/devices.types';\nimport { ICurrentSystem, ISystemsVars } from '@/types/common.types';\nimport { EnergyDataByPeriodResponse } from '@/types/energyVisualisation/energyVisualisation.types';\n\nconst DEFAULT_SYSTEMS_VARS = {\n charge_station: ['power'],\n electric_heating: ['power', 'temperature'],\n heating_pump: ['power'],\n big_consumer: ['power'],\n pv: ['power'],\n chp: [\n 'power', 'thermal_power_output', 'flow_temperature', 'return_temperature',\n 'buffer_temperature_top', 'buffer_temperature_bottom',\n ],\n generator: ['power'],\n grid: ['power'],\n battery: ['power', 'soc'],\n house: ['power'],\n};\n\n@Component({\n components: {\n BaseChartWrapper,\n SystemsNavigation,\n InfoTooltip,\n },\n})\nexport default class SingleSystemsView extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: '' }) mpcId!: string;\n @Prop() settingsWrapperHeight !: number;\n @Prop({ default: false }) isMpc!: boolean\n @Prop() shownSystems !: EnergyCircleType[];\n @Prop({ default: false }) showHouseConsumptionAlways !: boolean;\n @Prop({ default: false }) showScores !: boolean;\n @Prop({ default: false }) setExpressionAsMax!: boolean;\n @Prop({ default: false }) excludeHouse!: boolean;\n @Prop({ default: 9 }) numberOfSeriesPerChart!: number;\n @Prop({ default: () => DEFAULT_SYSTEMS_VARS }) systemsVars!: ISystemsVars;\n @Prop({ default: false }) isHybridSystem!: boolean;\n @Prop({ default: 'avg' }) defaultAggregation!: string;\n @Prop({ default: () => false }) showColumnChart!: boolean;\n @Prop({ default: () => ['live', 'hour'] }) navItemsToExclude!: string[];\n\n @Action('mpc/fetchDataByPeriodMpc') fetchDataByPeriodMpc!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n\n reRenderKey = 0;\n currentPeriod = Periods.DAY;\n start = periodConfigurations[this.currentPeriod].period().start;\n end = periodConfigurations[this.currentPeriod].period().end;\n energyResponse: EnergyDataByPeriodResponse | null = null;\n systems: EnergyCircleType[] = [];\n currentChart: ICurrentSystem = {\n system: null,\n instances: [],\n }\n selectedGroup = 0;\n systemsUnits: any = {\n battery: {\n soc: '%',\n power: 'kW',\n energy_counter: 'kWh',\n reverse_energy_counter: 'kWh',\n },\n electric_heating: {\n power: 'kW',\n temperature: '°C',\n energy_counter: 'kWh',\n },\n chp: {\n power: 'kW',\n thermal_power_output: 'kW',\n flow_temperature: '°C',\n return_temperature: '°C',\n buffer_temperature_top: '°C',\n buffer_temperature_bottom: '°C',\n energy_counter: 'kWh',\n },\n house: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n grid: {\n energy_counter: 'kWh',\n reverse_energy_counter: 'kWh',\n power: 'kW',\n },\n generator: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n pv: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n big_consumer: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n heating_pump: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n charge_station: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n }\n showHouseCalculationTooltip = false;\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n battery: {\n soc: { min: 0, max: 100 },\n energy_counter: { min: 0, max: undefined },\n reverse_energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n grid: {\n power: singleEnergyChartScalingHybrid,\n energy_counter: { min: 0, max: undefined },\n reverse_energy_counter: { min: 0, max: undefined },\n },\n electric_heating: {\n temperature: { min: 0, max: 120 },\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n chp: {\n power: singleEnergyChartScaling,\n thermal_power_output: singleEnergyChartScaling,\n flow_temperature: temperatureScaling,\n return_temperature: temperatureScaling,\n buffer_temperature_top: temperatureScaling,\n buffer_temperature_bottom: temperatureScaling,\n energy_counter: { min: 0, max: undefined },\n },\n house: {\n power: singleEnergyChartScaling,\n reverse_energy_counter: { min: 0, max: undefined },\n energy_counter: { min: 0, max: undefined },\n },\n generator: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n pv: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n big_consumer: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n heating_pump: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n charge_station: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n };\n }\n scores: Record = {};\n scoresForDataExport: Record = {};\n\n getSplitter(system: EnergyCircleType) {\n switch (system) {\n case EnergyCircleType.battery:\n return 4;\n case EnergyCircleType.grid:\n return 4;\n case EnergyCircleType.chp:\n return 1;\n default:\n return this.numberOfSeriesPerChart;\n }\n }\n\n getSystemsExpressionWrappers(system: any) {\n switch (system) {\n case EnergyCircleType.house: return (exp: string) => `max(${exp}, 0)`;\n default: return undefined;\n }\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n const filteredSystems = Object.entries(this.getSystems(this.deviceData))\n .filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1]?.count));\n const mappedSystems = filteredSystems.map((el: any) => {\n return defineInstancesGroups(el, this.getSplitter(el[0]), 'power', this.getSystems(this.deviceData));\n }).filter((system: any) => system?.[1].length);\n return mappedSystems;\n }\n /**\n * House system options data\n */\n get houseConsumptionPowerVariablesList() {\n return Object.values(this.getSystemComponents(this.deviceData, EnergyCircleType.house))\n .map((instance: any) => instance.power)\n .filter((variable: string) => variable);\n }\n get houseConsumptionPowerVariablesExpression() {\n return this.houseConsumptionPowerVariablesList.join('+');\n }\n get houseChartOptions() {\n return {\n calculation: {\n aggregations: [...this.houseConsumptionPowerVariablesList, ...this.externalMeasurementsSystemsVariablesList].fill('avg'),\n expression: getExpression({\n system: EnergyCircleType.house,\n variableValue: this.houseConsumptionPowerVariablesExpression,\n expressionWrapperFn: this.getSystemsExpressionWrappers(EnergyCircleType.house),\n externalMeasurementsList: this.externalMeasurementsSystemsVariablesList,\n }),\n },\n name: 'House Consumption',\n scaling: singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: this.showColumnChart ? 'column' : 'line',\n unit: 'kW',\n };\n }\n\n /**\n * Returns calculated house consumption chart options used in hybrid systems\n */\n get calculatedHouseChartOptions() {\n const calculationExpression = getCalculationHouse(this.deviceData);\n return {\n calculation: {\n aggregations: calculationExpression.aggregations,\n expression: calculationExpression.expression,\n },\n name: 'House',\n scaling: singleEnergyChartScaling,\n type: this.showColumnChart ? 'column' : 'line',\n unit: 'kW',\n seriesType: 'Calculation',\n };\n }\n\n get isSystemWithMultipleChartValues() {\n return this.currentChart.system ? this.systemsVars[this.currentChart.system].length > 1 : false;\n }\n\n /**\n * Systems options data\n */\n get systemsChartOptions() {\n if (!this.currentChart.instances.length) return [];\n\n const chartOptions: any = this.currentChart.instances.map((instance: string) => {\n const existingSystemVars = this.systemsVars[this.currentChart.system as string].filter((v: string) => {\n return !!this.getVariableValue(this.deviceData, this.currentChart.system as EnergyCircleType, instance, v);\n });\n\n return existingSystemVars.map((variable: string) => {\n const chartInstanceName = getChartSystemInstanceName(this.getSystems(this.deviceData), this.currentChart.system as string, instance, variable);\n\n const name = this.isSystemWithMultipleChartValues\n ? `${this.$t(`devices.EnergyView.ChartsWindow.legend.${this.currentChart.system}.${variable}`)} - ${chartInstanceName}`\n : chartInstanceName;\n\n const scaling = this.systemsScaling[this.currentChart.system as string];\n const units = this.systemsUnits[this.currentChart.system as string];\n\n if (!this.showColumnChart) {\n return {\n calculation: getCalculation({\n system: this.currentChart.system as EnergyCircleType,\n instance,\n variable,\n device: this.deviceData,\n expressionWrapperFn: this.setExpressionAsMax\n ? (exp: string) => `max(${exp}, 0)`\n : this.getSystemsExpressionWrappers(this.currentChart.system),\n externalMeasurementsList: this.externalMeasurementsSystemsVariablesList,\n defaultAggregation: this.defaultAggregation,\n }),\n name,\n scaling: scaling ? scaling[variable] : singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: units ? units[variable] : 'kW',\n };\n } else {\n const energyCounterMapping = this.getSystemComponents(this.deviceData, this.currentChart.system as EnergyCircleType)[instance][variable];\n\n if (this.currentChart.system === EnergyCircleType.house && !this.isHybridSystem && this.showColumnChart && this.getSystemCount(this.deviceData, EnergyCircleType.house) === 1) {\n // used for none hybrid systems in single systems charts\n // but only if there is 1 house in the other case we cant calculate the house value\n const externalEnergyCounterMappings = this.measurementsOfAllEnabledExternalMeasurementsSystems.flatMap((obj: Record>) => {\n return Object.values(obj).map(value => value.energy_counter).filter(Boolean); // filter out undefined values\n });\n // 'max(houseCounterValue - sum of external counters, 0)',\n const calculationExpression = `max(${energyCounterMapping} - ${externalEnergyCounterMappings.length ? externalEnergyCounterMappings.join(' - ') : 0}, 0)`;\n const calculationAggregations = [energyCounterMapping, ...externalEnergyCounterMappings].fill('diff');\n return {\n name: `${this.$t(`devices.EnergyView.ChartsWindow.legend.${this.currentChart.system}.${variable}`)} - ${chartInstanceName}`,\n scaling: scaling ? scaling[variable] : singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'column',\n unit: 'kWh',\n calculation: {\n expression: calculationExpression,\n aggregations: calculationAggregations,\n },\n agg: 'diff',\n };\n }\n\n return {\n var: energyCounterMapping,\n name: `${this.$t(`devices.EnergyView.ChartsWindow.legend.${this.currentChart.system}.${variable}`)} - ${chartInstanceName}`,\n scaling: scaling ? scaling[variable] : singleEnergyChartScaling,\n seriesType: 'View',\n type: 'column',\n unit: 'kWh',\n agg: 'diff',\n };\n }\n });\n });\n return chartOptions.flat().filter(Boolean);\n }\n\n getSystemTitle(system: string, instance: string) {\n if (['battery', 'grid'].includes(system)) {\n const { title } = this.getSystems(this.deviceData)[system].components[instance.split('_')[0]];\n return title || instance;\n } else {\n const { title } = this.getSystems(this.deviceData)[system].components[instance];\n return title || instance;\n }\n }\n\n get externalMeasurementsSystemsVariablesList() {\n const list = this.externalMeasurementsSystems.map((type: EnergyCircleType) => {\n const components = this.getSystemComponentsWithEnabledExternalMeasurements(this.deviceData, type);\n const variables = Object.values(components).map((mappings: Record) => mappings?.power);\n return variables.filter((v: string | undefined) => v?.length);\n });\n return list.flat();\n }\n\n /**\n * Creates an understandable object for the graphs component\n */\n get currentChartData() {\n let chartOptions = this.showHouseConsumptionAlways\n ? [...(this.currentChart.instances.every((sys: any) => sys.includes('house')) ? [] : [this.houseChartOptions]), ...this.systemsChartOptions]\n : [...this.systemsChartOptions];\n\n // if house is selected and hybrid system is enabled, we show the calculated house consumption\n if (this.currentChart.system === EnergyCircleType.house && this.isHybridSystem && !this.showColumnChart) {\n chartOptions = [{ ...this.calculatedHouseChartOptions }];\n this.showHouseCalculationTooltip = true;\n } else if (this.showHouseConsumptionAlways && this.isHybridSystem && !this.showColumnChart) {\n // for self consumption chart we show the calculated house consumption and the systems chart option\n chartOptions = [{ ...this.calculatedHouseChartOptions }, ...this.systemsChartOptions];\n this.showHouseCalculationTooltip = true;\n } else {\n // disable tooltip\n this.showHouseCalculationTooltip = false;\n }\n\n return {\n title: null,\n data: {\n chartTitle: '',\n chartWidth: null,\n chartHeight: 600,\n chartWrapperHeight: 750,\n chartData: {\n data: { chartOptions },\n },\n navigationItemsToExclude: this.navItemsToExclude,\n },\n };\n }\n\n get showCurrentChartData() {\n return this.currentChartData?.data?.chartData?.data?.chartOptions?.length;\n }\n\n handleCurrentChart(params: {system: EnergyCircleType; arr: string[]}, selected = 0) {\n this.currentChart = { system: params.system, instances: params.arr };\n this.selectedGroup = selected;\n this.reRenderKey += 1;\n }\n\n /**\n * Init what system chart will load when open page.\n */\n initFirstSystemByDefault() {\n const filtered: any = this.systemSchema.filter((el: any) => el[1].length);\n this.currentChart = filtered.length\n ? {\n system: filtered[0][0],\n instances: filtered[0][1][0],\n } : {\n system: null,\n instances: [],\n };\n }\n\n async chartRangeChange(params: any) {\n this.start = params.start;\n this.end = params.end;\n this.currentPeriod = params.period;\n const fetchEnergyDataFunction = this.isMpc ? this.fetchDataByPeriodMpc : this.fetchDataByPeriod;\n this.energyResponse = await fetchEnergyDataFunction({\n id: this.mpcId.replaceAll('_', '-'),\n start: this.start,\n end: this.end,\n period: this.currentPeriod,\n });\n\n const system: EnergyCircleType = this.systemSchema[this.selectedGroup][0];\n const instances = this.systemSchema[this.selectedGroup][1];\n const scores: Record = {};\n const scoresForDataExport: any = {};\n const total_consumption = this.energyResponse?.calculations?.total_consumption;\n const energyResponseSystemData = this.energyResponse?.energies?.[system];\n if (this.systemSchema.length > 0 && energyResponseSystemData) {\n if (system === 'house' && (this.isHybridSystem || instances[0].length === 1)) {\n // calculate house value similar to house value in energy flow view\n const externalMeasurementsSystemsValueList = this.externalMeasurementsSystems.map((systemType: EnergyCircleType) => {\n return this.getSumOfExternalMeasurementsSystemInstancesValues(systemType, this.energyResponse, this.deviceData) ?? 0;\n });\n const sumOfExternalMeasurementsSystemsValues = externalMeasurementsSystemsValueList.reduce((acc: number, val: number) => acc + val, 0);\n const returnVal = this.getHouseValue(total_consumption, sumOfExternalMeasurementsSystemsValues)?.toFixed(2) ?? 0;\n const houseValWithoutExternalMeasurements = typeof returnVal === 'string' ? parseFloat(returnVal) : returnVal;\n\n Object.entries(energyResponseSystemData).forEach(([instance, _]: [string, number]) => {\n scores[this.getSystemTitle(system, instance)] = total_consumption\n ? houseValWithoutExternalMeasurements / instances.length\n : null;\n scoresForDataExport[this.getSystemTitle(system, instance)] = {\n value: total_consumption ? Math.max(roundNumber(total_consumption / instances.length)) : null,\n unit: 'kWh',\n };\n });\n } else {\n Object.entries(energyResponseSystemData).forEach(([instance, value]: [string, number]) => {\n scores[this.getSystemTitle(system, instance)] = Math.max(roundNumber(value), 0);\n scoresForDataExport[this.getSystemTitle(system, instance)] = { value: Math.max(roundNumber(value), 0), unit: 'kWh' };\n });\n }\n }\n this.scores = scores;\n this.scoresForDataExport = scoresForDataExport;\n }\n\n created() {\n this.systems = this.shownSystems;\n if (this.navItemsToExclude.includes('day')) {\n this.currentPeriod = Periods.WEEK;\n }\n this.initFirstSystemByDefault();\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleSystemsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleSystemsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SingleSystemsView.vue?vue&type=template&id=311164ce&\"\nimport script from \"./SingleSystemsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SingleSystemsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"energy-flow-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\",attrs:{\"mpc-id\":_vm.mpcId,\"is-mpc\":_vm.isMpc,\"exclude-house\":true,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"shownSystems\":_vm.shownSystemsEnergyFlowConsumer,\"showHouseConsumptionAlways\":false,\"showScores\":true,\"setExpressionAsMax\":true,\"numberOfSeriesPerChart\":_vm.getNumberOfSeriesPerChart(item),\"device-data\":_vm.deviceData,\"systems-vars\":_vm.consumerSystemsVars,\"isHybridSystem\":_vm.isHybridSystem}}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charts-energy-flow\"},[_c('BaseChartWrapper',{attrs:{\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"chart-data\":_vm.chartData,\"navigation-items-to-exclude\":['live', 'hour'],\"chartScores\":_vm.scoresForDataExport},on:{\"chartRangeChange\":_vm.chartRangeChange},scopedSlots:_vm._u([{key:\"additional-content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-wrap py-2\"},_vm._l((_vm.scores),function(value,key){return _c('div',{key:key,staticClass:\"px-4\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.translation[key] || key)+\": \")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.units[key] ? value : _vm.roundNumber(_vm.kiloWattHourUnit().unitForValue(value).value)))]),_c('span',[_vm._v(_vm._s(_vm.units[key] || _vm.kiloWattHourUnit().unitForValue(value).unit))])])}),0)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { sum } from 'lodash';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { mixedEnergyChartScaling, singleEnergyChartScaling } from '@/utils/scalingConstants';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n EnergyCircleType,\n producers,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { IDevice } from '@/types/devices.types';\nimport { ChartData, ChartOption } from '@/types/chart.types';\n\n@Component({\n methods: {\n kiloWattHourUnit() {\n return kiloWattHourUnit;\n },\n },\n components: { BaseChartWrapper },\n})\nexport default class EnergyFlowProductionChart extends mixins(EnergyComponent) {\n @State('app') appState!: any;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: '' }) mpcId!: string;\n @Prop() settingsWrapperHeight!: number;\n @Prop({ default: false }) isMpc!: boolean;\n\n @Action('mpc/fetchDataByPeriodMpc') fetchDataByPeriodMpc!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n\n scores: Record = {};\n scoresForDataExport: Record = {};\n translation = {\n SelfSufficientScore: this.$t('mlModel.EMS.charts.chartDifference.selfSufficientScore').toString(),\n Eigenverbrauchsanteil: this.$t('mlModel.EMS.charts.chartDifference.eigenverbrauchsanteil').toString(),\n TotalDirectEnergy: this.$t('mlModel.EMS.charts.chartDifference.totalDirectEnergy').toString(),\n }\n units = {\n SelfSufficientScore: '%',\n Eigenverbrauchsanteil: '%',\n }\n\n period = Periods.DAY;\n start = periodConfigurations[this.period].period().start;\n end = periodConfigurations[this.period].period().end;\n energyResponse: any = null; // TODO: check and add type here (possibly it EnergyDataByPeriodResponse)\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n systemCount(system: EnergyCircleType) {\n return this.getSystemCount(this.deviceData, system);\n }\n\n get chartData(): ChartData {\n const generatorVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.generator);\n const chpVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.chp);\n const pvVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.pv);\n const productionSum = [...pvVariables, ...generatorVariables, ...chpVariables].join('+');\n\n const batteryVariableSum = this.getVariableMappings(this.deviceData, EnergyCircleType.battery).join('+');\n const gridVariableSum = this.getVariableMappings(this.deviceData, EnergyCircleType.grid).join('+');\n\n const batteryPowers = this.getVariableMappings(this.deviceData, EnergyCircleType.battery);\n const gridPowers = this.getVariableMappings(this.deviceData, EnergyCircleType.grid);\n const producersPowers = producers.flatMap((t: EnergyCircleType) => this.getVariableMappings(this.deviceData, t));\n const productionGridVariables = [...productionSum, gridPowers].join('+');\n const batterySocMapping = this.getVariableMappings(this.deviceData, EnergyCircleType.battery, 'soc')\n .filter((element: string | undefined) => element !== '' && element !== undefined);\n\n return {\n data: {\n chartOptions: [\n ...(producersPowers.length ? [{\n calculation: {\n aggregations: new Array(producersPowers.length).fill('avg'),\n expression: `max(${producersPowers.join(' + ')}, 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.production').toString(),\n scaling: singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.battery) ? [{\n calculation: {\n aggregations: new Array(batteryPowers.length + productionSum.length).fill('avg'),\n expression: `max(min(min(${batteryPowers.join(' + ')}, 0) * -1, ${[...pvVariables, ...generatorVariables, ...chpVariables].join(' + ')}), 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.productionBattery').toString(),\n scaling: singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.grid) ? [{\n calculation: {\n aggregations: new Array(productionGridVariables.length).fill('avg'),\n expression: `max(min(min(${gridPowers.join(' + ')}, 0) * -1, ${[...pvVariables, ...generatorVariables, ...chpVariables].join(' + ')}), 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.productionGrid').toString(),\n scaling: singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.pv) ? [{\n calculation: {\n // ['avg', ...] array with length of total variables pv, battery, grid\n aggregations: new Array(\n this.systemCount(EnergyCircleType.pv)\n + this.systemCount(EnergyCircleType.generator)\n + this.systemCount(EnergyCircleType.chp)\n + this.systemCount(EnergyCircleType.battery)\n + this.systemCount(EnergyCircleType.grid),\n ).fill('avg'),\n // sum(pv_power) + sum(bprod_power) + sum(gprod_power),\n expression: `max(max(${productionSum}, 0) + min(${batteryVariableSum || 0},0) + min(${gridVariableSum || 0},0), 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.directConsumption').toString(),\n scaling: singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.battery) && this.superAdmin ? [{\n calculation: {\n aggregations: new Array(batterySocMapping.length).fill('avg'),\n // calculate average of all battery socs\n expression: `( ${batterySocMapping.join(' + ')} ) / ${batterySocMapping.length}`,\n },\n name: this.$t('mlModel.EMS.charts.chartTimeTableConsumer.soc').toString(),\n scaling: { min: 0, max: 100 },\n seriesType: 'Calculation',\n type: 'line',\n unit: '%',\n } as ChartOption] : []),\n ],\n },\n };\n }\n\n roundNumber(num: number) {\n return Number(num.toFixed(2));\n }\n\n systemFilterSum(system: any, containedString: string) {\n let sum = 0;\n if (!this.energyResponse.energies[system]) return sum;\n Object.entries(this.energyResponse.energies[system]).forEach(\n (system: any) => {\n if (system[0].includes(containedString)) {\n sum += system[1];\n }\n },\n );\n return sum;\n }\n\n get productionSum(): number {\n const producerValues = producers.flatMap((t: EnergyCircleType) => this.getSystemKeys(this.deviceData, t)\n .map((key: string) => this.energyResponse?.energies?.[t]?.[key] ?? 0));\n return sum(producerValues);\n }\n\n get hasProducer(): boolean {\n return producers.some((t: EnergyCircleType) => this.isSystemPresent(this.deviceData, t));\n }\n\n async chartRangeChange(params: any) {\n this.start = params.start;\n this.end = params.end;\n this.period = params.period;\n\n const fetchEnergyDataFunction = this.isMpc ? this.fetchDataByPeriodMpc : this.fetchDataByPeriod;\n this.energyResponse = await fetchEnergyDataFunction({\n id: this.mpcId.replaceAll('_', '-'),\n start: this.start,\n end: this.end,\n period: this.period,\n });\n\n const scores: any = {};\n const scoresForDataExport: any = {};\n const pvProduction = `${this.$t('mlModel.EMS.charts.chartDifference.production')}`;\n const batteryFromProduction = `${this.$t('mlModel.EMS.charts.chartDifference.productionBattery')}`;\n const gridFromProduction = `${this.$t('mlModel.EMS.charts.chartDifference.productionGrid')}`;\n const directConsumption = `${this.$t('mlModel.EMS.charts.chartDifference.directConsumption')}`;\n const batteryProductionSum = Math.max(this.systemFilterSum('battery', 'from_production'), 0);\n const gridProductionSum = Math.max(this.systemFilterSum('grid', 'from_production'), 0);\n const directConsumptionValue = Object.keys(this.energyResponse.calculations).includes(\n 'direct_consumption',\n )\n ? this.energyResponse.calculations.direct_consumption\n : Math.max(this.productionSum - batteryProductionSum - gridProductionSum, 0);\n\n if (this.hasProducer) {\n scores[pvProduction] = Math.max(this.productionSum, 0);\n scoresForDataExport[pvProduction] = { value: Math.max(this.productionSum, 0), unit: 'kWh' };\n }\n if (this.systemCount(EnergyCircleType.battery)) {\n scores[batteryFromProduction] = Math.max(batteryProductionSum, 0);\n scoresForDataExport[batteryFromProduction] = { value: Math.max(batteryProductionSum, 0), unit: 'kWh' };\n }\n if (this.systemCount(EnergyCircleType.grid)) {\n scores[gridFromProduction] = this.roundNumber(gridProductionSum);\n scoresForDataExport[gridFromProduction] = { value: this.roundNumber(gridProductionSum), unit: 'kWh' };\n }\n if (this.hasProducer) {\n scores[directConsumption] = this.roundNumber(directConsumptionValue);\n scoresForDataExport[directConsumption] = { value: this.roundNumber(directConsumptionValue), unit: 'kWh' };\n }\n this.scores = {\n ...scores,\n TotalConsumption: this.roundNumber(this.energyResponse.calculations.total_consumption),\n ...(this.systemCount(EnergyCircleType.pv) && this.systemCount(EnergyCircleType.grid) ? {\n SelfSufficientScore: this.roundNumber(this.energyResponse.calculations.autarchy_score),\n Eigenverbrauchsanteil: this.roundNumber(\n Object.keys(this.energyResponse.calculations).includes('self_consumption_score')\n ? this.energyResponse.calculations.self_consumption_score\n : this.energyResponse.calculations.self_sufficient_score,\n ),\n } : {}),\n };\n this.scoresForDataExport = scoresForDataExport;\n this.scoresForDataExport.TotalConsumption = { value: this.scores.TotalConsumption, unit: 'kWh' };\n this.scoresForDataExport.SelfSufficientScore = { value: this.scores.SelfSufficientScore, unit: '%' };\n this.scoresForDataExport.Eigenverbrauchsanteil = { value: this.scores.Eigenverbrauchsanteil, unit: '%' };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowProductionChart.vue?vue&type=template&id=56141586&scoped=true&\"\nimport script from \"./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowProductionChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56141586\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"charts-energy-flow\"},[_c('BaseChartWrapper',{attrs:{\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"chart-data\":_vm.chartData,\"navigation-items-to-exclude\":['live', 'hour'],\"chartScores\":_vm.scoresForDataExport},on:{\"chartRangeChange\":_vm.chartRangeChange},scopedSlots:_vm._u([{key:\"additional-content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-wrap py-2\"},_vm._l((_vm.scores),function(value,key){return _c('div',{key:key,staticClass:\"px-4\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.translation[key] || key)+\": \")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.units[key] ? value : _vm.roundNumber(_vm.kiloWattHourUnit().unitForValue(value).value)))]),_c('span',[_vm._v(_vm._s(_vm.units[key] || _vm.kiloWattHourUnit().unitForValue(value).unit))])])}),0)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { sum } from 'lodash';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { hasSystem } from '@/utils/utilsFunctions';\nimport { mixedEnergyChartScaling } from '@/utils/scalingConstants';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport {\n EnergyCircleType,\n producers,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { IDevice } from '@/types/devices.types';\nimport { ChartData, ChartOption } from '@/types/chart.types';\n\n@Component({\n methods: {\n kiloWattHourUnit() {\n return kiloWattHourUnit;\n },\n },\n components: { BaseChartWrapper },\n})\nexport default class EnergyFlowConsumptionChart extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: '' }) mpcId!: string;\n @Prop() settingsWrapperHeight!: number;\n @Prop({ default: false }) isMpc!: boolean;\n\n @Action('mpc/fetchDataByPeriodMpc') fetchDataByPeriodMpc!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n\n scores: Record = {};\n scoresForDataExport: Record = {};\n translation = {\n Eigenverbrauchsanteil: this.$t(\n 'mlModel.EMS.charts.chartDifference.eigenverbrauchsanteil',\n ).toString(),\n SelfSufficientScore: this.$t(\n 'mlModel.EMS.charts.chartDifference.selfSufficientScore',\n ).toString(),\n TotalConsumption: this.$t('mlModel.EMS.charts.chartDifference.totalConsumption').toString(),\n };\n units = {\n SelfSufficientScore: '%',\n Eigenverbrauchsanteil: '%',\n };\n\n period = Periods.DAY;\n start = periodConfigurations[this.period].period().start;\n end = periodConfigurations[this.period].period().end;\n energyResponse: any = null; // TODO: check and add type here (possibly it EnergyDataByPeriodResponse)\n\n systemCount(system: EnergyCircleType) {\n return this.getSystemCount(this.deviceData, system);\n }\n\n get chartData(): ChartData {\n const generatorVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.generator);\n const chpVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.chp);\n const pvVariables = this.getVariableMappings(this.deviceData, EnergyCircleType.pv);\n const productionSum = [...pvVariables, ...generatorVariables, ...chpVariables].join('+');\n\n const batteryVariableSum = this.getVariableMappings(this.deviceData, EnergyCircleType.battery).join('+');\n const gridVariableSum = this.getVariableMappings(this.deviceData, EnergyCircleType.grid).join('+');\n const batterySocMapping = this.getVariableMappings(this.deviceData, EnergyCircleType.battery, 'soc').join('+');\n\n return {\n data: {\n chartOptions: [\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.pv) ? [{\n calculation: {\n // ['avg', ...] array with length of total variables pv, battery, grid\n aggregations: new Array(\n this.systemCount(EnergyCircleType.pv)\n + this.systemCount(EnergyCircleType.generator)\n + this.systemCount(EnergyCircleType.chp)\n + this.systemCount(EnergyCircleType.battery)\n + this.systemCount(EnergyCircleType.grid),\n ).fill('avg'),\n // sum(pv_power) + sum(bprod_power) + sum(gprod_power),\n expression: `max(max(${productionSum}, 0) + min(${batteryVariableSum || 0},0) + min(${gridVariableSum || 0},0), 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.directConsumption').toString(),\n scaling: mixedEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.battery) ? [{\n calculation: {\n aggregations: new Array(this.systemCount(EnergyCircleType.battery)).fill('avg'),\n expression: `max(${batteryVariableSum}, 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.batteryToConsumer').toString(),\n scaling: mixedEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption,\n {\n calculation: {\n aggregations: ['avg', 'avg'],\n expression: `min(${batteryVariableSum}, 0) * (-1)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.productionBattery').toString(),\n scaling: mixedEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.grid) ? [{\n calculation: {\n aggregations: new Array(this.systemCount(EnergyCircleType.grid)).fill('avg'),\n expression: `max(${gridVariableSum}, 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.gridToConsumer').toString(),\n scaling: mixedEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.pv) ? [{\n calculation: {\n aggregations: [...pvVariables, ...generatorVariables, ...chpVariables].fill('avg'),\n expression: `max(${productionSum}, 0)`,\n },\n name: this.$t('mlModel.EMS.charts.chartDifference.production').toString(),\n scaling: mixedEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n } as ChartOption] : []),\n ...(this.isSystemPresent(this.deviceData, EnergyCircleType.battery) ? [{\n calculation: {\n aggregations: new Array(this.systemCount(EnergyCircleType.battery)).fill('avg'),\n expression: `${batterySocMapping}`,\n },\n name: this.$t('mlModel.EMS.charts.chartTimeTableConsumer.soc').toString(),\n scaling: { min: 0, max: 100 },\n seriesType: 'Calculation',\n type: 'line',\n unit: '%',\n } as ChartOption] : []),\n ],\n },\n };\n }\n\n roundNumber(num: number) {\n return Number(num.toFixed(2));\n }\n\n systemFilterSum(system: any, containedString: string) {\n let sum = 0;\n if (!this.energyResponse.energies[system]) return sum;\n Object.entries(this.energyResponse.energies[system]).forEach((system: any) => {\n if (system[0].includes(containedString)) {\n sum += system[1];\n }\n });\n return sum;\n }\n\n get productionSum(): number {\n const producerValues = producers.flatMap((t: EnergyCircleType) => this.getSystemKeys(this.deviceData, t)\n .map((key: string) => this.energyResponse?.energies?.[t]?.[key] ?? 0));\n return sum(producerValues);\n }\n\n async chartRangeChange(params: any) {\n this.start = params.start;\n this.end = params.end;\n this.period = params.period;\n const fetchEnergyDataFunction = this.isMpc ? this.fetchDataByPeriodMpc : this.fetchDataByPeriod;\n this.energyResponse = await fetchEnergyDataFunction({\n id: this.mpcId.replaceAll('_', '-'),\n start: this.start,\n end: this.end,\n period: this.period,\n });\n const batteryToConsumer = `${this.$t('mlModel.EMS.charts.chartDifference.batteryToConsumer')}`;\n const gridToConsumer = `${this.$t('mlModel.EMS.charts.chartDifference.gridToConsumer')}`;\n const directConsumption = `${this.$t('mlModel.EMS.charts.chartDifference.directConsumption')}`;\n const batteryConsumerSum = Math.max(this.systemFilterSum('battery', 'to_consumer'), 0);\n const batteryProductionSum = Math.max(this.systemFilterSum('battery', 'from_production'), 0);\n const gridConsumerSum = Math.max(this.systemFilterSum('grid', 'to_consumer'), 0);\n const gridProductionSum = Math.max(this.systemFilterSum('grid', 'from_production'), 0);\n const directConsumptionValue = Object.keys(this.energyResponse.calculations).includes(\n 'direct_consumption',\n )\n ? this.energyResponse.calculations.direct_consumption\n : Math.max(this.productionSum - batteryProductionSum - gridProductionSum, 0);\n\n const scoresForDataExport: any = {};\n\n if (this.systemCount(EnergyCircleType.pv)) {\n this.scores[directConsumption] = this.roundNumber(directConsumptionValue);\n this.scoresForDataExport[directConsumption] = { value: this.roundNumber(directConsumptionValue), unit: 'kWh' };\n }\n\n if (this.systemCount(EnergyCircleType.battery)) {\n this.scores[batteryToConsumer] = batteryConsumerSum;\n this.scoresForDataExport[batteryToConsumer] = { value: batteryConsumerSum, unit: 'kWh' };\n }\n\n if (this.systemCount(EnergyCircleType.grid)) {\n this.scores[gridToConsumer] = this.roundNumber(gridConsumerSum);\n this.scoresForDataExport[gridToConsumer] = { value: this.roundNumber(gridConsumerSum), unit: 'kWh' };\n }\n this.scores = {\n ...this.scores,\n TotalConsumption: this.roundNumber(this.energyResponse.calculations.total_consumption),\n ...(this.systemCount(EnergyCircleType.pv) && this.systemCount(EnergyCircleType.grid) ? {\n SelfSufficientScore: this.roundNumber(this.energyResponse.calculations.autarchy_score),\n Eigenverbrauchsanteil: this.roundNumber(\n Object.keys(this.energyResponse.calculations).includes('self_consumption_score')\n ? this.energyResponse.calculations.self_consumption_score\n : this.energyResponse.calculations.self_sufficient_score,\n ),\n } : {}),\n };\n this.scoresForDataExport.TotalConsumption = { value: this.scores.TotalConsumption, unit: 'kWh' };\n this.scoresForDataExport.SelfSufficientScore = { value: this.scores.SelfSufficientScore, unit: '%' };\n this.scoresForDataExport.Eigenverbrauchsanteil = { value: this.scores.Eigenverbrauchsanteil, unit: '%' };\n }\n\n async created() {\n const fetchEnergyDataFunction = this.isMpc ? this.fetchDataByPeriodMpc : this.fetchDataByPeriod;\n this.energyResponse = await fetchEnergyDataFunction({\n id: this.mpcId.replaceAll('_', '-'),\n start: this.start,\n end: this.end,\n period: this.period,\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowConsumptionChart.vue?vue&type=template&id=20ccba62&scoped=true&\"\nimport script from \"./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowConsumptionChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"20ccba62\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport EnergyFlowProductionChart\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowProductionChart.vue';\nimport EnergyFlowConsumptionChart\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/EnergyFlowConsumptionChart.vue';\nimport EnergyFlowConsumerChart from '@/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue';\nimport { IDevice } from '@/types/devices.types';\n\n@Component({\n components: {\n EnergyFlowProductionChart,\n EnergyFlowConsumptionChart,\n EnergyFlowConsumerChart,\n },\n})\nexport default class SelfConsumption extends Vue {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: '' }) mpcId!: string;\n @Prop() settingsWrapperHeight!: number;\n @Prop({ default: false }) isMpc!: boolean;\n @Prop({ default: false }) isHybridSystem!: boolean;\n\n tab = null\n shownSystemsEnergyFlowConsumer: string[] = ['charge_station', 'electric_heating', 'heating_pump', 'big_consumer', 'house'];\n\n consumerSystemsVars = {\n charge_station: ['power'],\n electric_heating: ['power'],\n heating_pump: ['power'],\n big_consumer: ['power'],\n pv: ['power'],\n chp: [\n 'power', 'thermal_power_output', 'flow_temperature', 'return_temperature',\n 'buffer_temperature_top', 'buffer_temperature_bottom',\n ],\n generator: ['power'],\n grid: ['power'],\n battery: ['power', 'soc'],\n house: ['power'],\n };\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.energyFlow'),\n view: 'EnergyFlowProductionChart',\n },\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.energyFlowConsumer'),\n view: 'EnergyFlowConsumerChart',\n numberOfSeriesPerChart: 8,\n excludeHouse: true,\n },\n ];\n }\n\n getNumberOfSeriesPerChart(item: Record) {\n return item?.numberOfSeriesPerChart;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b3738526&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=b3738526&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b3738526\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SingleSystemsView\n from '@/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue';\nimport SelfConsumption\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport { Getter, State } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n SingleSystemsView,\n SelfConsumption,\n },\n})\nexport default class EnergyViewCharts extends Vue {\n @Prop({ default: null }) allSystemsData!: any;\n @Prop({ default: null }) scaling!: any;\n @Prop({ default: null }) mpcData!: any;\n @Prop({ default: '' }) mpcId!: string;\n @Prop({ default: false }) isHybridSystem!: boolean;\n\n @State('app') appState!: IAppState;\n @Getter('projects/project') project!: IProject;\n\n tab = null;\n\n get shownSystemsSingleSystemsChart() {\n const items = [\n 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer',\n 'pv', 'generator', 'grid', 'battery', 'house', 'chp',\n ];\n if (this.project.meta?.controller?.type === 'Solarman Logger') {\n // remove house as loggers dont send the information needed for this chart\n const itemsToRemove = ['house'];\n return items.filter((item) => !itemsToRemove.includes(item));\n }\n return items;\n }\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get items() {\n return [\n {\n title: this.$t('devices.EnergyView.ChartsWindow.selfConsumption'),\n view: 'SelfConsumption',\n },\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleSystemsView',\n showColumnChart: true,\n systemsVars: {\n charge_station: ['energy_counter'],\n electric_heating: ['energy_counter'],\n heating_pump: ['energy_counter'],\n big_consumer: ['energy_counter'],\n pv: ['energy_counter'],\n chp: ['energy_counter'],\n generator: ['energy_counter'],\n grid: ['energy_counter', 'reverse_energy_counter'],\n battery: ['energy_counter', 'reverse_energy_counter'],\n house: ['energy_counter'],\n },\n defaultAggregation: 'diff',\n navItemsToExclude: ['live', 'hour', 'day'],\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=445bbaaa&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=445bbaaa&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { IDevice } from '@/types/devices.types';\nimport { IProject } from '@/types/project.types';\n\n/**\n * Filter instances from data object\n * @param object Object to filter by keys\n * @param instanceList instance list to search in Object for\n * @param stringExtension extension for instance in object keys\n */\nexport function filterInstances(object: any, system_type: string, instancesList: any, stringExtension: string) {\n const result: any = [];\n instancesList.forEach((system: any) => {\n const obj: any = {};\n obj[system + stringExtension] = object[system_type][system + stringExtension];\n result.push([system_type, obj]);\n });\n return result;\n}\n\n/**\n * get Predictions for instances\n * @param data object to filter data from\n * @param suffix filter by suffix\n */\nexport function getPredictions(data: any, suffix: string) {\n const result: any = [];\n if (!data.length) return result;\n Object.entries(data[0][1]).forEach(([key, list]: any) => {\n if (key.includes(suffix)) {\n const sum = list\n .map((el: any) => [el[0] * 1000, el[1]]);\n result.push(sum);\n }\n });\n return result[0];\n}\n/**\n * Get system instances from data object\n * @param data object to filter data from\n * @param suffix filter by suffix\n */\nexport function getSystems(data: any, suffix: string) {\n const systems: any = {};\n Object.entries(data).forEach(([key, value]: any) => {\n Object.entries(value).forEach((entry: any) => {\n if (entry[0].includes(suffix)) systems[entry[0]] = entry[1];\n });\n });\n return systems;\n}\n\n/**\n * Usable for EMS and EnergyView\n * Checks if a system is a combination of the Lynus and Solarman Logger System\n */\nexport function isHybridEnergyDeviceSystem(deviceData: IDevice, project: IProject) {\n let isHybrid = false;\n\n // if loggerInformation is present and has at least one element, then can be a hybrid system based on the information of the project\n if (project?.meta?.loggerInformation) {\n isHybrid = project.meta.loggerInformation.length > 0;\n } else {\n // if loggerInformation is not present, then can not be a hybrid system\n return false;\n }\n\n const pvMappings = deviceData.data.meta.controllerMappings.pv.components;\n // check if there is a pv mapping present\n if (Object.values(pvMappings).length > 0) {\n // check if there is a mapping for solarman and a mapping of the lynus system present\n const hasLoggerMapping = Object.values(pvMappings).some((mapping: any) => mapping.power.includes('solarman'));\n const hasLynusMapping = Object.values(pvMappings).some((mapping: any) => !mapping.power.includes('solarman'));\n // if both mappings are present, then it is a hybrid system\n isHybrid = hasLoggerMapping && hasLynusMapping;\n }\n return isHybrid;\n}\n","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport ActualView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue';\nimport EnergyFlowView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue';\nimport EnergyViewCharts from '@/ui/components/devices/components/EnergyParts/EnergyView/components/charts/index.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { isHybridEnergyDeviceSystem } from '@/utils/mpcUtils';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\n\n@Component({\n components: {\n CircleSpinner,\n MPCLayout,\n ActualView,\n EnergyFlowView,\n EnergyViewCharts,\n },\n})\nexport default class EnergyViewV2 extends Vue {\n @Prop() deviceData!: any;\n @Getter('projects/project') project!: IProject;\n\n reRenderKey = 0;\n loaded = true;\n\n get showEventGeneralErrorWarning() {\n return {\n 'ShowEvent_errorWarningState': this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n\n get allSystems() {\n if (this.deviceData?.data?.meta?.controllerMappings) {\n const {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n } = this.deviceData.data.meta.controllerMappings;\n return {\n pv,\n generator,\n battery,\n grid,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n };\n } else {\n return null;\n }\n }\n\n async toggleLoading(status: boolean) {\n this.loaded = !status;\n }\n\n /**\n * Checks if a system is a combination of the Lynus and Solarman Logger System\n */\n get isHybridSystem() {\n return isHybridEnergyDeviceSystem(this.deviceData, this.project);\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.deviceData.id) return this.deviceData.id.replace(/-/g, '_');\n return null;\n }\n\n get displayEnergyFlowHouseInfo() {\n const houseCount = this.deviceData.data.meta.controllerMappings.house.count ?? 0;\n return this.project.meta.wasTenantWizardCompleted && this.project.meta.hasLynusInverter && houseCount > 1;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=bb9fa00e&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.showEventGeneralErrorWarning,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},on:{\"rerenderDevice\":_vm.rerenderDevice},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex fill-height pt-10 flex-column flex-lg-row pb-4 pb-lg-0\"},[(_vm.allSystems)?[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.mainView.actualView'))+\" \")]),_c('ActualView',{staticClass:\"actual_view mt-15\",attrs:{\"device-data\":_vm.deviceData}})],1),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView'))+\" \")]),_c('EnergyFlowView',{attrs:{\"device-data\":_vm.deviceData}})],1)]:_c('div',{staticClass:\"d-flex align-center justify-center fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":60}})],1)],2)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EnergyViewCharts',{key:_vm.reRenderKey,attrs:{\"all-systems-data\":_vm.allSystems,\"mpc-data\":_vm.mpc,\"mpc-id\":_vm.mpcIdMod}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"energy-view-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,_vm._b({tag:\"component\",attrs:{\"shownSystems\":_vm.shownSystemsSingleSystemsChart,\"showScores\":false,\"is-mpc\":true,\"device-data\":_vm.mpcData}},'component',{ allSystemsData: _vm.allSystemsData, mpcId: _vm.mpcId },false)):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SingleSystemsView\n from '@/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue';\nimport SelfConsumption\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue';\n\n@Component({\n components: {\n SingleSystemsView,\n SelfConsumption,\n },\n})\nexport default class EnergyViewCharts extends Vue {\n @Prop({ default: null }) allSystemsData!: any;\n @Prop({ default: null }) mpcData!: any;\n @Prop({ default: '' }) mpcId!: string;\n\n tab = null;\n shownSystemsSingleSystemsChart: string[] = ['charge_station', 'electric_heating', 'heating_pump', 'big_consumer', 'pv', 'generator', 'grid', 'battery', 'house'];\n\n get items() {\n return [\n {\n title: this.$t('devices.EnergyView.ChartsWindow.selfConsumption'),\n view: 'SelfConsumption',\n },\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleSystemsView',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4afb5f04&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4afb5f04&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport ActualView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue';\nimport EnergyFlowView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport EnergyViewCharts from '@/ui/components/devices/mpc/EnergyView/components/charts/index.vue';\n\n@Component({\n components: {\n MPCLayout,\n ActualView,\n EnergyFlowView,\n CircleSpinner,\n ShowEventDotBase,\n EnergyViewCharts,\n },\n})\nexport default class EnergyView extends Vue {\n @Prop() deviceData!: any;\n @State('mpc') mpcState!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n mpc: any = null;\n reRenderKey = 0;\n\n get showEventGeneralErrorWarning() {\n return {\n 'ShowEvent_errorWarningState': this.mpc?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n\n get allSystems() {\n if (this.mpc?.data?.meta?.controllerMappings) {\n const {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n } = this.mpc.data.meta.controllerMappings;\n return {\n pv,\n generator,\n battery,\n grid,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n };\n } else {\n return null;\n }\n }\n\n async rerenderDevice() {\n this.mpc = null;\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n this.reRenderKey += 1;\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.deviceData.id) return this.deviceData.id.replace(/-/g, '_');\n return null;\n }\n\n async created() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=da199038&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.errorWarningMqtt,\"is-charts\":true,\"device-icon\":\"house-consumption\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"consumption-service-device\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.actualPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.actualPowerMqtt,\"instance\":\"OutputField1\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedPowerMqtt,\"instance\":\"OutputField2\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedEnergy`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedEnergyMqtt,\"instance\":\"OutputField3\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kWh\")])],1)]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.readyMqtt,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"consumption-service-charts-content\"},[_c('SettingsCharts',{attrs:{\"mpc-id\":_vm.mpcId,\"charts-scaling\":_vm.chartScaling,\"mqtt-charts-variables\":{ actualPower: _vm.actualPower, calculatedPower: _vm.calculatedPower, calculatedEnergy: _vm.calculatedEnergy, calculatedEnergy2: _vm.calculatedEnergy2 }}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-charts\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[(index === _vm.tab)?_c('div',[_c(item.component,{tag:\"component\",attrs:{\"charts-scaling\":_vm.chartsScaling,\"mqtt-charts-variables\":_vm.mqttChartsVariables,\"mpc-id\":_vm.mpcId}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('BaseChart',_vm._b({key:_vm.rerenderKey},'BaseChart',{..._vm.chartData},false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport { Action } from 'vuex-class';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\n\n/**\n * Component that represent forecast chart.\n */\n@Component({\n components: {\n BaseChart,\n },\n})\nexport default class Forecast extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n timer: any = null\n rerenderKey = 0\n mpc: any = null\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n get charts() {\n if (this.mpc) {\n return this.mpc?.data?.meta.charts;\n }\n return null;\n }\n\n /**\n * Converts time to milliseconds for every item of predictedEnergy array\n */\n get predictedEnergy() {\n if (this.charts?.predictedEnergy) {\n return this.charts.predictedEnergy.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n\n /**\n * Converts time to milliseconds for every item of predictedPower array\n */\n get predictedPower() {\n if (this.charts?.predictedPower) {\n return this.charts.predictedPower.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n\n /**\n * Prepares series for chart\n */\n get seriesForecast() {\n return [\n {\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedEnergy'),\n type: 'line',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.predictedEnergy,\n },\n {\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedPower'),\n type: 'line',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.predictedPower,\n },\n ];\n }\n\n /**\n * Prepares Y-axis for chart\n */\n get yAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: 0 - this.chartsScaling * 20,\n max: this.chartsScaling * 20,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kWh',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0 - this.chartsScaling * 2,\n max: this.chartsScaling * 2,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n ];\n }\n\n get chartData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 700,\n series: this.seriesForecast,\n yAxis: this.yAxisForecast,\n };\n }\n\n /**\n * Updates chart data every 90 seconds\n */\n fetchChartData() {\n this.timer = setInterval(async () => {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.rerenderKey += 1;\n }, 900000);\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.fetchChartData();\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=a2518fe4&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-mqtt-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-width\":_vm.chartData.chartWidth,\"settings-wrapper-height\":_vm.chartData.chartHeight,\"chart-data\":_vm.chartData.chartData,\"navigation-items-to-exclude\":_vm.chartData.navigationItemsToExclude,\"use-default-period-configs\":false}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n/**\n * Component that represent chart of actual data according to chosen period.\n */\n@Component({\n components: {\n BaseChartWrapper,\n },\n})\nexport default class Charts extends Vue {\n @Prop() httpCharts!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.ConsumptionService.settingsView';\n }\n\n /**\n * Prepares chart options object suitable for the chart component\n */\n get power() {\n return {\n name: '',\n data: {\n chartOptions: [\n {\n agg: 'avg',\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.power.actualPower'),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0 - this.chartsScaling * 2,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.actualPower,\n },\n {\n agg: 'avg',\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.power.calculatedPower'),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0 - this.chartsScaling * 2,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.calculatedPower,\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n get chartData() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: this.power,\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Charts.vue?vue&type=template&id=0d2af2b4&\"\nimport script from \"./Charts.vue?vue&type=script&lang=ts&\"\nexport * from \"./Charts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Charts.vue?vue&type=style&index=0&id=0d2af2b4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Forecast.vue';\nimport Charts from '@/ui/components/devices/mpc/ConsumptionService/SettingsCharts/Charts.vue';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in ConsumptionService.\n */\n@Component({\n components: {\n Forecast,\n Charts,\n },\n})\nexport default class SettingsCharts extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n calculatedEnergy2: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.ConsumptionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'chart',\n locale: this.langPath,\n component: 'Charts',\n chartsScaling: this.chartsScaling,\n mqttChartsVariables: this.mqttChartsVariables,\n },\n {\n title: 'forecast',\n locale: this.langPath,\n component: 'Forecast',\n chartsScaling: this.chartsScaling,\n mpcId: this.mpcId,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=fe926552&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=fe926552&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SettingsCharts from '@/ui/components/devices/mpc/ConsumptionService/SettingsCharts/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { Action } from 'vuex-class';\n\n/**\n * Component that represent ConsumptionService MPC\n */\n@Component({\n components: {\n ShowEventDotBase,\n SettingsCharts,\n OutputFieldBase,\n MPCLayout,\n },\n})\nexport default class ConsumptionService extends Vue {\n @Prop() deviceData!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n mpc: any = null\n\n isSettingsView = false\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get langPath() {\n return `mlModel.${this.deviceData.data.type}`;\n }\n\n get mpcId() {\n if (this.deviceData) return this.deviceData.id;\n return null;\n }\n get mpcIdMod() {\n if (this.mpcId) return this.mpcId.replace(/-/g, '_');\n return null;\n }\n get chartScaling() {\n return this.deviceData?.data?.meta.chartScaling;\n }\n\n get ready() {\n return this.deviceData?.data?.meta?.controllerMappings?.mpcReady;\n }\n get actualPower() {\n return this.deviceData?.data?.meta?.controllerMappings?.power;\n }\n get calculatedPower() {\n return `PV.${this.mpcIdMod}.pow`;\n }\n get calculatedPowerMainView() {\n return `PV.${this.mpcIdMod}.mean`;\n }\n get calculatedEnergy() {\n return `PV.${this.mpcIdMod}.en`;\n }\n get calculatedEnergy2() {\n return `PV.${this.mpcIdMod}.cen`;\n }\n\n get errorWarningMqtt() {\n return {\n ShowEvent_errorWarningState: this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n get actualPowerMqtt() {\n return {\n OutputField1_actualValue: this.actualPower,\n };\n }\n get calculatedPowerMqtt() {\n return {\n OutputField2_actualValue: this.calculatedPowerMainView,\n };\n }\n get calculatedEnergyMqtt() {\n return {\n OutputField3_actualValue: this.calculatedEnergy,\n };\n }\n get readyMqtt() {\n return {\n ShowEventDot1_errorWarningState: this.ready,\n };\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=41c00c32&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=41c00c32&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electric-charging-station\",\"device-icon-size\":\"26\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"tsg-ladestation-not-aus\"},[_c('DropDownBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingStatus,\"instance\":\"DropDown1\",\"label\":_vm.$t('devices.TSGLadestationNotAus.mainView.dropDownTitle1')}}),_c('DropDownBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"textMapping\":_vm.textMappingEmergency,\"instance\":\"DropDown2\",\"label\":_vm.$t('devices.TSGLadestationNotAus.mainView.dropDownTitle2')}}),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.DropDown1_targetValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"DropDown1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"mappingExtension\":\"targetValue\",\"width\":\"15\",\"height\":\"15\"}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('devices.TSGLadestationNotAus.mainView.engine')))])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.DropDown2_targetValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"DropDown2\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"inactiveColor\":_vm.$vuetify.theme.currentTheme.error,\"mappingExtension\":\"targetValue\",\"width\":\"15\",\"height\":\"15\"}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('devices.TSGLadestationNotAus.mainView.emergencyOff')))])]},proxy:true}])})],1)]),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\"Reset\")]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent TSGLadestationNotAus device\n */\n@Component({\n components: {\n DeviceActions,\n DropDownBase,\n PushButtonBase,\n ShowEventDotBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class TSGLadestationNotAus extends Vue {\n @Prop() deviceData!: IDevice;\n\n get textMappingStatus() {\n return {\n 0: this.$t(`${this.langPath}.mainView.dropDown1.value0`),\n 1: this.$t(`${this.langPath}.mainView.dropDown1.value1`),\n };\n }\n get textMappingEmergency() {\n return {\n 0: this.$t(`${this.langPath}.mainView.dropDown2.value0`),\n 1: this.$t(`${this.langPath}.mainView.dropDown2.value1`),\n };\n }\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAus.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAus.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGLadestationNotAus.vue?vue&type=template&id=4597fb8b&scoped=true&\"\nimport script from \"./TSGLadestationNotAus.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGLadestationNotAus.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGLadestationNotAus.vue?vue&type=style&index=0&id=4597fb8b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4597fb8b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.showEventGeneralErrorWarning,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},on:{\"rerenderDevice\":_vm.rerenderDevice},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex pt-6 fill-height flex-column flex-lg-row\"},[(_vm.allSystems)?[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center mt-5\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('ActualView',{ref:\"actual_view\",staticClass:\"actual_view mt-16\",attrs:{\"device-data\":_vm.deviceData}}),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.serviceReady')))]),_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotServiceReady,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})],1)],1),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{on:{\"click\":function($event){return _vm.handleTab('energy_flow_view')}}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView')))]),_c('v-tab',{on:{\"click\":function($event){return _vm.handleTab('forecast_view')}}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.forecastView')))])],1),_c('v-tabs-items',{staticStyle:{\"background\":\"transparent\",\"min-height\":\"800px\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[(_vm.tab === 0)?_c('div',[_c('EnergyFlowView',{ref:\"energy_flow_view\",attrs:{\"device-data\":_vm.deviceData}})],1):_vm._e()]),_c('v-tab-item',[(_vm.tab === 1)?_c('div',[_c('ForecastView',{ref:\"forecast_view\",staticClass:\"mt-16\",attrs:{\"all-systems-data\":_vm.allSystems,\"all-systems-forecast-data\":_vm.prediction,\"allSystemsForecastTargetPower\":_vm.predictedTargetPower,\"group-slider-state\":_vm.groupSlider,\"battery-predicted-s-o-c\":_vm.predictedSOC}}),_c('TimeSlider',{staticClass:\"timeslider\",attrs:{\"items\":_vm.timeSliderInitArray},model:{value:(_vm.groupSlider),callback:function ($$v) {_vm.groupSlider=$$v},expression:\"groupSlider\"}})],1):_vm._e()])],1)],1)]:_c('div',{staticClass:\"d-flex align-center justify-center fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":60}})],1)],2)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts',{attrs:{\"mpc-data\":_vm.mpc,\"mpc-id\":_vm.mpcIdMod,\"scaling\":_vm.emsScaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC}})]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('SettingsEMS',{attrs:{\"mpc-data\":_vm.mpc,\"device-data\":_vm.deviceData},on:{\"rerenderDevice\":_vm.rerenderDevice}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"canvas\",staticClass:\"ems-forecast-view\"},[_c('div',{staticClass:\"ems-forecast-view-row\"},_vm._l((_vm.currentProducerSystems),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system,refInFor:true},[_c(_vm.systems[system],{tag:\"component\",attrs:{\"system-data\":_vm.allSystemsData[system].components,\"system-count\":_vm.allSystemsData[system].count,\"all-systems-forecast-data\":_vm.allSystemsForecastData[system],\"group-slider-state\":_vm.groupSliderState,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines[system],\"line-ready\":_vm.loadLine}})],1)}),0),_c('div',{staticClass:\"ems-forecast-view-row\"},[_c('div',{ref:\"battery\",class:{ 'battery-system-wrapper': !_vm.allSystemsData['battery'].count }},[(_vm.allSystemsData['battery'].count)?_c(_vm.systems['battery'],{tag:\"component\",attrs:{\"system-data\":_vm.allSystemsData['battery'].components,\"system-count\":_vm.allSystemsData['battery'].count,\"all-systems-forecast-data\":_vm.allSystemsForecastData['battery'],\"group-slider-state\":_vm.groupSliderState,\"battery-predicted-s-o-c\":_vm.batteryPredictedSOC,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines['battery'],\"line-ready\":_vm.loadLine}}):_vm._e()],1),_c('div',{ref:\"centralEndpoint\"},[_c('CentralEndpoint')],1),_c('div',{ref:\"grid\"},[_c(_vm.systems['grid'],{tag:\"component\",attrs:{\"system-data\":_vm.allSystemsData['grid'].components,\"system-count\":_vm.allSystemsData['grid'].count,\"all-systems-forecast-data\":_vm.allSystemsForecastData['grid'],\"group-slider-state\":_vm.groupSliderState,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines['grid'],\"line-ready\":_vm.loadLine}})],1)]),_c('div',{staticClass:\"ems-forecast-view-row\"},_vm._l((_vm.currentConsumerSystems),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system,refInFor:true},[_c(_vm.systems[system],{tag:\"component\",attrs:{\"system-data\":_vm.allSystemsData[system].components,\"system-count\":_vm.allSystemsData[system].count,\"all-systems-forecast-data\":_vm.allSystemsForecastData[system],\"group-slider-state\":_vm.groupSliderState,\"systemForecastTargetPower\":_vm.allSystemsForecastTargetPower,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines[system],\"line-ready\":_vm.loadLine}})],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.battery.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#fc0328\",\"color2-reverse\":\"#29810e\",\"is-reverse-movement-default\":true,\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"rotating-backlight-color\":_vm.sumForecast < 0 ? '#29810e' : '#fc0328',\"system-count\":_vm.systemCount,\"no-data\":!_vm.sumForecast,\"battery-s-o-c-value\":_vm.sumForecastSOC < 0 ? 0 : _vm.sumForecastSOC,\"is-battery-s-o-c\":true}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"soc-data\":_vm.batteryPredictedSOC[systemInstance + '_soc'][_vm.systemSlider][1],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"soc-data\":_vm.batteryPredictedSOC[systemInstance + '_soc'][_vm.systemSlider][1],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#fc0328\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"rotating-backlight-color\":_vm.instanceForecastData[1] < 0 ? '#29810e' : '#fc0328',\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"battery-s-o-c-value\":_vm.socDataRounded < 0 ? 0 : _vm.socDataRounded,\"is-battery-s-o-c\":true}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) socData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n get socDataRounded() {\n return typeof this.socData === 'number' ? Math.floor(this.socData) : null;\n }\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] < 0;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1];\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=615f0692&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) batteryPredictedSOC!: any;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @State('measurements') measurementsState!: IVariablesState;\n\n systemSlider = 0;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n return generateForecastSystems(Object.keys(this.systemData), this.allSystemsForecastData);\n }\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n get avgForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n const avg: any = +num / checkEmpty.length;\n return avg.toFixed(2);\n } else {\n return 0;\n }\n }\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n get sumForecastSOC() {\n const batteryPredictedSOCValuesArray: any = Object.values(this.batteryPredictedSOC);\n const count: any = Object.values(this.batteryPredictedSOC).length;\n\n if (!batteryPredictedSOCValuesArray?.length) return null;\n\n const arr: any = batteryPredictedSOCValuesArray\n .map((el: any) => el[this.groupSliderState][1])\n .reduce((acc: any, el: any) => acc + el);\n const exp: any = arr / count;\n return typeof exp === 'number' ? Math.floor(exp) : null;\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n get animatedLineActive() {\n return !!this.sumForecast;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2904a93b&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.big_consumer.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":\"socket-switch\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.animatedLineActive}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"preview-icon\":\"socket-switch\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n showOutputValue = true;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] > 1;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1] && !this.showOutputValue && this.instanceForecastData[1] > 1;\n }\n\n created() {\n if (this.instanceData.power === '') {\n this.showOutputValue = false;\n } else {\n this.showOutputValue = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=4de53c34&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @Prop({ default: null }) systemForecastTargetPower!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n showOutputValue = false;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n const data = this.showOutputValue ? this.allSystemsForecastData : this.systemForecastTargetPower;\n return generateForecastSystems(Object.keys(this.systemData), data);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast && this.showOutputValue && this.sumForecast > 0;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n\n created() {\n let res = Object.values(this.systemData).map((item: any) => {\n // check if item.power variable has value\n return item.power ? this.measurements.get(item.power) : null;\n });\n res = res.filter((element: any) => typeof element === 'number'); // if element not a number we dont show it\n this.showOutputValue = !!res.length;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=45b027ec&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.charge_station.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":\"electric-charging-station\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.animatedLineActive}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',[(_vm.numberOfPages.length > 1)?_c('div',{staticClass:\"d-flex justify-center\"},_vm._l((_vm.numberOfPages.length),function(page){return _c('NavigationTab',{key:page,attrs:{\"tab-title\":_vm.defineTabTitle(page, _vm.numberOfPages.length),\"is-active\":_vm.tab === page - 1},on:{\"click\":function($event){_vm.tab = page - 1}}})}),1):_vm._e(),_c('div',{key:_vm.tab},[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.defineTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[(_vm.isTabContentVisible)?_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady},on:{\"publish\":function($event){return _vm.$emit('publish', $event)}}}):_vm._e()],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.defineBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[(_vm.isTabContentVisible)?_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"},on:{\"publish\":function($event){return _vm.$emit('publish', $event)}}}):_vm._e()],1)])}),0)])])]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"preview-icon\":\"electric-charging-station\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n showOutputValue = true;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] > 1;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1] && !this.showOutputValue && this.instanceForecastData[1] > 1;\n }\n\n created() {\n if (this.instanceData.power === '') {\n this.showOutputValue = false;\n } else {\n this.showOutputValue = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=18fd7ac4&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport NavigationTab from '@/ui/components/modals/components/NavigationTab.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n NavigationTab,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @Prop({ default: null }) systemForecastTargetPower !: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null\n instancesCanvasCenter: any = null\n instancesCanvasLines: any = {}\n\n systemSlider = 0\n showOutputValue = false;\n\n tab = 0\n isTabContentVisible = false\n\n @Watch('tab')\n async onTabChange(val: number) {\n this.isTabContentVisible = false;\n await this.$nextTick();\n this.getInstancesCoords();\n this.isTabContentVisible = true;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n const data = this.showOutputValue ? this.allSystemsForecastData : this.systemForecastTargetPower;\n return generateForecastSystems(Object.keys(this.systemData), data);\n }\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map((system: any) => system[this.groupSliderState] || [null, null]);\n }\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get allSystemsArray() {\n return Object.keys(this.systemData);\n }\n get numberOfPages() {\n if (this.allSystemsArray.length > 10) {\n const clone: any = [...this.allSystemsArray];\n const arr: any = [];\n while (clone.length) {\n arr.push(clone.splice(0, 10));\n }\n return arr;\n } else {\n return [this.allSystemsArray];\n }\n }\n get defineTopLine() {\n return this.numberOfPages[this.tab].slice(0, 5);\n }\n get defineBottomLine() {\n return this.numberOfPages[this.tab].slice(5, 10);\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n get animatedLineActive() {\n return !!this.sumForecast && this.showOutputValue && this.sumForecast > 0;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return !!this.instancesCanvasSize && !!this.instancesCanvasCenter && !!Object.values(this.instancesCanvasLines);\n }\n\n /**\n * Creates range for navigation tab name\n * @param {number} page index of current page\n * @param {number} lastPage index of last page in list\n */\n defineTabTitle(page: number, lastPage: number) {\n const start: any = page * 10 - 9;\n const end: any = page * 10;\n const isCurrentPageLast: boolean = page === lastPage;\n const allSystemsCount: any = this.allSystemsArray?.length;\n return `${start} - ${isCurrentPageLast ? allSystemsCount : end}`;\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = { width: actualViewRef?.clientWidth, height: actualViewRef?.clientHeight };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.defineTopLine, ...this.defineBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500)\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n this.tab = 0;\n this.isTabContentVisible = true;\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n\n created() {\n let res = Object.values(this.systemData).map((item: any) => {\n // check if item.power variable has value\n return item.power ? this.measurements.get(item.power) : null;\n });\n res = res.filter((element: any) => typeof element === 'number'); // if element not a number we dont show it\n this.showOutputValue = !!res.length;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=47f89835&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.electric_heating.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":\"electric-charging-boiler\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.animatedLineActive}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady},on:{\"publish\":function($event){return _vm.$emit('publish', $event)}}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"},on:{\"publish\":function($event){return _vm.$emit('publish', $event)}}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"preview-icon\":\"electric-charging-boiler\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n showOutputValue = true;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] > 1;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1] && !this.showOutputValue && this.instanceForecastData[1] > 1;\n }\n\n created() {\n if (this.instanceData.power === '') {\n this.showOutputValue = false;\n } else {\n this.showOutputValue = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=03992b7c&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @Prop({ default: null }) systemForecastTargetPower!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n systemSlider = 0;\n showOutputValue = false;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n const data = this.showOutputValue ? this.allSystemsForecastData : this.systemForecastTargetPower;\n return generateForecastSystems(Object.keys(this.systemData), data);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast && this.showOutputValue && this.sumForecast > 0;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n\n created() {\n let res = Object.values(this.systemData).map((item: any) => {\n // check if item.power variable has value\n return item.power ? this.measurements.get(item.power) : null;\n });\n res = res.filter((element: any) => typeof element === 'number'); // if element not a number we dont show it\n this.showOutputValue = !!res.length;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a7693324&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.generator.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"is-reverse-movement-default\":true,\"color2\":\"#f3db04\",\"color2-reverse\":\"#f3db04\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":\"generator\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.sumForecast}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#f3db04\",\"color2-reverse\":\"#f3db04\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":\"generator\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] < 0;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1];\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=1c3f1a85&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n return generateForecastSystems(Object.keys(this.systemData), this.allSystemsForecastData);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0c356c24&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.grid.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#fc0328\",\"color2-reverse\":\"#29810e\",\"is-reverse-movement-default\":true,\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"rotating-backlight-color\":_vm.sumForecast < 0 ? '#29810e' : '#fc0328',\"preview-icon\":\"main-connection\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.sumForecast}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#fc0328\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"rotating-backlight-color\":_vm.instanceForecastData[1] < 0 ? '#29810e' : '#fc0328',\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-icon\":\"main-connection\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] < 0;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1];\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=cd2d0830&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n return generateForecastSystems(Object.keys(this.systemData), this.allSystemsForecastData);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=220ca114&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.heating_pump.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":\"heating-capacity\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.animatedLineActive}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"},on:{\"publish\":function($event){return _vm.$emit('publish', $event)}}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"preview-icon\":\"heating-capacity\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n showOutputValue = true;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] > 1;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1] && !this.showOutputValue && this.instanceForecastData[1] > 1;\n }\n\n created() {\n if (this.instanceData.power === '') {\n this.showOutputValue = false;\n } else {\n this.showOutputValue = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=dd91c75e&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @Prop({ default: null }) systemForecastTargetPower!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n showOutputValue = false;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n const data = this.showOutputValue ? this.allSystemsForecastData : this.systemForecastTargetPower;\n return generateForecastSystems(Object.keys(this.systemData), data);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast && this.showOutputValue && this.sumForecast > 0;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n\n created() {\n let res = Object.values(this.systemData).map((item: any) => {\n // check if item.power variable has value\n return item.power ? this.measurements.get(item.power) : null;\n });\n res = res.filter((element: any) => typeof element === 'number'); // if element not a number we dont show it\n this.showOutputValue = !!res.length;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d3e432a0&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.house.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"preview-icon\":\"house-consumption\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.animatedLineActive}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#29810e\",\"color2-reverse\":\"#29810e\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"show-actual-value\":_vm.showOutputValue,\"rotating-backlight-color\":\"#29810e\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition,\"preview-icon\":\"house-consumption\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n Preview,\n AnimatedLine,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n showOutputValue = true;\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] > 0;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1];\n }\n\n created() {\n if (this.instanceData.power === '') {\n this.showOutputValue = false;\n } else {\n this.showOutputValue = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=a18690ca&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n showOutputValue = false;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n return generateForecastSystems(Object.keys(this.systemData), this.allSystemsForecastData);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n\n created() {\n let res = Object.values(this.systemData).map((item: any) => {\n // check if item.power variable has value\n return item.power ? this.measurements.get(item.power) : null;\n });\n res = res.filter((element: any) => typeof element === 'number'); // if element not a number we dont show it\n this.showOutputValue = !!res.length;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a7bb3056&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t('mlModel.EMS.systems.pv.title')},on:{\"handleSystemModalWindowContent\":_vm.handleSystemModalWindowContent},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"is-reverse-movement-default\":true,\"color2\":\"#f3db04\",\"color2-reverse\":\"#f3db04\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.sumForecast,\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":\"photovoltaic\",\"system-count\":_vm.systemCount,\"no-data\":!_vm.sumForecast}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"ems-system-instances-grid\"},[_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady}})],1)])}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"ems-system-instances-grid-row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"ems-system-instances-grid-row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('div',{staticClass:\"system-instance-wrapper\"},[_c('InstanceView',{attrs:{\"instance-data\":_vm.systemData[systemInstance],\"instance-forecast-data\":_vm.systemsForecastDataFiltered[systemInstance + '_power'],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"preview-title-position\":\"bottom\"}})],1)])}),0)]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticStyle:{\"width\":\"620px\"}},[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)])])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-instance-view\"},[(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.animatedLineActive}${!_vm.animatedLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":!_vm.animatedLineMovement,\"color2\":\"#f3db04\",\"color2-reverse\":\"#f3db04\",\"is-line-active\":_vm.animatedLineActive}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.instanceForecastData[1],\"rotating-backlight-color\":\"#f3db04\",\"preview-icon\":\"photovoltaic\",\"no-data\":!_vm.animatedLineActive,\"preview-title\":_vm.instanceData.title,\"preview-title-position\":_vm.previewTitlePosition}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\n\n/**\n * Component that represent forecast system instance view.\n */\n@Component({\n components: {\n AnimatedLine,\n Preview,\n },\n})\nexport default class InstanceView extends Vue {\n @Prop({ default: null }) instanceData!: any;\n @Prop({ default: null }) instanceForecastData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: 'top' }) previewTitlePosition!: string; // top, bottom\n\n get animatedLineMovement() {\n return this.instanceForecastData[1] < 0;\n }\n get animatedLineActive() {\n return !!this.instanceForecastData[1];\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstanceView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstanceView.vue?vue&type=template&id=5953b8e9&\"\nimport script from \"./InstanceView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstanceView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport InstanceView from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/InstanceView.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { throttle } from 'lodash';\nimport { generateForecastSystems } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\n\n@Component({\n components: {\n SystemModalWindowView,\n RotatingBacklight,\n InstanceView,\n TimeSlider,\n AnimatedLine,\n Preview,\n CentralEndpoint,\n },\n})\nexport default class Forecast extends Vue {\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @State('measurements') measurementsState!: IVariablesState;\n\n instancesCanvasSize: any = null;\n instancesCanvasCenter: any = null;\n instancesCanvasLines: any = {};\n\n systemSlider = 0;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData).slice(0, 5);\n }\n\n get instancesBottomLine() {\n return Object.keys(this.systemData).slice(5, 10);\n }\n\n get systemsForecastData() {\n return generateForecastSystems(Object.keys(this.systemData), this.allSystemsForecastData);\n }\n\n get sumSystemsForecastDataFiltered() {\n return Object.values(this.systemsForecastData).map(\n (system: any) => system[this.groupSliderState] || [null, null],\n );\n }\n\n get sumForecast() {\n const values = Object.values(this.sumSystemsForecastDataFiltered).map((el: any) => el[1]);\n const checkEmpty = values.filter((el: any) => typeof el === 'number');\n if (checkEmpty.length) {\n const num: any = values.reduce((a: number, b: number) => a + b);\n return +num.toFixed(2);\n } else {\n return 0;\n }\n }\n\n get animatedLineMovement() {\n return this.sumForecast > 0;\n }\n\n get animatedLineActive() {\n return !!this.sumForecast;\n }\n\n get timeSliderInitArr() {\n if (this.systemsForecastData) {\n return Object.values(this.systemsForecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object}\n */\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(this.systemsForecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return (\n !!this.instancesCanvasSize &&\n !!this.instancesCanvasCenter &&\n !!Object.values(this.instancesCanvasLines)\n );\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = {\n width: actualViewRef?.clientWidth,\n height: actualViewRef?.clientHeight,\n };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500);\n\n /**\n * When you open the system grid window,\n * get the current coordinates of the systems, Central Energy Point.\n * Define sizes.\n * @param {boolean} isContentVisible system grid visible status\n */\n async handleSystemModalWindowContent(isContentVisible: boolean) {\n if (isContentVisible) {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n } else {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n this.systemSlider = this.groupSliderState;\n }\n}\n","import mod from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=bf0f66d8&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport RotatingBacklight from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport BatterySystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BatterySystem/Forecast/index.vue';\nimport BigConsumerSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/BigConsumerSystem/Forecast/index.vue';\nimport ChargeStationSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ChargeStationSystem/Forecast/index.vue';\nimport ElectricHeatingSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/ElectricHeatingSystem/Forecast/index.vue';\nimport GeneratorSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Forecast/index.vue';\nimport GridSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GridSystem/Forecast/index.vue';\nimport HeatingPumpSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HeatingPumpSystem/Forecast/index.vue';\nimport HouseSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/HouseSystem/Forecast/index.vue';\nimport PVSystem from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Forecast/index.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { throttle } from 'lodash';\nimport { INavigationState } from '@/store/modules/navigation/types';\n\n/**\n * Component that represent EMS Forecast view\n */\n@Component({\n components: {\n RotatingBacklight,\n BatterySystem,\n BigConsumerSystem,\n ChargeStationSystem,\n ElectricHeatingSystem,\n GeneratorSystem,\n GridSystem,\n HeatingPumpSystem,\n HouseSystem,\n PVSystem,\n CentralEndpoint,\n },\n})\nexport default class ForecastView extends Vue {\n @State('navigation') navigationState!: INavigationState;\n @Prop({ default: null }) allSystemsData!: any;\n @Prop({ default: null }) allSystemsForecastData!: any;\n @Prop({ default: 0 }) groupSliderState!: number;\n @Prop({ default: null }) batteryPredictedSOC!: any;\n @Prop({ default: null }) allSystemsForecastTargetPower!: any;\n @State('mpc') mpcState!: any;\n\n canvasSize: any = null;\n canvasCenter: any = null;\n canvasLines: any = {};\n systemsList = [\n 'pv',\n 'generator',\n 'battery',\n 'grid',\n 'house',\n 'charge_station',\n 'electric_heating',\n 'heating_pump',\n 'big_consumer',\n ];\n\n systems = {\n pv: 'PVSystem',\n generator: 'GeneratorSystem',\n grid: 'GridSystem',\n battery: 'BatterySystem',\n house: 'HouseSystem',\n charge_station: 'ChargeStationSystem',\n electric_heating: 'ElectricHeatingSystem',\n heating_pump: 'HeatingPumpSystem',\n big_consumer: 'BigConsumerSystem',\n };\n\n get groups() {\n return this.mpcState.mlModelTypes.EMS.groups;\n }\n get currentProducerSystems() {\n const { systems } = this.groups.producer;\n return systems.filter((system: any) => this.allSystemsData[system].count);\n }\n get currentConsumerSystems() {\n const { systems } = this.groups.consumer;\n return systems.filter((system: any) => this.allSystemsData[system].count);\n }\n get batterySystem() {\n return this.allSystemsData.battery;\n }\n get gridSystem() {\n return this.allSystemsData.grid;\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get loadLine() {\n return !!this.canvasSize && !!this.canvasCenter && !!Object.values(this.canvasLines);\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getCoords() {\n const central: any = this.$refs.centralEndpoint;\n const actualViewRef: any = this.$refs.canvas;\n this.canvasSize = { width: actualViewRef?.clientWidth, height: actualViewRef?.clientHeight };\n this.canvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n this.systemsList.forEach((system: string) => {\n const target: any = this.$refs[system];\n if (!target) return;\n\n if (Array.isArray(target)) {\n this.canvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n } else {\n this.canvasLines[system] = {\n key: system,\n x: target.offsetLeft + target.offsetWidth / 2,\n y: target.offsetTop + target.offsetHeight / 2,\n w: target.offsetWidth,\n h: target.offsetHeight,\n };\n }\n });\n }\n getCoordsThrottle = throttle(this.getCoords, 500);\n\n handleGetCoords() {\n this.getCoords();\n }\n\n get isMini() {\n return this.navigationState.isMini;\n }\n\n @Watch('isMini')\n handleIsMiniChange(val: any) {\n this.getCoordsThrottle();\n }\n\n mounted() {\n window.addEventListener('resize', this.getCoordsThrottle);\n this.$nextTick(() => {\n this.getCoords();\n });\n }\n\n destroyed() {\n window.removeEventListener('resize', this.getCoordsThrottle);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForecastView.vue?vue&type=template&id=5139b9fe&\"\nimport script from \"./ForecastView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForecastView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForecastView.vue?vue&type=style&index=0&id=5139b9fe&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"settingsWrapper\",staticClass:\"ems-settings\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\",attrs:{\"mpc-id\":_vm.mpcId,\"is-mpc\":true,\"scaling\":_vm.scaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"device-data\":_vm.mpcData}}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c('div',{staticClass:\"charts-prod-const-content-wrapper\"},[_c(item.component,_vm._b({tag:\"component\",attrs:{\"navigationItemsToExclude\":item.data.navigationItemsToExclude,\"settingsWrapperHeight\":_vm.settingsWrapperHeight}},'component',{ ...item.data },false))],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ChartDevice from '@/ui/components/devices/charts/charts/ChartDevice.vue';\nimport { hasSystem } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\n\n/**\n * Component that represent chart Production/Consumption.\n */\n@Component({\n components: {\n BaseChartWrapper,\n CircleSpinner,\n ChartDevice,\n },\n})\nexport default class ChartProdCons extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n @Prop() settingsWrapperHeight!: number;\n\n tab = null\n autarchy: any = null\n\n get autarchyValid() {\n if (!this.autarchy) return null;\n else {\n if (this.autarchy.autarchy_score > 100) return 100;\n if (this.autarchy.autarchy_score < 0) return 0;\n return this.autarchy.autarchy_score;\n }\n }\n\n /**\n * Prepares chart options for Actual Power\n */\n get pvActualPower() {\n const pvSystemComponents = this.getSystemComponents(this.deviceData, EnergyCircleType.pv);\n const list: any = Object.keys(pvSystemComponents);\n const aggregations: any = list.map((el: string) => 'avg');\n const expression: any = list.map((el: string) => pvSystemComponents[el].power).join(' + ');\n return {\n aggregations,\n expression,\n };\n }\n\n /**\n * Prepares chart options for Calculated Power\n */\n get pvCalculatedPower() {\n const list: any = Object.keys(this.getSystemComponents(this.deviceData, EnergyCircleType.pv));\n const aggregations: any = list.map((el: string) => 'avg');\n const expression: any = list.map((el: string) => `${el}.${this.mpcId}.pow`).join(' + ');\n return {\n aggregations,\n expression,\n };\n }\n\n /**\n * Prepares chart options for consumption power\n */\n get consumptionActualPower() {\n const systems = ['grid', 'battery', 'pv', 'generator'];\n const filteredByNeededSystems: any = Object.entries(this.getSystems(this.deviceData)).filter((group: any) => systems.some((el: any) => el === group[0]));\n const allVariables: any = filteredByNeededSystems.map((system: any) => Object.values(system[1].components).map((el: any) => el.power));\n const allVarsFlat: any = allVariables.reduce((acc: any, el: any) => acc.concat(el), []);\n const aggregations: any = allVarsFlat.map((el: any) => 'avg');\n const expression: any = allVarsFlat.length ? allVarsFlat.join(' + ') : null;\n return {\n aggregations,\n expression,\n };\n }\n get consumptionCalculatedPower() {\n return `con.${this.mpcId}.pow`;\n }\n\n get pvScaling() {\n if (this.scaling?.pv) {\n return +this.scaling.pv;\n }\n return null;\n }\n get consumptionScaling() {\n if (this.scaling?.consumption) {\n return +this.scaling.consumption;\n }\n return null;\n }\n\n /**\n * Prepares an option object understandable for the chart component.\n * List of charts.\n */\n get items() {\n const chartOptions: any = [];\n hasSystem('pv', this.getSystems(this.deviceData)) && chartOptions.push(\n {\n title: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.title'),\n id: 'pvPower',\n component: 'BaseChartWrapper',\n data: {\n chartTitle: 'Power PV',\n chartWidth: null,\n chartData: {\n name: '',\n data: {\n chartOptions: [\n {\n calculation: this.pvActualPower,\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.actualPVPower'),\n scaling: {\n min: 0,\n max: typeof this.pvScaling === 'number' ? this.pvScaling * 2 : null,\n },\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n },\n {\n calculation: this.pvCalculatedPower,\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.calculatedPVPower'),\n scaling: {\n min: 0,\n max: typeof this.pvScaling === 'number' ? this.pvScaling * 2 : null,\n },\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour'],\n },\n },\n );\n const items = [\n ...chartOptions,\n {\n title: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.title'),\n id: 'consumptionPower',\n component: 'BaseChartWrapper',\n data: {\n chartTitle: 'Power Consumption',\n chartWidth: null,\n chartData: {\n name: '',\n data: {\n chartOptions: [\n {\n calculation: this.consumptionActualPower,\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.actualPower'),\n scaling: {\n min: typeof this.consumptionScaling === 'number' ? 0 - (this.consumptionScaling * 2) : null,\n max: typeof this.consumptionScaling === 'number' ? this.consumptionScaling * 2 : null,\n },\n seriesType: 'Calculation',\n type: 'line',\n unit: 'kW',\n },\n {\n agg: 'avg',\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.calculatedPower'),\n scaling: {\n min: typeof this.consumptionScaling === 'number' ? 0 - (this.consumptionScaling * 2) : null,\n max: typeof this.consumptionScaling === 'number' ? this.consumptionScaling * 2 : null,\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: this.consumptionCalculatedPower,\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour'],\n },\n },\n ];\n return items;\n }\n\n /**\n * Define parameters for Autarkiegrad request.\n * @return {string} params for request. Example: grid=1&grid=2\n */\n get paramsForAutarkiegrad() {\n const systems = ['grid', 'battery', 'pv'];\n const filteredByNeededSystems: any = Object.entries(this.getSystems(this.deviceData))\n .filter((group: any) => systems.some((el: any) => el === group[0]));\n const allVariables: any = filteredByNeededSystems\n .map((system: any) => Object.values(system[1].components).map((el: any) => `${system[0]}=${el.power}`));\n const allVarsFlat: any = allVariables.reduce((acc: any, el: any) => acc.concat(el), []);\n return allVarsFlat.length ? allVarsFlat.join('&') : null;\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartProdCons.vue?vue&type=template&id=577524be&scoped=true&\"\nimport script from \"./ChartProdCons.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartProdCons.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartProdCons.vue?vue&type=style&index=0&id=577524be&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"577524be\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return (_vm.excludeNavItems.includes(item.title))?_c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")]):_vm._e()}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return (_vm.excludeNavItems.includes(item.title))?_c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c('div',[_c(item.component,_vm._b({tag:\"component\",attrs:{\"chart-variables\":item.chartVariables,\"mpc-id\":_vm.mpcId,\"scaling\":_vm.scaling,\"predicted-power\":_vm.predictedPower,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC,\"device-data\":_vm.deviceData}},'component',{ ...item.data },false))],1):_vm._e()]):_vm._e()}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('div',{staticClass:\"d-flex justify-center pt-2\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.systemSchema,\"system-name\":\"EMS\",\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){return _vm.handleCurrentChart($event)}}})],1),(_vm.currentChart.system)?_c('div',{staticClass:\"content pt-2\"},[_c('BaseChart',_vm._b({key:_vm.reRenderKey,attrs:{\"navigationItemsToExclude\":['live', 'hour']}},'BaseChart',{ ..._vm.currentChartData },false))],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\nimport SystemsNavigation from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent forecast chart Controlling Consumer.\n */\n@Component({\n components: {\n SystemsNavigation,\n BaseChart,\n },\n})\nexport default class TimeTable extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: null }) predictedTargetPower!: any;\n @Prop({ default: null }) predictedSOC!: any;\n @Prop({ default: null }) predictedPower!: any;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n\n reRenderKey = 0;\n systems: any = ['battery', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'];\n systemsVars: any = {\n battery: ['target_power', 'soc', 'power'],\n charge_station: ['target_power'],\n electric_heating: ['target_power'],\n heating_pump: ['target_power'],\n big_consumer: ['target_power'],\n };\n variablesContainers: any = {\n target_power: 'predictedTargetPower',\n soc: 'predictedSOC',\n power: 'predictedPower',\n };\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n currentChart: any = {\n system: null,\n instances: [],\n };\n systemsUnits: any = {\n battery: {\n target_power: '%',\n soc: '%',\n power: 'kW',\n },\n charge_station: {\n target_power: '%',\n },\n electric_heating: {\n target_power: '%',\n },\n heating_pump: {\n target_power: '%',\n },\n big_consumer: {\n target_power: '%',\n },\n };\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n battery: {\n target_power: { min: -100, max: 100 },\n soc: { min: 0, max: 100 },\n power: {\n min: this.scaling?.batteryPower ? 0 - this.scaling?.batteryPower * 2 : null,\n max: this.scaling?.batteryPower ? this.scaling?.batteryPower * 2 : null,\n },\n },\n charge_station: {\n target_power: { min: 0, max: 100 },\n },\n electric_heating: {\n target_power: { min: 0, max: 100 },\n },\n heating_pump: {\n target_power: { min: 0, max: 100 },\n },\n big_consumer: {\n target_power: { min: 0, max: 100 },\n },\n };\n }\n\n get controllerMappingsSystems() {\n return this.getSystems(this.deviceData);\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n const filteredSystems = Object.entries(this.controllerMappingsSystems).filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1].count));\n return filteredSystems.map((el: any) => {\n if (el[0] === 'battery') return this.defineInstancesGroups(el, 3);\n else return this.defineInstancesGroups(el, 9);\n });\n }\n\n /**\n * Creates series, Y-axis for chart\n */\n get currentChartData() {\n const series: any = this.currentChart.instances.map((instance: any, inx: number) => {\n return this.systemsVars[this.currentChart.system].map((variable: any) => {\n const data = (this as any)[this.variablesContainers[variable]][\n `${instance}_${variable}`\n ].map((d: any) => [d[0] * 1000, d[1]]);\n\n const systemInstanceName: string =\n this.controllerMappingsSystems[this.currentChart.system].components[instance].title;\n const systemInstanceVariableName: string =\n this.controllerMappingsSystems[this.currentChart.system].components[instance][variable];\n const getNameForBattery = () => {\n const variableName = this.$t(`mlModel.EMS.charts.chartTimeTableConsumer.${variable}`);\n return `${variableName} ${systemInstanceName || instance}`;\n };\n const getName = () => {\n return systemInstanceName || systemInstanceVariableName;\n };\n const isBattery = this.currentChart.system === 'battery';\n return {\n name: isBattery ? getNameForBattery() : getName(),\n type: 'line',\n yAxis: null, // will add later\n color: null, // will add later\n data,\n };\n });\n });\n const seriesColors = series.flat().map((serie: any, inx: number) => {\n serie.color = this.chartColors[inx];\n serie.yAxis = inx;\n return serie;\n });\n\n const yAxis: any = this.currentChart.instances.map((instance: any, inx: number) => {\n return this.systemsVars[this.currentChart.system].map((variable: any) => {\n return {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n ...this.systemsScaling[this.currentChart.system][variable],\n lineColor: null, // will added later\n labels: {\n format: `{value} ${this.systemsUnits[this.currentChart.system][variable]}`,\n style: {\n color: null, // will added later\n },\n },\n };\n });\n });\n const yAxisColors = yAxis.flat().map((axis: any, inx: number) => {\n axis.lineColor = this.chartColors[inx];\n axis.labels.style.color = this.chartColors[inx];\n axis.gridLineWidth = !inx ? 1 : 0;\n return axis;\n });\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 600,\n series: seriesColors,\n yAxis: yAxisColors,\n };\n }\n\n /**\n * Division of group systems into subgroups depending on the value of the separator.\n * @param {array} system list of systems\n * @param {number} splitter Separator determining the number of elements in a subgroup\n */\n defineInstancesGroups(system: [string, { components: any; count: number }], splitter: number) {\n const instancesArr: any = Object.keys(system[1].components);\n const count: any = Math.ceil(system[1].count / splitter);\n let instancesArrGrouped: any = [];\n const initChartList = (n: number, arr: any) => {\n if (n > 0) {\n initChartList(n - 1, arr);\n instancesArrGrouped = [\n ...instancesArrGrouped,\n arr.slice(n * splitter - splitter, n * splitter),\n ];\n } else {\n return null;\n }\n };\n initChartList(count, instancesArr);\n\n return [system[0], instancesArrGrouped];\n }\n\n /**\n * Creates a name for the menu item from an array of instances.\n * @param {array} arr list on system instances names\n * @return {string} menu item name. Example: 1-9\n */\n defineMenuItemName(arr: any) {\n const filterFromNotNumber = (str: string) => +str.replace(/\\D+/g, '');\n if (!arr.length) return null;\n if (arr.length === 1) return filterFromNotNumber(arr[0]);\n else {\n const first: any = arr[0];\n const last: any = arr[arr.length - 1];\n return `${filterFromNotNumber(first)}-${filterFromNotNumber(last)}`;\n }\n }\n\n handleCurrentChart(params: {system: string; arr: string[]}) {\n this.currentChart = { system: params.system, instances: params.arr };\n this.reRenderKey += 1;\n }\n\n /**\n * Init what system chart will load when open page.\n */\n initFirstSystemByDefault() {\n const filtered: any = this.systemSchema.filter((el: any) => el[1].length);\n this.currentChart = filtered.length\n ? {\n system: filtered[0][0],\n instances: filtered[0][1][0],\n }\n : {\n system: null,\n instances: [],\n };\n }\n\n mounted() {\n this.initFirstSystemByDefault();\n }\n}\n","import mod from \"-!../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeTable.vue?vue&type=template&id=5416556c&scoped=true&\"\nimport script from \"./TimeTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5416556c\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport TimeTable from '@/ui/components/devices/components/EnergyParts/EMS/components/charts/Forecast/TimeTable.vue';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { Action } from 'vuex-class';\nimport { filterInstances, getPredictions } from '@/utils/mpcUtils';\nimport { hasSystem } from '@/utils/utilsFunctions';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport { IDevice } from '@/types/devices.types';\nimport {\n EnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\n\n/**\n * Component that represent wrapper for forecast charts tabs navigation.\n * Used in EMS.\n */\n@Component({\n components: {\n BaseChart,\n TimeTable,\n },\n})\nexport default class Forecast extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: null }) prediction!: any;\n @Prop({ default: null }) predictedPower!: any;\n @Prop({ default: null }) predictedTargetPower!: any;\n @Prop({ default: null }) predictedEnergy!: any;\n @Prop({ default: null }) predictedSOC!: any;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n tab: any = null;\n excludeNavItems = [\n this.$t('mlModel.EMS.charts.forecast.pv.title'),\n this.$t('mlModel.EMS.charts.forecast.consumption.title'),\n this.$t('mlModel.EMS.charts.forecast.difference.title'),\n this.$t('mlModel.EMS.charts.forecast.timeTableConsumer.title'),\n ];\n\n mpcData: any = null;\n chartVariables: any = {};\n\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n // scaling\n get pvScaling() {\n return this.scaling?.pv;\n }\n get consumptionScaling() {\n return this.scaling?.consumption;\n }\n\n // =================== pv data =======================\n /**\n * Converts predictedEnergy data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get pvPredictedEnergy() {\n const pvInstancesList = Object.keys(this.getSystemComponents(this.deviceData, EnergyCircleType.pv));\n const pvInstances: any = filterInstances(this.prediction, 'pv', pvInstancesList, '_energy');\n\n return getPredictions(pvInstances, '_energy');\n }\n\n /**\n * Converts predictedPower data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get pvPredictedPower() {\n const pvInstancesList = Object.keys(this.getSystemComponents(this.deviceData, EnergyCircleType.pv));\n const pvInstances: any = filterInstances(this.prediction, 'pv', pvInstancesList, '_power');\n\n return getPredictions(pvInstances, '_power');\n }\n\n /**\n * Prepares series for chart\n */\n get pvSeriesForecast() {\n return [\n {\n name: this.$t(\n 'mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedEnergy',\n ),\n type: 'line',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.pvPredictedEnergy,\n },\n {\n name: this.$t(\n 'mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedPower',\n ),\n type: 'line',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.pvPredictedPower,\n },\n ];\n }\n\n /**\n * Prepares Y-axis for chart\n */\n get pvYAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: 0,\n max: typeof this.pvScaling === 'number' ? this.pvScaling * 12 : null,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kWh',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: typeof this.pvScaling === 'number' ? this.pvScaling * 2 : null,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n ];\n }\n\n /**\n * Combine all prepared data in chart options object\n */\n get pvForecastData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 600,\n series: this.pvSeriesForecast,\n yAxis: this.pvYAxisForecast,\n };\n }\n\n // ================== consumption data ==================\n /**\n * Converts predictedEnergy data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get consumptionPredictedEnergy() {\n if (this.mpcData) {\n const { consumption } = this.mpcData.data.meta.charts.predictedEnergy;\n return consumption ? consumption.map((el: any) => [el[0] * 1000, el[1]]) : [];\n }\n return [];\n }\n\n /**\n * Converts predictedPower data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get consumptionPredictedPower() {\n if (this.mpcData) {\n const { consumption } = this.mpcData.data.meta.charts.predictedPower;\n return consumption ? consumption.map((el: any) => [el[0] * 1000, el[1]]) : [];\n }\n return [];\n }\n\n /**\n * Prepares series for chart\n */\n get consumptionSeriesForecast() {\n return [\n {\n name: this.$t(\n 'mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedEnergy',\n ),\n type: 'line',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.consumptionPredictedEnergy,\n },\n {\n name: this.$t(\n 'mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedPower',\n ),\n type: 'line',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.consumptionPredictedPower,\n },\n ];\n }\n\n /**\n * Prepares Y-axis for chart\n */\n get consumptionYAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: typeof this.consumptionScaling === 'number' ? 0 - this.consumptionScaling * 20 : null,\n max: typeof this.consumptionScaling === 'number' ? this.consumptionScaling * 20 : null,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kWh',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: typeof this.consumptionScaling === 'number' ? 0 - this.consumptionScaling * 2 : null,\n max: typeof this.consumptionScaling === 'number' ? this.consumptionScaling * 2 : null,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n ];\n }\n\n /**\n * Combine all prepared data in chart options object\n */\n get consumptionForecastData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 600,\n series: this.consumptionSeriesForecast,\n yAxis: this.consumptionYAxisForecast,\n };\n }\n\n // ============== chart difference ===================\n\n /**\n * Converts predictedPower data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get sumPredictedPVPower() {\n const pvInstancesList = Object.keys(this.getSystemComponents(this.deviceData, EnergyCircleType.pv));\n const pvInstances: any = filterInstances(this.prediction, 'pv', pvInstancesList, '_power');\n\n return getPredictions(pvInstances, '_power');\n }\n\n /**\n * Converts predictedPower data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get predictedConsumption() {\n if (this.mpcData) {\n const { consumption } = this.mpcData.data.meta.charts.predictedPower;\n return consumption ? consumption.map((el: any) => [el[0] * 1000, el[1]]) : [];\n }\n return [];\n }\n\n /**\n * Converts predictedPower data to show in chart.\n * @return {array} [[timestamp, value], [timestamp, value]]\n */\n get predictedGrid() {\n const gridInstancesList = Object.keys(this.getSystemComponents(this.deviceData, EnergyCircleType.grid));\n const gridInstances: any = filterInstances(\n this.prediction,\n 'grid',\n gridInstancesList,\n '_power',\n );\n\n return getPredictions(gridInstances, '_power');\n }\n\n /**\n * Prepares series for chart\n */\n get differenceSeriesForecast() {\n return [\n ...(hasSystem('pv', this.mpcData?.data.meta.controllerMappings)\n ? [\n {\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedPVPower'),\n type: 'area',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.sumPredictedPVPower,\n },\n ]\n : []),\n {\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedConsumption'),\n type: 'area',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.predictedConsumption,\n },\n {\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedGrid'),\n type: 'area',\n yAxis: 2,\n color: this.chartColors[2],\n data: this.predictedGrid,\n },\n ];\n }\n\n /**\n * Prepares Y-axis for chart\n */\n get differenceYAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: typeof this.pvScaling === 'number' ? 0 - this.consumptionScaling * 2 : null,\n max: typeof this.pvScaling === 'number' ? this.consumptionScaling * 2 : null,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: typeof this.pvScaling === 'number' ? 0 - this.consumptionScaling * 2 : null,\n max: typeof this.pvScaling === 'number' ? this.consumptionScaling * 2 : null,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: typeof this.pvScaling === 'number' ? 0 - this.consumptionScaling * 2 : null,\n max: typeof this.pvScaling === 'number' ? this.consumptionScaling * 2 : null,\n lineColor: this.chartColors[2],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[2],\n },\n },\n },\n ];\n }\n\n /**\n * Combine all prepared data in chart options object\n */\n get differenceForecastData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 600,\n series: this.differenceSeriesForecast,\n yAxis: this.differenceYAxisForecast,\n };\n }\n\n /**\n * Tabs for navigation\n */\n get items() {\n return [\n ...(hasSystem('pv', this.mpcData?.data.meta.controllerMappings)\n ? [\n {\n title: this.$t('mlModel.EMS.charts.forecast.pv.title'),\n component: 'BaseChart',\n data: this.pvForecastData,\n chartVariables: this.chartVariables,\n },\n ]\n : []),\n {\n title: this.$t('mlModel.EMS.charts.forecast.consumption.title'),\n component: 'BaseChart',\n data: this.consumptionForecastData,\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.difference.title'),\n component: 'BaseChart',\n data: this.differenceForecastData,\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.timeTableConsumer.title'),\n component: 'TimeTable',\n },\n ];\n }\n\n sum(array: any) {\n if (array.length === 0) {\n return 0;\n }\n return array.reduce((a: any, b: any) => {\n return a + b;\n });\n }\n\n sumPredictedPower(system_type: any, all = true) {\n let sum = 0;\n // Summing up power data for new response format\n Object.entries(this.predictedMPCPower[system_type])\n .filter((item: any) => item[0].includes('_power') && !item[0].includes('target_power'))\n .forEach((item: any) => {\n const values: any = [];\n item[1].forEach((i: any) => values.push(i[1]));\n sum += this.sum(all ? values : values.filter((i: any) => i < 0));\n });\n return sum;\n }\n\n async loadChartVariables() {\n const timeFactor = periodConfigurations[Periods.DAY].intervalInSeconds / 60 / 60;\n const variables: any = {};\n const pv = this.sumPredictedPower('pv') * timeFactor;\n const battery = -1 * this.sumPredictedPower('battery', false) * timeFactor;\n const grid = -1 * this.sumPredictedPower('grid', false) * timeFactor;\n\n if (hasSystem('pv', this.mpcData?.data.meta.controllerMappings)) {\n variables[this.$t('mlModel.EMS.charts.chartDifference.predictedPvProduction').toString()] = {\n value: kiloWattHourUnit.unitForValue(pv).value,\n unit: kiloWattHourUnit.unitForValue(pv).unit,\n };\n }\n\n if (hasSystem('battery', this.mpcData?.data.meta.controllerMappings)) {\n variables[\n this.$t('mlModel.EMS.charts.chartDifference.predictedProductionBattery').toString()\n ] = {\n value: kiloWattHourUnit.unitForValue(battery).value,\n unit: kiloWattHourUnit.unitForValue(battery).unit,\n };\n }\n\n if (hasSystem('grid', this.mpcData?.data.meta.controllerMappings)) {\n variables[\n this.$t('mlModel.EMS.charts.chartDifference.predictedProductionGrid').toString()\n ] = {\n value: kiloWattHourUnit.unitForValue(grid).value,\n unit: kiloWattHourUnit.unitForValue(grid).unit,\n };\n }\n if (hasSystem('pv', this.mpcData?.data.meta.controllerMappings)) {\n variables[this.$t('mlModel.EMS.charts.chartDifference.predictedDirectConsumption').toString()] =\n {\n value: kiloWattHourUnit.unitForValue(pv - battery - grid).value,\n unit: kiloWattHourUnit.unitForValue(pv - battery - grid).unit,\n };\n }\n this.chartVariables = variables;\n }\n\n async mounted() {\n const id = this.mpcId.replace(/_/g, '-');\n this.mpcData = await this.fetchMPCData(id);\n await this.loadChartVariables();\n }\n\n get predictedMPCPower() {\n return this.mpcData ? this.mpcData.data.meta.charts.prediction : {};\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0f71e234&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f71e234\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ChartProdCons from '@/ui/components/devices/components/EnergyParts/EMS/components/charts/ChartProdCons.vue';\nimport Forecast from '@/ui/components/devices/mpc/EMS/components/charts/Forecast/index.vue';\nimport SelfConsumption\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in EMS.\n */\n@Component({\n components: {\n ChartProdCons,\n Forecast,\n SelfConsumption,\n },\n})\nexport default class EMSCharts extends Vue {\n @Prop({ default: null }) mpcData!: any;\n @Prop({ default: null }) prediction!: any;\n @Prop({ default: null }) predictedPower!: any;\n @Prop({ default: null }) predictedTargetPower!: any;\n @Prop({ default: null }) predictedEnergy!: any;\n @Prop({ default: null }) predictedSOC!: any;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n\n tab = null\n settingsWrapperHeight = 0;\n\n mounted() {\n this.$nextTick(() => {\n const settingsWrapperElement = (this.$refs.settingsWrapper as any);\n this.settingsWrapperHeight = settingsWrapperElement.clientHeight * 0.7;\n });\n }\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.title'),\n view: 'SelfConsumption',\n },\n {\n title: this.$t('mlModel.EMS.charts.chartProdConst.title'),\n view: 'ChartProdCons',\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.title'),\n view: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=aaeda4f2&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=aaeda4f2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"settings-ems\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(hItem,hIndex){return _c('v-tab',{key:hIndex},[_vm._v(\" \"+_vm._s(hItem.title)+\" \")])}),1),_c('v-tabs-items',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('GeneralSettingsEMS',{attrs:{\"device-data\":_vm.mpcData}})],1),_c('v-tab-item',[_c('ModeSettings',{attrs:{\"mpc-data\":_vm.mpcData,\"device-data\":_vm.deviceData}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"settings-ems-fields-wrapper\"},[_c('div',{staticClass:\"settings-ems-field pb-6\"},[_c('div',{staticClass:\"settings-label\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuseChargingStation'))+\" \")]),_c('div',{staticClass:\"value\"},[_c('v-dialog',{attrs:{\"max-width\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"accent\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.openList'))+\" \")])]}}]),model:{value:(_vm.sizeMainFuseDialog),callback:function ($$v) {_vm.sizeMainFuseDialog=$$v},expression:\"sizeMainFuseDialog\"}},[_c('div',{staticClass:\"settings-ems-size-main-fuse-list\"},[(_vm.sizeMainFuseDialog)?_vm._l((_vm.sizeMainFuseList),function(item,index){return _c('div',{key:index},[_c('InputFieldBase',{attrs:{\"variable-data\":{ 'InputField_targetValue': _vm.sizeMainFuse[item] },\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":_vm.limitsForFields.size_main_fuse.min,\"max\":_vm.limitsForFields.size_main_fuse.max,\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1', minWidth: '150px' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuse')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(index + 1))])]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}],null,true)})],1)}):_vm._e()],2)])],1),_c('div',{staticClass:\"placeholder\"})]),(!_vm.isSolarmax)?_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldMaxDepth,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":_vm.limitsForFields.max_depth.min,\"max\":_vm.limitsForFields.max_depth.max,\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1', minWidth: '150px' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.maxDephOfDischargeInEmergencyPowerMode'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}],null,false,2838137971)})],1):_vm._e(),(!_vm.isSolarmax)?_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReserveForEmergency,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-floating-number\":false,\"step\":1,\"min\":_vm.limitsForFields.reserve_battery.min,\"max\":_vm.limitsForFields.reserve_battery.max,\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1', minWidth: '150px' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveInBatteryForEmergencyPowerMode'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}],null,false,1797143045)})],1):_vm._e(),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldReserveChargingFromGrid,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":_vm.limitsForFields.reserve_charge.min,\"max\":_vm.limitsForFields.reserve_charge.max,\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1', minWidth: '150px' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveChargingFromGrid'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.outputFieldUpdatingTime,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"step\":1,\"min\":_vm.limitsForFields.update_time.min,\"max\":_vm.limitsForFields.update_time.max,\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1', minWidth: '150px' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.updatingTimeEMS'))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.operationModeEMS'))+\" \")]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"max-width\":\"434px !important\"},attrs:{\"variable-data\":_vm.dropDownOperation,\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingOperation}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.messageEMSFunction'))+\" \")]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"max-width\":\"434px !important\"},attrs:{\"variable-data\":_vm.dropDownMessage,\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingMessage}})],1),_c('div',{staticClass:\"placeholder\"})]),(_vm.hasBattery)?_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[Object.values(_vm.switch2VEnableBattery)]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.systems.battery.settings.enableBattery')))]},proxy:true}],null,false,177804494)})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableBattery,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e(),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.enable_ems, _vm.mappingsList.state_enable_ems]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.enableEMS')))]},proxy:true}])})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VEnable,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.allow_charging_button, _vm.mappingsList.allow_charging_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.allowedChargingFromGrid'))+\" \")]},proxy:true}])})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VAllowChargingFromGrid,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.mainFuseMonitoring')))]},proxy:true}])})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VMainFuseMonitoring,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]),(_vm.showPlcControllingState)?_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.enable_controlling]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.controllerMappings.enable_controlling.label'))+\" \")]},proxy:true}],null,false,3043782825)})],1),_c('div',{staticClass:\"value\"},[_c('ShowEventDotBase',{staticClass:\"mx-2\",attrs:{\"variable-data\":_vm.statusIndicatorControllingState,\"mapping-extension\":\"targetValue\",\"items\":[[0, '#29810e']],\"instance\":\"ShowEventDot1\"}})],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e(),(_vm.showMpcBatteryPowerLimit)?_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.calculated_battery_power]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.controllerMappings.calculated_battery_power.label'))+\" \")]},proxy:true}],null,false,443149870)})],1),_c('div',{staticClass:\"value\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.switch2VNewBatteryPower,\"instance\":\"OutputField\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e(),(_vm.hasElevatedPrivileges)?_c('div',{staticClass:\"settings-ems-field pt-4\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.regelenergie.transferText')))]},proxy:true}],null,false,3306047650)})],1),_c('div',{staticClass:\"value d-flex justify-space-around align-center\"},[_c('v-btn',{attrs:{\"color\":\"accent\",\"dark\":\"\"},on:{\"click\":function($event){return _vm.transferToRegelenergie(_vm.deviceData)}}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMS.settingsView.regelenergie.transfer'))+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-folder-upload \")])],1),(_vm.wasAlreadyTransferred)?_c('div',[_c('v-icon',{staticClass:\"pr-4\",attrs:{\"color\":\"accent\"}},[_vm._v(\"mdi-check-circle\")]),_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.settingsView.regelenergie.transferred')))])],1):_vm._e()],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e(),(_vm.showRegelenergie)?_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.enable_regelenergie, _vm.mappingsList.state_enable_regelenergie]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.settingsView.fields.enableRegelenergie')))]},proxy:true}],null,false,1929717600)})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableRegelenergie,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e(),(_vm.showControlDynamicTariff)?_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"settings-label\"},[_c('LabelUnitWrapper',{attrs:{\"is-value\":false,\"variables-list-for-check\":[_vm.mappingsList.enable_control_dynamic_tariff, _vm.mappingsList.state_enable_control_dynamic_tariff]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.settingsView.fields.enableControlDynamicTariff')))]},proxy:true}],null,false,3460796594)})],1),_c('div',{staticClass:\"value\"},[_c('Switch2VBase',{staticStyle:{\"margin\":\"0 0 3px 10px\"},attrs:{\"variable-data\":_vm.switch2VEnableControlDynamicTariff,\"instance\":\"Switch2V\"}})],1),_c('div',{staticClass:\"placeholder\"})]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport devicesTypes from '@/store/modules/devices/settings/devicesTypes';\nimport {\n plcVersionDate,\n tenantUpdateWagoCounters,\n} from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport { IMeasurements } from '@/types/measurements.types';\n\n/**\n * Component that represent EMS settings view.\n * Contains navigation tabs. EMS settings and Mode settings.\n */\n@Component({\n methods: { minMaxValidation },\n components: {\n ShowEventDotBase,\n InputFieldBase,\n OutputFieldBase,\n DropDownBase,\n Switch2VBase,\n LabelUnitWrapper,\n },\n})\nexport default class GeneralSettingsEMS extends mixins(Validation) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: true }) showMpcBatteryPowerLimit!: boolean;\n @Prop({ default: true }) showPlcControllingState!: boolean;\n @State('app') appState!: IAppState;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('projects/project') project!: IProject;\n @Action('devices/transferToRegelenergie') transferToRegelenergie!: (device: IDevice) => void;\n\n sizeMainFuseDialog = null\n\n get showRegelenergie() {\n const controllermappings = this.deviceData.data.meta.controllerMappings;\n const mappingsExist = !!controllermappings.enable_regelenergie && !!controllermappings.state_enable_regelenergie;\n return this.hasElevatedPrivileges && mappingsExist;\n }\n\n get showControlDynamicTariff() {\n const controllermappings = this.deviceData.data.meta.controllerMappings;\n const mappingsExist = !!controllermappings.enable_control_dynamic_tariff && !!controllermappings.state_enable_control_dynamic_tariff;\n return this.hasElevatedPrivileges && mappingsExist;\n }\n\n get limitsForFields() {\n const limits: Record = {};\n const nonSolarmaxSettings = ['max_depth', 'reserve_battery'];\n const keysForObject = [\n 'size_main_fuse',\n ...(this.isSolarmax ? [] : nonSolarmaxSettings),\n 'reserve_charge',\n 'min_charge_battery',\n 'update_time',\n ];\n const controllerMappings: any = devicesTypes.EMSV2.controllerMappings;\n keysForObject.forEach((key: string) => {\n limits[key] = controllerMappings[key].minMaxBorders;\n });\n\n return limits;\n }\n\n get mappingsList() {\n return this.deviceData?.data?.meta?.controllerMappings;\n }\n\n get isSuperAdmin() {\n return this.appState.user.super_admin;\n }\n\n // ems settings\n get textMappingOperation() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingOperation');\n return {\n 0: lang.allOff,\n 1: lang.selfConsumption,\n 2: lang.peakLoadCapping,\n 3: lang.loadManagement,\n };\n }\n\n get textMappingMessage() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingMessage');\n return {\n 0: lang.disabled,\n 1: lang.enabled,\n 2: lang.allPrioritiesAtMinimum,\n 3: lang.allPrioritiesAtMaximum,\n 4: lang.missingPowerValuesOnDeviceSetup,\n 5: lang.tooManyFunctionsInThisProject,\n };\n }\n\n get dropDownOperation() {\n return {\n 'DropDown_targetValue': this.mappingsList.operation_mode,\n };\n }\n\n get dropDownMessage() {\n return {\n 'DropDown_targetValue': this.mappingsList.message,\n };\n }\n get hasBattery() {\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n const hasLynusInverter = this.project.meta.hasLynusInverter ?? true;\n // for new projects, check if there is a battery mapped in the EMS or if hasLynusInverter is true via the tenant model\n return hasLynusInverter === true || !!this.mappingsList.battery.components.battery1;\n } else {\n const batteryEnableValue = this.measurements['prgEnergy.fbI.bEnable'] ?? undefined;\n // for old projects, check if battery enable variable is set or if there is a battery mapped in the EMS\n return batteryEnableValue !== undefined || !!this.mappingsList.battery.components.battery1;\n }\n }\n get switch2VEnableBattery() {\n return {\n 'Switch2V_onOff': this.mappingsList.battery.components.battery1?.switch_enable ?? 'prgEnergy.fbI.bEnable',\n 'Switch2V_state': this.mappingsList.battery.components.battery1?.state_enable ?? 'prgEnergy.fbI.stDataBattInverter.bEnabled',\n };\n }\n\n get switch2VEnable() {\n return {\n 'Switch2V_onOff': this.mappingsList.enable_ems,\n 'Switch2V_state': this.mappingsList.state_enable_ems,\n };\n }\n\n get switch2VAllowChargingFromGrid() {\n return {\n 'Switch2V_onOff': this.mappingsList.allow_charging_button,\n 'Switch2V_state': this.mappingsList.allow_charging_state,\n };\n }\n\n get switch2VMainFuseMonitoring() {\n return {\n 'Switch2V_onOff': this.mappingsList.activate_main_fuse,\n 'Switch2V_state': this.mappingsList.state_main_fuse,\n };\n }\n\n get switch2VEnableRegelenergie() {\n return {\n 'Switch2V_onOff': this.mappingsList.enable_regelenergie,\n 'Switch2V_state': this.mappingsList.state_enable_regelenergie,\n };\n }\n\n get switch2VEnableControlDynamicTariff() {\n return {\n 'Switch2V_onOff': this.mappingsList.enable_control_dynamic_tariff,\n 'Switch2V_state': this.mappingsList.state_enable_control_dynamic_tariff,\n };\n }\n\n get outputFieldReserveForEmergency() {\n return {\n 'InputField_targetValue': this.mappingsList.reserve_battery,\n };\n }\n\n get outputFieldReserveChargingFromGrid() {\n return {\n 'InputField_targetValue': this.mappingsList.reserve_charge,\n };\n }\n\n get outputFieldUpdatingTime() {\n return {\n 'InputField_targetValue': this.mappingsList.update_time,\n };\n }\n\n get statusIndicatorControllingState() {\n return {\n 'ShowEventDot1_targetValue': this.mappingsList.enable_controlling,\n };\n }\n\n get switch2VNewBatteryPower() {\n return {\n 'OutputField_targetValue': this.mappingsList.calculated_battery_power,\n };\n }\n\n get sizeMainFuseList() {\n return Object.keys(this.mappingsList.size_main_fuse);\n }\n\n // size main fuse object\n get sizeMainFuse() {\n return this.mappingsList.size_main_fuse;\n }\n\n get outputFieldMaxDepth() {\n return {\n 'InputField_targetValue': this.mappingsList.max_depth,\n };\n }\n\n get hasElevatedPrivileges() {\n return this.isSuperAdmin && this.deviceData?.data?.type === 'EMSV2';\n }\n\n get wasAlreadyTransferred() {\n return this.deviceData?.data?.meta?.regie === true;\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralSettingsEMS.vue?vue&type=template&id=0c3f7679&scoped=true&\"\nimport script from \"./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralSettingsEMS.vue?vue&type=style&index=0&id=0c3f7679&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c3f7679\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"settings-ems-mode-wrapper\"},[_c('div',{staticClass:\"settings-mode-field\"},[_c('div',{staticClass:\"value\"},[_c('v-select',{attrs:{\"items\":_vm.emsSettingsModesItems,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"label\":_vm.$t('mlModel.EMS.settingsView.workMode'),\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled},model:{value:(_vm.tariffMode),callback:function ($$v) {_vm.tariffMode=$$v},expression:\"tariffMode\"}})],1)]),_c('div',{staticClass:\"tariff-section\"},[_c('div',{staticClass:\"tariff-title\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.electricTariff.title')))]),_c('div',{staticClass:\"d-flex mt-2\"},[_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.startLowTariff'),\"rules\":[_vm.rules.required, _vm.rules.fieldTimeInHHMM],\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\"},model:{value:(_vm.start_low),callback:function ($$v) {_vm.start_low=$$v},expression:\"start_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"value\":_vm.startHighTime,\"label\":_vm.$t('mlModel.EMS.electricTariff.startHighTariff'),\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\",\"readonly\":\"\"}})],1)]),_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.endLowTariff'),\"rules\":[_vm.rules.required, _vm.rules.fieldTimeInHHMM],\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\"},model:{value:(_vm.end_low),callback:function ($$v) {_vm.end_low=$$v},expression:\"end_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"value\":_vm.endHighTime,\"label\":_vm.$t('mlModel.EMS.electricTariff.endHighTariff'),\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\",\"readonly\":\"\"}})],1)]),_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.priceLowTariff', { count: 1 }),\"rules\":[_vm.rules.required],\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\"},model:{value:(_vm.price_low),callback:function ($$v) {_vm.price_low=_vm._n($$v)},expression:\"price_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.priceHighTariff', { count: 2 }),\"rules\":[_vm.rules.required],\"outlined\":\"\",\"color\":\"accent\",\"disabled\":_vm.modeSettingsDisabled,\"required\":\"\"},model:{value:(_vm.price_high),callback:function ($$v) {_vm.price_high=_vm._n($$v)},expression:\"price_high\"}})],1)])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('TimezoneChooser',{staticClass:\"flex-grow-0\",attrs:{\"currentValue\":_vm.timezone,\"disabled\":_vm.modeSettingsDisabled},on:{\"onChange\":_vm.onTimezoneChange}}),_c('v-btn',{staticClass:\"mb-2\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.tariffValidation || _vm.modeSettingsDisabled},on:{\"click\":_vm.handleTariffForm}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.updateTariff'))+\" \")])],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport TimezoneChooser from '@/ui/components/components/TimezoneChooser.vue';\nimport { Getter, Action } from 'vuex-class';\nimport { minutesToTime, timeToMinutes } from '@/utils/utilsFunctions';\nimport moment from 'moment';\nimport { CanAccessCheck } from '@/types/members.types';\n\n/**\n * Component that represent EMS settings view.\n * Contains navigation tabs. EMS settings and Mode settings.\n */\n@Component({\n components: {\n TimezoneChooser,\n },\n})\nexport default class SettingsEMS extends mixins(Validation) {\n @Prop({ default: null }) mpcData!: any; // data was loaded from mpc/fetchMPCData (loads full mpc instance data by id)\n @Prop({ default: null }) deviceData!: any; // data was loaded from mpc/fetchMPCListByProject (loads a list of mps but with incomplete data)\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n @Action('mpc/updateTariffSettings') updateTariffSettings!: any;\n\n tariffMode: null | number = null;\n\n start_low: any = null;\n end_low: any = null;\n price_low: any = null;\n price_high: any = null;\n timezone!: string;\n heatingPumpBuffer!: string;\n get modeSettingsDisabled() {\n return !this.canMemberAccess('Devices', 'BasicControls');\n }\n\n /**\n * Mode settings\n */\n get emsSettingsModesItems() {\n const lang: any = this.$t('mlModel.EMS.settingsView.tariffModes');\n return [\n { value: 0, name: lang.energyOptimized },\n { value: 1, name: lang.balancedOptimization },\n { value: 2, name: lang.tariffOptimized },\n { value: 3, name: lang.disabledMode },\n ];\n }\n\n get startLowMinutes() {\n const reg = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(this.start_low);\n return reg ? timeToMinutes(this.start_low) : null;\n }\n get endLowMinutes() {\n const reg = /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(this.end_low);\n return reg ? timeToMinutes(this.end_low) : null;\n }\n get startHighMinutes() {\n if (typeof this.endLowMinutes !== 'number') return null;\n return this.endLowMinutes === 1439 ? 0 : this.endLowMinutes + 1;\n }\n get endHighMinutes() {\n if (typeof this.startLowMinutes !== 'number') return null;\n return this.startLowMinutes === 0 ? 1439 : this.startLowMinutes - 1;\n }\n\n get startHighTime() {\n if (typeof this.startHighMinutes !== 'number') return null;\n return minutesToTime(this.startHighMinutes);\n }\n get endHighTime() {\n if (typeof this.endHighMinutes !== 'number') return null;\n return minutesToTime(this.endHighMinutes);\n }\n\n /**\n * Tariff validation\n * @return {boolean} validation status\n */\n get tariffValidation() {\n const priceLow = typeof this.price_low === 'number';\n const priceHigh = typeof this.price_high === 'number';\n return (\n typeof this.startLowMinutes === 'number' &&\n typeof this.endLowMinutes === 'number' &&\n priceLow &&\n priceHigh\n );\n }\n\n onTimezoneChange(timezone: string) {\n this.timezone = timezone;\n }\n\n /**\n * Init tariff form fields.\n */\n initTariffForm() {\n this.tariffMode = this.deviceData.data.meta?.settings?.mode;\n this.start_low =\n typeof this.deviceData.data.meta?.settings?.energyPrice?.start_low === 'number'\n ? minutesToTime(this.deviceData.data.meta?.settings?.energyPrice?.start_low)\n : null;\n this.end_low =\n typeof this.deviceData.data.meta?.settings?.energyPrice?.end_low === 'number'\n ? minutesToTime(this.deviceData.data.meta?.settings?.energyPrice?.end_low)\n : null;\n this.price_low = this.deviceData.data.meta?.settings?.energyPrice?.price_low;\n this.price_high = this.deviceData.data.meta?.settings?.energyPrice?.price_high;\n\n this.timezone = this.deviceData.data.meta?.settings?.energyPrice?.timezone ?? moment.tz.guess();\n this.heatingPumpBuffer =\n this.deviceData.data.meta?.settings?.energyPrice?.heating_pump_buffer ?? {};\n }\n\n /**\n * Update tariff.\n */\n async handleTariffForm() {\n const converted = {\n start_low: this.startLowMinutes,\n end_low: this.endLowMinutes,\n start_high: this.startHighMinutes,\n end_high: this.endHighMinutes,\n price_low: this.price_low,\n price_high: this.price_high,\n timezone: this.timezone,\n heating_pump_buffer: this.heatingPumpBuffer,\n };\n\n const newTariff = {\n mode: this.tariffMode,\n energyPrice: { ...converted },\n };\n await this.updateTariffSettings({ mpc_id: this.mpcData.id, settings: newTariff });\n }\n\n created() {\n this.initTariffForm();\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModeSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ModeSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModeSettings.vue?vue&type=template&id=c0628ec8&scoped=true&\"\nimport script from \"./ModeSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModeSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ModeSettings.vue?vue&type=style&index=0&id=c0628ec8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c0628ec8\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport GeneralSettingsEMS from '@/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue';\nimport ModeSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/settings/ModeSettings.vue';\n\n/**\n * Component that represent EMS settings view.\n * Contains navigation tabs. EMS settings and Mode settings.\n */\n@Component({\n components: {\n ModeSettings,\n GeneralSettingsEMS,\n },\n})\nexport default class SettingsEMS extends mixins(Validation) {\n @Prop({ default: null }) mpcData!: any; // data was loaded from mpc/fetchMPCData (loads full mpc instance data by id)\n @Prop({ default: null }) deviceData!: any; // data was loaded from mpc/fetchMPCListByProject (loads a list of mps but with incomplete data)\n tab = null;\n\n get tabs() {\n return [\n {\n title: this.$t('mlModel.EMS.settingsView.tabs.emsSettings'),\n },\n {\n title: this.$t('mlModel.EMS.settingsView.tabs.modeSettings'),\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsEMS.vue?vue&type=template&id=15c46062&\"\nimport script from \"./SettingsEMS.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsEMS.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsEMS.vue?vue&type=style&index=0&id=15c46062&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ActualView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue';\nimport ForecastView from '@/ui/components/devices/components/EnergyParts/EMS/components/ForecastView.vue';\nimport EnergyFlowView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport EMSCharts from '@/ui/components/devices/mpc/EMS/components/charts/index.vue';\nimport SettingsEMS from '@/ui/components/devices/mpc/EMS/components/SettingsEMS.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { getSystems } from '@/utils/mpcUtils';\n\n/**\n * Component that represent EMS\n */\n@Component({\n components: {\n EnergyFlowView,\n DeviceActions,\n SettingsView,\n ActualView,\n ForecastView,\n ShowEventDotBase,\n TimeSlider,\n ShowEventBase,\n EMSCharts,\n SettingsEMS,\n CircleSpinner,\n MPCLayout,\n },\n})\nexport default class EMS extends Vue {\n @Prop() deviceData!: any;\n @State('mpc') mpcState!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n tab = null\n tabsTimer: any = null\n\n mpc: any = null\n groupSlider = 0\n\n isSettingsView = false\n energyFlowViewLoading = true;\n\n /**\n * Gets all systems from EMS controllerMappings\n * @return {object|null} collection of systems\n */\n get allSystems() {\n if (this.mpc?.data?.meta?.controllerMappings) {\n const {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n } = this.mpc.data.meta.controllerMappings;\n return {\n pv,\n generator,\n battery,\n grid,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n };\n } else {\n return null;\n }\n }\n\n get prediction() {\n if (this.mpc?.data?.meta?.charts?.prediction) return this.mpc.data.meta.charts.prediction;\n else return null;\n }\n\n get predictedPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_power');\n } else return null;\n }\n\n get predictedTargetPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_target_power');\n } else return null;\n }\n\n get predictedEnergy() {\n if (this.prediction) {\n return getSystems(this.prediction, '_energy');\n } else return null;\n }\n\n get predictedSOC() {\n if (this.prediction) {\n return getSystems(this.prediction, '_soc');\n } else return null;\n }\n\n get emsScaling() {\n return this.mpc?.data?.meta?.scaling;\n }\n\n /**\n * Gets timestamps from EMS predictedPower\n * @return {array} list of timestamps\n */\n get timeSliderInitArray() {\n if (this.prediction) {\n return Object.values(Object.values(this.prediction)[0] as any)[0];\n }\n return [];\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.deviceData.id) return this.deviceData.id.replace(/-/g, '_');\n return null;\n }\n\n get showEventDotServiceReady() {\n return {\n 'ShowEventDot_errorWarningState': this.mpc.data.meta.controllerMappings.mpcReady,\n };\n }\n\n get showEventGeneralErrorWarning() {\n return {\n 'ShowEvent_errorWarningState': this.mpc?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n\n /**\n * Calculate coords for forecast, energy systems after 500ms of switched tab\n * @param {string} el element reference name\n */\n async handleTab(el: string) {\n this.energyFlowViewLoading = true;\n clearTimeout(this.tabsTimer);\n this.tabsTimer = setTimeout(() => {\n (this.$refs[el] as any)?.handleGetCoords();\n (this.$refs.actual_view as any)?.handleGetCoords();\n }, 500);\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n handleLoading(payload: any) {\n this.energyFlowViewLoading = payload;\n }\n\n async rerenderDevice() {\n this.mpc = null;\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n\n async created() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=55b7449a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.deviceData,\"show-event-variable\":_vm.showEventGeneralErrorWarning,\"is-charts\":true,\"show-event\":false,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},on:{\"toggleLoading\":_vm.toggleLoading},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex fill-height pt-10 flex-column flex-lg-row pb-4 pb-lg-0\"},[(_vm.allSystems && _vm.loaded)?[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('ActualView',{staticClass:\"actual_view mt-15\",attrs:{\"isHybridSystem\":_vm.isHybridSystem,\"all-systems-data\":_vm.allSystems,\"device-data\":_vm.deviceData}})],1),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView')))]),_c('EnergyFlowView',{attrs:{\"displayEnergyFlowHouseInfo\":_vm.displayEnergyFlowHouseInfo,\"device-data\":_vm.deviceData}})],1)]:_c('div',{staticClass:\"d-flex align-center justify-center fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":60}})],1)],2)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts',{attrs:{\"mpc-data\":_vm.deviceData,\"mpc-id\":_vm.mpcIdMod,\"scaling\":_vm.emsScaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC,\"isHybridSystem\":_vm.isHybridSystem}})]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('SettingsEMS',{attrs:{\"mpc-data\":_vm.deviceData}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"settingsWrapper\",staticClass:\"ems-settings\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\",attrs:{\"is-mpc\":false,\"mpc-id\":_vm.mpcId,\"scaling\":_vm.scaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"shownSystems\":_vm.shownSystemsSingleSystemsChart,\"showHouseConsumptionAlways\":item.showHouseConsumption,\"numberOfSeriesPerChart\":_vm.getNumberOfSeriesPerChart(item),\"showScores\":item.showScores,\"device-data\":_vm.mpcData,\"isHybridSystem\":_vm.isHybridSystem,\"systemsVars\":item.systemsVars,\"defaultAggregation\":item.defaultAggregation,\"showColumnChart\":item.showColumnChart,\"navItemsToExclude\":item.navItemsToExclude}}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SelfConsumption\n from '@/ui/components/devices/mpc/components/chartsWindow/SelfConsumption/index.vue';\nimport SingleSystemsView\n from '@/ui/components/devices/components/EnergyParts/EnergyView/components/charts/SingleSystemsView.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport { State } from 'vuex-class';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in EMS.\n */\n@Component({\n components: {\n SelfConsumption,\n SingleSystemsView,\n },\n})\nexport default class EMSCharts extends Vue {\n @Prop({ default: null }) mpcData!: any;\n @Prop({ default: null }) prediction!: any;\n @Prop({ default: null }) predictedPower!: any;\n @Prop({ default: null }) predictedTargetPower!: any;\n @Prop({ default: null }) predictedEnergy!: any;\n @Prop({ default: null }) predictedSOC!: any;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n @Prop({ default: false }) isHybridSystem!: boolean;\n\n @State('app') appState!: IAppState;\n\n tab = null\n settingsWrapperHeight = 0;\n shownSystemsSingleSystemsChart: string[] = [\n 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer', 'pv',\n 'generator', 'grid', 'battery', 'house', 'chp',\n ];\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n mounted() {\n this.$nextTick(() => {\n const settingsWrapperElement = (this.$refs.settingsWrapper as any);\n // change height of settingsWrapper for hybrid systems because we need to calculate in space for a info tooltip\n this.settingsWrapperHeight = !this.isHybridSystem ? settingsWrapperElement.clientHeight * 0.7 : (settingsWrapperElement.clientHeight * 0.7) - 40;\n });\n }\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.title'),\n view: 'SelfConsumption',\n showHouseConsumption: true,\n showScores: true,\n },\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleSystemsView',\n showHouseConsumption: false,\n showScores: false,\n showColumnChart: true,\n systemsVars: {\n charge_station: ['energy_counter'],\n electric_heating: ['energy_counter'],\n heating_pump: ['energy_counter'],\n big_consumer: ['energy_counter'],\n pv: ['energy_counter'],\n chp: ['energy_counter'],\n generator: ['energy_counter'],\n grid: ['energy_counter', 'reverse_energy_counter'],\n battery: ['energy_counter', 'reverse_energy_counter'],\n house: ['energy_counter'],\n },\n defaultAggregation: 'diff',\n navItemsToExclude: ['live', 'hour', 'day'],\n },\n ];\n }\n\n getNumberOfSeriesPerChart(item: Record) {\n return item?.numberOfSeriesPerChart;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44e2ed95&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44e2ed95&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"settings-ems\"},[_c('GeneralSettingsEMS',{attrs:{\"showMpcBatteryPowerLimit\":false,\"showPlcControllingState\":false,\"device-data\":_vm.mpcData}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport StatusIconBase from '@/ui/components/devices/devices/base/StatusIconBase.vue';\nimport { Action, Getter } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport TimezoneChooser from '@/ui/components/components/TimezoneChooser.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport GeneralSettingsEMS from '@/ui/components/devices/components/EnergyParts/EMS/components/settings/GeneralSettingsEMS.vue';\n\n/**\n * Component that represent EMS settings view.\n * Contains navigation tabs. EMS settings and Mode settings.\n */\n@Component({\n components: {\n GeneralSettingsEMS,\n ShowEventDotBase,\n InputFieldBase,\n OutputFieldBase,\n DropDownBase,\n Switch2VBase,\n TimezoneChooser,\n LabelUnitWrapper,\n StatusIconBase,\n },\n})\nexport default class SettingsEMS extends mixins(Validation) {\n @Prop({ default: null }) mpcData!: any; // data was loaded from mpc/fetchMPCData (loads full mpc instance data by id)\n get mappingsList(): any {\n return this.mpcData?.data?.meta?.controllerMappings;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsEMS.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsEMS.vue?vue&type=template&id=7aa7169a&\"\nimport script from \"./SettingsEMS.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsEMS.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsEMS.vue?vue&type=style&index=0&id=7aa7169a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ActualView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue';\nimport EnergyFlowView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyFlowView/index.vue';\nimport EMSCharts from '@/ui/components/devices/devices/EMS/components/charts/index.vue';\nimport SettingsEMS from '@/ui/components/devices/devices/EMS/components/SettingsEMS.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { getSystems, isHybridEnergyDeviceSystem } from '@/utils/mpcUtils';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\n\n/**\n * Component that represent EMS\n */\n@Component({\n components: {\n EnergyFlowView,\n DeviceActions,\n SettingsView,\n ActualView,\n EMSCharts,\n SettingsEMS,\n CircleSpinner,\n MPCLayout,\n },\n})\nexport default class EMSV2 extends Vue {\n @Prop() deviceData!: any;\n @Getter('projects/project') project!: IProject;\n\n isSettingsView = false\n loaded = true;\n\n /**\n * Gets all systems from EMS controllerMappings\n * @return {object|null} collection of systems\n */\n get allSystems() {\n if (this.deviceData?.data?.meta?.controllerMappings) {\n const {\n pv,\n generator,\n grid,\n battery,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n } = this.deviceData.data.meta.controllerMappings;\n return {\n pv,\n generator,\n battery,\n grid,\n house,\n charge_station,\n electric_heating,\n heating_pump,\n big_consumer,\n };\n } else {\n return null;\n }\n }\n\n get prediction() {\n if (this.deviceData?.data?.meta?.charts?.prediction) return this.deviceData.data.meta.charts.prediction;\n else return null;\n }\n\n get predictedPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_power');\n } else return null;\n }\n\n get predictedTargetPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_target_power');\n } else return null;\n }\n\n get predictedEnergy() {\n if (this.prediction) {\n return getSystems(this.prediction, '_energy');\n } else return null;\n }\n\n get predictedSOC() {\n if (this.prediction) {\n return getSystems(this.prediction, '_soc');\n } else return null;\n }\n\n get emsScaling() {\n return this.deviceData?.data?.meta?.scaling;\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.deviceData.id) return this.deviceData.id.replace(/-/g, '_');\n return null;\n }\n\n get showEventGeneralErrorWarning() {\n return {\n 'ShowEvent_errorWarningState': this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n\n /**\n * Checks if a system is a combination of the Lynus and Solarman Logger System\n */\n get isHybridSystem() {\n return isHybridEnergyDeviceSystem(this.deviceData, this.project);\n }\n\n get displayEnergyFlowHouseInfo() {\n const houseCount = this.deviceData.data.meta.controllerMappings.house.count ?? 0;\n return this.project.meta.wasTenantWizardCompleted === true && this.project.meta.hasLynusInverter === true && houseCount > 1;\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async toggleLoading(status: boolean) {\n this.loaded = !status;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=30e0d1f0&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"general_switch\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-end\",staticStyle:{\"width\":\"100%\"}},[_c('Switch2VBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2V\"}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent GeneralSwitchV2 device\n */\n@Component({\n components: {\n ShowEventBase,\n Switch2VBase,\n DeviceLayout,\n },\n})\nexport default class GeneralSwitchV2 extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralSwitchV2.vue?vue&type=template&id=8130f79e&scoped=true&\"\nimport script from \"./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralSwitchV2.vue?vue&type=style&index=0&id=8130f79e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8130f79e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"show-event-variable\":{},\"is-charts\":true,\"device-icon\":\"solar_panel\",\"device-size\":\"x2h\",\"settings-modal-width\":\"700\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-monitoring-service\"},[_c('div',{staticClass:\"pv-monitoring-service-gauge-wrapper\"},[_c('MonitoringGauge',{attrs:{\"input-variable\":_vm.gaugeVariable,\"deviceData\":_vm.deviceData,\"dnd-grid-container-width\":_vm.dndGridLayoutContainerWidth,\"re-render-key\":_vm.reRenderKey}})],1),_c('div',{staticClass:\"pv-monitoring-service-actual\"},[_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.pvPower'))+\":\")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.powerActualValue))]),_c('span',[_vm._v(\"kW\")])]),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.efficiency'))+\":\")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(_vm.efficiencyActualValue))]),_c('span',[_vm._v(\"%\")])]),_c('div',{staticClass:\"pv-monitoring-service-ready d-flex align-center justify-center pt-2\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.readyMqtt,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.mainView.service')))])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.inputFieldEfficiency,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"step\":0.1,\"min\":0,\"max\":100,\"description-styles\":{ width: '200px', marginTop: '7px' },\"input-field-styles\":{ width: '300px' },\"unit-styles\":{ flexGrow: '1', marginTop: '5px' }},on:{\"send\":function($event){return _vm.$emit('publish', $event)}},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.PVMonitoringService.settingsView.pvEfficiencyDecay')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('BaseChartWrapper',_vm._b({},'BaseChartWrapper',{ ..._vm.chartData },false))]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"chartDiv\",staticClass:\"gauge\",attrs:{\"id\":\"chartDiv\"}},[_c('VueGauge',{key:_vm.chartKey,staticStyle:{\"margin\":\"auto 0\"},attrs:{\"refid\":`gauge${_vm.deviceData.id}`,\"options\":_vm.options}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { throttle } from 'lodash';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { State } from 'vuex-class';\n\n/**\n * Component that represent gauge chart for PVMonitoringService.\n */\n@Component\nexport default class MonitoringGauge extends Vue {\n @Prop() deviceData!: any;\n @Prop() inputVariable!: any;\n @Prop({ default: null }) dndGridContainerWidth!: any;\n @Prop({ default: null }) reRenderKey!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n chartKey = 1;\n\n options: any = {\n arcLabels: ['25%', '50%', '75%'],\n needleValue: null,\n needleColor: 'black',\n needleStartValue: 0,\n hasNeedle: true,\n rangeLabel: ['0', '100'],\n arcDelimiters: [25, 50, 75],\n chartWidth: null,\n arcColors: [],\n needleUpdateSpeed: 0,\n }\n\n @Watch('actualValue')\n onActualValueChange(val: any) {\n this.setNeedleValue(val);\n this.chartKey += 1;\n }\n\n @Watch('reRenderKey')\n async onReRenderKeyChange(val: any) {\n await this.$nextTick();\n this.resizeChart();\n }\n\n get actualValue() {\n return this.measurements.get(this.inputVariable);\n }\n\n setOptions(optionsConfig: any) {\n const copy: any = JSON.parse(JSON.stringify(optionsConfig));\n this.options = { ...this.options, ...copy };\n }\n setNeedleValue(value: any) {\n this.options.needleValue = typeof value !== 'number' ? null : value;\n }\n\n async mounted() {\n await this.$nextTick();\n\n this.resizeChart();\n this.setOptions({\n needleValue: null,\n arcColors: [`${this.$vuetify.theme.currentTheme.error}`, `${this.$vuetify.theme.currentTheme.error}`, '#FF9800', '#30BF54'],\n });\n this.setNeedleValue(this.actualValue);\n window.addEventListener('resize', this.resizeChartThrottle);\n this.chartKey += 1;\n\n // load gauge width according to screen size\n if (!this.$vuetify.breakpoint.mobile) {\n const initWidth: number = +(this.dndGridContainerWidth / 4 - 60);\n const width: number = initWidth > 320 ? 320 : initWidth;\n this.setOptions({ chartWidth: width });\n }\n }\n\n /**\n * Updates gauge width according to screen size\n */\n resizeChart() {\n const element: any = this.$refs?.chartDiv;\n const isElementWidth: boolean = typeof element?.clientWidth === 'number' && element?.clientWidth < 320;\n const width = isElementWidth ? element.clientWidth : 320;\n this.setOptions({ chartWidth: width });\n\n this.chartKey += 1;\n }\n\n /**\n * Throttle wrapper for better performance\n */\n resizeChartThrottle = throttle(this.resizeChart, 200)\n\n destroyed() {\n window.removeEventListener('resize', this.resizeChartThrottle);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitoringGauge.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitoringGauge.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonitoringGauge.vue?vue&type=template&id=70156b0a&scoped=true&\"\nimport script from \"./MonitoringGauge.vue?vue&type=script&lang=ts&\"\nexport * from \"./MonitoringGauge.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MonitoringGauge.vue?vue&type=style&index=0&id=70156b0a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70156b0a\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport MonitoringGauge from '@/ui/components/devices/mpc/PVMonitoringService/MonitoringGauge.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IVariablesState } from '@/store/modules/measurements/types';\n\n/**\n * Component that represent PVMonitoringService MPC device\n */\n@Component({\n components: {\n MonitoringGauge,\n ShowEventDotBase,\n InputFieldBase,\n BaseChartWrapper,\n MPCLayout,\n },\n})\nexport default class PVMonitoringService extends mixins(Validation) {\n @Prop() deviceData!: any;\n @Prop() dndGridLayoutContainerWidth!: number;\n @State('measurements') measurementsState!: IVariablesState;\n @Action('mpc/fetchMPCData') fetchMPCData!: (mpcId: string) => any;\n\n mpc: any = null;\n reRenderKey = 0;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get ready() {\n return this.deviceData?.data?.meta?.controllerMappings?.mpcReady;\n }\n get power() {\n return this.deviceData?.data?.meta?.controllerMappings?.power;\n }\n get deviceIdUnderline() {\n const deviceId = this.deviceData.id;\n return deviceId.replace(/-/g, '_');\n }\n get gaugeVariable() {\n return `PV.${this.deviceIdUnderline}.efficiency`;\n }\n get settingsVariable() {\n return `PV.${this.deviceIdUnderline}.decay`;\n }\n get inputFieldEfficiency() {\n return {\n 'InputField_targetValue': this.settingsVariable,\n };\n }\n\n get efficiencyActualValue() {\n return this.measurements.get(this.gaugeVariable);\n }\n get powerActualValue() {\n const val: any = this.measurements.get(this.power);\n return typeof val === 'number' ? val.toFixed(2) : null;\n }\n\n /**\n * Prepares chart options object suitable for the chart component\n */\n get chartData() {\n return {\n chartTitle: '',\n chartWidth: null,\n chartHeight: 550,\n chartWrapperHeight: 700,\n chartData: {\n name: '',\n data: {\n chartOptions: [\n {\n agg: 'avg',\n name: 'Efficiency',\n scaling: {\n min: 0,\n max: 100,\n },\n seriesType: 'View',\n type: 'line',\n unit: '%',\n var: this.gaugeVariable,\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour', 'day'],\n };\n }\n\n get readyMqtt() {\n return {\n ShowEventDot1_errorWarningState: this.ready,\n };\n }\n\n updated() {\n this.$nextTick(() => {\n this.reRenderKey++;\n });\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=77e65c3c&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=77e65c3c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center light-dimmer\"},[_c('div',{staticClass:\"slider d-flex align-center\"},[_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":_vm.isActive,\"state\":_vm.sliderActualValue,\"append-icon\":\"icon-light-switch_on\",\"prepend-icon\":\"icon-light-switch_off\"}})],1),_c('div',{staticClass:\"switch\"},[_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-switch',{staticClass:\"basic-control-switch\",attrs:{\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\",\"input-value\":_vm.state,\"disabled\":_vm.isDisabled},nativeOn:{\"!click\":function($event){return _vm.handleState($event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl, { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\nimport { mixins } from 'vue-class-component';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\n/**\n * Component that represent Switch Basic Control\n */\n@Component({\n components: {\n FeedbackProvider,\n },\n})\nexport default class SwitchBase extends mixins(BasicControl) {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: defaultFeedbackTimeoutMilliSeconds }) feedBackTimeout!: number;\n\n timer?: NodeJS.Timeout;\n localState?: boolean;\n\n @Watch('state')\n onChange(val: boolean) {\n clearTimeout(this.timer);\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.off === ''\n || this.mappingsClean.on === ''\n || this.mappingsClean.state === '';\n }\n\n /**\n * Returns state status according to variables values\n * @return {boolean} state status\n */\n get state() {\n if (this.mappingsClean.off === '' && this.mappingsClean.on === '' && this.mappingsClean.state === '') {\n return false;\n }\n if (this.mappingsClean) {\n return this.measurements.get(this.mappingsClean.state) === 1;\n }\n\n return false;\n }\n\n @Watch('state')\n onStateChange(val: boolean) {\n if (this.sendingState === SendingState.Sending && this.localState === val) {\n this.onSendSuccess();\n clearTimeout(this.timer);\n }\n }\n\n /**\n * If the current status is the same as the previous status launches fn1 then fn2\n * @param {boolean} snapshot state status snapshot\n * @param {function} fn1 switchOn or switchOff functions\n * @param {function} fn2 switchOn or switchOff functions\n */\n timeoutFn(fn1: any, fn2: any) {\n return setTimeout(() => {\n fn1();\n fn2();\n this.onSendError();\n }, this.feedBackTimeout);\n }\n\n switchOn() {\n this.send([{ v: 1, n: this.mappingsClean.on, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.on, u: '' }]);\n }\n\n switchOff() {\n this.send([{ v: 1, n: this.mappingsClean.off, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.off, u: '' }]);\n }\n\n handleState(event: MouseEvent) {\n // https://stackoverflow.com/q/51000149\n event.stopPropagation();\n event.preventDefault();\n\n // new desired local state is the opposite of the current state\n this.localState = !this.state;\n this.onSendStart();\n if (this.state) {\n this.switchOff();\n this.timer = this.timeoutFn(this.switchOn, this.switchOff);\n } else {\n this.switchOn();\n this.timer = this.timeoutFn(this.switchOn, this.switchOff);\n }\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SwitchBase.vue?vue&type=template&id=25f5924c&\"\nimport script from \"./SwitchBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./SwitchBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SwitchBase.vue?vue&type=style&index=0&id=25f5924c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\n\n/**\n * Component that represent LightDimmer device\n */\n@Component({\n components: {\n SliderBase,\n SwitchBase,\n OutputFieldBase,\n DeviceLayout,\n },\n})\nexport default class LightDimmer extends Vue {\n @Prop() deviceData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get isActive() {\n return !!this.measurements.get(this.deviceData.data.mappings.Switch_state);\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightDimmer.vue?vue&type=template&id=6ff56f28&\"\nimport script from \"./LightDimmer.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightDimmer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightDimmer.vue?vue&type=style&index=0&id=6ff56f28&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-switch\"},[_c('lynus-icon',{attrs:{\"name\":\"light-bulb\",\"size\":\"35\",\"color\":\"theme\"}}),_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent LightSwitch device\n */\n@Component({\n components: {\n SwitchBase,\n DeviceActions,\n DeviceLayout,\n },\n})\nexport default class LightSwitch extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightSwitch.vue?vue&type=template&id=3506230a&scoped=true&\"\nimport script from \"./LightSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightSwitch.vue?vue&type=style&index=0&id=3506230a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3506230a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"temperature\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"temperature-sensor\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":-100,\"max\":1500,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Temperature device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class Temperature extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Temperature.vue?vue&type=template&id=507ff9dd&scoped=true&\"\nimport script from \"./Temperature.vue?vue&type=script&lang=ts&\"\nexport * from \"./Temperature.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Temperature.vue?vue&type=style&index=0&id=507ff9dd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"507ff9dd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('InputFieldBase',{staticClass:\"pt-3\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField\",\"field-rules\":[_vm.rules.required, _vm.rules.twoCommas],\"is-decimal\":true,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ paddingTop: '3px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_c('div',{class:['unit', { 'px-2': _vm.unit.length }]},[_vm._v(\" \"+_vm._s(_vm.unit)+\" \")])]},proxy:true}])})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent VariableInputField device\n */\n@Component({\n components: {\n InputFieldBase,\n DeviceLayout,\n },\n})\nexport default class VariableInputField extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get unit() {\n return this.deviceData.data.meta?.unit ? this.deviceData.data.meta.unit : '';\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableInputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableInputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableInputField.vue?vue&type=template&id=8dc29c18&scoped=true&\"\nimport script from \"./VariableInputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableInputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableInputField.vue?vue&type=style&index=0&id=8dc29c18&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8dc29c18\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex variable-output-field\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.unit))])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent VariableOutputField device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class VariableOutputField extends Vue {\n @Prop() deviceData!: IDevice;\n\n get unit() {\n return this.deviceData.data.meta && this.deviceData.data.meta.unit ? this.deviceData.data.meta.unit : '';\n }\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableOutputField.vue?vue&type=template&id=75271fc4&scoped=true&\"\nimport script from \"./VariableOutputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableOutputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableOutputField.vue?vue&type=style&index=0&id=75271fc4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75271fc4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"variable-text-input-field\"},[_c('InputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputFieldText\",\"min\":0,\"max\":30,\"field-rules\":[_vm.rules.required]}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldTextBase from '@/ui/components/devices/devices/base/InputFieldTextBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent VariableTextInputField device\n */\n@Component({\n components: {\n InputFieldTextBase,\n DeviceLayout,\n },\n})\nexport default class VariableTextInputField extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextInputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextInputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableTextInputField.vue?vue&type=template&id=e934bec4&scoped=true&\"\nimport script from \"./VariableTextInputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableTextInputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableTextInputField.vue?vue&type=style&index=0&id=e934bec4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e934bec4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [(_vm.deviceData.data.meta.cover)?_c('img',{style:(_vm.iconTheme()),attrs:{\"src\":`https://static.lynus.io/icons/${_vm.deviceData.data.meta.cover}.svg`,\"alt\":\"icon\",\"width\":\"30\",\"height\":\"30\"}}):_vm._e()]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('OutputFieldTextBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputFieldText\",\"min\":0,\"max\":30}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldTextBase from '@/ui/components/devices/devices/base/OutputFieldTextBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent VariableTextOutputField device\n */\n@Component({\n components: {\n OutputFieldTextBase,\n DeviceLayout,\n },\n})\nexport default class VariableTextOutputField extends Vue {\n @Prop() deviceData!: IDevice;\n\n get unit() {\n return this.deviceData.data.meta && this.deviceData.data.meta.unit ? this.deviceData.data.meta.unit : '';\n }\n\n iconTheme() {\n return { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null };\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableTextOutputField.vue?vue&type=template&id=293e2a6c&scoped=true&\"\nimport script from \"./VariableTextOutputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableTextOutputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableTextOutputField.vue?vue&type=style&index=0&id=293e2a6c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"293e2a6c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-rgb d-flex\"},[_c('div',{staticClass:\"rgb\"},[_c('div',{staticClass:\"previews-wrapper\"},[_c('div',{staticClass:\"color-preview\"},[_c('div',{staticClass:\"rgb-color-preview\"}),_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\"}})],1),_c('div',{staticClass:\"color-preview\"},[_c('div',{staticClass:\"rgb-color-preview\"}),_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\"}})],1),_c('div',{staticClass:\"color-preview\"},[_c('div',{staticClass:\"rgb-color-preview\"}),_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\"}})],1)]),_c('div',{staticClass:\"slider\"},[_c('SliderRGBBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"SliderRGB\",\"is-active\":_vm.isActive,\"state\":_vm.sliderRGBActualValue}})],1)]),_c('div',{staticClass:\"switch\"},[_c('SwitchBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"light-rgb-settings\"},[_c('div',{staticClass:\"advanced-rgb\"},[_c('SliderRGBCanvas',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"SliderRGB\",\"is-active\":_vm.isActive,\"state\":_vm.sliderRGBActualValue}})],1),_c('div',{staticClass:\"pt-4\"},[_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.LightRGB.settingsView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticStyle:{\"width\":\"90%\"}},[_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":_vm.isActive,\"state\":_vm.sliderActualValue,\"append-icon\":\"icon-light-switch_on\",\"prepend-icon\":\"icon-light-switch_off\"}})],1)])])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-color-picker',{staticClass:\"rgb-base ma-0\",attrs:{\"value\":_vm.sliderValue,\"dot-size\":\"25\",\"swatches-max-height\":\"200\",\"hide-canvas\":\"\",\"hide-mode-switch\":\"\",\"hide-inputs\":\"\",\"width\":\"100%\",\"disabled\":_vm.isDisabled},on:{\"input\":_vm.handleState}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent SliderRGB Basic Control\n */\n@Component\nexport default class SliderRGBBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() isActive?: boolean;\n @Prop() state!: any;\n\n timer2: any\n valueChangingTimer: any\n\n sliderValue: any = {\n r: 255,\n g: 0,\n b: 0,\n }\n sliderValuesStorage: any = []\n sendingValues: any = []\n isSliderValueChanging = false\n isSliderValueChangingWithTimeout = false\n\n @Watch('isActive')\n onDimmerOff(val: boolean) {\n if (val) {\n this.sliderValue = this.state;\n }\n if (!val) {\n clearInterval(this.valueChangingTimer);\n this.isSliderValueChangingWithTimeout = false;\n this.sliderValue = { r: 255, g: 0, b: 0 };\n }\n }\n @Watch('state', { deep: true })\n onStateChange(val: any) {\n const isNull = JSON.stringify(val) === '{\"r\":0,\"g\":0,\"b\":0}' || JSON.stringify(val) === '{\"r\":255,\"g\":255,\"b\":255}';\n if (!this.isSliderValueChangingWithTimeout && isNull) {\n this.sliderValue = { r: 255, g: 0, b: 0 };\n }\n if (!this.isSliderValueChangingWithTimeout && !isNull) {\n this.sliderValue = val;\n }\n }\n @Watch('isSliderValueChangingWithTimeout')\n onSliderValueChangingWithTimeout(val: boolean) {\n if (!val) this.sliderValue = this.state;\n }\n @Watch('isSliderValueChanging')\n onSliderValueChanging(val: boolean) {\n if (val) {\n clearInterval(this.valueChangingTimer);\n this.timer2 = setInterval(() => {\n const snapshot = JSON.stringify(this.sliderValue);\n this.sendingValues.push(snapshot);\n this.send([{ v: this.sliderValue.b, n: this.mappingsClean.targetValue_blue, u: '' }]);\n this.send([{ v: this.sliderValue.g, n: this.mappingsClean.targetValue_green, u: '' }]);\n this.send([{ v: this.sliderValue.r, n: this.mappingsClean.targetValue_red, u: '' }]);\n\n if (this.sliderValuesStorage[this.sliderValuesStorage.length - 1] === this.sendingValues[this.sendingValues.length - 1]) {\n this.isSliderValueChanging = false;\n this.sendingValues = [];\n this.sliderValuesStorage = [];\n }\n }, 350);\n }\n if (!val) {\n clearInterval(this.timer2);\n this.valueChangingTimer = setTimeout(() => {\n this.isSliderValueChangingWithTimeout = false;\n }, 10000);\n }\n }\n\n handleState(value: any) {\n this.sliderValue = value;\n this.sliderValuesStorage.push(JSON.stringify(this.sliderValue));\n // clearInterval(this.valueChangingTimer);\n if (JSON.stringify(this.state) !== JSON.stringify(this.sliderValue)) {\n this.isSliderValueChanging = true;\n this.isSliderValueChangingWithTimeout = true;\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.targetValue_blue === ''\n || this.mappingsClean.targetValue_green === ''\n || this.mappingsClean.targetValue_red === ''\n || this.state === undefined;\n }\n\n created() {\n this.sliderValue = this.state;\n this.isSliderValueChanging = false;\n this.isSliderValueChangingWithTimeout = false;\n }\n\n beforeDestroy() {\n clearInterval(this.timer2);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SliderRGBBase.vue?vue&type=template&id=2918e8ce&\"\nimport script from \"./SliderRGBBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./SliderRGBBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SliderRGBBase.vue?vue&type=style&index=0&id=2918e8ce&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"slider-rgb-canvas\"},[_c('v-color-picker',{attrs:{\"value\":_vm.sliderValue,\"flat\":\"\",\"hide-inputs\":\"\",\"hide-mode-switch\":\"\",\"disabled\":_vm.isDisabled},on:{\"input\":_vm.handleState}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n@Component\nexport default class SliderRGBCanvas extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() isActive?: boolean;\n @Prop() state!: any;\n\n timer2: any\n valueChangingTimer: any\n\n sliderValue: any = {\n r: 255,\n g: 0,\n b: 0,\n }\n sliderValuesStorage: any = []\n sendingValues: any = []\n isSliderValueChanging = false\n isSliderValueChangingWithTimeout = false\n\n @Watch('isActive')\n onDimmerOff(val: boolean) {\n if (val) {\n this.sliderValue = this.state;\n }\n if (!val) {\n clearInterval(this.valueChangingTimer);\n this.isSliderValueChangingWithTimeout = false;\n this.sliderValue = { r: 255, g: 0, b: 0 };\n }\n }\n @Watch('state', { deep: true })\n onStateChange(val: any) {\n if (!this.isSliderValueChangingWithTimeout) {\n this.sliderValue = val;\n }\n }\n @Watch('isSliderValueChangingWithTimeout')\n onSliderValueChangingWithTimeout(val: boolean) {\n if (!val) this.sliderValue = this.state;\n }\n @Watch('isSliderValueChanging')\n onSliderValueChanging(val: boolean) {\n if (val) {\n clearInterval(this.valueChangingTimer);\n this.timer2 = setInterval(() => {\n const snapshot = JSON.stringify(this.sliderValue);\n this.sendingValues.push(snapshot);\n this.send([{ v: this.sliderValue.b, n: this.mappingsClean.targetValue_blue, u: '' }]);\n this.send([{ v: this.sliderValue.g, n: this.mappingsClean.targetValue_green, u: '' }]);\n this.send([{ v: this.sliderValue.r, n: this.mappingsClean.targetValue_red, u: '' }]);\n\n if (this.sliderValuesStorage[this.sliderValuesStorage.length - 1] === this.sendingValues[this.sendingValues.length - 1]) {\n this.isSliderValueChanging = false;\n this.sendingValues = [];\n this.sliderValuesStorage = [];\n }\n }, 350);\n }\n if (!val) {\n clearInterval(this.timer2);\n this.valueChangingTimer = setTimeout(() => {\n this.isSliderValueChangingWithTimeout = false;\n }, 10000);\n }\n }\n\n handleState(value: any) {\n this.sliderValue = value;\n this.sliderValuesStorage.push(JSON.stringify(this.sliderValue));\n // clearInterval(this.valueChangingTimer);\n if (JSON.stringify(this.state) !== JSON.stringify(this.sliderValue)) {\n this.isSliderValueChanging = true;\n this.isSliderValueChangingWithTimeout = true;\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.targetValue_blue === ''\n || this.mappingsClean.targetValue_green === ''\n || this.mappingsClean.targetValue_red === ''\n || this.state === undefined;\n }\n\n created() {\n this.sliderValue = this.state;\n this.isSliderValueChanging = false;\n this.isSliderValueChangingWithTimeout = false;\n }\n\n beforeDestroy() {\n clearInterval(this.timer2);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBCanvas.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderRGBCanvas.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SliderRGBCanvas.vue?vue&type=template&id=f1c01f9c&\"\nimport script from \"./SliderRGBCanvas.vue?vue&type=script&lang=ts&\"\nexport * from \"./SliderRGBCanvas.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SliderRGBCanvas.vue?vue&type=style&index=0&id=f1c01f9c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport SliderRGBBase from '@/ui/components/devices/devices/base/SliderRGBBase.vue';\nimport SliderRGBCanvas from '@/ui/components/devices/devices/base/SliderRGBCanvas.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent LightRGB device\n */\n@Component({\n components: {\n SwitchBase,\n SliderBase,\n OutputFieldBase,\n SliderRGBBase,\n SliderRGBCanvas,\n DeviceLayout,\n },\n})\nexport default class LightRGB extends Vue {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get isActive() {\n return !!this.measurements.get(this.deviceData.data.mappings.Switch_state);\n }\n get sliderRGBActualValue() {\n const r = this.measurements.get(this.deviceData.data.mappings.OutputField2_actualValue);\n const g = this.measurements.get(this.deviceData.data.mappings.OutputField3_actualValue);\n const b = this.measurements.get(this.deviceData.data.mappings.OutputField4_actualValue);\n return { r, g, b };\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField1_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightRGB.vue?vue&type=template&id=1e143fd2&scoped=true&\"\nimport script from \"./LightRGB.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightRGB.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightRGB.vue?vue&type=style&index=0&id=1e143fd2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e143fd2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"socket-switch d-flex justify-space-between align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"socket-switch\",\"size\":\"35\",\"color\":\"theme\"}}),_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent SocketSwitch device\n */\n@Component({\n components: {\n SwitchBase,\n DeviceLayout,\n },\n})\nexport default class SocketSwitch extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SocketSwitch.vue?vue&type=template&id=75ebaa48&scoped=true&\"\nimport script from \"./SocketSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./SocketSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SocketSwitch.vue?vue&type=style&index=0&id=75ebaa48&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"75ebaa48\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"light-bulb\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-push-button\",class:{'is-disabled': _vm.disableButton}},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\"},on:{\"sent\":function($event){return _vm.$emit('sent', $event)}}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { Getter } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\n\n/**\n * Component that represent LightPushButton device\n */\n@Component({\n components: {\n SwitchBase,\n PushButtonBase,\n DeviceLayout,\n },\n})\nexport default class LightPushButton extends Vue {\n @Prop() deviceData!: IDevice;\n @Prop({ default: false }) disableButton!: boolean;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightPushButton.vue?vue&type=template&id=0b2d8659&scoped=true&\"\nimport script from \"./LightPushButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightPushButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightPushButton.vue?vue&type=style&index=0&id=0b2d8659&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b2d8659\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"blinds\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-blinds\"},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"DropDown\",\"label\":\"Slats Position\",\"textMapping\":_vm.textMapping}}),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('ArrowUpBase',{staticClass:\"mr-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowUp\"}}),_c('ArrowDownBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowDown\"}})],1),_c('div',{staticClass:\"pt-4\",staticStyle:{\"width\":\"100%\"}},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ControlBlinds.mainView.sliderLabel'))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])})],1)],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-blinds-settings\"},[_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":0.01,\"min\":0,\"max\":10,\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"is-decimal\":true,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons icons3\"},[_c('lynus-icon',{staticClass:\"icon-shutter\",attrs:{\"name\":\"shutter1\",\"size\":\"18\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.langPath}.settingsView.homePosition`))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"100%\"}},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\"}})],1)]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{class:['arrow-down-base', { active: _vm.state }],attrs:{\"color\":\"#dedede\",\"outlined\":_vm.state,\"elevation\":\"0\",\"rounded\":\"\",\"small\":_vm.small,\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_down\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowDown Basic Control\n */\n@Component({\n components: {\n FeedbackProvider,\n },\n})\nexport default class ArrowDownBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) small!: boolean;\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.down === '';\n }\n\n down() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.down, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.down, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDownBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDownBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowDownBase.vue?vue&type=template&id=74c70de2&scoped=true&\"\nimport script from \"./ArrowDownBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowDownBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowDownBase.vue?vue&type=style&index=0&id=74c70de2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74c70de2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{class:['arrow-up-base', { active: _vm.state }],attrs:{\"color\":\"#dedede\",\"outlined\":_vm.state,\"elevation\":\"0\",\"rounded\":\"\",\"small\":_vm.small,\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.up}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_up\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowUp Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ArrowUpBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) small!: boolean;\n\n timer: any\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.up === '';\n }\n\n up() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.up, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.up, u: '' }]);\n this.onSendSuccess();\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowUpBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowUpBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowUpBase.vue?vue&type=template&id=70dd1f2b&scoped=true&\"\nimport script from \"./ArrowUpBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowUpBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowUpBase.vue?vue&type=style&index=0&id=70dd1f2b&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70dd1f2b\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport ArrowDownBase from '@/ui/components/devices/devices/base/ArrowDownBase.vue';\nimport ArrowUpBase from '@/ui/components/devices/devices/base/ArrowUpBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ControlBlinds device\n */\n@Component({\n components: {\n SliderBase,\n OutputFieldBase,\n InputFieldBase,\n PushButtonBase,\n ArrowDownBase,\n ArrowUpBase,\n DropDownBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ControlBlinds extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get textMapping() {\n return {\n 0: this.$t(`${this.langPath}.mainView.dropDown.fullyOpen`),\n 1: this.$t(`${this.langPath}.mainView.dropDown.threeQuarterOpen`),\n 2: this.$t(`${this.langPath}.mainView.dropDown.halfOpen`),\n 3: this.$t(`${this.langPath}.mainView.dropDown.quarterOpen`),\n 4: this.$t(`${this.langPath}.mainView.dropDown.closed`),\n };\n }\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlBlinds.vue?vue&type=template&id=5bc7e961&scoped=true&\"\nimport script from \"./ControlBlinds.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlBlinds.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlBlinds.vue?vue&type=style&index=0&id=5bc7e961&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bc7e961\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"shutter1\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-shutter\"},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('ArrowUpBase',{staticClass:\"mr-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowUp\",\"small\":true}}),_c('ArrowDownBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowDown\",\"small\":true}})],1),_c('div',{staticClass:\"pt-2\"},[_c('LabelUnitWrapper',{attrs:{\"view\":\"column\",\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('devices.ControlShutter.mainView.sliderLabel')))])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-shutter-settings\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('lynus-icon',{attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"ml-1\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('lynus-icon',{attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"ml-1\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.homePosition`)))])]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"100%\"}},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\"}})],1)]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport ArrowUpBase from '@/ui/components/devices/devices/base/ArrowUpBase.vue';\nimport ArrowDownBase from '@/ui/components/devices/devices/base/ArrowDownBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ControlShutter device\n */\n@Component({\n components: {\n ArrowUpBase,\n ArrowDownBase,\n SliderBase,\n OutputFieldBase,\n PushButtonBase,\n InputFieldBase,\n ShowEventBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ControlShutter extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlShutter.vue?vue&type=template&id=3e0c112c&scoped=true&\"\nimport script from \"./ControlShutter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlShutter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlShutter.vue?vue&type=style&index=0&id=3e0c112c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e0c112c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"awning\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-awning\"},[_c('div',{staticClass:\"top\"},[_c('ArrowInBase',{staticClass:\"mr-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowIn\",\"small\":true}}),_c('ArrowOutBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowOut\",\"small\":true}})],1),_c('div',{staticClass:\"bottom\"},[_c('LabelUnitWrapper',{attrs:{\"view\":\"column\",\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('devices.ControlAwning.mainView.sliderLabel')))])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-awning-settings\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('lynus-icon',{attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"ml-1\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":600,\"field-rules\":[_vm.rules.required],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('lynus-icon',{attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"ml-1\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.homePosition`)))])]},proxy:true},{key:\"value\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"100%\"}},[_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\"}})],1)]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{class:['arrow-in-base', { active: _vm.state }],attrs:{\"color\":\"#dedede\",\"outlined\":_vm.state,\"elevation\":\"0\",\"rounded\":\"\",\"small\":_vm.small,\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.handleIn}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_up\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowIn Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ArrowInBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) small!: boolean;\n\n timer: any\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.in === '';\n }\n handleIn() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.in, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.in, u: '' }]);\n this.onSendSuccess();\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowInBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowInBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowInBase.vue?vue&type=template&id=fd254b16&scoped=true&\"\nimport script from \"./ArrowInBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowInBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowInBase.vue?vue&type=style&index=0&id=fd254b16&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fd254b16\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{class:['arrow-out-base', { active: _vm.state }],attrs:{\"color\":\"#dedede\",\"outlined\":_vm.state,\"elevation\":\"0\",\"rounded\":\"\",\"small\":_vm.small,\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.handleOut}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_down\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowOut Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ArrowOutBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) small!: boolean;\n\n timer: any\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.out === '';\n }\n\n handleOut() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.out, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.out, u: '' }]);\n this.onSendSuccess();\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowOutBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowOutBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowOutBase.vue?vue&type=template&id=a52edc90&scoped=true&\"\nimport script from \"./ArrowOutBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowOutBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowOutBase.vue?vue&type=style&index=0&id=a52edc90&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a52edc90\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ArrowInBase from '@/ui/components/devices/devices/base/ArrowInBase.vue';\nimport ArrowOutBase from '@/ui/components/devices/devices/base/ArrowOutBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State, Action } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ControlAwning device\n */\n@Component({\n components: {\n SliderBase,\n OutputFieldBase,\n PushButtonBase,\n InputFieldBase,\n ArrowInBase,\n ArrowOutBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ControlAwning extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlAwning.vue?vue&type=template&id=14cc09e2&scoped=true&\"\nimport script from \"./ControlAwning.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlAwning.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlAwning.vue?vue&type=style&index=0&id=14cc09e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14cc09e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"thermostat-digital\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('MinusBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Minus\",\"color\":\"#9BE0ED\"}})],1),_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":50,\"is-decimal\":true}}),_c('span',[_vm._v(\"°C\")])]},proxy:true}])})],1),_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('PlusBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Plus\",\"color\":\"#ED5A24\"}})],1)],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex align-center justify-center pt-2\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"items\":[[251, '#04adfa']],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.cooling`)))])],1),_c('v-col'),_c('v-col',{staticClass:\"d-flex align-center justify-center pt-2\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot2\",\"items\":[[251, '#ff0000']],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.heating`)))])],1)],1)],1)],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"thermostat-digital-settings\"},[_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch1_on,\n _vm.deviceData.data.mappings.Switch1_off,\n _vm.deviceData.data.mappings.Switch1_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateLoweringMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch1\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch2_on,\n _vm.deviceData.data.mappings.Switch2_off,\n _vm.deviceData.data.mappings.Switch2_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.changeHeatingCoolingMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch3_on,\n _vm.deviceData.data.mappings.Switch3_off,\n _vm.deviceData.data.mappings.Switch3_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateTimeControl`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch3\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('div',[(_vm.isPushButtonBehavior)?_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":function($event){return _vm.onStateChange(_vm.up)}}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1):_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":function($event){return _vm.onStateChange(_vm.handleMinus)}}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Minus Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class MinusBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) isPushButtonBehavior!: boolean;\n @Prop({ default: 'red' }) color!: string;\n @Prop({ default: false }) fab!: boolean;\n @Prop({ default: 'minus' }) icon!: string;\n @Prop({\n default: 'small',\n validator: (value: any): boolean => [null, 'x-small', 'small', 'large', 'x-large'].some((el: string | null) => el === value),\n }) buttonSizeClass!: string; // vuetify btn classes: x-small, small, large, x-large\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandMinus === '';\n }\n\n handleMinus() {\n this.send([{ v: 1, n: this.mappingsClean.commandMinus, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.commandMinus, u: '' }]);\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandMinus, u: '' }]);\n }\n up() {\n this.send([{ v: 0, n: this.mappingsClean.commandMinus, u: '' }]);\n }\n\n onStateChange(fn: any) {\n this.onSendStart();\n fn();\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinusBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinusBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MinusBase.vue?vue&type=template&id=223973fe&scoped=true&\"\nimport script from \"./MinusBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./MinusBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"223973fe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('div',[(_vm.isPushButtonBehavior)?_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":function($event){return _vm.onStateChange(_vm.up)}}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1):_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":function($event){return _vm.onStateChange(_vm.handlePlus)}}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Plus Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class PlusBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: false }) isPushButtonBehavior!: boolean;\n @Prop({ default: 'green' }) color!: string;\n @Prop({ default: false }) fab!: boolean;\n @Prop({ default: 'plus' }) icon!: string;\n @Prop({\n default: 'small',\n validator: (value: any): boolean => [null, 'x-small', 'small', 'large', 'x-large'].some((el: string | null) => el === value),\n }) buttonSizeClass!: string; // vuetify btn classes: x-small, small, large, x-large\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandPlus === '';\n }\n\n handlePlus() {\n this.send([{ v: 1, n: this.mappingsClean.commandPlus, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.commandPlus, u: '' }]);\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandPlus, u: '' }]);\n }\n up() {\n this.send([{ v: 0, n: this.mappingsClean.commandPlus, u: '' }]);\n }\n\n onStateChange(fn: any) {\n this.onSendStart();\n fn();\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlusBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlusBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlusBase.vue?vue&type=template&id=0fd92465&scoped=true&\"\nimport script from \"./PlusBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlusBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0fd92465\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport MinusBase from '@/ui/components/devices/devices/base/MinusBase.vue';\nimport PlusBase from '@/ui/components/devices/devices/base/PlusBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ThermostatDigital device\n */\n@Component({\n components: {\n SwitchBase,\n OutputFieldBase,\n InputFieldBase,\n ShowEventDotBase,\n MinusBase,\n PlusBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ThermostatDigital extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThermostatDigital.vue?vue&type=template&id=75406034&\"\nimport script from \"./ThermostatDigital.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThermostatDigital.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThermostatDigital.vue?vue&type=style&index=0&id=75406034&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"thermostat-analog\"},[_c('div',{staticClass:\"top\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":0.01,\"min\":0,\"max\":50,\"small\":true,\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"is-decimal\":true,\"description-styles\":{ maxWidth: '80px', fontSize: '10px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '30px', fontSize: '15px', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.normalTemperature`)))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"bottom d-flex justify-space-around\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"items\":[[251, '#04adfa']],\"width\":\"15\",\"height\":\"15\"}}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot1_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.cooling`)))])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot2\",\"items\":[[251, '#ff0000']],\"width\":\"15\",\"height\":\"15\"}}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot2_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.heating`)))])]},proxy:true}])})],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"thermostat-analog-settings\"},[_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":50,\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"is-decimal\":true,\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '100px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.loweringTemperature`)))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField5\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField6\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch1_on,\n _vm.deviceData.data.mappings.Switch1_off,\n _vm.deviceData.data.mappings.Switch1_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateLoweringMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticStyle:{\"margin\":\"0\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch1\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch2_on,\n _vm.deviceData.data.mappings.Switch2_off,\n _vm.deviceData.data.mappings.Switch2_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.changeHeatingCoolingMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticStyle:{\"margin\":\"0\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch3_on,\n _vm.deviceData.data.mappings.Switch3_off,\n _vm.deviceData.data.mappings.Switch3_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateTimeControl`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticStyle:{\"margin\":\"0\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch3\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ThermostatAnalog device\n */\n@Component({\n components: {\n InputFieldBase,\n SwitchBase,\n ShowEventDotBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ThermostatAnalog extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n get measurements() {\n return this.measurementsState.measurements;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThermostatAnalog.vue?vue&type=template&id=7384bdac&\"\nimport script from \"./ThermostatAnalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThermostatAnalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThermostatAnalog.vue?vue&type=style&index=0&id=7384bdac&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"light-switch_on\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"brightness-sensor\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":100,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kLux\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent BrightnessSensor device\n */\n@Component({\n components: {\n ShowEventBase,\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class BrightnessSensor extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrightnessSensor.vue?vue&type=template&id=54a95976&scoped=true&\"\nimport script from \"./BrightnessSensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrightnessSensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrightnessSensor.vue?vue&type=style&index=0&id=54a95976&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54a95976\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"humidity\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"air-humidity-sensor\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":100,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent AirHumiditySensor device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class AirHumiditySensor extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AirHumiditySensor.vue?vue&type=template&id=7ceae2d8&scoped=true&\"\nimport script from \"./AirHumiditySensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./AirHumiditySensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AirHumiditySensor.vue?vue&type=style&index=0&id=7ceae2d8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ceae2d8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"co2\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"sensor-co2\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":5000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"ppm\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent SensorCO2 device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class SensorCO2 extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SensorCO2.vue?vue&type=template&id=32d3b8d8&scoped=true&\"\nimport script from \"./SensorCO2.vue?vue&type=script&lang=ts&\"\nexport * from \"./SensorCO2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SensorCO2.vue?vue&type=style&index=0&id=32d3b8d8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32d3b8d8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"water_level\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"sensor-level\"},[_c('FillLevelDisplayBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"is-decimal\":true,\"is-text\":true,\"min\":0,\"max\":100}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport FillLevelDisplayBase from '@/ui/components/devices/devices/base/FillLevelDisplayBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent SensorLevel device\n */\n@Component({\n components: {\n FillLevelDisplayBase,\n DeviceLayout,\n },\n})\nexport default class SensorLevel extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SensorLevel.vue?vue&type=template&id=044e4d84&scoped=true&\"\nimport script from \"./SensorLevel.vue?vue&type=script&lang=ts&\"\nexport * from \"./SensorLevel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SensorLevel.vue?vue&type=style&index=0&id=044e4d84&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"044e4d84\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"weather-station\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"weather-station\"},[_c('div',{staticClass:\"left\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_west\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":200,\"is-decimal\":true}}),_c('span',[_vm._v(\"kLux\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_south\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":200,\"is-decimal\":true}}),_c('span',[_vm._v(\"kLux\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_east\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField3_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"min\":0,\"max\":200,\"is-decimal\":true}}),_c('span',[_vm._v(\"kLux\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"moon\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('span',[_vm._v(\"lux\")])]},proxy:true}])})],1)])]),_c('div',{staticClass:\"right\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField5_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"min\":0,\"max\":100,\"is-decimal\":true}}),_c('span',[_vm._v(\"%\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"windspeed\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField6_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField6\",\"min\":0,\"max\":50,\"is-decimal\":true}}),_c('span',[_vm._v(\"m/s\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"rainfall\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField7_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{staticClass:\"px-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField7\",\"min\":0,\"max\":1}}),_c('span',[_vm._v(\"rainfall\")])]},proxy:true}])})],1)])])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent WeatherStation device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class WeatherStation extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WeatherStation.vue?vue&type=template&id=2692c2c8&scoped=true&\"\nimport script from \"./WeatherStation.vue?vue&type=script&lang=ts&\"\nexport * from \"./WeatherStation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WeatherStation.vue?vue&type=style&index=0&id=2692c2c8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2692c2c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"hot-water\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"hot-water-meter\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³\")])]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"hot-water-meter-settings\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"size\":\"30\"}}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³/h\")])]},proxy:true}])})],1)])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent HotWaterMeter device\n */\n@Component({\n components: {\n OutputFieldBase,\n ShowEventBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class HotWaterMeter extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField1_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HotWaterMeter.vue?vue&type=template&id=374e20e2&scoped=true&\"\nimport script from \"./HotWaterMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./HotWaterMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HotWaterMeter.vue?vue&type=style&index=0&id=374e20e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"374e20e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"cold-water\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"cold-water-meter\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":_vm.isDisabled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³\")])]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"cold-water-meter-settings\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"size\":\"30\"}}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³/h\")])]},proxy:true}])})],1)])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ColdWaterMeter device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ColdWaterMeter extends BasicControl {\n @Prop() deviceData!: IDevice;\n\n get isNotMapped(): boolean {\n return false;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColdWaterMeter.vue?vue&type=template&id=40c9dde0&scoped=true&\"\nimport script from \"./ColdWaterMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColdWaterMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColdWaterMeter.vue?vue&type=style&index=0&id=40c9dde0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40c9dde0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electricity_meter\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electricity-meter\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"total-electrical-power_tarif_1\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"total-electrical-power_tarif_2\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField3_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electricity-meter-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-consumption_tarif_1\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-production_tarif_1\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField5_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-consumption_tarif_2\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField6_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField6\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-production_tarif_2\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField7_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField7\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1)])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ElectricityMeter device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ElectricityMeter extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricityMeter.vue?vue&type=template&id=de29a6e8&scoped=true&\"\nimport script from \"./ElectricityMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricityMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectricityMeter.vue?vue&type=style&index=0&id=de29a6e8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"de29a6e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"heating_meter\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"heating-meter\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"heating-meter-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity-consumption_tarif_1\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField3_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity-consumption_tarif_2\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kWh\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"counter-used-water\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField5_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"value-flow\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField6_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField6\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"m³/h\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_forward\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField7_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField7\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_return\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField8_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField8\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_difference\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField9_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField9\",\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"k\")])]},proxy:true}])})],1)])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent HeatingMeter device\n */\n@Component({\n components: {\n OutputFieldBase,\n ShowEventBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class HeatingMeter extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField2_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingMeter.vue?vue&type=template&id=5482d48f&scoped=true&\"\nimport script from \"./HeatingMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeatingMeter.vue?vue&type=style&index=0&id=5482d48f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5482d48f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"motion-sensor\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motion-sensor\"},[_c('div',{staticClass:\"basic-control-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField\",\"step\":1,\"min\":0,\"max\":1200,\"is-decimal\":false,\"field-rules\":[_vm.rules.required],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '30px', paddingTop: '5px' },\"icon-styles\":{ paddingTop: '7px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\",\"color\":\"theme\"}})],1)]},proxy:true}])})],1),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch_on,\n _vm.deviceData.data.mappings.Switch_off,\n _vm.deviceData.data.mappings.Switch_state\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.permanent`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.impulse`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{staticClass:\"mr-3\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MotionSensor device\n */\n@Component({\n components: {\n InputFieldBase,\n SwitchBase,\n PushButtonBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class MotionSensor extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotionSensor.vue?vue&type=template&id=83a2c2ce&\"\nimport script from \"./MotionSensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotionSensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotionSensor.vue?vue&type=style&index=0&id=83a2c2ce&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"battery\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"battery-base-wrapper\"},[_c('BatteryBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Battery\",\"min\":0,\"max\":100,\"unit\":\"%\"}})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"battery-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical_voltage\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true,\"min\":0,\"max\":1000}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"volt\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true,\"min\":-30,\"max\":120}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField3_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"is-decimal\":true,\"min\":-1000,\"max\":1000}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"favourites\"}})],1),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"is-decimal\":false,\"min\":0,\"max\":100}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"SOH\")])]},proxy:true}])})],1)])])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"battery-base\"},[_c('div',{staticClass:\"cap\"}),_c('div',{staticClass:\"battery-body\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.filteredValue)+_vm._s(_vm.unit)+\" \")]),_c('div',{staticClass:\"scale\",style:(`width: ${_vm.fieldFilteredValue}%`)})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent Battery Basic Control\n */\n@Component\nexport default class BatteryBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() min!: number;\n @Prop() max!: number;\n @Prop() instance!: string;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop() unit!: string;\n\n get actualValue(): any {\n return this.measurements.get(this.mappingsClean.actualValue);\n }\n\n /**\n * Round actualValue\n */\n get rounded() {\n if (!this.isDecimal) return Math.round(this.actualValue);\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return +(`${Math.round(`${this.actualValue}e+2`)}e-2`);\n }\n\n /**\n * round up the value if it is out of range\n */\n get filteredValue() {\n if (this.rounded < this.min) return this.min;\n if (this.rounded > this.max) return this.max;\n return this.rounded;\n }\n get fieldFilteredValue() {\n if (this.max) return (this.rounded * 100) / this.max;\n return this.rounded;\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryBase.vue?vue&type=template&id=91415e16&scoped=true&\"\nimport script from \"./BatteryBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatteryBase.vue?vue&type=style&index=0&id=91415e16&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"91415e16\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport BatteryBase from '@/ui/components/devices/devices/base/BatteryBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Battery device\n */\n@Component({\n components: {\n OutputFieldBase,\n BatteryBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class Battery extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Battery.vue?vue&type=template&id=14b300f2&scoped=true&\"\nimport script from \"./Battery.vue?vue&type=script&lang=ts&\"\nexport * from \"./Battery.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Battery.vue?vue&type=style&index=0&id=14b300f2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14b300f2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"photovoltaic\",\"deviceModal\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-system\"},[_c('div',[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled,\"labelHideTextThatDoesNotFit\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'))+\" \")]},proxy:true}])})]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1),_c('div',[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualVoltageVariableFilled,\"labelHideTextThatDoesNotFit\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'))+\" \")]},proxy:true}])})]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"V\")])]},proxy:true}])})],1),_c('div',[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isCurrentFlowVariableFilled,\"labelHideTextThatDoesNotFit\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'))+\" \")]},proxy:true}])})]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"A\")])]},proxy:true}])})],1)])]},proxy:true},{key:\"modal-window\",fn:function(){return [_c('PVSystemCharts',{attrs:{\"deviceData\":_vm.deviceData}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{attrs:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"fab\":\"\",\"x-small\":\"\"},on:{\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[_c('v-icon',[_vm._v(\"fa-chart-line\")])],1)]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.hoverText')))])])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"pv-systems-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-width\":_vm.chartData.chartWidth,\"settings-wrapper-height\":_vm.chartData.chartHeight,\"chart-data\":_vm.chartData.chartData,\"navigation-items-to-exclude\":_vm.chartData.navigationItemsToExclude,\"use-default-period-configs\":false}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent PVSystem Charts\n */\n@Component({\n components: {\n ModalWindow,\n BaseChartWrapper,\n },\n})\nexport default class PVSystemCharts extends Vue {\n @Prop() deviceData!: IDevice;\n\n isTooltip = false;\n\n get isActualVoltageVariableFilled() {\n return !!this.deviceData.data.mappings?.OutputField2_actualValue?.length;\n }\n get isCurrentFlowVariableFilled() {\n return !!this.deviceData.data.mappings?.OutputField3_actualValue?.length;\n }\n\n get chartObject() {\n const localChartOptions = [\n {\n agg: 'avg',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'),\n scaling: {\n max: null,\n min: null,\n },\n type: 'line',\n unit: 'kW',\n var: this.deviceData.data.mappings.OutputField_actualValue,\n },\n ...(this.isActualVoltageVariableFilled ? [{\n agg: 'avg',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'),\n scaling: {\n max: null,\n min: null,\n },\n type: 'line',\n unit: 'V',\n var: this.deviceData.data.mappings.OutputField2_actualValue,\n }] : []),\n ...(this.isCurrentFlowVariableFilled ? [{\n agg: 'avg',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'),\n scaling: {\n max: null,\n min: null,\n },\n type: 'line',\n unit: 'A',\n var: this.deviceData.data.mappings.OutputField3_actualValue,\n }] : []),\n ];\n return {\n name: '',\n data: {\n chartOptions: localChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n get chartData() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: this.chartObject,\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PVSystemCharts.vue?vue&type=template&id=3565bca0&scoped=true&\"\nimport script from \"./PVSystemCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./PVSystemCharts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PVSystemCharts.vue?vue&type=style&index=0&id=3565bca0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3565bca0\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport PVSystemCharts from '@/ui/components/devices/devices/devicesCharts/PVSystemCharts.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent PVSystem device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n PVSystemCharts,\n InfoTooltip,\n },\n})\nexport default class PVSystem extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings?.OutputField_actualValue?.length;\n }\n get isActualVoltageVariableFilled() {\n return !!this.deviceData.data.mappings?.OutputField2_actualValue?.length;\n }\n get isCurrentFlowVariableFilled() {\n return !!this.deviceData.data.mappings?.OutputField3_actualValue?.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PVSystem.vue?vue&type=template&id=14d802a6&scoped=true&\"\nimport script from \"./PVSystem.vue?vue&type=script&lang=ts&\"\nexport * from \"./PVSystem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PVSystem.vue?vue&type=style&index=0&id=14d802a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14d802a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"house-consumption\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex house-consumption\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent HouseConsumption device\n */\n@Component({\n components: {\n ShowEventBase,\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class HouseConsumption extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HouseConsumption.vue?vue&type=template&id=3c6e56b6&scoped=true&\"\nimport script from \"./HouseConsumption.vue?vue&type=script&lang=ts&\"\nexport * from \"./HouseConsumption.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HouseConsumption.vue?vue&type=style&index=0&id=3c6e56b6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3c6e56b6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"generator\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex generator\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"generator-settings\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch_on,\n _vm.deviceData.data.mappings.Switch_off,\n _vm.deviceData.data.mappings.Switch_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.manual`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.PushButton_onOff,\n _vm.deviceData.data.mappings.PushButton_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{staticClass:\"mr-4\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\",\"icon\":\"push_reset\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Generator device\n */\n@Component({\n components: {\n ShowEventBase,\n SwitchBase,\n PushButtonBase,\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class Generator extends Vue {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Generator.vue?vue&type=template&id=070be439&\"\nimport script from \"./Generator.vue?vue&type=script&lang=ts&\"\nexport * from \"./Generator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Generator.vue?vue&type=style&index=0&id=070be439&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"main-connection\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"mains-connection\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":-5000,\"max\":5000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MainsConnection device\n */\n@Component({\n components: {\n OutputFieldBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class MainsConnection extends Vue {\n @Prop() deviceData!: IDevice;\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainsConnection.vue?vue&type=template&id=794a8e7a&scoped=true&\"\nimport script from \"./MainsConnection.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainsConnection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MainsConnection.vue?vue&type=style&index=0&id=794a8e7a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"794a8e7a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electric-charging-station\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electric-charging-station\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex show-event-section align-center\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot\",\"width\":\"15\",\"height\":\"15\"}}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.connected`)))])]},proxy:true}])})],1)],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electric-charging-station-settings\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch1_on,\n _vm.deviceData.data.mappings.Switch1_off,\n _vm.deviceData.data.mappings.Switch1_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.minCharge`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",staticStyle:{\"margin-left\":\"10px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch1\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch2_on,\n _vm.deviceData.data.mappings.Switch2_off,\n _vm.deviceData.data.mappings.Switch2_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.manual`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",staticStyle:{\"margin-left\":\"10px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.chargingTime`)[0]))]),_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":2000,\"is-decimal\":false}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.chargingTime`)[1]))])],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField\",\"step\":0.01,\"min\":0,\"max\":1000,\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '100px' },\"is-decimal\":true},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ElectricChargingStation.settingsView.sliderLabel'))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ElectricChargingStation device\n */\n@Component({\n components: {\n OutputFieldBase,\n InputFieldBase,\n SwitchBase,\n SliderBase,\n ShowEventDotBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ElectricChargingStation extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField1_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricChargingStation.vue?vue&type=template&id=c49226f2&\"\nimport script from \"./ElectricChargingStation.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricChargingStation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectricChargingStation.vue?vue&type=style&index=0&id=c49226f2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electric-charging-station\",\"device-size\":\"x2h\"},on:{\"switchSettingsView\":_vm.switchSettingsView},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"device-actions-wrapper\"},[(_vm.showPushbutton)?_c('div',{staticClass:\"d-flex mb-4\"},[_c('div',{staticClass:\"mt-1\"},[_c('LabelUnitWrapper',{scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.enableChargeStation`)))])]},proxy:true}],null,false,1911618320)})],1),_c('div',{staticClass:\"d-flex justify-center ml-2\"},[_c('ChargingStationButton',{attrs:{\"button-active\":_vm.buttonActive,\"button-disabled\":_vm.buttonActive,\"variableName\":_vm.chargeId,\"deviceId\":_vm.deviceData.id}})],1)]):_vm._e(),_c('LabelUnitWrapper',{scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.power`))+\":\")])]},proxy:true},{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])}),_c('div',{staticClass:\"d-flex show-event-section align-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('span',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.connected`)))])]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot\",\"width\":\"15\",\"height\":\"15\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]]}})]},proxy:true}])})],1)],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',[_c('LabelUnitWrapper',{scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.langPath}.mainView.deactivateFreeCharging`))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('Switch2VBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2V\"}})]},proxy:true}])}),(_vm.switchOnOffStatus === 1)?_c('v-combobox',{staticClass:\"mt-4\",attrs:{\"items\":_vm.selectableMembers,\"small-chips\":\"\",\"label\":_vm.$t(`${_vm.langPath}.mainView.selectUsers`),\"multiple\":\"\",\"outlined\":\"\",\"color\":\"blue\",\"hide-selected\":\"\",\"menu-props\":{ maxHeight: '300' }},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, select, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click\":select,\"click:close\":function($event){return _vm.handleDeleteUser(item)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(item.text))])])]}}],null,false,144421191),model:{value:(_vm.selectedUsers),callback:function ($$v) {_vm.selectedUsers=$$v},expression:\"selectedUsers\"}}):_vm._e()],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{class:['push-button-base', { active: _vm.buttonActive }],attrs:{\"width\":40,\"height\":40,\"outlined\":true,\"icon\":\"\"},on:{\"mousedown\":function($event){return _vm.handleMouseDown()},\"mouseup\":function($event){return _vm.handleSend()}}},[_c('lynus-icon',{attrs:{\"name\":'push_button',\"color\":_vm.buttonActive ? 'white': 'theme',\"size\":28}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { Getter, Mutation } from 'vuex-class';\nimport api from '@/services/api';\nimport { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Custom button component for charging station V2 Device\n */\n@Component({\n components: {\n FeedbackProvider,\n },\n})\nexport default class ChargingStationButton extends Vue {\n @Prop() deviceId!: string;\n @Prop({ default: 0 }) buttonActive!: number;\n @Prop({ default: 0 }) buttonDisabled!: number;\n @Prop({ default: '' }) variableName!: string;\n\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Mutation('app/setReport') setReport!: (payload: any) => void;\n\n disableButtonForRequest = false;\n sendingState = SendingState.None;\n\n async handleSend() {\n const projectId = this.$route.params.id;\n this.sendingState = SendingState.Sending;\n try {\n await api.fetch(`/projects/${projectId}/devices/${this.deviceId}/charge`, 'POST');\n this.disableButtonForRequest = true;\n // wait for 2s and check value\n await new Promise(resolve => setTimeout(resolve, 2000));\n // if value is still 0, enable button else disable button as normal\n if (this.measurements[this.variableName] === 0) {\n this.disableButtonForRequest = false;\n } else {\n this.sendingState = SendingState.Success;\n }\n } catch (e) {\n const errorText = (e as any).response.data.message;\n let reportText = (e as any).response.data.message;\n if (errorText.includes('not an electric charging station')) {\n reportText = this.$t('errorMessages.chargingErrors.notAnElecticChargingStation') as string;\n } else if (errorText.includes('already charging')) {\n reportText = this.$t('errorMessages.chargingErrors.alreadyCharging') as string;\n } else if (errorText.includes('user not allowed')) {\n reportText = this.$t('errorMessages.chargingErrors.userNotAllowed') as string;\n }\n // show error message\n this.setReport({ type: 'error', message: reportText, value: true });\n this.disableButtonForRequest = false;\n this.sendingState = SendingState.Error;\n }\n\n // wait for 2s and reset sending state\n await new Promise(resolve => setTimeout(resolve, 2000));\n this.sendingState = SendingState.None;\n this.disableButtonForRequest = false;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargingStationButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargingStationButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChargingStationButton.vue?vue&type=template&id=a776ac3c&scoped=true&\"\nimport script from \"./ChargingStationButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChargingStationButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChargingStationButton.vue?vue&type=style&index=0&id=a776ac3c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a776ac3c\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport ChargingStationButton from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/ChargingStationButton.vue';\nimport Switch2VBase from '@/ui/components/devices/devices/base/Switch2VBase.vue';\nimport { isEqual } from 'lodash';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IDevice } from '@/types/devices.types';\nimport { IMember } from '@/types/members.types';\nimport { IUser } from '@/types/app.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IMeasurements } from '@/types/measurements.types';\n\n/**\n * Component that represent ElectricChargingStationV2 device\n */\n@Component({\n components: {\n OutputFieldBase,\n ShowEventDotBase,\n DeviceLayout,\n LabelUnitWrapper,\n ChargingStationButton,\n Switch2VBase,\n },\n})\nexport default class ElectricChargingStationV2 extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('app') appState!: IAppState;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('members/members') members!: IMember[];\n @Getter('app/getUser') currentUser!: IUser;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n\n selectedUsers: { text: string; value: string }[] = [];\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n // Watch for changes in selected users to update the selectedUsers array\n @Watch('deviceData.data.meta.selectedUsers', { deep: true })\n handleChange() {\n this.selectedUsers = this.deviceData.data.meta.selectedUsers.map((user: string) => {\n const member: IMember | undefined = this.members.find((el: IMember) => el.id === user);\n if (member) {\n return { text: `${member.first_name} ${member.last_name}`, value: user };\n }\n });\n }\n\n get super_admin() {\n return this.appState.user.super_admin;\n }\n\n get chargeId() {\n return this.deviceData.data.meta.chargeID;\n }\n\n /**\n * If ChargeID is 0, the charge station is not used\n * If ChargeID is anything else, the charge station is used\n */\n get buttonActive() {\n // if free charging is activated, the button is always disabled\n const switchStatus = this.measurements[this.deviceData.data.mappings.Switch2V_onOff];\n return this.measurements[this.chargeId] !== 0 || switchStatus === 0;\n }\n\n get switchOnOffStatus() {\n return this.measurements[this.deviceData.data.mappings.Switch2V_onOff];\n }\n\n /**\n * Manage the visibility of the push button\n */\n get showPushbutton() {\n if (this.super_admin) {\n // super admin can allways see button\n return true;\n }\n const userAccess = this.deviceData.data.meta.selectedUsers ?? [];\n if (userAccess.length === 0) {\n // if no user is selected, we never show the button\n return false;\n }\n return userAccess.includes(this.currentUser.id);\n }\n\n /**\n * List of members for user selection\n */\n get selectableMembers() {\n return this.members.map((member: IMember) => ({\n value: member.id,\n text: `${member.first_name} ${member.last_name}`,\n }));\n }\n\n async switchSettingsView(value: boolean) {\n const usersInDevice = this.deviceData.data.meta.selectedUsers ?? [];\n const currentSelectedUsers = this.selectedUsers.map((user) => user.value);\n // close of settings view\n if (!value) {\n // check if selected users are changed and save device data\n if (!isEqual(usersInDevice, currentSelectedUsers) && this.switchOnOffStatus === 1) {\n // update device\n const payload = { ...this.deviceData };\n payload.data.meta.selectedUsers = this.selectedUsers.map((user) => user.value);\n await this.updateDevice({ device: payload, skipReport: false });\n }\n }\n }\n\n handleDeleteUser(item: { text: string; value: string }) {\n // remove user counter variables if a user is removed\n this.selectedUsers.splice(this.selectedUsers.indexOf(item), 1);\n }\n\n created() {\n this.selectedUsers = this.deviceData.data.meta.selectedUsers.map((user: string) => {\n const member: IMember | undefined = this.members.find((el: IMember) => el.id === user);\n if (member) {\n return { text: `${member.first_name} ${member.last_name}`, value: user };\n }\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStationV2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStationV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricChargingStationV2.vue?vue&type=template&id=5e82a562&\"\nimport script from \"./ElectricChargingStationV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricChargingStationV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectricChargingStationV2.vue?vue&type=style&index=0&id=5e82a562&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electric-charging-boiler\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electric-boiler\"},[_c('LabelUnitWrapper',{attrs:{\"disabled\":!_vm.isActualValueVariableFilled},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electric-boiler-settings\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField3\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])}),_c('InputFieldBase',{staticClass:\"pt-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch1_off,\n _vm.deviceData.data.mappings.Switch1_on,\n _vm.deviceData.data.mappings.Switch1_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.manual`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",staticStyle:{\"margin-left\":\"10px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch1\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch2_off,\n _vm.deviceData.data.mappings.Switch2_on,\n _vm.deviceData.data.mappings.Switch2_state,\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateTimeControl`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",staticStyle:{\"margin-left\":\"10px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch2\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"view\":\"column\",\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('devices.ElectronicBoiler.settingsView.sliderLabel')))])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent ElectronicBoiler device\n */\n@Component({\n components: {\n OutputFieldBase,\n InputFieldBase,\n SwitchBase,\n SliderBase,\n ShowEventBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class ElectronicBoiler extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get isActualValueVariableFilled() {\n return !!this.deviceData.data.mappings.OutputField1_actualValue.length;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectronicBoiler.vue?vue&type=template&id=444c636c&\"\nimport script from \"./ElectronicBoiler.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectronicBoiler.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectronicBoiler.vue?vue&type=style&index=0&id=444c636c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"ventilator-switch d-flex justify-space-between align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"ventilator\",\"size\":\"30\",\"color\":\"theme\"}}),_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent VentilatorSwitch device\n */\n@Component({\n components: {\n SwitchBase,\n DeviceLayout,\n },\n})\nexport default class VentilatorSwitch extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VentilatorSwitch.vue?vue&type=template&id=cdd5c8e8&scoped=true&\"\nimport script from \"./VentilatorSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./VentilatorSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VentilatorSwitch.vue?vue&type=style&index=0&id=cdd5c8e8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cdd5c8e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-size\":\"x2h\",\"device-icon\":\"music\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"music-system\"},[_c('div',{staticClass:\"d-flex justify-end pb-4\"},[_c('SwitchBase',{staticClass:\"pa-0 ma-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1),_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('div',{staticClass:\"d-flex justify-end\"},[_c('PlusBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Plus\",\"is-push-button-behavior\":true,\"fab\":\"\",\"color\":\"accent\",\"icon\":\"volume-plus\"}})],1),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('PlayBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Play\",\"color\":\"accent\",\"icon\":\"play\"}})],1),_c('div',{staticClass:\"d-flex justify-end pt-4\"},[_c('ReverseBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Reverse\",\"color\":\"accent\",\"icon\":\"previous\"}})],1)]),_c('v-col',{staticClass:\"d-flex align-center justify-center\"},[_c('PauseBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Pause\",\"color\":\"accent\",\"icon\":\"pause\"}})],1),_c('v-col',[_c('div',{staticClass:\"d-flex justify-start\"},[_c('MinusBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Minus\",\"is-push-button-behavior\":true,\"fab\":\"\",\"color\":\"accent\",\"icon\":\"volume-minus\"}})],1),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('StopBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Stop\",\"color\":\"accent\",\"icon\":\"stop\"}})],1),_c('div',{staticClass:\"d-flex justify-start pt-4\"},[_c('ForwardBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Forward\",\"color\":\"accent\",\"icon\":\"next\"}})],1)])],1)],1)],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":_vm.up}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Play Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class PlayBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'play' }) icon!: string;\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandPlay === '';\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandPlay, u: '' }]);\n }\n up() {\n this.onSendStart();\n this.send([{ v: 0, n: this.mappingsClean.commandPlay, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlayBase.vue?vue&type=template&id=298cbe93&scoped=true&\"\nimport script from \"./PlayBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlayBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"298cbe93\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":_vm.up}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Stop Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class StopBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'stop' }) icon!: string;\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandStop === '';\n }\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandStop, u: '' }]);\n }\n up() {\n this.onSendStart();\n this.send([{ v: 0, n: this.mappingsClean.commandStop, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StopBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StopBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StopBase.vue?vue&type=template&id=1f1270f5&scoped=true&\"\nimport script from \"./StopBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./StopBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f1270f5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{attrs:{\"small\":\"\",\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":_vm.up}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Pause Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class PauseBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'pause' }) icon!: string;\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandPause === '';\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandPause, u: '' }]);\n }\n up() {\n this.onSendStart();\n this.send([{ v: 0, n: this.mappingsClean.commandPause, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PauseBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PauseBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PauseBase.vue?vue&type=template&id=9268a25a&scoped=true&\"\nimport script from \"./PauseBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./PauseBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9268a25a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":_vm.up}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Reverse Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ReverseBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'previous' }) icon!: string;\n @Prop({\n default: 'small',\n validator: (value: any): boolean => [null, 'x-small', 'small', 'large', 'x-large'].some((el: string | null) => el === value),\n }) buttonSizeClass!: string; // vuetify btn classes: x-small, small, large, x-large\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandReverse === '';\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandReverse, u: '' }]);\n }\n up() {\n this.onSendStart();\n this.send([{ v: 0, n: this.mappingsClean.commandReverse, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReverseBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReverseBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReverseBase.vue?vue&type=template&id=37576940&scoped=true&\"\nimport script from \"./ReverseBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReverseBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37576940\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.down,\"mouseup\":_vm.up}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent Forward Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ForwardBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'next' }) icon!: string;\n @Prop({\n default: 'small',\n validator: (value: any): boolean =>\n [null, 'x-small', 'small', 'large', 'x-large'].some((el: string | null) => el === value),\n })\n buttonSizeClass!: string; // vuetify btn classes: x-small, small, large, x-large\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.commandForward === '';\n }\n\n down() {\n this.send([{ v: 1, n: this.mappingsClean.commandForward, u: '' }]);\n }\n up() {\n this.onSendStart();\n this.send([{ v: 0, n: this.mappingsClean.commandForward, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForwardBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForwardBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ForwardBase.vue?vue&type=template&id=1b79bf9a&scoped=true&\"\nimport script from \"./ForwardBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForwardBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForwardBase.vue?vue&type=style&index=0&id=1b79bf9a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b79bf9a\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PlusBase from '@/ui/components/devices/devices/base/PlusBase.vue';\nimport MinusBase from '@/ui/components/devices/devices/base/MinusBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport PlayBase from '@/ui/components/devices/devices/base/PlayBase.vue';\nimport StopBase from '@/ui/components/devices/devices/base/StopBase.vue';\nimport PauseBase from '@/ui/components/devices/devices/base/PauseBase.vue';\nimport ReverseBase from '@/ui/components/devices/devices/base/ReverseBase.vue';\nimport ForwardBase from '@/ui/components/devices/devices/base/ForwardBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MusicSystem device\n */\n@Component({\n components: {\n PlusBase,\n MinusBase,\n SwitchBase,\n PlayBase,\n StopBase,\n PauseBase,\n ReverseBase,\n ForwardBase,\n DeviceLayout,\n },\n})\nexport default class MusicSystem extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MusicSystem.vue?vue&type=template&id=16727da6&scoped=true&\"\nimport script from \"./MusicSystem.vue?vue&type=script&lang=ts&\"\nexport * from \"./MusicSystem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MusicSystem.vue?vue&type=style&index=0&id=16727da6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16727da6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"television\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"tv d-flex flex-wrap align-center justify-space-around\"},[_c('div',{staticClass:\"wrapper d-flex mt-1\"},[_c('ReverseBase',{staticClass:\"mr-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Reverse\",\"color\":\"accent\",\"button-size-class\":\"x-small\"}}),_c('MinusBase',{staticClass:\"mr-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Minus\",\"fab\":\"\",\"color\":\"accent\",\"icon\":\"volume-minus\",\"is-push-button-behavior\":true,\"button-size-class\":\"x-small\"}}),_c('PlusBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Plus\",\"fab\":\"\",\"icon\":\"volume-plus\",\"color\":\"accent\",\"button-size-class\":\"x-small\",\"is-push-button-behavior\":true}}),_c('ForwardBase',{staticClass:\"ml-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Forward\",\"color\":\"accent\",\"button-size-class\":\"x-small\"}})],1),_c('SwitchBase',{staticClass:\"pa-0 ma-0 mt-1\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PlusBase from '@/ui/components/devices/devices/base/PlusBase.vue';\nimport MinusBase from '@/ui/components/devices/devices/base/MinusBase.vue';\nimport ForwardBase from '@/ui/components/devices/devices/base/ForwardBase.vue';\nimport ReverseBase from '@/ui/components/devices/devices/base/ReverseBase.vue';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent TV device\n */\n@Component({\n components: {\n PlusBase,\n MinusBase,\n ForwardBase,\n ReverseBase,\n SwitchBase,\n DeviceLayout,\n },\n})\nexport default class TV extends Vue {\n @Prop() deviceData!: IDevice;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TV.vue?vue&type=template&id=53c935e2&scoped=true&\"\nimport script from \"./TV.vue?vue&type=script&lang=ts&\"\nexport * from \"./TV.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TV.vue?vue&type=style&index=0&id=53c935e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53c935e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"motor\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motor-without-vfd\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton1_onOff, _vm.deviceData.data.mappings.PushButton1_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.autoMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manualMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton3_onOff, _vm.deviceData.data.mappings.PushButton3_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.inactiveMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton3\",\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowDirectionLeftBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowLeft\"}})],1),_c('div',[_c('ArrowDirectionRightBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowRight\"}})],1)]),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton4_onOff, _vm.deviceData.data.mappings.PushButton4_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton4\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"motor-without-vfd-settings d-flex justify-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"A\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{staticClass:\"arrow-direction-left-base\",attrs:{\"color\":_vm.state ? '#6CC1FF' : '#C4C4C4',\"elevation\":\"0\",\"small\":\"\",\"rounded\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.handleLeft}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-direction-left\",\"color\":\"white\",\"size\":\"24\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowDirectionLeft Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ArrowDirectionLeftBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.commandLeft === '';\n }\n\n handleLeft() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.commandLeft, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.commandLeft, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionLeftBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionLeftBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowDirectionLeftBase.vue?vue&type=template&id=750fc850&scoped=true&\"\nimport script from \"./ArrowDirectionLeftBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowDirectionLeftBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowDirectionLeftBase.vue?vue&type=style&index=0&id=750fc850&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"750fc850\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-btn',{staticClass:\"arrow-direction-right-base\",attrs:{\"color\":_vm.state ? '#6CC1FF' : '#C4C4C4',\"elevation\":\"0\",\"small\":\"\",\"rounded\":\"\",\"disabled\":_vm.isDisabled},on:{\"mousedown\":_vm.handleRight}},[_c('lynus-icon',{attrs:{\"name\":\"arrow-direction-right\",\"color\":\"white\",\"size\":\"24\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent ArrowDirectionRight Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class ArrowDirectionRightBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n\n get state() {\n if (this.mappingsClean) {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.state === '' || this.mappingsClean.commandRight === '';\n }\n\n handleRight() {\n this.onSendStart();\n this.send([{ v: 1, n: this.mappingsClean.commandRight, u: '' }]);\n this.send([{ v: 0, n: this.mappingsClean.commandRight, u: '' }]);\n this.onSendSuccess();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionRightBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowDirectionRightBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ArrowDirectionRightBase.vue?vue&type=template&id=690b4d64&scoped=true&\"\nimport script from \"./ArrowDirectionRightBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ArrowDirectionRightBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ArrowDirectionRightBase.vue?vue&type=style&index=0&id=690b4d64&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"690b4d64\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ArrowDirectionLeftBase from '@/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue';\nimport ArrowDirectionRightBase from '@/ui/components/devices/devices/base/ArrowDirectionRightBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MotorWithoutVFD device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n ArrowDirectionLeftBase,\n ArrowDirectionRightBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class MotorWithoutVFD extends Vue {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotorWithoutVFD.vue?vue&type=template&id=050d1a68&\"\nimport script from \"./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotorWithoutVFD.vue?vue&type=style&index=0&id=050d1a68&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"pump\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pump-without-vfd\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton1_onOff, _vm.deviceData.data.mappings.PushButton1_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.autoMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manualMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton3_onOff, _vm.deviceData.data.mappings.PushButton3_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.inactiveMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton3\",\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowDirectionLeftBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowLeft\"}})],1),_c('div',[_c('ArrowDirectionRightBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowRight\"}})],1)]),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton4_onOff, _vm.deviceData.data.mappings.PushButton4_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton4\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"pump-without-vfd-settings d-flex justify-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"A\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ArrowDirectionLeftBase from '@/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue';\nimport ArrowDirectionRightBase from '@/ui/components/devices/devices/base/ArrowDirectionRightBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent PumpWithoutVFD device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n ArrowDirectionLeftBase,\n ArrowDirectionRightBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class PumpWithoutVFD extends Vue {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PumpWithoutVFD.vue?vue&type=template&id=3fe78a78&scoped=true&\"\nimport script from \"./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PumpWithoutVFD.vue?vue&type=style&index=0&id=3fe78a78&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fe78a78\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"pump\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pump-with-vfd\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton1_onOff, _vm.deviceData.data.mappings.PushButton1_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.autoMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"auto-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manualMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"manual-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton3_onOff, _vm.deviceData.data.mappings.PushButton3_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.inactiveMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton3\",\"icon\":\"inactive-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowDirectionLeftBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowLeft\"}})],1),_c('div',[_c('ArrowDirectionRightBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowRight\"}})],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.PumpWithVFD.mainView.sliderLabel'))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton4_onOff, _vm.deviceData.data.mappings.PushButton4_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton4\",\"icon\":\"push_reset\",\"icon-size\":\"24\",\"button-size\":\"32\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"pump-with-vfd-settings d-flex justify-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"A\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ArrowDirectionLeftBase from '@/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue';\nimport ArrowDirectionRightBase from '@/ui/components/devices/devices/base/ArrowDirectionRightBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent PumpWithVFD device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n ArrowDirectionLeftBase,\n ArrowDirectionRightBase,\n SliderBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class PumpWithVFD extends Vue {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PumpWithVFD.vue?vue&type=template&id=79363389&scoped=true&\"\nimport script from \"./PumpWithVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./PumpWithVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PumpWithVFD.vue?vue&type=style&index=0&id=79363389&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"79363389\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"motor\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motor-with-vfd\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton1_onOff, _vm.deviceData.data.mappings.PushButton1_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.autoMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"auto-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manualMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"manual-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton3_onOff, _vm.deviceData.data.mappings.PushButton3_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.inactiveMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton3\",\"icon\":\"inactive-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})]},proxy:true}])}),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowDirectionLeftBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowLeft\"}})],1),_c('div',[_c('ArrowDirectionRightBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ArrowRight\"}})],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.MotorWithVFD.mainView.sliderLabel'))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton4_onOff, _vm.deviceData.data.mappings.PushButton4_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton4\",\"icon\":\"push_reset\",\"icon-size\":\"24\",\"button-size\":\"32\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"motor-with-vfd-settings d-flex justify-center\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":1000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"A\")])]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ArrowDirectionLeftBase from '@/ui/components/devices/devices/base/ArrowDirectionLeftBase.vue';\nimport ArrowDirectionRightBase from '@/ui/components/devices/devices/base/ArrowDirectionRightBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MotorWithVFD device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n ArrowDirectionLeftBase,\n ArrowDirectionRightBase,\n SliderBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class MotorWithVFD extends Vue {\n @Prop() deviceData!: IDevice;\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotorWithVFD.vue?vue&type=template&id=bf42dada&scoped=true&\"\nimport script from \"./MotorWithVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotorWithVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotorWithVFD.vue?vue&type=style&index=0&id=bf42dada&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"bf42dada\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"mixing-valve\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"mixing-valve\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton1_onOff, _vm.deviceData.data.mappings.PushButton1_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.autoMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton1\",\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton2_onOff, _vm.deviceData.data.mappings.PushButton2_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manualMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton2\",\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton3_onOff, _vm.deviceData.data.mappings.PushButton3_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.inactiveMode`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton3\",\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.Slider_targetValue, _vm.deviceData.data.mappings.OutputField_actualValue],\"view\":\"column\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"text-center\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.MixingValve.mainView.sliderLabel'))+\" \")])]},proxy:true},{key:\"value\",fn:function(){return [_c('SliderBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Slider\",\"is-active\":true,\"state\":_vm.sliderActualValue,\"sending-timeout\":250}})]},proxy:true}])}),_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton4_onOff, _vm.deviceData.data.mappings.PushButton4_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton4\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport SliderBase from '@/ui/components/devices/devices/base/SliderBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent MixingValve device\n */\n@Component({\n components: {\n PushButtonBase,\n OutputFieldBase,\n SliderBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class MixingValve extends Vue {\n @Prop() deviceData!: IDevice;\n\n @State('measurements') measurementsState!: IVariablesState;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n get sliderActualValue() {\n return this.measurements.get(this.deviceData.data.mappings.OutputField_actualValue);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MixingValve.vue?vue&type=template&id=566a6988&scoped=true&\"\nimport script from \"./MixingValve.vue?vue&type=script&lang=ts&\"\nexport * from \"./MixingValve.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MixingValve.vue?vue&type=style&index=0&id=566a6988&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"566a6988\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"ventilator\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"ventilation\"},[_c('div',{staticClass:\"basic-control-field\"},[_c('InputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"InputField\",\"step\":1,\"min\":0,\"max\":100,\"small\":true,\"is-decimal\":false,\"field-rules\":[_vm.rules.required],\"description-styles\":{ paddingRight: '10px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ padding: '0 5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Speed\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"d-flex filter-state\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField1_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"min\":0,\"max\":3000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-1\"},[_vm._v(\"rpm\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center filter-event\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot1\",\"width\":\"15\",\"height\":\"15\"}}),_c('div',{staticClass:\"filter-text\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot1_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.changeSupplyFilter`)))]},proxy:true}])})],1)],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"d-flex filter-state\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField2_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"min\":0,\"max\":3000,\"is-decimal\":true}}),_c('div',{staticClass:\"pl-1\"},[_vm._v(\"rpm\")])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center filter-event\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot2\",\"width\":\"15\",\"height\":\"15\"}}),_c('div',{staticClass:\"filter-text\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.ShowEventDot2_errorWarningState]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.changeExhaustFilter`)))]},proxy:true}])})],1)],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[\n _vm.deviceData.data.mappings.Switch_on,\n _vm.deviceData.data.mappings.Switch_off,\n _vm.deviceData.data.mappings.Switch_state\n ]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.manual`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('SwitchBase',{staticClass:\"py-0 my-0\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"Switch\"}})]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-2\",attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.PushButton_onOff, _vm.deviceData.data.mappings.PushButton_state]},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.reset`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('PushButtonBase',{staticClass:\"mr-2\",attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"PushButton\",\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})]},proxy:true}])})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport SwitchBase from '@/ui/components/devices/devices/base/SwitchBase.vue';\nimport InputFieldBase from '@/ui/components/devices/devices/base/InputFieldBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Ventilation device\n */\n@Component({\n components: {\n SwitchBase,\n InputFieldBase,\n OutputFieldBase,\n ShowEventDotBase,\n PushButtonBase,\n DeviceLayout,\n LabelUnitWrapper,\n },\n})\nexport default class Ventilation extends mixins(Validation) {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Ventilation.vue?vue&type=template&id=03231768&\"\nimport script from \"./Ventilation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Ventilation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Ventilation.vue?vue&type=style&index=0&id=03231768&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-size\":\"x2h\"},on:{\"rerenderDevice\":_vm.rerenderDevice},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"gauge\"},[_c('CurrentValueGaugeChartBase',{attrs:{\"deviceData\":_vm.deviceData,\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"CurrentValueGaugeChart\",\"scaling\":_vm.scaling,\"unit\":_vm.unit,\"is-decimal\":true,\"dnd-grid-container-width\":_vm.dndGridLayoutContainerWidth,\"rerender-key\":_vm.rerenderKey},on:{\"handleRerenderKey\":_vm.handleRerenderKey}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"chartDivNormal\",staticClass:\"gaugeNormal\",attrs:{\"id\":\"chartDivNormal\"}},[_c('VueGauge',{key:_vm.rerenderKey,staticStyle:{\"margin\":\"auto 0\"},attrs:{\"refid\":`gauge${_vm.deviceData.id}`,\"options\":_vm.options}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { throttle } from 'lodash';\n\n/**\n * Component that represent CurrentValueGaugeChart Basic Control\n */\n@Component\nexport default class CurrentValueGaugeChartBase extends BasicControl {\n @Prop() deviceData!: any;\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop() scaling!: any;\n @Prop({ default: 'unit' }) unit!: string;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop({ default: null }) rerenderKey!: number;\n @Prop({ default: null }) dndGridContainerWidth!: any;\n\n options: any = {\n hasNeedle: false,\n rangeLabel: [],\n arcDelimiters: [],\n centralLabel: '',\n chartWidth: null,\n arcColors: [],\n }\n\n @Watch('$vuetify.theme.dark')\n handleThemeChange() {\n this.setOptions({ arcColors: [this.$vuetify.theme.currentTheme.accent, 'lightgray'] });\n this.$emit('handleRerenderKey');\n }\n @Watch('rerenderKey')\n handleDeviceChange() {\n this.setOptions({\n rangeLabel: [this.scaling.min, this.scaling.max],\n arcDelimiters: [this.defineArcDelimiters],\n centralLabel: `${this.rounded}${this.unit}`,\n });\n }\n @Watch('filteredValue')\n onFilteredValueChange() {\n this.$emit('handleRerenderKey');\n }\n\n get actualValue(): any {\n return this.measurements.get(this.mappingsClean.actualValue);\n }\n get rounded() {\n if (!this.isDecimal) return Math.round(this.actualValue);\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return +(`${Math.round(`${this.actualValue}e+2`)}e-2`);\n }\n get filteredValue() {\n if (this.rounded < this.scaling.min) return +this.scaling.min;\n if (this.rounded > this.scaling.max) return +this.scaling.max;\n return this.rounded;\n }\n\n get defineArcDelimiters() {\n const arcState: number = this.filteredValue * (100 / parseInt(this.scaling.max, 10));\n if (arcState === 0) return 0.01;\n else if (arcState === 100) return 99.99;\n else return arcState;\n }\n\n setOptions(optionsConfig: any) {\n const copy: any = JSON.parse(JSON.stringify(optionsConfig));\n this.options = { ...this.options, ...copy };\n }\n\n resizeChart() {\n const element: any = this.$refs.chartDivNormal;\n const isElementWidth: boolean = typeof element?.clientWidth === 'number' && element?.clientWidth < 480;\n const width = isElementWidth ? element.clientWidth : 480;\n this.setOptions({ chartWidth: width });\n\n this.$emit('handleRerenderKey');\n }\n resizeChartThrottle = throttle(this.resizeChart, 200)\n\n async mounted() {\n await this.$nextTick();\n\n this.setOptions({\n rangeLabel: [this.scaling.min, this.scaling.max],\n arcDelimiters: [this.defineArcDelimiters],\n centralLabel: `${this.rounded}${this.unit}`,\n arcColors: [this.$vuetify.theme.currentTheme.accent, 'lightgray'],\n });\n this.resizeChart();\n window.addEventListener('resize', this.resizeChartThrottle);\n\n if (!this.$vuetify.breakpoint.mobile) {\n const initWidth: number = +(this.dndGridContainerWidth / 2 - 60);\n const width: number = initWidth > 480 ? 480 : initWidth;\n this.setOptions({ chartWidth: width });\n }\n }\n\n destroyed() {\n window.removeEventListener('resize', this.resizeChartThrottle);\n }\n\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentValueGaugeChartBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentValueGaugeChartBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CurrentValueGaugeChartBase.vue?vue&type=template&id=0e7d1a16&\"\nimport script from \"./CurrentValueGaugeChartBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./CurrentValueGaugeChartBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CurrentValueGaugeChartBase.vue?vue&type=style&index=0&id=0e7d1a16&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport CurrentValueGaugeChartBase from '@/ui/components/devices/devices/base/CurrentValueGaugeChartBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent Gauge device\n */\n@Component({\n components: {\n CurrentValueGaugeChartBase,\n DeviceLayout,\n },\n})\nexport default class Gauge extends Vue {\n @Prop() deviceData!: IDevice;\n @Prop() chartWidth!: number;\n @Prop() dndGridLayoutContainerWidth!: number;\n\n rerenderKey = 0\n\n get unit() {\n return this.deviceData.data.meta.unit;\n }\n get scaling() {\n return this.deviceData.data.meta.scaling;\n }\n\n handleRerenderKey() {\n this.rerenderKey += 1;\n }\n\n rerenderDevice(data: any) {\n this.rerenderKey += 1;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Gauge.vue?vue&type=template&id=1f59e114&scoped=true&\"\nimport script from \"./Gauge.vue?vue&type=script&lang=ts&\"\nexport * from \"./Gauge.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Gauge.vue?vue&type=style&index=0&id=1f59e114&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f59e114\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary device-x3h regent\"},[_c('v-toolbar',{staticClass:\"primary\",attrs:{\"flat\":\"\"}},[_c('v-icon',[_vm._v(\"fa-laptop-house\")]),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.deviceData.name))]),_c('v-spacer'),_c('v-btn',{on:{\"click\":_vm.open}},[_vm._v(\"Visualisierung\")]),_c('DeviceActions',{attrs:{\"device\":_vm.deviceData}})],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"regent-img text-center\"},[_c('img',{attrs:{\"src\":require(\"../../../assets/regent.jpg\"),\"alt\":\"regent\"}})])]),_c('v-col',{staticClass:\"pt-0 regent-content\",attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Stockwerk\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},_vm._l((_vm.stockwerk),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1),_c('v-card',[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Beacon BRF1L\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},_vm._l((_vm.beacons),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1),_c('v-card',[_c('v-toolbar',{attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Platz BRF1L\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0\",attrs:{\"dense\":\"\"}},_vm._l((_vm.platz),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1)],1)],1)],1),_c('ShowEventBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEvent\"}}),_c('v-card-actions',{staticClass:\"d-flex justify-end\",staticStyle:{\"position\":\"absolute\",\"bottom\":\"0\",\"width\":\"100%\"}},[_vm._t(\"dnd\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport {State} from 'vuex-class';\nimport {IVariablesState} from '@/store/modules/measurements/types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent RegentLighting device\n */\n@Component({\n components: {\n DeviceActions,\n ShowEventBase,\n OutputFieldBase,\n },\n})\nexport default class RegentLighting extends Vue {\n @Prop() deviceData!: IDevice;\n\n @State('measurements') measurementsState!: IVariablesState;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n open() {\n window.open(\"https://regent-poc.lynus.dev\", \"_blank\", \"toolbar=yes,scrollbars=yes,resizable=yes\");\n }\n\n get stockwerk() {\n return [\n {name: 'Temperatur', value: '25.5 °C'},\n {name: 'Luftfeuchtigkeit', value: '52 %rH'},\n {name: 'CO2-eq', value: '1431 ppm'},\n {name: 'TVOC', value: '998 ppb'},\n {name: 'Auslastung', value: '77 %'},\n {name: 'Warm Desks', value: '23 %'},\n {name: 'Lighting', value: '250 Lux'},\n ];\n }\n\n get beacons() {\n return [\n {name: 'Temperatur', value: `${this.temperature} °C`},\n {name: 'Luftfeuchtigkeit', value: `${this.humidity} % rH`},\n {name: 'Helligkeit', value: `${this.brightness} Lux`},\n {name: 'CO2-eq', value: `${this.co2eq} ppm`},\n {name: 'TVOC', value: `${this.tvoc} ppb`},\n ];\n }\n\n get platz() {\n return [\n {name: 'Anwesenheit', value: `${this.deskinuse ? 'Ja' : 'Nein'}`},\n {name: 'Bewegung', value: `${this.presence ? 'Ja' : 'Nein'}`},\n {name: 'Warm Desk', value: 'Nein'},\n ];\n }\n\n get brightness() {\n if (this.deviceData.data.mappings.clc_brightness) {\n return this.measurements.get(this.deviceData.data.mappings.clc_brightness);\n }\n }\n\n get co2eq() {\n if (this.deviceData.data.mappings.clc_co2eq) {\n return this.measurements.get(this.deviceData.data.mappings.clc_co2eq);\n }\n }\n\n get tvoc() {\n if (this.deviceData.data.mappings.clc_tvoc) {\n return this.measurements.get(this.deviceData.data.mappings.clc_tvoc);\n }\n }\n\n get humidity() {\n if (this.deviceData.data.mappings.clc_humidity) {\n return this.measurements.get(this.deviceData.data.mappings.clc_humidity);\n }\n }\n\n get temperature() {\n if (this.deviceData.data.mappings.clc_temperature) {\n return this.measurements.get(this.deviceData.data.mappings.clc_temperature);\n }\n }\n\n get deskinuse() {\n if (this.deviceData.data.mappings.clc_deskinuse) {\n return this.measurements.get(this.deviceData.data.mappings.clc_deskinuse);\n }\n }\n\n get presence() {\n if (this.deviceData.data.mappings.clc_presence) {\n return this.measurements.get(this.deviceData.data.mappings.clc_presence);\n }\n }\n\n // mounted() {\n // console.log(this.deviceData);\n // }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegentLighting.vue?vue&type=template&id=087471e8&scoped=true&\"\nimport script from \"./RegentLighting.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegentLighting.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegentLighting.vue?vue&type=style&index=0&id=087471e8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"087471e8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.errorWarningMqtt,\"settings-modal-width\":\"1400\"},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [_c('v-icon',{attrs:{\"size\":\"25\"}},[_vm._v(\"fa-chart-bar\")])]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"heating-circuit-optimisation\"},[_c('div',{staticClass:\"d-flex justify-center align-center\"},[_c('MinusBase',{attrs:{\"color\":\"#9BE0ED\"},on:{\"handleMinus\":_vm.handleMinus}}),_c('div',{staticClass:\"actual-value d-flex px-2\"},[_c('OutputFieldBaseHTTP',{attrs:{\"actual-value-state\":_vm.actualValueState,\"is-decimal\":true}}),_c('span',[_vm._v(\"°C\")])],1),_c('PlusBase',{attrs:{\"color\":\"#ED5A24\"},on:{\"handlePlus\":_vm.handlePlus}})],1),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.heatingMqtt,\"instance\":\"ShowEventDot1\",\"items\":[[1, '#ED5A24']],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.heating`)))])],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.readyMqtt,\"instance\":\"ShowEventDot2\",\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.mpcReady`)))])],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotBaseHTTP',{attrs:{\"state\":!_vm.serviceTooWarm,\"active-value\":\"1\",\"active-color\":\"#30bf54\",\"inactive-color\":\"#ED5A24\",\"width\":\"15\",\"height\":\"15\",\"active-message\":_vm.$t(`${_vm.langPath}.mainView.service.on`),\"inactive-message\":_vm.$t(`${_vm.langPath}.mainView.service.off`)}})],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"heating-circuit-optimisation-settings\"},[_c('div',{staticClass:\"heating-circuit-optimisation-settings-form\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.loweringModeTabs),function(hItem,hIndex){return _c('v-tab',{key:hIndex},[_vm._v(\" \"+_vm._s(hItem.locale[hIndex])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"min-height\":\"162px\"}},[_c('div',{staticStyle:{\"width\":\"50%\",\"margin-top\":\"10px\"}},[_c('div',{staticClass:\"heating-circuit-optimisation-settings-field\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField1\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}]),model:{value:(_vm.loweringModeStarts.hours),callback:function ($$v) {_vm.$set(_vm.loweringModeStarts, \"hours\", $$v)},expression:\"loweringModeStarts.hours\"}})],1),_c('div',{staticClass:\"heating-circuit-optimisation-settings-field\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField3\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}]),model:{value:(_vm.loweringModeStarts.minutes),callback:function ($$v) {_vm.$set(_vm.loweringModeStarts, \"minutes\", $$v)},expression:\"loweringModeStarts.minutes\"}})],1),_c('div',{staticClass:\"heating-circuit-optimisation-settings-field\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField2\",\"step\":1,\"min\":0,\"max\":23,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}]),model:{value:(_vm.loweringModeEnds.hours),callback:function ($$v) {_vm.$set(_vm.loweringModeEnds, \"hours\", $$v)},expression:\"loweringModeEnds.hours\"}})],1),_c('div',{staticClass:\"heating-circuit-optimisation-settings-field\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField4\",\"step\":1,\"min\":0,\"max\":59,\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"height\":24,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}]),model:{value:(_vm.loweringModeEnds.minutes),callback:function ($$v) {_vm.$set(_vm.loweringModeEnds, \"minutes\", $$v)},expression:\"loweringModeEnds.minutes\"}})],1)])])]),_c('v-tab-item',[_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"min-height\":\"162px\"}},[_c('div',{staticStyle:{\"width\":\"50%\",\"margin-top\":\"10px\"}},[_c('div',{staticClass:\"heating-circuit-optimisation-settings-field\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField4\",\"step\":0.5,\"min\":5,\"max\":30,\"field-width\":\"50%\",\"field-rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n ],\"is-decimal\":false,\"height\":24,\"description-styles\":{ width: '300px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.HeatingCircuitOptimization.settingsView.loweringTemperature')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.loweringMode),callback:function ($$v) {_vm.loweringMode=$$v},expression:\"loweringMode\"}})],1),_c('div',{staticClass:\"heating-circuit-optimisation-settings-field mt-1\"},[_c('InputFieldExternal',{attrs:{\"instance\":\"InputField4\",\"step\":1,\"min\":15,\"max\":20,\"field-width\":\"50%\",\"field-rules\":[_vm.rules.required],\"is-decimal\":false,\"height\":24,\"description-styles\":{ width: '300px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.HeatingCircuitOptimization.settingsView.serviceOffTemperature')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}]),model:{value:(_vm.serviceOffTemperature),callback:function ($$v) {_vm.serviceOffTemperature=$$v},expression:\"serviceOffTemperature\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.settingsView.activateLoweringMode`)))]),_c('div',[_c('v-switch',{attrs:{\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\"},nativeOn:{\"!click\":function($event){return _vm.handleLoweringModeActive($event)}},model:{value:(_vm.loweringModeActive),callback:function ($$v) {_vm.loweringModeActive=$$v},expression:\"loweringModeActive\"}})],1)])])])]),_c('v-tab-item',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"pt-2\",staticStyle:{\"min-height\":\"162px\",\"width\":\"300px\"}},[_c('v-select',{attrs:{\"items\":_vm.energySavingModesList,\"label\":\"Modes\",\"item-text\":\"title\",\"item-value\":\"value\",\"hide-selected\":\"\",\"flat\":\"\",\"solo\":\"\",\"dense\":\"\"},on:{\"change\":function($event){return _vm.handleEnergySavingMode($event)}},model:{value:(_vm.energySavingMode),callback:function ($$v) {_vm.energySavingMode=$$v},expression:\"energySavingMode\"}})],1)])])],1),(_vm.tab !== 2)?_c('div',{staticClass:\"heating-circuit-optimisation-settings-form-button\"},[_c('div',{staticClass:\"pt-8\"},[_c('v-btn',{attrs:{\"depressed\":\"\",\"disabled\":_vm.btnValidation,\"color\":\"accent\",\"rounded\":\"\"},on:{\"click\":_vm.sendModeSettings}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)]):_vm._e()],1),_c('div',{staticClass:\"bottom\"},[_c('SettingsCharts',{attrs:{\"device-id\":_vm.mpcId}})],1)])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-btn',{attrs:{\"small\":\"\",\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\"},on:{\"click\":_vm.handleMinus}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent MinusBase component\n */\n@Component\nexport default class MinusBase extends Vue {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: 'red' }) color!: string;\n @Prop({ default: false }) fab!: boolean;\n @Prop({ default: 'minus' }) icon!: string;\n\n handleMinus() {\n this.$emit('handleMinus');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinusBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinusBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MinusBase.vue?vue&type=template&id=68a425d3&scoped=true&\"\nimport script from \"./MinusBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./MinusBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"68a425d3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-btn',{attrs:{\"small\":\"\",\"color\":_vm.color,\"rounded\":!_vm.fab,\"fab\":_vm.fab,\"elevation\":\"0\"},on:{\"click\":_vm.handlePlus}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":\"24\",\"color\":\"white\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent PlusBase component\n */\n@Component\nexport default class PlusBase extends Vue {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: 'green' }) color!: string;\n @Prop({ default: false }) fab!: boolean;\n @Prop({ default: 'plus' }) icon!: string;\n\n handlePlus() {\n this.$emit('handlePlus');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlusBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlusBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PlusBase.vue?vue&type=template&id=08a8fda3&scoped=true&\"\nimport script from \"./PlusBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./PlusBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08a8fda3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"show-event-dot-base-http\"},[_c('div',{staticClass:\"show-event-dot-base-http-indicator\",style:(`background: ${_vm.warningState}; width: ${_vm.width}px; height: ${_vm.height}px`)}),(_vm.activeMessage || _vm.inactiveMessage)?_c('div',{staticClass:\"show-event-dot-base-http-label pl-1\"},[_vm._v(\" \"+_vm._s(_vm.state ? _vm.activeMessage : _vm.inactiveMessage)+\" \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent ShowEventDotBase component.\n */\n@Component\nexport default class ShowEventDotBase extends Vue {\n @Prop({ default: false }) state!: boolean;\n @Prop({ default: '#ff0000' }) activeColor!: string;\n @Prop({ default: '#bebebe' }) inactiveColor!: string;\n @Prop({ default: null }) activeMessage!: string;\n @Prop({ default: null }) inactiveMessage!: string;\n @Prop({ default: 20 }) width!: number | string;\n @Prop({ default: 20 }) height!: number | string;\n\n get warningState() {\n return this.state ? this.activeColor : this.inactiveColor;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShowEventDotBase.vue?vue&type=template&id=88cff50e&scoped=true&\"\nimport script from \"./ShowEventDotBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShowEventDotBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShowEventDotBase.vue?vue&type=style&index=0&id=88cff50e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"88cff50e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._v(\" \"+_vm._s(_vm.localisation)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent OutputFieldBase component\n */\n@Component\nexport default class OutputFieldBase extends Vue {\n @Prop() min!: number;\n @Prop() max!: number;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop() actualValueState!: any;\n\n get actualValue(): any {\n return this.actualValueState;\n }\n\n /**\n * Round actualValue\n */\n get mod() {\n if (!this.isDecimal) return Math.round(this.actualValue);\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return +(`${Math.round(`${this.actualValue}e+3`)}e-3`);\n }\n\n /**\n * Leave a maximum of two characters after comma\n */\n get filtered(): any {\n return Number.isInteger(this.mod) ? this.mod : this.mod.toFixed(2);\n }\n get localisation() {\n const filteredByMinMax = () => {\n if (this.min > +this.filtered) return this.min;\n if (this.max < +this.filtered) return this.max;\n return this.filtered;\n };\n return Intl.NumberFormat('de-GE').format(filteredByMinMax());\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OutputFieldBase.vue?vue&type=template&id=49948d24&\"\nimport script from \"./OutputFieldBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./OutputFieldBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heating-circuit-optimization-charts\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[(index === _vm.tab)?_c('div',[_c(item.component,{tag:\"component\",attrs:{\"device-id\":item.deviceData}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"forecast\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\",\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c(item.component,{key:_vm.rerenderKey,tag:\"component\",attrs:{\"chart-type\":item.chartType,\"series\":item.series,\"yAxis\":item.yAxis,\"chart-width\":item.chartWidth,\"chart-title\":item.title}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport { Action } from 'vuex-class';\n\n/**\n * Component that represent forecast chart.\n */\n@Component({\n components: {\n BaseChart,\n },\n})\nexport default class Forecast extends Vue {\n @Prop() deviceId: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n timer: any = null\n rerenderKey = 0\n\n mpc: any = null\n\n tab: any = null\n fullscreen = false\n\n yAxisTempValve = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: 0,\n max: 40,\n lineColor: '#6ca2d8',\n labels: {\n format: '{value} °C',\n style: {\n color: '#6ca2d8',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#90ed7d',\n labels: {\n format: '{value} %',\n style: {\n color: '#90ed7d',\n },\n },\n },\n ]\n yAxisWeather = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: -20,\n max: 50,\n lineColor: '#ab5050',\n labels: {\n format: '{value} °C',\n style: {\n color: '#ab5050',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 1500,\n lineColor: '#ab8a50',\n labels: {\n format: '{value} W/m2',\n style: {\n color: '#ab8a50',\n },\n },\n },\n ]\n\n /**\n * Prepares series for chart\n */\n get seriesTempValve() {\n return [\n {\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.tempValve.roomTemp'),\n type: 'line',\n yAxis: 0,\n color: '#6ca2d8',\n data: this.roomTemperatureForecast,\n },\n {\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.tempValve.valvePosition'),\n type: 'line',\n yAxis: 1,\n color: '#90ed7d',\n data: this.optimizedControl,\n },\n ];\n }\n\n /**\n * Prepares series for chart\n */\n get seriesWeather() {\n return [\n {\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.weather.air'),\n type: 'line',\n yAxis: 0,\n color: '#ab5050',\n data: this.modifyWeatherForecastTime.air_temperature_forecast,\n },\n {\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.weather.globalRadiation'),\n type: 'line',\n yAxis: 1,\n color: '#ab8a50',\n data: this.modifyWeatherForecastTime.global_radiation_horizontal,\n },\n ];\n }\n\n get langPath() {\n return 'mlModel.HeatingCircuitOptimization.settingsView.forecastTabs';\n }\n\n get charts() {\n if (this.mpc) {\n return this.mpc?.data?.meta.charts;\n }\n return null;\n }\n\n /**\n * Converts time to milliseconds for every item of weather_forecast array\n */\n get modifyWeatherForecastTime() {\n if (this.charts) {\n const res = Object.entries(this.charts.weather_forecast).map((item: any) => {\n return [item[0], item[1].map((i: any) => [i[0] * 1000, i[1]])];\n });\n let obj: any = {};\n res.forEach((item: any) => obj = { ...obj, ...{ [item[0]]: item[1] } });\n return obj;\n } else {\n return {\n air_temperature_forecast: [],\n diffuse_radiation_horizontal: [],\n direct_normal_radiation: [],\n global_radiation_horizontal: [],\n global_radiation_inclined: [],\n };\n }\n }\n\n /**\n * Converts time to milliseconds for every item of optimized_control array\n */\n get optimizedControl() {\n if (this.charts) {\n return this.charts.optimized_control.map((item: any) => [item[0] * 1000, item[1]]);\n } else {\n return [];\n }\n }\n\n /**\n * Converts time to milliseconds for every item of room_temperature_forecast array\n */\n get roomTemperatureForecast() {\n if (this.charts) {\n return this.charts.room_temperature_forecast.map((item: any) => [item[0] * 1000, item[1]]);\n } else {\n return [];\n }\n }\n\n get settingsViewLang() {\n return 'mlModel.HeatingCircuitOptimization.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'Temp/Valve',\n locale: this.langPath,\n component: 'BaseChart',\n chartType: 'line',\n chartWidth: null,\n series: this.seriesTempValve,\n yAxis: this.yAxisTempValve,\n },\n {\n title: 'Weather',\n locale: this.langPath,\n component: 'BaseChart',\n chartType: 'line',\n chartWidth: null,\n series: this.seriesWeather,\n yAxis: this.yAxisWeather,\n },\n ];\n }\n\n /**\n * Updates chart data every 90 seconds\n */\n fetchChartData() {\n this.timer = setInterval(async () => {\n this.mpc = await this.fetchMPCData(this.deviceId);\n this.rerenderKey += 1;\n }, 900000);\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceId);\n this.fetchChartData();\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=a1ffbbb2&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Forecast.vue?vue&type=style&index=0&id=a1ffbbb2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mqtt-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-data\":_vm.tempValve}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n/**\n * Component that represent chart of actual data according to chosen period.\n */\n@Component({\n components: {\n BaseChartWrapper,\n },\n})\nexport default class MqttCharts extends Vue {\n @Prop() deviceId!: any;\n\n tab: any = null\n\n get deviceIdMod() {\n if (this.deviceId) return this.deviceId.replace(/-/g, '_');\n return null;\n }\n\n /**\n * Prepares chart options object suitable for the chart component\n */\n get tempValve() {\n return {\n name: '',\n data: {\n mappings: {\n value_1: `MPC.${this.deviceIdMod}.temp`,\n value_2: `MPC.${this.deviceIdMod}.valve`,\n },\n options: {\n value_1: {\n agg: 'last',\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.chart.roomTemp'),\n scaling: {\n max: 40,\n min: 0,\n },\n type: 'line',\n unit: '°C',\n },\n value_2: {\n agg: 'last',\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.chart.valvePosition'),\n scaling: {\n max: 100,\n min: 0,\n },\n type: 'line',\n unit: '%',\n },\n },\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Charts.vue?vue&type=template&id=8a59a2fc&\"\nimport script from \"./Charts.vue?vue&type=script&lang=ts&\"\nexport * from \"./Charts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Charts.vue?vue&type=style&index=0&id=8a59a2fc&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Forecast.vue';\nimport Charts from '@/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/Charts.vue';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in HeatingCircuitOptimization.\n */\n@Component({\n components: {\n Forecast,\n Charts,\n },\n})\nexport default class SettingsCharts extends Vue {\n @Prop() deviceId!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.HeatingCircuitOptimization.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'Chart',\n locale: this.langPath,\n component: 'Charts',\n deviceData: this.deviceId,\n },\n {\n title: 'Forecast',\n locale: this.langPath,\n component: 'Forecast',\n deviceData: this.deviceId,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=50d60966&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=50d60966&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action, Mutation } from 'vuex-class';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport MinusBase from '@/ui/components/devices/mpc/base/MinusBase.vue';\nimport PlusBase from '@/ui/components/devices/mpc/base/PlusBase.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport ShowEventDotBaseHTTP from '@/ui/components/devices/mpc/base/ShowEventDotBase.vue';\nimport OutputFieldBaseHTTP from '@/ui/components/devices/mpc/base/OutputFieldBase.vue';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport SettingsCharts from '@/ui/components/devices/mpc/HeatingCircuitOptimization/SettingsCharts/index.vue';\nimport ShowEventBase from '@/ui/components/devices/devices/base/ShowEventBase.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Component that represent HeatingCircuitOptimization MPC device\n */\n@Component({\n components: {\n SettingsCharts,\n ShowEventBase,\n DeviceActions,\n SettingsView,\n MinusBase,\n PlusBase,\n ShowEventDotBase,\n ShowEventDotBaseHTTP,\n OutputFieldBaseHTTP,\n InputFieldExternal,\n MPCLayout,\n },\n})\nexport default class HeatingCircuitOptimization extends mixins(Validation) {\n @Prop() deviceData!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n @Action('mpc/updateMPCTiming') updateMPCTiming!: any;\n @Mutation('app/setReport') setReport!: any;\n\n isSettingsView = false\n mpc: any = null\n actualValueState: any = null\n isLoweringMode = false\n // default values for modes\n loweringModeStarts: any = {\n hours: '22',\n minutes: '0',\n }\n loweringModeEnds: any = {\n hours: '6',\n minutes: '0',\n }\n loweringModeActive = false\n normalMode: any = null\n loweringMode: any = null\n energySavingMode = null\n\n serviceOffTemperature: any = 15\n\n tab: any = null\n\n get energySavingModesList() {\n const t: any = this.$t('mlModel.HeatingCircuitOptimization.settingsView.energySavingModesList');\n return [\n { title: t.comfort, value: 0 },\n { title: t.balanced, value: 1 },\n { title: t.energySaving, value: 2 },\n ];\n }\n\n get loweringModeTabs() {\n const locale = this.$t(`${this.langPath}.settingsView.loweringModeTabs`);\n return [\n { locale },\n { locale },\n { locale },\n ];\n }\n\n get langPath() {\n return `mlModel.${this.deviceData.data.type}`;\n }\n\n get btnValidation() {\n const minMax = this.loweringMode < 5 || this.loweringMode > 30;\n const pattern = /^\\-?\\d+(?:\\,|.\\d{1,2})?$/;\n const lowMin = this.loweringModeStarts.minutes < 0 || this.loweringModeStarts.minutes > 59;\n const normMin = this.loweringModeEnds.minutes < 0 || this.loweringModeEnds.minutes > 59;\n const lowHours = this.loweringModeStarts.hours < 0 || this.loweringModeStarts.hours > 23;\n const normHours = this.loweringModeEnds.hours < 0 || this.loweringModeEnds.hours > 23;\n const serviceOff = this.serviceOffTemperature < 15 || this.serviceOffTemperature > 20;\n return minMax || !pattern.test(this.loweringMode) || lowMin || lowHours || normHours || normMin || serviceOff;\n }\n\n get mpcId() {\n if (this.deviceData) return this.deviceData.id;\n return null;\n }\n\n get heating() {\n return this.deviceData?.data?.meta?.controllerMappings?.newValvePosition;\n }\n get ready() {\n return this.deviceData?.data?.meta?.controllerMappings?.mpcReady;\n }\n\n get errorWarningMqtt() {\n return {\n ShowEvent_errorWarningState: this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n get heatingMqtt() {\n return {\n ShowEventDot1_errorWarningState: this.heating,\n };\n }\n get readyMqtt() {\n return {\n ShowEventDot2_errorWarningState: this.ready,\n };\n }\n\n get serviceTooWarm() {\n return this.mpc?.data?.meta?.too_warm;\n }\n\n async setActualState() {\n const { lowering_mode_active } = this.deviceData.data.meta.timing;\n if (typeof lowering_mode_active === 'boolean' && lowering_mode_active === false) {\n this.actualValueState = this.normalMode;\n } else {\n this.actualValueState = !this.isLoweringMode ? this.normalMode : this.loweringMode;\n }\n\n // this.actualValueState = !this.isLoweringMode ? this.normalMode : this.loweringMode;\n }\n async initTimings() {\n this.normalMode = this.deviceData.data.meta.timing.high_set_temperature;\n this.loweringMode = this.deviceData.data.meta.timing.low_set_temperature;\n this.serviceOffTemperature = this.deviceData.data.meta.timing.stop_heating;\n this.loweringModeStarts.hours = this.deviceData.data.meta.timing.low_set_temperature_start;\n this.loweringModeStarts.minutes = this.deviceData.data.meta.timing.low_set_temperature_start_min;\n this.loweringModeEnds.hours = this.deviceData.data.meta.timing.high_set_temperature_start;\n this.loweringModeEnds.minutes = this.deviceData.data.meta.timing.high_set_temperature_start_min;\n this.loweringModeActive = this.deviceData.data.meta.timing.lowering_mode_active;\n this.energySavingMode = this.deviceData.data.meta.timing.energy_type;\n }\n async initLoweringModeActive() {\n this.loweringModeActive = this.deviceData.data.meta.timing.lowering_mode_active;\n }\n async defineLoweringMode() {\n const currentHours = new Date().getHours();\n const currentMinutes = new Date().getMinutes();\n const isLoweringHoursEqual = currentHours === +this.loweringModeStarts.hours;\n const isLoweringHours = currentHours > +this.loweringModeStarts.hours;\n const isLoweringMinutes = currentMinutes >= +this.loweringModeStarts.minutes;\n const isStart = () => {\n if (isLoweringHours) return true;\n if (isLoweringHoursEqual) return isLoweringMinutes;\n return false;\n };\n // console.log('isLoweringStarts: ', isStart());\n const isLoweringHoursEqual2 = currentHours === +this.loweringModeEnds.hours;\n const isLoweringHours2 = currentHours < +this.loweringModeEnds.hours;\n const isLoweringMinutes2 = currentMinutes <= +this.loweringModeEnds.minutes;\n const isEnd = () => {\n if (isLoweringHours2) return false;\n if (isLoweringHoursEqual2) return !isLoweringMinutes2;\n return true;\n };\n // console.log('isLoweringEnds: ', isEnd());\n if ((!isStart() && !isEnd()) || (isStart() && !isEnd()) || (isStart() && isEnd())) this.isLoweringMode = true;\n else this.isLoweringMode = false;\n }\n\n async sendModeSettings() {\n const { high_set_temperature, low_set_temperature, lowering_mode_active } = this.deviceData.data.meta.timing;\n\n const newTiming = {\n high_set_temperature,\n high_set_temperature_start: +this.loweringModeEnds.hours,\n high_set_temperature_start_min: +this.loweringModeEnds.minutes,\n low_set_temperature: +this.loweringMode,\n low_set_temperature_start: +this.loweringModeStarts.hours,\n low_set_temperature_start_min: +this.loweringModeStarts.minutes,\n lowering_mode_active,\n stop_heating: +this.serviceOffTemperature,\n };\n const copy = JSON.parse(JSON.stringify(this.deviceData));\n copy.data.meta.timing = newTiming;\n await this.updateMPCTiming(copy);\n await this.defineLoweringMode();\n await this.setActualState();\n }\n\n async handleLoweringModeActive(e: MouseEvent) {\n e.stopPropagation();\n e.preventDefault();\n\n const copy = JSON.parse(JSON.stringify(this.deviceData));\n copy.data.meta.timing = { ...copy.data.meta.timing, lowering_mode_active: !this.loweringModeActive };\n await this.updateMPCTiming(copy);\n await this.initLoweringModeActive();\n await this.setActualState();\n }\n async handleEnergySavingMode(e: MouseEvent) {\n const copy = JSON.parse(JSON.stringify(this.deviceData));\n copy.data.meta.timing = { ...copy.data.meta.timing, energy_type: this.energySavingMode };\n await this.updateMPCTiming(copy);\n await this.initLoweringModeActive();\n await this.setActualState();\n }\n\n async handleMinus() {\n if (this.actualValueState <= 5) return;\n this.actualValueState -= 0.5;\n const copy = JSON.parse(JSON.stringify(this.deviceData));\n\n if (!this.isLoweringMode) {\n this.normalMode = this.actualValueState;\n copy.data.meta.timing = { ...copy.data.meta.timing, ...{ high_set_temperature: this.actualValueState } };\n await this.updateMPCTiming(copy);\n this.setReport({\n type: 'success',\n message: this.$t('mlModel.HeatingCircuitOptimization.mainView.handleMinusMessage'),\n value: true,\n });\n } else {\n this.loweringMode = this.actualValueState;\n copy.data.meta.timing = { ...copy.data.meta.timing, ...{ low_set_temperature: this.actualValueState } };\n await this.updateMPCTiming(copy);\n this.setReport({\n type: 'success',\n message: this.$t('mlModel.HeatingCircuitOptimization.mainView.handleMinusMessage'),\n value: true,\n });\n }\n }\n handlePlus() {\n if (this.actualValueState >= 30) return;\n this.actualValueState += 0.5;\n const copy = JSON.parse(JSON.stringify(this.deviceData));\n\n if (!this.isLoweringMode) {\n this.normalMode = this.actualValueState;\n copy.data.meta.timing = { ...copy.data.meta.timing, ...{ high_set_temperature: this.actualValueState } };\n this.updateMPCTiming(copy);\n } else {\n this.loweringMode = this.actualValueState;\n copy.data.meta.timing = { ...copy.data.meta.timing, ...{ low_set_temperature: this.actualValueState } };\n this.updateMPCTiming(copy);\n }\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n // console.log(`HCO (${this.deviceData.name}): `, this.mpc);\n await this.initTimings();\n await this.defineLoweringMode();\n await this.setActualState();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=824a3d2c&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=824a3d2c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('AnomalyDetection',_vm._b({},'AnomalyDetection',{ deviceData: _vm.deviceData, chartWidth: _vm.chartWidth },false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"anomaly-detection\"},[_c('div',{staticClass:\"anomaly-detection__header\"},[_vm._v(_vm._s(_vm.deviceData.name))]),_c('div',{staticClass:\"deviceBackground anomaly-detection__body\"},[_c('BaseChart',{attrs:{\"chart-data\":_vm.deviceData,\"chart-width\":_vm.chartWidth,\"chart-height\":453,\"is-threshold-line\":true,\"min-number-of-series-for-wide-chart\":4,\"showTotalOfSeries\":true},on:{\"handleAutarkiegrad\":function($event){return _vm.$emit('handleAutarkiegrad', $event)}}}),_c('div',{staticClass:\"d-flex justify-end\"},[(_vm.showAnomalyTooltip)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"red\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.chartTooltips.anomalyScoreInfo'))+\" \")]},proxy:true}],null,false,3773987771)}):_vm._e()],1)],1),_c('div',{staticClass:\"device-dnd-button\"},[_vm._t(\"dnd\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/charts/charts/BaseChart.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Getter } from 'vuex-class';\nimport { ChartData } from '@/types/chart.types';\n\n@Component({\n components: {\n BaseChart,\n InfoTooltip,\n },\n})\nexport default class AnomalyDetection extends Vue {\n @Prop() deviceData!: ChartData;\n @Prop() chartWidth!: number;\n @Getter('measurements/measurementsKeys') measurementsKeys!: any;\n\n showAnomalyTooltip = false;\n\n created() {\n // we are having an anomaly chart -> add anomaly score series, if it has data. otherwise show info tooltip.\n const newList = this.deviceData.data.chartOptions.filter((element: any) => element.name !== 'Anomaly Score');\n const localName: any = this.$t('modals.manageAnomalyDetection.form.anomalyScore');\n const anomalyScoreVariable = `AN.${this.deviceData?.id?.replace(/-/g, '_')}.score`;\n\n if (this.measurementsKeys.includes(anomalyScoreVariable)) {\n newList.push({\n agg: 'avg',\n name: localName,\n scaling: {\n min: 0,\n max: 100,\n },\n seriesType: 'AnomalyScore',\n type: 'line',\n unit: '%',\n var: anomalyScoreVariable,\n });\n } else {\n this.showAnomalyTooltip = true;\n }\n this.deviceData.data.chartOptions = newList;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnomalyDetection.vue?vue&type=template&id=61daf12e&\"\nimport script from \"./AnomalyDetection.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnomalyDetection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnomalyDetection.vue?vue&type=style&index=0&id=61daf12e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnomalyDetection from '@/ui/components/devices/anomalyDetection/AnomalyDetection.vue';\nimport { ChartData } from '@/types/chart.types';\n\n/**\n * History anomaly detection device\n */\n@Component({\n components: {\n AnomalyDetection,\n },\n})\nexport default class HistoryAnomalyDetection extends Vue {\n @Prop() deviceData!: ChartData;\n @Prop() chartWidth!: number;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HistoryAnomalyDetection.vue?vue&type=template&id=0ed7d3ca&\"\nimport script from \"./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"\nexport * from \"./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HistoryAnomalyDetection.vue?vue&type=style&index=0&id=0ed7d3ca&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('AnomalyDetection',_vm._b({},'AnomalyDetection',{ deviceData: _vm.deviceData, chartWidth: _vm.chartWidth },false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnomalyDetection from '@/ui/components/devices/anomalyDetection/AnomalyDetection.vue';\nimport { ChartData } from '@/types/chart.types';\n\n/**\n * Stream anomaly detection device\n */\n@Component({\n components: {\n AnomalyDetection,\n },\n})\nexport default class StreamAnomalyDetection extends Vue {\n @Prop() deviceData!: ChartData;\n @Prop() chartWidth!: number;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StreamAnomalyDetection.vue?vue&type=template&id=41ad39d1&\"\nimport script from \"./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"\nexport * from \"./StreamAnomalyDetection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.showEventGeneralErrorWarning,\"is-charts\":true,\"device-icon\":\"temperature\",\"device-size\":\"x5h\",\"settings-modal-width\":\"700\"},on:{\"rerenderDevice\":_vm.rerenderDevice},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"setpoint-optimizer d-flex flex-column justify-center\"},[_c('SetpointActualView',{attrs:{\"deviceData\":_vm.deviceData,\"forecast-data\":_vm.predictedSetpoint}}),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.mainView.serviceReady')))]),_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.showEventDotServiceReady,\"instance\":\"ShowEventDot\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}})],1)],1)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',[(_vm.mpc)?_c('SetpointOptimizerCharts',{attrs:{\"all-device-data\":_vm.mpc}}):_vm._e()],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{style:(_vm.enableMinWidth ? 'height: 650px; min-width:700px' : 'height: 650px;')},[_c('EnergyVisualisation',{attrs:{\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData}}),(_vm.showDialog && _vm.openedSystem)?_c('SystemDialogSetpointOptimizer',{attrs:{\"showDialog\":_vm.showDialog,\"openedSystem\":_vm.openedSystem,\"deviceData\":_vm.deviceData,\"forecastData\":_vm.forecastData},on:{\"input\":_vm.handleClose}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('SystemDialog',{attrs:{\"maxWidth\":1500,\"value\":_vm.showDialog},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${_vm.openedSystem}.title`)))]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{ref:\"canvas\",staticClass:\"d-flex\"},[_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('h3',{staticClass:\"d-flex justify-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.mainView.actualView')))]),_c('SystemDialogView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines}})],1),_c('div',{ref:\"centralEndpoint\",staticStyle:{\"width\":\"50%\"}},[_c('SystemForecastView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines,\"forecast-data\":_vm.forecastData}})],1)])]},proxy:true}])}),(_vm.showSystemSettingsDialog)?_c('ActualViewSystemSettingsDialog',{attrs:{\"device-data\":_vm.deviceData,\"opened-system\":_vm.openedSystem,\"circle-data\":_vm.openedSettingsSystemData,\"controls\":_vm.controls},model:{value:(_vm.showSystemSettingsDialog),callback:function ($$v) {_vm.showSystemSettingsDialog=$$v},expression:\"showSystemSettingsDialog\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h3',{staticClass:\"d-flex justify-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.mainView.forecastView')))]),(_vm.circlesDisplayData.length > _vm.elementsPerPage)?_c('PaginationTabs',{attrs:{\"elementsPerPage\":_vm.elementsPerPage,\"totalElements\":_vm.circlesDisplayData.length},on:{\"updatePage\":_vm.updatePage}}):_vm._e(),_c('div',{staticStyle:{\"height\":\"600px\",\"pointer-events\":\"none !important\"}},[_c('EnergyVisualisation',{key:_vm.startIndex,ref:\"EnergyVisualisation\",staticStyle:{\"pointer-events\":\"none !important\"},attrs:{\"circles-display-data\":_vm.forecastCirclesDisplayData,\"lines-display-data\":_vm.forecastLinesDisplayData}})],1),_c('div',[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Inject, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport PaginationTabs from '@/ui/components/components/PaginationTabs.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport { EnergyCircleDisplayData, CirclePosition } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport EnergyVisualisation from './index.vue';\nimport SystemDialog from './SystemDialog.vue';\nimport { getDefaultArrowDirectionSetpointOptimizer, getDefaultLineColorsSetpointOptimizer, getDefaultSpinnerColorSetpointOptimizer } from './utils/EnergyVisualisationUtils';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n PaginationTabs,\n EnergyVisualisation,\n SystemDialog,\n TimeSlider,\n },\n})\nexport default class SystemForeCastView extends mixins(EnergyComponent) {\n @Prop() circlesDisplayData!: EnergyCircleDisplayData[];\n @Prop() linesDisplayData!: Partial[];\n @Prop({ default: null }) forecastData!: any;\n\n @Provide('onCircleClick') onCircleClick = this.onSingleSystemClickCallback;\n @Inject({ from: 'onSingleCircleClick', default: () => {} }) onSingleCircleClick?: (\n circleData: EnergyCircleDisplayData,\n ) => void;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n @Inject({ from: 'onDialogLineAnimationEnd', default: () => {} }) onDialogLineAnimationEnd!: (id: string) => void;\n\n readonly elementsPerPage = 10;\n startIndex = 0;\n\n onLineAnimationEndCallback(id: string) {\n this.onDialogLineAnimationEnd?.(id);\n }\n\n onSingleSystemClickCallback(circleData: EnergyCircleDisplayData) {\n this.onSingleCircleClick?.(circleData);\n }\n\n get circleKeys() {\n return this.circlesDisplayData.map((el: EnergyCircleDisplayData) => el.id);\n }\n get circlesDisplayDataMap() {\n return new Map(this.circlesDisplayData.map((el: EnergyCircleDisplayData) => [el.id, el]));\n }\n get linesDisplayDataMap() {\n return new Map(this.linesDisplayData.map((el: Partial) => [el.id, el]));\n }\n get circleKeysSorted() {\n const sortedArray = this.circleKeys\n .sort((a, b) => {\n // extract numbers from system keys\n const aNum = Number(a.match(/\\d+/)?.[0]);\n const bNum = Number(b.match(/\\d+/)?.[0]);\n return aNum - bNum;\n });\n return sortedArray.slice(this.startIndex, this.startIndex + this.elementsPerPage);\n }\n get forecastCirclesDisplayData() {\n return this.circleKeysSorted.map((key: string, index: number) => {\n const circleData: any = this.circlesDisplayDataMap.get(key);\n const forecastData: Record = this.systemsForecastDataFiltered;\n const currentData = forecastData[key];\n\n const circleDataWithForecast = {\n ...circleData,\n bottomValue: currentData?.[1],\n spinnerColor: getDefaultSpinnerColorSetpointOptimizer(circleData.id.replace(/[0-9]/g, ''), currentData?.[1] ?? 0),\n };\n return {\n ...circleDataWithForecast,\n position: index < 5 ? CirclePosition.top : CirclePosition.bottom,\n } as EnergyCircleDisplayData;\n });\n }\n get forecastLinesDisplayData() {\n return this.circleKeysSorted.map((key: string) => {\n const lineData: any = this.linesDisplayDataMap.get(key);\n const forecastData: Record = this.systemsForecastDataFiltered;\n const currentData = forecastData[key];\n const displayData: any = { bottomValue: currentData?.[1] ?? 0 };\n const lineDataWithForecast = {\n ...lineData,\n arrowDirection: getDefaultArrowDirectionSetpointOptimizer(lineData.id.replace(/[0-9]/g, ''), displayData),\n colors: getDefaultLineColorsSetpointOptimizer(lineData.id.replace(/[0-9]/g, ''), displayData),\n };\n return { ...lineDataWithForecast } as EnergyLineDisplayData;\n });\n }\n\n updatePage(index: number) {\n this.startIndex = index;\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.EnergyVisualisation as any).updateCircles();\n }\n\n systemSlider = 0\n get timeSliderInitArr() {\n if (this.forecastData) {\n return Object.values(this.forecastData)[0];\n }\n return [];\n }\n\n /**\n * Return system instance values relative to the selected value on the slider\n * @return {object} Example: { \"heating_air_systems1\": [ 1649856600, 0 ], \"hybrid_water_systems1\": [ 1649856600, 0 ] }\n */\n get systemsForecastDataFiltered() {\n if (this.forecastData) {\n let obj = {};\n Object.entries(this.forecastData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n } else return {};\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemForecastView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemForecastView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemForecastView.vue?vue&type=template&id=6b2902e8&\"\nimport script from \"./SystemForecastView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemForecastView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport SystemForecastView from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemForecastView.vue';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport EnergyVisualisation\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport SystemDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { State } from 'vuex-class';\nimport SystemDialogView\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue';\nimport { INavigationState } from '@/store/modules/navigation/types';\nimport ActualViewSystemSettingsDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue';\nimport { EnergyCircleDisplayData, IconContent, SocContent } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyCircleType, energyCircleIconForType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { getDefaultArrowDirectionSetpointOptimizer, getDefaultLineColorsSetpointOptimizer, getDefaultSpinnerColorSetpointOptimizer } from '../../../../components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport { SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE } from '../../../../components/EnergyParts/EnergyVisualisation/utils/systemDialog';\nimport { celsiusUnit } from '@/utils/unit/unitConstants';\n/**\n * Actual view for SetPointOptimizer\n */\n@Component({\n components: {\n EnergyVisualisation,\n SystemDialog,\n SystemDialogView,\n ActualViewSystemSettingsDialog,\n SystemForecastView,\n },\n})\nexport default class ActualView extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: false }) enableMinWidth!: boolean;\n @Prop({ default: false }) showDialog!: boolean;\n @Prop({ default: false }) openedSystem!: EnergyCircleType;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n @Prop({ default: false }) isLineMovementReversed!: boolean;\n @Prop({ default: null }) forecastData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n @State('navigation') navigationState!: INavigationState;\n\n showSystemSettingsDialog = false;\n openedSettingsSystemData?: EnergyCircleDisplayData;\n controls: any = undefined;\n\n @Provide('onSingleCircleClick') onSingleCircleClick = this.onSingleCircleClickCallback;\n onSingleCircleClickCallback(circleData: EnergyCircleDisplayData) {\n const systems = this.getSystemComponents(this.deviceData, this.openedSystem);\n this.controls = systems[circleData.id];\n const isSettingsActive = SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE.includes(this.deviceData.data.type);\n if (!isSettingsActive) return;\n\n this.showSystemSettingsDialog = true;\n this.openedSettingsSystemData = circleData;\n }\n\n handleClose() {\n this.showSystemSettingsDialog = false;\n }\n\n get systemDialogCircles(): EnergyCircleDisplayData[] {\n if (!this.openedSystem) return [];\n\n const systems = this.getSystemComponents(this.deviceData, this.openedSystem);\n return Object.entries(systems).map(([key, systemComponent]) => {\n let unit;\n let bottomDynamicValue;\n let disableSpinner;\n\n const bottomValue: any = this.measurements[systemComponent.flow_temperature];\n const alternativeValue = 0;\n const centerContent: IconContent | SocContent = {\n type: 'icon',\n value: energyCircleIconForType(this.openedSystem),\n };\n return {\n id: key,\n centerContent,\n bottomValue,\n errorWarningMode: this.measurements[systemComponent.error],\n title: systemComponent.title,\n spinnerColor: getDefaultSpinnerColorSetpointOptimizer(this.openedSystem, bottomValue ?? alternativeValue),\n alternativeValue: undefined,\n unit: celsiusUnit,\n bottomDynamicValue,\n disableSpinner,\n } as EnergyCircleDisplayData;\n });\n }\n\n get systemDialogLines(): Partial[] {\n if (!this.openedSystem) return [];\n\n return this.systemDialogCircles.map(\n (displayData: EnergyCircleDisplayData) => {\n const arrowDirection = getDefaultArrowDirectionSetpointOptimizer(this.openedSystem, displayData);\n const colors = getDefaultLineColorsSetpointOptimizer(this.openedSystem, displayData);\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n } as Partial;\n },\n );\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialogSetpointOptimizer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemDialogSetpointOptimizer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemDialogSetpointOptimizer.vue?vue&type=template&id=b2301020&\"\nimport script from \"./SystemDialogSetpointOptimizer.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemDialogSetpointOptimizer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport EnergyVisualisation\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport {\n getDefaultArrowDirectionSetpointOptimizer,\n getDefaultLineColorsSetpointOptimizer,\n getDefaultSpinnerColorSetpointOptimizer,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport {\n celsiusUnit,\n} from '@/utils/unit/unitConstants';\nimport SystemDialogSetpointOptimizer\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/SystemDialogSetpointOptimizer.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { EnergyCircleDisplayData, IconContent, SocContent } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyCircleType, allEnergyCircleTypes, getCirclePositionForType, energyCircleIconForType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\n\ntype SystemInstances = Record\ntype SystemInstance = Record\n\nconst devicesWithDynamicBottomValue: string[] = ['EMS', 'EMSV2'];\n\n/**\n * Actual view for SetPointOptimizer\n */\n@Component({\n components: {\n EnergyVisualisation,\n SystemDialogSetpointOptimizer,\n },\n computed: {\n devicesWithDynamicBottomValue: () => devicesWithDynamicBottomValue,\n },\n})\nexport default class ActualView extends mixins(EnergyComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: null }) forecastData!: any;\n @Prop({ default: false }) enableMinWidth!: boolean;\n\n showDialog = false;\n showSystemSettingsDialog = false;\n openedSystem?: EnergyCircleType;\n\n @Provide('onCircleClick') onCircleClick = this.onCircleClickCallback;\n\n handleClose() {\n this.showDialog = false;\n this.showSystemSettingsDialog = false;\n }\n\n onCircleClickCallback(circleData: EnergyCircleDisplayData) {\n this.openedSystem = circleData.id as EnergyCircleType;\n this.showDialog = true;\n }\n\n sum(systemInstances: Record>, mappedVariable = 'power') {\n const values = Object.values(systemInstances).map(\n (systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return this.measurements[measurement];\n },\n );\n if (values.every((value: any) => typeof value !== 'number')) return;\n\n return values.reduce((acc: number, value: any) => {\n const valueNumber = typeof value === 'number' ? value : 0;\n return acc + valueNumber;\n }, 0);\n }\n\n avg(systemInstances: Record>, mappedVariable = 'soc') {\n const values: number[] = Object.values(systemInstances).map(\n (systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return this.measurements[measurement] as number;\n },\n );\n const sum: number = values.reduce((acc: number, value: number) => acc + value, 0);\n const result = sum / values.length;\n return Number.isNaN(result) ? 0 : result;\n }\n\n getErrorWarningMode(systemInstances: SystemInstances) {\n const systemInstancesErrorValues = Object.values(systemInstances)\n .map((instance: SystemInstance) => this.measurements[instance.error])\n .filter((el: any) => typeof el === 'number');\n\n return systemInstancesErrorValues.length ? Math.max.apply(null, systemInstancesErrorValues as number[]) : undefined;\n }\n\n get shownSystems() {\n return this.filterPresentSystems(this.deviceData, allEnergyCircleTypes);\n }\n\n get circlesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType) => {\n const components = this.getSystemComponents(this.deviceData, systemType);\n const position = getCirclePositionForType(systemType);\n let bottomValue;\n\n // eslint-disable-next-line prefer-const\n bottomValue = this.getAverageOfSystemInstancesValues({\n systemInstances: components,\n mappedVariable: 'flow_temperature',\n measurements: this.measurements,\n });\n\n const centerContent: IconContent | SocContent = {\n type: 'icon',\n value: energyCircleIconForType(systemType),\n };\n\n const alternativeValue = 0;\n\n return {\n id: systemType,\n bottomValue,\n centerContent,\n position,\n systemCount: this.getSystemCount(this.deviceData, systemType),\n spinnerColor: getDefaultSpinnerColorSetpointOptimizer(systemType, bottomValue ?? alternativeValue),\n disableSpinner: false,\n alternativeValue,\n errorWarningMode: this.getErrorWarningMode(components),\n unit: celsiusUnit,\n hideValue: false,\n } as EnergyCircleDisplayData;\n });\n }\n\n get linesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType, index: number) => {\n const displayData = this.circlesDisplayData[index];\n\n const arrowDirection = getDefaultArrowDirectionSetpointOptimizer(systemType, displayData);\n const colors = getDefaultLineColorsSetpointOptimizer(systemType, displayData);\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n } as Partial;\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetpointActualView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetpointActualView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetpointActualView.vue?vue&type=template&id=3982b62a&\"\nimport script from \"./SetpointActualView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetpointActualView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"setpoint-optimizer-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c('div',[_c(item.view,_vm._b({tag:\"component\"},'component',{ ...item.props },false))],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.systemSchema,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){return _vm.handleCurrentChart($event)}}}),(_vm.currentChart.system)?_c('div',{staticClass:\"content pt-2\"},[_c('BaseChartWrapper',_vm._b({key:_vm.reRenderKey,attrs:{\"parent-component-width\":1710,\"navigationItemsToExclude\":_vm.currentChartData.data.navigationItemsToExclude}},'BaseChartWrapper',{ ..._vm.currentChartData.data },false))],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport class Utils extends Vue {\n chartColors = ['#6ca2d8', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1'];\n systems: any = [\n 'heating_air_systems', 'heating_water_systems', 'cooling_air_systems',\n 'cooling_water_systems', 'hybrid_water_systems', 'hybrid_air_systems',\n ]\n\n /**\n * Division of group systems into subgroups depending on the value of the separator.\n * @param {string} groupName group name\n * @param {object} targetObject object containing a collection of elements\n * @param {number} splitter separator determining the number of elements in a subgroup\n * @param {boolean} returnOnlyInstances status defining the format of the result\n * @return {array} list of grouped elements. Depends on returnOnlyInstances status can be: [list] or [groupName, [list]]\n */\n divisionIntoEqualParts(groupName: string, targetObject: any, splitter: number, returnOnlyInstances = false) {\n const instancesArr: any = Object.keys(targetObject);\n const count: any = Math.ceil(instancesArr.length / splitter);\n let instancesArrGrouped: any = [];\n const initChartList = (n: number, arr: any) => {\n if (n > 0) {\n initChartList(n - 1, arr);\n instancesArrGrouped = [...instancesArrGrouped, arr.slice(n * splitter - splitter, n * splitter)];\n } else {\n return null;\n }\n };\n initChartList(count, instancesArr);\n\n return returnOnlyInstances ? instancesArrGrouped : [groupName, instancesArrGrouped];\n }\n\n /**\n * Init what system chart will load when open page.\n * @param {object} targetArr\n * @return {object} { system: system name, ['instance1', 'instance2'] }\n */\n initFirstSystemByDefault(targetArr: any) {\n const filtered: any = targetArr.filter((el: any) => el[1].length);\n return filtered.length\n ? {\n system: filtered[0][0],\n instances: filtered[0][1][0],\n } : {\n system: null,\n instances: [],\n };\n }\n}\n","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport { Utils } from '@/ui/components/devices/mpc/SetpointOptimizer/charts/utils';\nimport { mixins } from 'vue-class-component';\n\n/**\n * Component that represent chart EnergyCircle Temperatures.\n */\n@Component({\n components: {\n BaseChartWrapper,\n SystemsNavigation,\n },\n})\nexport default class ChartControlVariables extends mixins(Utils) {\n @Prop({ default: null }) systemsMappings!: any;\n\n reRenderKey = 0\n systemsVars: any = {\n heating_air_systems: ['flow_temperature', 'return_temperature'],\n heating_water_systems: ['flow_temperature', 'return_temperature'],\n cooling_air_systems: ['flow_temperature', 'return_temperature'],\n cooling_water_systems: ['flow_temperature', 'return_temperature'],\n hybrid_water_systems: ['flow_temperature', 'return_temperature'],\n hybrid_air_systems: ['flow_temperature', 'return_temperature'],\n }\n // current systems\n currentChart: any = {\n system: null,\n instances: [],\n }\n systemsUnits: any = {\n heating_air_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n heating_water_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n cooling_air_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n cooling_water_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n hybrid_water_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n hybrid_air_systems: {\n flow_temperature: '°C',\n return_temperature: '°C',\n },\n }\n\n // getter define flow, return temperatures for water systems and replace it on supply, exhaust temperatures for air systems\n get systemsVarsTranslation(): any {\n const flow_temperature = this.$t('mlModel.SetpointOptimizer.charts.variables.flow_temperature');\n const return_temperature = this.$t('mlModel.SetpointOptimizer.charts.variables.return_temperature');\n const supply_air_temperature = this.$t('mlModel.SetpointOptimizer.charts.variables.supply_air_temperature');\n const exhaust_air_temperature = this.$t('mlModel.SetpointOptimizer.charts.variables.exhaust_air_temperature');\n return {\n heating_air_systems: {\n flow_temperature: supply_air_temperature,\n return_temperature: exhaust_air_temperature,\n },\n heating_water_systems: {\n flow_temperature,\n return_temperature,\n },\n cooling_air_systems: {\n flow_temperature: supply_air_temperature,\n return_temperature: exhaust_air_temperature,\n },\n cooling_water_systems: {\n flow_temperature,\n return_temperature,\n },\n hybrid_water_systems: {\n flow_temperature,\n return_temperature,\n },\n hybrid_air_systems: {\n flow_temperature: supply_air_temperature,\n return_temperature: exhaust_air_temperature,\n },\n };\n }\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n heating_air_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n heating_water_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n cooling_air_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n cooling_water_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n hybrid_water_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n hybrid_air_systems: {\n flow_temperature: { min: 0, max: 100 },\n return_temperature: { min: 0, max: 100 },\n },\n };\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n const filteredSystems = Object.entries(this.systemsMappings)\n .filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1].count));\n return filteredSystems.map((el: any) => this.divisionIntoEqualParts(el[0], el[1].components, 4));\n }\n\n /**\n * Creates an understandable object for the graphs component\n */\n get currentChartData() {\n const chartOptions = this.currentChart.instances.map((instance: any) => {\n return this.systemsVars[this.currentChart.system].map((variable: any) => {\n const getName = () => {\n const systemName = this.systemsMappings[this.currentChart.system].components[instance].name;\n const variableName = this.systemsVarsTranslation[this.currentChart.system][variable];\n return `${systemName}: ${variableName}`;\n };\n if (this.systemsMappings[this.currentChart.system].components[instance][variable] !== '') {\n return {\n agg: 'last',\n name: getName(),\n scaling: this.systemsScaling[this.currentChart.system][variable],\n seriesType: 'View',\n type: 'line',\n unit: this.systemsUnits[this.currentChart.system][variable],\n var: this.systemsMappings[this.currentChart.system].components[instance][variable],\n };\n } else {\n return null;\n }\n }).filter((element: any) => element !== null);\n });\n\n return {\n title: null,\n data: {\n chartTitle: 'Chart title',\n chartWidth: null,\n chartHeight: 400,\n chartWrapperHeight: 500,\n chartData: {\n name: '',\n data: {\n chartOptions: chartOptions.flat(),\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour'],\n },\n };\n }\n\n handleCurrentChart({ system, arr }: any) {\n this.currentChart = { system, instances: arr };\n this.reRenderKey += 1;\n }\n\n mounted() {\n this.currentChart = this.initFirstSystemByDefault(this.systemSchema);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartControlVariables.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartControlVariables.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartControlVariables.vue?vue&type=template&id=64f4eebf&scoped=true&\"\nimport script from \"./ChartControlVariables.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartControlVariables.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64f4eebf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.systemSchema,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){return _vm.handleCurrentChart($event)}}}),(_vm.currentSystemInstanceRoomTemperaturesArray)?_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"}},_vm._l((_vm.currentSystemInstanceRoomTemperaturesArray),function(item,index){return _c('v-tab',{key:index,attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.handleRoomTemperature(index)}}},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.charts.navigation.temperatures'))+\":\")]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.defineNameForRoomTemperaturesButton(index)))])])}),1)],1):_vm._e(),(_vm.currentSystemInstanceRoomTemperaturesArray)?_c('div',{staticClass:\"content pt-2\"},[_c('BaseChartWrapper',_vm._b({key:_vm.currentRoomTemperatureIndex + _vm.reRenderKey,attrs:{\"parent-component-width\":1710,\"navigationItemsToExclude\":_vm.currentChartData.data.navigationItemsToExclude}},'BaseChartWrapper',{ ..._vm.currentChartData.data },false))],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Utils } from '@/ui/components/devices/mpc/SetpointOptimizer/charts/utils';\nimport { mixins } from 'vue-class-component';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n/**\n * Component that represent chart Room Temperatures.\n */\n@Component({\n components: {\n SystemsNavigation,\n BaseChartWrapper,\n },\n})\nexport default class ChartsRoomTemperatures extends mixins(Utils) {\n @Prop({ default: null }) systemsMappings!: any;\n\n reRenderKey = 0\n currentRoomTemperatureIndex = 0\n currentSystem: any = {\n system: null,\n instances: [],\n }\n\n get currentSystemInstanceRoomTemperatures() {\n const { system, instances } = this.currentSystem;\n if (system) {\n const instanceName = instances[0];\n const { room_temperatures } = this.systemsMappings[system].components[instanceName];\n return room_temperatures;\n }\n return null;\n }\n\n /**\n * Division of group systems into subgroups depending on the value of the separator.\n */\n get currentSystemInstanceRoomTemperaturesArray() {\n if (this.currentSystemInstanceRoomTemperatures) {\n return this.divisionIntoEqualParts('_', this.currentSystemInstanceRoomTemperatures, 9, true);\n }\n return null;\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n const filteredSystems = Object.entries(this.systemsMappings)\n .filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1].count));\n return filteredSystems.map((el: any) => this.divisionIntoEqualParts(el[0], el[1].components, 1));\n }\n\n /**\n * Creates an understandable object for the graphs component\n */\n get currentChartData() {\n const array = this.currentSystemInstanceRoomTemperaturesArray[this.currentRoomTemperatureIndex];\n const chartOptions = array.map((temp: any, inx: number) => {\n // define name for option\n const getName = () => {\n const systemInstance = this.currentSystem.instances[0];\n const systemName = this.systemsMappings[this.currentSystem.system].components[systemInstance].name;\n const variableName: any = this.currentSystemInstanceRoomTemperatures[temp]?.title || this.currentSystemInstanceRoomTemperatures[temp]?.variable;\n return `${systemName}: ${variableName}`;\n };\n return {\n agg: 'last',\n name: getName(),\n scaling: {\n min: 0,\n max: 40,\n },\n seriesType: 'View',\n type: 'line',\n unit: '°C',\n var: this.currentSystemInstanceRoomTemperatures[temp].variable,\n };\n });\n\n return {\n title: null,\n data: {\n chartTitle: 'Chart title',\n chartWidth: null,\n chartHeight: 400,\n chartWrapperHeight: 500,\n chartData: {\n name: '',\n data: {\n chartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n },\n navigationItemsToExclude: ['live', 'hour'],\n },\n };\n }\n\n handleCurrentChart({ system, arr }: any) {\n this.currentRoomTemperatureIndex = 0;\n this.currentSystem = { system, instances: arr };\n this.reRenderKey += 1;\n }\n\n /**\n * Creates a name for navigation tabs.\n * @param {number} inx index of tab item\n * @return {string} navigation tab name. Example: 1-9\n */\n defineNameForRoomTemperaturesButton(inx: number) {\n const numberOfItems = this.currentSystemInstanceRoomTemperaturesArray[inx].length;\n const first = inx * 9 + 1;\n const last = first + numberOfItems - 1;\n return `${first}${last === first ? '' : `-${last}`}`;\n }\n\n handleRoomTemperature(inx: number) {\n this.currentRoomTemperatureIndex = inx;\n }\n\n mounted() {\n this.currentSystem = this.initFirstSystemByDefault(this.systemSchema);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsRoomTemperatures.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsRoomTemperatures.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartsRoomTemperatures.vue?vue&type=template&id=6b799eda&scoped=true&\"\nimport script from \"./ChartsRoomTemperatures.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartsRoomTemperatures.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b799eda\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.systemsInstancesArrayList,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){return _vm.handleCurrentChart($event)}}}),(_vm.currentChart.system)?_c('div',{staticClass:\"content pt-2\"},[_c('BaseChart',_vm._b({key:_vm.reRenderKey},'BaseChart',{ ..._vm.currentChartData },false))],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport { Utils } from '@/ui/components/devices/mpc/SetpointOptimizer/charts/utils';\nimport { mixins } from 'vue-class-component';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\n\n/**\n * Component that represent forecast charts.\n */\n@Component({\n components: {\n BaseChart,\n SystemsNavigation,\n },\n})\nexport default class Forecast extends mixins(Utils) {\n @Prop({ default: null }) predictedSetpoint!: any;\n @Prop({ default: null }) systemsMappings!: any;\n\n reRenderKey = 0\n systemsVars: any = {\n heating_air_systems: ['predicted_setpoint'],\n heating_water_systems: ['predicted_setpoint'],\n cooling_air_systems: ['predicted_setpoint'],\n cooling_water_systems: ['predicted_setpoint'],\n hybrid_water_systems: ['predicted_setpoint'],\n hybrid_air_systems: ['predicted_setpoint'],\n }\n variablesContainers: any = {\n 'predicted_setpoint': 'predictedSetpoint',\n }\n currentChart: any = {\n system: null,\n instances: [],\n }\n systemsUnits: any = {\n heating_air_systems: {\n predicted_setpoint: '°C',\n },\n heating_water_systems: {\n predicted_setpoint: '°C',\n },\n cooling_air_systems: {\n predicted_setpoint: '°C',\n },\n cooling_water_systems: {\n predicted_setpoint: '°C',\n },\n hybrid_water_systems: {\n predicted_setpoint: '°C',\n },\n hybrid_air_systems: {\n predicted_setpoint: '°C',\n },\n }\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n heating_air_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n heating_water_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n cooling_air_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n cooling_water_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n hybrid_water_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n hybrid_air_systems: {\n predicted_setpoint: { min: 0, max: 100 },\n },\n };\n }\n\n get themeChartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n /**\n * Creates series, Y-axis for chart\n */\n get currentChartData() {\n const series: any = this.currentChart.instances.map((instance: any, inx: number) => {\n return this.systemsVars[this.currentChart.system].map((variable: any) => {\n const data: any = (this as any)[this.variablesContainers[variable]][instance].map((d: any) => [d[0] * 1000, d[1]]);\n\n const systemInstanceName: string = this.systemsMappings[this.currentChart.system].components[instance].name;\n const getName = () => {\n const variableName: any = this.$t('mlModel.SetpointOptimizer.charts.variables.predicted_setpoint');\n return `${systemInstanceName}: ${variableName}`;\n };\n return {\n name: getName(),\n type: 'line',\n yAxis: 0,\n color: null, // will add later\n data,\n };\n });\n });\n const seriesColors = series.flat().map((serie: any, inx: number) => {\n serie.color = this.themeChartColors[inx];\n return serie;\n });\n\n const yAxis: any = this.currentChart.instances.slice(0, 1).map((instance: any, inx: number) => {\n return this.systemsVars[this.currentChart.system].map((variable: any) => {\n return {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n ...this.systemsScaling[this.currentChart.system][variable],\n lineColor: this.themeChartColors[inx], // will added later\n labels: {\n format: `{value} ${this.systemsUnits[this.currentChart.system][variable]}`,\n style: {\n color: '#949494',\n },\n },\n };\n });\n });\n const yAxisColors = yAxis.flat().map((axis: any, inx: number) => {\n axis.lineColor = this.themeChartColors[inx];\n axis.gridLineWidth = !inx ? 1 : 0;\n return axis;\n });\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 400,\n series: seriesColors,\n yAxis: yAxisColors,\n };\n }\n\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['system', [['system1', 'system2']]]\n */\n get systemsInstancesArrayList() {\n const filteredSystems = Object.entries(this.systemsMappings)\n .filter((system: any) => this.systems.some((el: any) => el === system[0] && system[1].count));\n return filteredSystems.map((el: any) => this.divisionIntoEqualParts(el[0], el[1].components, 9));\n }\n\n handleCurrentChart({ system, arr }: any) {\n this.currentChart = { system, instances: arr };\n this.reRenderKey += 1;\n }\n\n mounted() {\n this.currentChart = this.initFirstSystemByDefault(this.systemsInstancesArrayList);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=6157d0a4&scoped=true&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6157d0a4\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ChartControlVariables\n from '@/ui/components/devices/mpc/SetpointOptimizer/charts/ChartControlVariables.vue';\nimport ChartsRoomTemperatures\n from '@/ui/components/devices/mpc/SetpointOptimizer/charts/ChartsRoomTemperatures.vue';\nimport Forecast from '@/ui/components/devices/mpc/SetpointOptimizer/charts/Forecast.vue';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in Setpoint Optimizer.\n */\n@Component({\n components: {\n ChartControlVariables,\n ChartsRoomTemperatures,\n Forecast,\n },\n})\nexport default class SetpointOptimizerCharts extends Vue {\n @Prop({ default: null }) allDeviceData!: any;\n\n tab: any = null\n\n get predictedSetpoint() {\n return this.allDeviceData.data.meta?.charts?.predictedSetpoint;\n }\n\n /**\n * Gets all systems from controllerMappings\n * @return {object} collection of systems\n */\n get systemsMappings() {\n const {\n heating_air_systems, heating_water_systems, cooling_air_systems,\n cooling_water_systems, hybrid_water_systems, hybrid_air_systems,\n } = this.allDeviceData.data.meta.controllerMappings;\n return {\n heating_air_systems, heating_water_systems, cooling_air_systems, cooling_water_systems, hybrid_water_systems, hybrid_air_systems,\n };\n }\n\n /**\n * Tabs for navigation.\n */\n get items() {\n return [\n {\n id: 'chartsRoomTemperatures',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.chartsRoomTemperatures'),\n view: 'ChartsRoomTemperatures',\n props: {\n systemsMappings: this.systemsMappings,\n },\n },\n {\n id: 'chartControlVariables',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.chartControlVariables'),\n view: 'ChartControlVariables',\n props: {\n systemsMappings: this.systemsMappings,\n },\n },\n {\n id: 'forecast',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.forecast'),\n view: 'Forecast',\n props: {\n predictedSetpoint: this.predictedSetpoint,\n systemsMappings: this.systemsMappings,\n },\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ebc15b0c&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ebc15b0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ebc15b0c\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport SetpointActualView from '@/ui/components/devices/mpc/SetpointOptimizer/system/components/SetpointActualView.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SetpointOptimizerCharts\n from '@/ui/components/devices/mpc/SetpointOptimizer/charts/index.vue';\nimport { Action, State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\n\n/**\n * Component that represent SetpointOptimizer MPC device\n */\n@Component({\n components: {\n MPCLayout,\n ShowEventDotBase,\n SetpointOptimizerCharts,\n SetpointActualView,\n },\n})\nexport default class SetpointOptimizer extends Vue {\n @Prop() deviceData!: any;\n @Prop() dndGridLayoutContainerWidth!: number;\n @State('measurements') measurementsState!: IVariablesState;\n @Action('mpc/fetchMPCData') fetchMPCData!: (mpcId: string) => any;\n\n mpc: any = null\n\n get predictedSetpoint() {\n if (!this.mpc?.data) return null;\n return this.mpc.data.meta.charts.predictedSetpoint;\n }\n\n get showEventDotServiceReady() {\n return {\n 'ShowEventDot_errorWarningState': this.mpc?.data?.meta?.controllerMappings?.mpcReady,\n };\n }\n get showEventGeneralErrorWarning() {\n return {\n 'ShowEvent_errorWarningState': this.mpc?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n\n async rerenderDevice() {\n this.mpc = null;\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n\n async created() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a6a5f6c4&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=a6a5f6c4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"device-data\":_vm.deviceData,\"device-icon\":\"electric-charging-station\",\"device-icon-size\":\"0\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"electric-charging-station\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"modul-ladestation-valueSpacing\"},[_c('ShowEventDotBase',{staticStyle:{\"padding-top\":\"5px\"},attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"ShowEventDot\",\"items\":[[1,'#30bf54'],[2,'orange'],[3,'#0d6efd']],\"width\":\"16\",\"height\":\"16\"}})],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"charging_power_3\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField1\",\"is-decimal\":true,\"min\":0,\"max\":0,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kW \")])],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"battery\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField2\",\"is-decimal\":true,\"min\":0,\"max\":0,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kWh \")])],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"time\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField3\",\"is-decimal\":true,\"min\":0,\"max\":0,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" min \")])],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_battery_50\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_c('LabelUnitWrapper',{attrs:{\"variables-list-for-check\":[_vm.deviceData.data.mappings.OutputField4_actualValue]},scopedSlots:_vm._u([{key:\"value\",fn:function(){return [_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField4\",\"is-decimal\":true,\"min\":0,\"max\":100}}),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"%\")])]},proxy:true}])})],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.deviceData.data.mappings,\"instance\":\"OutputField5\",\"is-decimal\":true,\"min\":0,\"max\":0,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kWh \")])],1)],1)])]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport { IDevice } from '@/types/devices.types';\n\n@Component({\n components: {\n DeviceActions,\n ShowEventDotBase,\n DeviceLayout,\n OutputFieldBase,\n LabelUnitWrapper,\n },\n})\nexport default class TSGModulLadestation extends Vue {\n @Prop() deviceData!: IDevice;\n\n get langPath() {\n return `devices.${this.deviceData.data.type}`;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGModulLadestation.vue?vue&type=template&id=40fb9872&scoped=true&\"\nimport script from \"./TSGModulLadestation.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGModulLadestation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGModulLadestation.vue?vue&type=style&index=0&id=40fb9872&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40fb9872\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"full-device-data\":_vm.mpc,\"show-event-variable\":_vm.errorWarningMqtt,\"is-charts\":true,\"device-icon\":\"heating\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"heatingProduction-service-device\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.actualPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.actualHeatingMqtt,\"instance\":\"OutputField1\",\"min\":-100,\"max\":2000,\"is-decimal\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedPower`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedProductionMqtt,\"instance\":\"OutputField2\",\"min\":-100,\"max\":2000,\"is-decimal\":true,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kW\")])],1)]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.calculatedEnergy`)))]),_c('div',{class:['value', 'd-flex', { 'value-it': _vm.isITLocale }]},[_c('OutputFieldBase',{attrs:{\"variable-data\":_vm.calculatedEnergyMqtt,\"instance\":\"OutputField3\",\"min\":-100,\"max\":2000,\"is-decimal\":true,\"disableMinMaxFilter\":true}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\"kWh\")])],1)]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotBase',{attrs:{\"variable-data\":_vm.readyMqtt,\"instance\":\"ShowEventDot1\",\"items\":[[1, _vm.$vuetify.theme.currentTheme.green]],\"width\":\"15\",\"height\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.langPath}.mainView.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"heatingProduction-service-charts-content\"},[_c('SettingsCharts',{attrs:{\"mpc-id\":_vm.mpcId,\"charts-scaling\":_vm.chartScaling,\"mqtt-charts-variables\":{ actualPower: _vm.actualHeatingMqtt.OutputField1_actualValue, calculatedPower: _vm.calculatedProductionMainView, calculatedEnergy: _vm.calculatedEnergy, actualEnergyChart: _vm.actualEnergyChart, calculatedEnergy2: _vm.calculatedEnergy2 }}})],1)]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[(index === _vm.tab)?_c('div',[_c(item.component,{tag:\"component\",attrs:{\"charts-scaling\":_vm.chartsScaling,\"mqtt-charts-variables\":_vm.mqttChartsVariables,\"mpc-id\":_vm.mpcId}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('BaseChart',_vm._b({key:_vm.rerenderKey},'BaseChart',{..._vm.chartData},false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChart from '@/ui/components/devices/mpc/components/BaseChart.vue';\nimport { Action } from 'vuex-class';\nimport ChartColors from '@/ui/components/devices/charts/charts/ChartColors';\n\n@Component({\n components: {\n BaseChart,\n },\n})\nexport default class Forecast extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n timer: any = null\n rerenderKey = 0\n mpc: any = null\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n get charts() {\n if (this.mpc) {\n return this.mpc?.data?.meta.charts;\n }\n return null;\n }\n get predictedEnergy() {\n if (this.charts?.predictedEnergy) {\n return this.charts.predictedEnergy.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n get predictedPower() {\n if (this.charts?.predictedPower) {\n return this.charts.predictedPower.pv.map((el: any) => [el[0] * 1000, el[1]]);\n } else {\n return [];\n }\n }\n get seriesForecast() {\n return [\n {\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedEnergy'),\n type: 'line',\n yAxis: 0,\n color: this.chartColors[0],\n data: this.predictedEnergy,\n },\n {\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedPower'),\n type: 'line',\n yAxis: 1,\n color: this.chartColors[1],\n data: this.predictedPower,\n },\n ];\n }\n get yAxisForecast() {\n return [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 1,\n min: 0,\n max: this.chartsScaling * 20,\n lineColor: this.chartColors[0],\n labels: {\n format: '{value} kWh',\n style: {\n color: this.chartColors[0],\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: this.chartsScaling * 2,\n lineColor: this.chartColors[1],\n labels: {\n format: '{value} kW',\n style: {\n color: this.chartColors[1],\n },\n },\n },\n ];\n }\n\n get chartData() {\n return {\n chartType: 'line',\n chartWidth: null,\n chartHeight: 700,\n series: this.seriesForecast,\n yAxis: this.yAxisForecast,\n };\n }\n\n fetchChartData() {\n this.timer = setInterval(async () => {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.rerenderKey += 1;\n }, 900000);\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.mpcId);\n this.fetchChartData();\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=623b1426&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-mqtt-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-width\":_vm.chartData.chartWidth,\"settings-wrapper-height\":_vm.chartData.chartHeight,\"chart-data\":_vm.chartData.chartData,\"navigation-items-to-exclude\":_vm.chartData.navigationItemsToExclude,\"use-default-period-configs\":false,\"chartWrapperHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n@Component({\n components: {\n BaseChartWrapper,\n },\n})\nexport default class Charts extends Vue {\n @Prop() httpCharts!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.HppProductionService.settingsView';\n }\n\n get power() {\n return {\n name: '',\n data: {\n chartOptions: [\n {\n agg: 'avg',\n name: this.$t('mlModel.HppProductionService.settingsView.chartLabels.power.actualPower'),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.actualPower,\n },\n {\n agg: 'avg',\n name: this.$t('mlModel.HppProductionService.settingsView.chartLabels.power.calculatedPower'),\n scaling: {\n max: this.chartsScaling * 2,\n min: 0,\n },\n type: 'line',\n unit: 'kW',\n var: this.mqttChartsVariables.calculatedPower,\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n get chartData() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: this.power,\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Charts.vue?vue&type=template&id=f5c8442e&\"\nimport script from \"./Charts.vue?vue&type=script&lang=ts&\"\nexport * from \"./Charts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Charts.vue?vue&type=style&index=0&id=f5c8442e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-mqtt-charts\"},[_c('BaseChartWrapper',{attrs:{\"chart-width\":_vm.chartData.chartWidth,\"chart-height\":_vm.chartData.chartHeight,\"chart-title\":_vm.chartData.title,\"chart-data\":_vm.chartData.chartData,\"navigation-items-to-exclude\":_vm.chartData.navigationItemsToExclude,\"use-default-period-configs\":false,\"chartWrapperHeight\":700,\"customApproximationValue\":{ day: 1, week: 1, month: 1, year: 1 }}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\n\n@Component({\n components: {\n BaseChartWrapper,\n },\n})\nexport default class Charts extends Vue {\n @Prop() httpCharts!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.HppProductionService.settingsView';\n }\n\n get power() {\n return {\n name: '',\n data: {\n chartOptions: [\n {\n agg: 'last',\n name: this.$t(\n 'mlModel.HppProductionService.settingsView.chartLabels.energy.actualEnergy',\n ),\n scaling: {\n max: this.chartsScaling * 8,\n min: 0,\n },\n type: 'column',\n unit: 'kWh',\n var: this.mqttChartsVariables.actualEnergyChart,\n },\n {\n agg: 'last',\n name: this.$t(\n 'mlModel.HppProductionService.settingsView.chartLabels.energy.calculatedEnergy',\n ),\n scaling: {\n max: this.chartsScaling * 8,\n min: 0,\n },\n type: 'column',\n unit: 'kWh',\n var: this.mqttChartsVariables.calculatedEnergy,\n },\n ],\n },\n selectedWidth: 'full',\n type: 'chart',\n };\n }\n\n get chartData() {\n return {\n chartWidth: null,\n chartHeight: 600,\n chartData: this.power,\n navigationItemsToExclude: ['live', 'hour', 'day'],\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyChart.vue?vue&type=template&id=6d628808&\"\nimport script from \"./EnergyChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyChart.vue?vue&type=style&index=0&id=6d628808&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Forecast.vue';\nimport Charts from '@/ui/components/devices/mpc/HeatingProduction/SettingsCharts/Charts.vue';\nimport EnergyChart from '@/ui/components/devices/mpc/HeatingProduction/SettingsCharts/EnergyChart.vue';\n\n@Component({\n components: {\n Forecast,\n Charts,\n EnergyChart,\n },\n})\nexport default class SettingsCharts extends Vue {\n @Prop() mpcId!: any;\n @Prop({ default: null }) chartsScaling!: any;\n @Prop({\n default: {\n actualPower: '',\n calculatedPower: null,\n calculatedEnergy: null,\n calculatedEnergy2: null,\n actualEnergyChart: null,\n },\n }) mqttChartsVariables!: any;\n\n tab: any = null\n\n get langPath() {\n return 'mlModel.HppProductionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'chart',\n locale: this.langPath,\n component: 'Charts',\n chartsScaling: this.chartsScaling,\n mqttChartsVariables: this.mqttChartsVariables,\n },\n {\n title: 'energyChart',\n locale: this.langPath,\n component: 'EnergyChart',\n chartsScaling: this.chartsScaling,\n mpcId: this.mpcId,\n },\n {\n title: 'forecast',\n locale: this.langPath,\n component: 'Forecast',\n chartsScaling: this.chartsScaling,\n mpcId: this.mpcId,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=458144ba&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ShowEventDotBase from '@/ui/components/devices/devices/base/ShowEventDotBase.vue';\nimport SettingsCharts from '@/ui/components/devices/mpc/HeatingProduction/SettingsCharts/index.vue';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport { Action } from 'vuex-class';\n\n/**\n * Component that represent HppProductionService MPC device\n */\n@Component({\n components: {\n ShowEventDotBase,\n SettingsCharts,\n OutputFieldBase,\n MPCLayout,\n },\n})\nexport default class HppProductionService extends Vue {\n @Prop() deviceData!: any;\n @Action('mpc/fetchMPCData') fetchMPCData!: any;\n\n mpc: any = null\n\n isSettingsView = false\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get langPath() {\n return `mlModel.${this.deviceData.data.type}`;\n }\n\n get mpcId() {\n if (this.deviceData) return this.deviceData.id;\n return null;\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.mpcId) return this.mpcId.replace(/-/g, '_');\n return null;\n }\n\n get chartScaling() {\n return this.deviceData?.data?.meta.chartScaling;\n }\n get ready() {\n return this.deviceData?.data?.meta?.controllerMappings?.mpcReady;\n }\n get actualHeating() {\n return this.deviceData?.data?.meta?.controllerMappings?.power;\n }\n get calculatedProduction() {\n return `HPP.${this.mpcIdMod}.pow`;\n }\n get calculatedProductionMainView() {\n return `HPP.${this.mpcIdMod}.mean`;\n }\n get calculatedEnergy() {\n return `HPP.${this.mpcIdMod}.en`;\n }\n get calculatedEnergy2() {\n return `HPP.${this.mpcIdMod}.cen`;\n }\n get actualEnergyChart() {\n return `HPP.${this.mpcIdMod}.aen`;\n }\n get errorWarningMqtt() {\n return {\n ShowEvent_errorWarningState: this.deviceData?.data?.meta?.controllerMappings?.errorWarning,\n };\n }\n get actualHeatingMqtt() {\n return {\n OutputField1_actualValue: this.actualHeating,\n };\n }\n get calculatedProductionMqtt() {\n return {\n OutputField2_actualValue: this.calculatedProductionMainView,\n };\n }\n get calculatedEnergyMqtt() {\n return {\n OutputField3_actualValue: this.calculatedEnergy,\n };\n }\n get readyMqtt() {\n return {\n ShowEventDot1_errorWarningState: this.ready,\n };\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async mounted() {\n this.mpc = await this.fetchMPCData(this.deviceData.id);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e51f2e5a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e51f2e5a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"device-data\":_vm.deviceData,\"is-charts\":true,\"show-event\":false,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},on:{\"toggleLoading\":_vm.toggleLoading},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex fill-height pt-10 flex-column flex-lg-row pb-4 pb-lg-0\"},[(_vm.allSystems && _vm.loaded)?[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('ActualViewIO',{staticClass:\"actual_view mt-15\",attrs:{\"all-systems-data\":_vm.allSystems,\"device-data\":_vm.deviceData}})],1),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView')))]),_c('EnergyFlowViewIO',{attrs:{\"device-data\":_vm.mappedDeviceData}})],1)]:_c('div',{staticClass:\"d-flex align-center justify-center fill-height\",staticStyle:{\"width\":\"100%\"}},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":60}})],1)],2)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts',{attrs:{\"mpc-data\":_vm.mappedDeviceData,\"mpc-id\":_vm.mpcIdMod,\"scaling\":_vm.emsScaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC}})]},proxy:true},{key:\"dnd\",fn:function(){return [_vm._t(\"dnd\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{style:(_vm.enableMinWidth ? 'height: 650px; min-width:700px' : 'height: 650px;')},[_c('EnergyVisualisationIO',{attrs:{\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData}}),(_vm.showDialog && _vm.openedSystem)?_c('ActualViewSystemDialogIO',{attrs:{\"id\":_vm.openedSystemId,\"device-data\":_vm.deviceData,\"opened-system\":_vm.openedSystem,\"devices-with-dynamic-bottom-value\":_vm.devicesWithDynamicBottomValue,\"actualViewCiclesDisplayData\":_vm.circlesDisplayData},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{key:_vm.resizeRerender,staticStyle:{\"position\":\"relative\",\"height\":\"100%\"}},[(_vm.isLinesReady)?_c('EnergyLines',{attrs:{\"display-data\":_vm.energyLinesDataLive,\"canvas-size\":_vm.canvasSize}}):_vm._e(),_c('div',{ref:\"circles\",staticClass:\"d-flex flex-column\",staticStyle:{\"height\":\"100%\",\"position\":\"relative\"}},[_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\",staticStyle:{\"flex-wrap\":\"nowrap\"}},_vm._l((_vm.topCircles),function(item){return _c('div',{key:item.id,ref:item.id,refInFor:true},[_c('EnergyCircleIO',{attrs:{\"display-data\":item}})],1)}),0),_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\",staticStyle:{\"flex-wrap\":\"nowrap\"}},[_c('div',{staticClass:\"fill-height d-flex flex-column align-center justify-space-around\"},_vm._l((_vm.middleLeftCircles),function(middleLeftCircle){return _c('div',{key:middleLeftCircle.id,ref:middleLeftCircle.id,refInFor:true,staticClass:\"d-flex align-center justify-center\"},[_c('EnergyCircleIO',{key:middleLeftCircle.id,attrs:{\"display-data\":middleLeftCircle}})],1)}),0),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"fill-height d-flex flex-column align-center justify-space-around\",staticStyle:{\"flex-wrap\":\"nowrap\"}},_vm._l((_vm.middleRightCircles),function(middleRightCircle){return _c('div',{key:middleRightCircle.id,ref:middleRightCircle.id,refInFor:true,staticClass:\"d-flex align-center justify-center\"},[_c('EnergyCircleIO',{key:middleRightCircle.id,attrs:{\"display-data\":middleRightCircle}})],1)}),0)]),_c('div',{staticClass:\"row d-flex justify-space-around flex-grow-1 align-center\"},_vm._l((_vm.bottomCircles),function(item){return _c('div',{key:item.id,ref:item.id,refInFor:true},[_c('EnergyCircleIO',{attrs:{\"display-data\":item}})],1)}),0)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"energy-circle\",class:{ placeholder: _vm.isPlaceholder },staticStyle:{\"border-radius\":\"50%\"},attrs:{\"data-testid\":_vm.displayData.id,\"elevation\":\"1\"},on:{\"click\":_vm.energyCircleOnClick}},[(_vm.displayData.systemCount)?_c('div',{staticClass:\"system-count\",class:[_vm.systemCountPosition]},[_c('v-btn',{staticClass:\"text-body-2\",attrs:{\"color\":\"lynusText\",\"outlined\":\"\",\"fab\":\"\",\"x-small\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.displayData.systemCount)+\" \")])],1):_vm._e(),_c('div',{staticClass:\"energy-circle-content\"},[_c('div',{style:(_vm.circleContentStyle)},[_vm._v(\" \"+_vm._s(_vm.displayData.title)+\" \")]),_c('EnergyCircleValueIO',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.displayData.bottomValue !== undefined && _vm.displayData.hideValue !== false && !_vm.showLoadingAnimationHouseCircle),expression:\"displayData.bottomValue !== undefined && displayData.hideValue !== false && !showLoadingAnimationHouseCircle\"}],staticClass:\"energy-circle-top-value\",attrs:{\"data-testid\":\"value\",\"value\":_vm.unit.unitForValue(_vm.convertNegativeZero(_vm.formattedBottomValue)).formattedWithUnit,\"highlight-color\":_vm.displayData.bottomValue === 0 ? _vm.energyGrey() : _vm.displayData.spinnerColor,\"is-highlighted\":_vm.displayData.highlightBottomValue}}),(_vm.displayData.errorWarningMode)?_c('ShowEventBaseGroup',{attrs:{\"warning-state\":_vm.displayData.errorWarningMode}}):_vm._e(),_c('RotatingBacklight',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.disableSpinner),expression:\"disableSpinner\"}],attrs:{\"color\":_vm.displayData.spinnerColor,\"no-data\":_vm.rotatingBacklightNoData}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{style:(_vm.styles)},[_vm._v(\" \"+_vm._s(_vm.value)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport tinycolor from 'tinycolor2';\n\n@Component\nexport default class EnergyCircleValueIO extends Vue {\n @Prop({ default: '' }) value!: string;\n @Prop({ default: false }) isHighlighted!: boolean;\n @Prop() highlightColor!: string;\n\n get styles() {\n return {\n color: tinycolor(this.highlightColor).isDark() ? '#ffffff' : '#525252',\n background: this.highlightColor,\n padding: '0px 6px',\n borderRadius: '4px',\n };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValueIO.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyCircleValueIO.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyCircleValueIO.vue?vue&type=template&id=334625ea&scoped=true&\"\nimport script from \"./EnergyCircleValueIO.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyCircleValueIO.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyCircleValueIO.vue?vue&type=style&index=0&id=334625ea&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"334625ea\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Inject, Prop, Vue } from 'vue-property-decorator';\nimport RotatingBacklight\n from '@/ui/components/devices/components/EnergyParts/RotatingBacklight.vue';\nimport ShowEventBaseGroup from '@/ui/components/devices/mpc/base/ShowEventBase.vue';\nimport BatteryLevel from '@/ui/components/devices/components/EnergyParts/BatteryLevel.vue';\nimport {\n IOEnergyCircleDisplayData,\n PlaceholderIOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\nimport { convertNegativeZero, countDecimalPlaces } from '@/utils/utilsFunctions';\nimport EnergyCircleValueIO\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/EnergyCircleValueIO.vue';\nimport {\n energyGrey,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\n\n@Component({\n components: {\n EnergyCircleValueIO,\n BatteryLevel,\n RotatingBacklight,\n ShowEventBaseGroup,\n },\n methods: {\n energyGrey() {\n return energyGrey;\n },\n convertNegativeZero,\n },\n})\nexport default class EnergyCircleIO extends Vue {\n @Prop({}) displayData!: IOEnergyCircleDisplayData;\n @Inject({ from: 'onIOCircleClick', default: () => {} }) onIOCircleClick?: (\n circleData: IOEnergyCircleDisplayData,\n ) => void;\n\n /**\n * Returns the bottom value formatted with one decimal place if the value has more than one decimal place.\n */\n get formattedBottomValue() {\n if (typeof this.displayData.bottomValue === 'number' && countDecimalPlaces(this.displayData.bottomValue) > 1) {\n return parseFloat(this.displayData.bottomValue.toFixed(1));\n }\n return this.displayData.bottomValue;\n }\n\n get systemCountPosition() {\n return this.displayData.systemType === IOEnergyCircleType.outputs ? 'system-count-bottom' : 'system-count-top';\n }\n\n get isPlaceholder() {\n return this.displayData instanceof PlaceholderIOEnergyCircleDisplayData;\n }\n\n get showLoadingAnimationHouseCircle() {\n return false;\n }\n\n get unit() {\n return this.displayData.unit ?? kiloWattUnit;\n }\n\n get rotatingBacklightNoData() {\n return !(this.displayData.bottomValue ?? this.displayData.alternativeValue);\n }\n\n get disableSpinner() {\n return this.displayData.disableSpinner !== true;\n }\n\n get circleContentStyle() {\n if (this.displayData.bottomValue === undefined) {\n return {};\n } else {\n return {\n fontSize: '16px',\n fontWeight: 'bold',\n textAlign: 'center',\n background: 'var(--v-secondaryDeviceBackground-base)',\n padding: '2px 4px',\n zIndex: 5,\n borderRadius: '6px',\n };\n }\n }\n\n energyCircleOnClick() {\n if (this.displayData.id !== 'calculated') this.onIOCircleClick?.(this.displayData);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=36c8291e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=36c8291e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36c8291e\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { EnergyLineDisplayData, } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport EnergyLines\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyLines.vue';\nimport EnergyCircleIO\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyCircleIO/index.vue';\nimport {\n CirclePosition,\n IOEnergyCircleDisplayData,\n PlaceholderIOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport CentralEndpoint\n from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport { CanvasSize } from '@/types/energyVisualisation/energyVisualisation.types';\nimport { debounce } from 'lodash';\n\n@Component({\n components: {\n EnergyLines,\n EnergyCircleIO,\n CentralEndpoint,\n },\n})\nexport default class EnergyVisualisationIO extends Vue {\n @Prop({ default: () => [] }) circlesDisplayData!: IOEnergyCircleDisplayData[];\n @Prop({ default: () => [] }) linesDisplayData!: Partial[];\n @Prop({ default: '' }) centralEndPointText?: string;\n\n resizeRerender = true;\n energyLinesData: EnergyLineDisplayData[] = [];\n canvasSize: CanvasSize = { width: 0, height: 0 };\n\n debouncedResize: any;\n\n get topCircles() {\n const res = this.circlesDisplayData.filter((e: IOEnergyCircleDisplayData) => e.position === CirclePosition.top);\n // To maintain correct spacing if current top row is empty\n return res.length ? res : [new PlaceholderIOEnergyCircleDisplayData()];\n }\n\n get middleLeftCircles() {\n const filteredHybridSystems = this.circlesDisplayData.filter((e: IOEnergyCircleDisplayData) => e.position === CirclePosition.middleLeft);\n return filteredHybridSystems.filter((e: IOEnergyCircleDisplayData, index) => index % 2 === 0);\n }\n\n get middleRightCircles() {\n const filteredHybridSystems = this.circlesDisplayData.filter((e: IOEnergyCircleDisplayData) => e.position === CirclePosition.middleLeft);\n return filteredHybridSystems.filter((e: IOEnergyCircleDisplayData, index) => index % 2 !== 0);\n }\n\n get bottomCircles() {\n const res = this.circlesDisplayData.filter((e: IOEnergyCircleDisplayData) => e.position === CirclePosition.bottom);\n // To maintain correct spacing if current bottom row is empty\n return res.length ? res : [new PlaceholderIOEnergyCircleDisplayData()];\n }\n\n get energyLinesDataLive() {\n return this.linesDisplayData.map((reactiveLine: Partial) => {\n const positions = this.energyLinesData.find((staticLine: EnergyLineDisplayData) => staticLine.id === reactiveLine.id);\n return {\n ...reactiveLine,\n arrowDirection: reactiveLine.arrowDirection,\n startPoint: positions?.startPoint ?? { x: 0, y: 0 },\n endPoint: positions?.endPoint ?? { x: 0, y: 0 },\n };\n }) as EnergyLineDisplayData[];\n }\n\n get isLinesReady() {\n return !!this.canvasSize.width && !!this.canvasSize.height && !!this.energyLinesData.length;\n }\n\n onResize() {\n this.updateCircles();\n this.resizeRerender = !this.resizeRerender;\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n updateCircles() {\n const actualViewRef = this.$refs.circles as HTMLDivElement;\n if (!actualViewRef) return;\n this.canvasSize = { width: actualViewRef.clientWidth, height: actualViewRef.clientHeight };\n this.energyLinesData = [];\n this.circlesDisplayData.forEach((circle: IOEnergyCircleDisplayData, index: number) => {\n const ref = this.$refs[circle.id];\n const element: any = Array.isArray(ref) ? ref[0] : ref;\n if (!element) return;\n\n this.energyLinesData.push({\n ...this.linesDisplayData[index],\n startPoint: {\n x: element.offsetLeft + element.offsetWidth / 2,\n y: element.offsetTop + element.offsetHeight / 2,\n },\n endPoint: { x: this.canvasSize.width / 2, y: this.canvasSize.height / 2 },\n } as EnergyLineDisplayData);\n });\n }\n\n mounted() {\n this.debouncedResize = debounce(() => this.onResize(), 50);\n setTimeout(() => this.onResize(), 50);\n window.addEventListener('resize', this.debouncedResize);\n\n this.updateCircles();\n }\n\n destroyed() {\n window.removeEventListener('resize', this.debouncedResize);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=b11b49be&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('SystemDialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.systemTitle))]},proxy:true},{key:\"body\",fn:function(){return [_c('IOSystemDialogView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines,\"openedSystem\":_vm.openedSystem,\"deviceData\":_vm.deviceData}})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.circlesDisplayData.length > _vm.elementsPerPage)?_c('PaginationTabs',{attrs:{\"elementsPerPage\":_vm.elementsPerPage,\"totalElements\":_vm.circlesDisplayData.length},on:{\"updatePage\":_vm.updatePage}}):_vm._e(),_c('div',{staticStyle:{\"height\":\"600px\"}},[_c('EnergyVisualisationIO',{key:_vm.startIndex,ref:\"EnergyVisualisationIO\",attrs:{\"circles-display-data\":_vm.sortedCirclesDisplayData,\"lines-display-data\":_vm.sortedLinesDisplayData}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Inject, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport PaginationTabs from '@/ui/components/components/PaginationTabs.vue';\nimport { CirclePosition, EnergyCircleDisplayData, IOEnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { IDevice } from '@/types/devices.types';\nimport EnergyVisualisationIO from './index.vue';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n PaginationTabs,\n EnergyVisualisationIO,\n },\n})\nexport default class IOSystemDialogView extends mixins(EnergyComponent) {\n @Prop() circlesDisplayData!: IOEnergyCircleDisplayData[];\n @Prop() linesDisplayData!: Partial[];\n @Prop() openedSystem!: IOEnergyCircleType;\n @Prop({ default: null }) deviceData!: IDevice;\n\n @Provide('onIOCircleClick') onIOCircleClick = this.onSingleSystemClickCallback;\n @Inject({ from: 'onIOSingleCircleClick', default: () => {} }) onIOSingleCircleClick?: (\n circleData: IOEnergyCircleDisplayData,\n ) => void;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n @Inject({ from: 'onDialogLineAnimationEnd', default: () => {} }) onDialogLineAnimationEnd!: (id: string) => void;\n\n readonly elementsPerPage = 10;\n startIndex = 0;\n\n onLineAnimationEndCallback(id: string) {\n this.onDialogLineAnimationEnd?.(id);\n }\n\n onSingleSystemClickCallback(circleData: IOEnergyCircleDisplayData) {\n this.onIOSingleCircleClick?.(circleData);\n }\n get circleKeys() {\n return this.circlesDisplayData.map((el: IOEnergyCircleDisplayData) => el.id);\n }\n get circlesDisplayDataMap() {\n return new Map(this.circlesDisplayData.map((el: IOEnergyCircleDisplayData) => [el.id, el]));\n }\n get linesDisplayDataMap() {\n return new Map(this.linesDisplayData.map((el: Partial) => [el.id, el]));\n }\n get circleKeysSorted() {\n const sortedArray = this.circleKeys\n .sort((a, b) => {\n // extract numbers from system keys\n const aNum = Number(a.match(/\\d+/)?.[0]);\n const bNum = Number(b.match(/\\d+/)?.[0]);\n return aNum - bNum;\n });\n return sortedArray.slice(this.startIndex, this.startIndex + this.elementsPerPage);\n }\n get sortedCirclesDisplayData() {\n return this.circleKeysSorted.map((key: string, index: number) => {\n const circleData = this.circlesDisplayDataMap.get(key);\n return {\n ...circleData,\n position: index < 5 ? CirclePosition.top : CirclePosition.bottom,\n } as EnergyCircleDisplayData;\n });\n }\n get sortedLinesDisplayData() {\n return this.circleKeysSorted.map((key: string) => {\n const lineData = this.linesDisplayDataMap.get(key);\n return { ...lineData } as EnergyLineDisplayData;\n });\n }\n\n updatePage(index: number) {\n this.startIndex = index;\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.EnergyVisualisationIO as any).updateCircles();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IOSystemDialogView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IOSystemDialogView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IOSystemDialogView.vue?vue&type=template&id=2472876f&\"\nimport script from \"./IOSystemDialogView.vue?vue&type=script&lang=ts&\"\nexport * from \"./IOSystemDialogView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('SystemDialog',{attrs:{\"value\":_vm.value,\"max-width\":_vm.openedSettingsWidth},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.circleDataTitle))]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\",staticStyle:{\"min-height\":\"100px\",\"font-weight\":\"500\",\"font-size\":\"20px\"}},[(_vm.openedSettings)?_c(_vm.openedSettings,{tag:\"component\",staticClass:\"flex-grow-1\",attrs:{\"instance-data\":_vm.openedSystemComponent,\"device-data\":_vm.deviceData,\"system\":_vm.openedSystem,\"system-instance\":_vm.circleData.id,\"controls\":_vm.controls},scopedSlots:_vm._u([{key:\"additional-settings\",fn:function(){return undefined},proxy:true}],null,false,3029810488)}):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { IOEnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport SystemDialog from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport PVSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/PVSystem/Actual/Settings.vue';\nimport GeneratorSystemSettings from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/GeneratorSystem/Actual/Settings.vue';\nimport CHPSystemSettings\n from '@/ui/components/devices/components/EnergyParts/EMS/components/systems/CHPSystem/Actual/Settings.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n SystemDialog,\n },\n})\nexport default class ActualViewIOSystemSettingsDialog extends mixins(EnergyComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() openedSystem!: IOEnergyCircleType;\n @Prop() circleData!: IOEnergyCircleDisplayData;\n @Prop({ default: null }) controls!: any;\n\n systemToSettingsMapping = {\n // EMS, EnergyView\n [IOEnergyCircleType.inputs]: {\n component: PVSystemSettings,\n width: 450,\n },\n [IOEnergyCircleType.hybrids]: {\n component: CHPSystemSettings,\n width: 1200,\n },\n [IOEnergyCircleType.outputs]: {\n component: GeneratorSystemSettings,\n width: 800,\n },\n };\n\n get circleDataTitle() {\n return this.circleData?.title;\n }\n\n get openedSettings() {\n return this.systemToSettingsMapping[this.openedSystem as IOEnergyCircleType].component;\n }\n get openedSettingsWidth() {\n return this.systemToSettingsMapping[this.openedSystem as IOEnergyCircleType].width;\n }\n\n getIoSystemComponents(type: IOEnergyCircleType): Record {\n return this.deviceData.data.meta.controllerMappings[type]?.components ?? {};\n }\n\n // get opened single system's component data\n get openedSystemComponent() {\n return this.getIoSystemComponents(this.openedSystem as IOEnergyCircleType)[\n this.circleData.id\n ];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewIOSystemSettingsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewIOSystemSettingsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActualViewIOSystemSettingsDialog.vue?vue&type=template&id=7ead25b0&\"\nimport script from \"./ActualViewIOSystemSettingsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActualViewIOSystemSettingsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { has } from 'lodash';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n CirclePosition,\n EnergyCircleDisplayData,\n IOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport SystemDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport SystemDialogView\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { IDevice } from '@/types/devices.types';\nimport {\n energyConsumerColors,\n energyGreyColors,\n energyHybridColors,\n energyProducerColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport IOSystemDialogView\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue';\nimport ActualViewIOSystemSettingsDialog\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewIOSystemSettingsDialog.vue';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n ActualViewIOSystemSettingsDialog,\n IOSystemDialogView,\n SystemDialog,\n SystemDialogView,\n },\n})\nexport default class ActualViewIOSystemDialog extends mixins(EnergyComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() id!: string;\n @Prop() openedSystem!: IOEnergyCircleType;\n @Prop({ default: () => [] }) devicesWithDynamicBottomValue!: string;\n @Prop({ default: false }) isHybridSystem!: boolean; // if the system is a hybrid system (normal components and pv components)\n @Prop() actualViewCiclesDisplayData!: IOEnergyCircleDisplayData[];\n\n @Provide('onDialogLineAnimationEnd') onDialogLineAnimationEnd =\n this.onDialogLineAnimationEndCallback;\n onDialogLineAnimationEndCallback(id: string) {\n if (has(this.electricHeatingInstancesAnimationStatus, id)) {\n this.electricHeatingInstancesAnimationStatus[id] = !this.electricHeatingInstancesAnimationStatus[id];\n } else {\n this.$set(this.electricHeatingInstancesAnimationStatus, id, false);\n }\n }\n electricHeatingInstancesAnimationStatus: Record = {};\n\n get systemTitle() {\n return this.deviceData.data.meta.controllerMappings[this.openedSystem as any].components[this.id].title;\n }\n\n getIoSystemComponents(): Record {\n return this.deviceData.data.meta.controllerMappings[this.openedSystem]?.components[this.id] ?? {};\n }\n\n get systemDialogCircles(): IOEnergyCircleDisplayData[] {\n if (!this.openedSystem) return [];\n\n const systems = this.getIoSystemComponents();\n const mappedSystems: IOEnergyCircleDisplayData[] = [];\n if (this.openedSystem === IOEnergyCircleType.hybrids) {\n const currentSystem = this.actualViewCiclesDisplayData.find(\n (circle) => circle.id === this.id,\n );\n mappedSystems.push({\n id: 'hybrid-system',\n title: this.$t(`mlModel.${this.deviceData.data.type}.groups.${this.openedSystem}.system`),\n systemType: this.openedSystem,\n position: CirclePosition.top,\n spinnerColor: currentSystem?.spinnerColor,\n disableSpinner: currentSystem?.disableSpinner,\n unit: kiloWattUnit,\n bottomValue: currentSystem?.bottomValue,\n } as IOEnergyCircleDisplayData);\n return mappedSystems;\n }\n Object.entries(systems.power).forEach(([key, variable], index) => {\n const currentSystem = this.actualViewCiclesDisplayData.find(\n (circle) => circle.id === this.id,\n );\n mappedSystems.push({\n id: key,\n title: `${this.$t(`mlModel.${this.deviceData.data.type}.groups.${this.openedSystem}.system`)} ${index + 1}`,\n systemType: this.openedSystem,\n position: CirclePosition.top,\n spinnerColor: currentSystem?.spinnerColor,\n disableSpinner: currentSystem?.disableSpinner,\n unit: kiloWattUnit,\n bottomDynamicValue: currentSystem?.bottomDynamicValue,\n bottomValue: this.measurements[variable as string] ?? 0,\n } as IOEnergyCircleDisplayData);\n });\n return mappedSystems;\n }\n\n get systemDialogLines(): Partial[] {\n if (!this.openedSystem) return [];\n\n return this.systemDialogCircles.map(\n (displayData: IOEnergyCircleDisplayData) => {\n let arrowDirection;\n let colors;\n\n if (displayData.bottomValue === undefined || displayData.bottomValue === 0) {\n return {\n id: displayData.id,\n arrowDirection: ArrowDirection.none,\n colors: energyGreyColors,\n } as Partial;\n }\n // if the temperature is visible and the power is negative, the arrow should not be visible else it should be visible (currently only for electric_heating systems)\n if (this.openedSystem === IOEnergyCircleType.hybrids) {\n arrowDirection = displayData.bottomValue < 0\n ? ArrowDirection.awayFromCenter\n : ArrowDirection.toCenter;\n colors = displayData.bottomValue > 0 ? energyHybridColors : energyConsumerColors;\n } else {\n arrowDirection = this.openedSystem === IOEnergyCircleType.inputs ? ArrowDirection.toCenter : ArrowDirection.awayFromCenter;\n colors = this.openedSystem === IOEnergyCircleType.inputs ? energyProducerColors : energyConsumerColors;\n }\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n } as Partial;\n },\n );\n }\n\n beforeDestroy() {\n this.electricHeatingInstancesAnimationStatus = {};\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemDialogIO.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemDialogIO.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActualViewSystemDialogIO.vue?vue&type=template&id=705435bb&\"\nimport script from \"./ActualViewSystemDialogIO.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActualViewSystemDialogIO.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport { IMeasurements } from '@/types/measurements.types';\nimport {\n EnergyCircleType,\n IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n ArrowDirection,\n EnergyLineColors,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport {\n energyConsumerColors,\n energyGreen,\n energyGrey,\n energyGreyColors,\n energyRed, energyYellow,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Helper for extracting data from EnergyView, EMS.\n */\n@Component\nexport default class EnergyIOComponent extends Vue {\n @Prop({ default: null }) deviceData!: IDevice;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n getSystemCount(type: IOEnergyCircleType): number {\n return this.deviceData.data.meta.controllerMappings?.[type]?.count ?? 0;\n }\n\n filterPresentIoSystems(systems: IOEnergyCircleType[]) {\n return systems.filter((systemType: IOEnergyCircleType) => this.isIoSystemPresent(systemType));\n }\n\n isIoSystemPresent(systemType: IOEnergyCircleType) {\n return this.deviceData.data.meta.controllerMappings?.[systemType]?.count ?? 0;\n }\n\n getIoSystemComponents(type: IOEnergyCircleType): Record {\n return this.deviceData.data.meta.controllerMappings[type]?.components ?? {};\n }\n\n getMappedIoSystemComponents(type: IOEnergyCircleType): Record {\n const components = this.getIoSystemComponents(type);\n return Object.keys(components).map((key: string) => {\n return {\n id: key,\n ...components[key],\n };\n });\n }\n getVariableValue(device: any, type: IOEnergyCircleType, systemInstance: string, variableToLookFor: string, variableInstance: string) {\n return device.data.meta.controllerMappings[type].components[systemInstance][variableToLookFor];\n }\n\n getAlternativeArrowDirection(value?: number): ArrowDirection | undefined {\n return value !== null && value !== undefined && value > 0\n ? ArrowDirection.awayFromCenter\n : undefined;\n }\n\n getAlternativeLineColors(value?: number): EnergyLineColors {\n return value != null && value > 0\n ? energyConsumerColors\n : energyGreyColors;\n }\n\n defaultColorByType(type: IOEnergyCircleType, value: number, hybridColor: null | string = null): string {\n if (type === IOEnergyCircleType.inputs) {\n return value !== 0 ? energyYellow : energyGrey;\n }\n if (type === IOEnergyCircleType.outputs) {\n return value !== 0 ? energyGreen : energyGrey;\n }\n if (type === IOEnergyCircleType.hybrids && hybridColor) {\n return value !== 0 ? hybridColor : energyGrey;\n }\n if (value > 0) {\n return energyRed;\n }\n if (value < 0) {\n return energyGreen;\n }\n return energyGrey;\n }\n}\n","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyVisualisationIO\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue';\nimport {\n allIOEnergyCircleTypes,\n IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n CirclePosition,\n IOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { IDevice } from '@/types/devices.types';\nimport {\n energyBlue,\n energyGreen,\n energyGrey,\n energyGreyColors,\n energyRed,\n energyYellow,\n energyOrange,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\nimport ActualViewSystemDialogIO\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/ActualViewSystemDialogIO.vue';\nimport { kiloWattUnit } from '@/utils/unit/unitConstants';\nimport EnergyIOComponent from '../utils/EnergyIOComponent';\n\ntype SystemInstances = Record\ntype SystemInstance = Record\n\nconst devicesWithDynamicBottomValue: string[] = ['EMS', 'EMSV2'];\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n ActualViewSystemDialogIO,\n EnergyVisualisationIO,\n },\n computed: {\n devicesWithDynamicBottomValue: () => devicesWithDynamicBottomValue,\n },\n})\nexport default class ActualViewIO extends mixins(EnergyIOComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: false }) enableMinWidth!: boolean;\n @Getter('projects/project') project!: IProject;\n\n showDialog = false;\n openedSystem?: IOEnergyCircleType;\n openedSystemId = '';\n\n @Provide('onIOCircleClick') onIOCircleClick = this.onCircleClickCallback;\n\n onCircleClickCallback(circleData: IOEnergyCircleDisplayData) {\n this.openedSystemId = circleData.id;\n this.openedSystem = circleData.systemType as IOEnergyCircleType;\n this.showDialog = true;\n }\n\n avg(systemInstances: Record>, mappedVariable = 'soc') {\n const values: number[] = Object.values(systemInstances).map(\n (systemInstanceMappings: Record) => {\n const measurement = systemInstanceMappings[mappedVariable];\n return this.measurements[measurement] as number;\n },\n );\n const sum: number = values.reduce((acc: number, value: number) => acc + value, 0);\n const result = sum / values.length;\n return Number.isNaN(result) ? 0 : result;\n }\n get shownSystems() {\n return this.filterPresentIoSystems(allIOEnergyCircleTypes);\n }\n\n mappingsCount(id: string, systemType: IOEnergyCircleType) {\n return Object.values(this.deviceData.data.meta.controllerMappings[systemType]?.components[id]?.power).length ?? 0;\n }\n\n sumAllPowers(id: string, systemType: IOEnergyCircleType) {\n let sum = 0;\n // Assuming power values should be strings as per your forEach loop\n const powers = Object.values(this.deviceData.data.meta.controllerMappings[systemType]?.components[id]?.power) as string[];\n powers.forEach((power: string) => {\n sum += this.measurements[power] as number ?? 0;\n });\n return sum;\n }\n\n getCirclePositionForType(systemType: IOEnergyCircleType) {\n switch (systemType) {\n case IOEnergyCircleType.inputs:\n return CirclePosition.top;\n case IOEnergyCircleType.outputs:\n return CirclePosition.bottom;\n case IOEnergyCircleType.hybrids:\n return CirclePosition.middleLeft;\n default:\n return CirclePosition.top;\n }\n }\n\n getColorByType(systemType: IOEnergyCircleType, value: number) {\n switch (systemType) {\n case IOEnergyCircleType.inputs:\n return energyYellow;\n case IOEnergyCircleType.outputs:\n return energyGreen;\n case IOEnergyCircleType.hybrids:\n return value < 0 ? energyGreen : energyRed;\n default:\n return energyGrey;\n }\n }\n\n sumAllPowersByType(systemType: IOEnergyCircleType) {\n let sum = 0;\n const components = this.getMappedIoSystemComponents(systemType);\n\n Object.values(components).forEach((component: any) => {\n if (systemType === IOEnergyCircleType.hybrids) {\n sum += this.measurements[component.power] as number ?? 0;\n } else {\n sum += this.sumAllPowers(component.id, systemType);\n }\n });\n return sum;\n }\n\n get totalDifferenceForAllInputsAndOutputs() {\n const inputs = this.sumAllPowersByType(IOEnergyCircleType.inputs);\n const outputs = this.sumAllPowersByType(IOEnergyCircleType.outputs);\n const hybrids = this.sumAllPowersByType(IOEnergyCircleType.hybrids);\n return inputs + hybrids - outputs;\n }\n\n get circlesDisplayData() {\n const mappedSystems: IOEnergyCircleDisplayData[] = [];\n this.shownSystems.forEach((systemType: IOEnergyCircleType) => {\n const components = this.getIoSystemComponents(systemType);\n // convert the components Record to an array of objects\n const mappedComponents = Object.keys(components).map((key: string) => {\n return {\n id: key,\n ...components[key],\n };\n });\n\n if (systemType === IOEnergyCircleType.outputs) {\n mappedSystems.push({\n id: 'calculated',\n title: `${this.$t(`mlModel.${this.deviceData.data.type}.difference`)}`,\n systemType,\n spinnerColor: energyOrange,\n position: CirclePosition.bottom,\n disableSpinner: false,\n unit: kiloWattUnit,\n bottomValue: this.totalDifferenceForAllInputsAndOutputs,\n });\n }\n mappedComponents.forEach((component: any) => {\n const value = (systemType !== IOEnergyCircleType.hybrids ? this.sumAllPowers(component.id, systemType) : this.measurements[component.power]) as number ?? 0;\n const spinnerColor = this.getColorByType(systemType, value);\n const circlePosition = this.getCirclePositionForType(systemType);\n mappedSystems.push({\n id: component.id,\n title: component.title,\n systemType,\n systemCount: systemType !== IOEnergyCircleType.hybrids ? this.mappingsCount(component.id, systemType) : 1,\n spinnerColor,\n position: circlePosition,\n disableSpinner: false,\n unit: kiloWattUnit,\n bottomValue: value,\n });\n });\n });\n return mappedSystems;\n }\n\n get linesDisplayData() {\n const firstOutputIndex = this.circlesDisplayData.findIndex((circle) => circle.systemType === IOEnergyCircleType.outputs);\n return this.circlesDisplayData.map((displayData: IOEnergyCircleDisplayData, index: number) => {\n let arrowDirection;\n let colors;\n\n if (displayData.bottomValue === 0) {\n arrowDirection = ArrowDirection.none;\n colors = energyGreyColors;\n } else {\n switch (displayData.systemType) {\n case IOEnergyCircleType.inputs:\n arrowDirection = ArrowDirection.toCenter;\n colors = {\n colorAtCenter: energyBlue,\n colorAtCircle: energyYellow,\n };\n break;\n case IOEnergyCircleType.outputs:\n arrowDirection = ArrowDirection.awayFromCenter;\n colors = {\n colorAtCenter: energyBlue,\n colorAtCircle: index === firstOutputIndex ? energyOrange : energyGreen,\n };\n break;\n case IOEnergyCircleType.hybrids:\n arrowDirection = displayData.bottomValue !== undefined && displayData.bottomValue > 0 ? ArrowDirection.toCenter : ArrowDirection.awayFromCenter;\n colors = {\n colorAtCenter: energyBlue,\n colorAtCircle: displayData.bottomValue !== undefined && displayData.bottomValue > 0 ? energyRed : energyGrey,\n };\n break;\n default:\n arrowDirection = 0;\n colors = energyGreyColors;\n }\n }\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n } as Partial;\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=00438676&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00438676\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"base-chart\"},[_c('CalendarNavigation',{ref:\"calendarDialog\",staticStyle:{\"padding-bottom\":\"30px\"},attrs:{\"disable-nav-button\":_vm.disableNavButton,\"navigation-items-to-exclude\":_vm.navigationItemsToExclude},on:{\"handleCalendar\":function($event){return _vm.handleCalendar($event)},\"handleNavigation\":function($event){return _vm.handleNavigation($event)},\"next\":function($event){return _vm.handlePrevNextButtonCalendar('next')},\"prev\":function($event){return _vm.handlePrevNextButtonCalendar('prev')}}},[_c('div',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.displayDate))]),_c('div',{staticStyle:{\"height\":\"650px\"}},[(_vm.loader)?_c('div',{staticClass:\"d-flex justify-center align-center fill-height\"},[_c('CircleSpinner',{staticClass:\"circle-spinner\",attrs:{\"color\":\"accent\",\"size\":80}})],1):_c('EnergyVisualisationIO',{attrs:{\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData}}),(_vm.showDialog)?_c('EnergyFlowViewSystemDialogIO',{attrs:{\"device-data\":_vm.deviceData,\"opened-system-id\":_vm.openedSystemId,\"opened-system\":_vm.openedSystem,\"energy-data-by-period-response\":_vm.energyDataByPeriodResponse},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}}):_vm._e()],1)])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { EnergyCircleDisplayData, IOEnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n ArrowDirection,\n EnergyLineColors,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport {\n energyConsumerColors,\n energyGreyColors,\n energyHybridColors,\n energyProducerColors,\n} from '../../EnergyVisualisation/constants';\n\nexport function getDefaultLineColorsIO(type: IOEnergyCircleType, displayData: IOEnergyCircleDisplayData): EnergyLineColors {\n const value: any = displayData.bottomValue ?? displayData.alternativeValue;\n\n if (!value) {\n return energyGreyColors;\n }\n if (type === IOEnergyCircleType.inputs) {\n return energyProducerColors;\n }\n if (type === IOEnergyCircleType.outputs) {\n return energyConsumerColors;\n }\n\n // hybrid\n if (value > 0) {\n return energyHybridColors;\n }\n if (value < 0) {\n return energyConsumerColors;\n }\n return energyGreyColors;\n}\nexport function getDefaultArrowDirectionIO(type: IOEnergyCircleType, displayData: IOEnergyCircleDisplayData): ArrowDirection {\n const value: any = displayData.bottomValue ?? displayData.alternativeValue;\n\n if (!value) {\n return ArrowDirection.none;\n }\n if (type === IOEnergyCircleType.inputs) {\n return ArrowDirection.toCenter;\n }\n if (type === IOEnergyCircleType.outputs) {\n return ArrowDirection.awayFromCenter;\n }\n\n // hybrid\n if (value > 0) {\n return ArrowDirection.toCenter;\n }\n if (value < 0) {\n return ArrowDirection.awayFromCenter;\n }\n return ArrowDirection.none;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('SystemDialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.systemTitle))]},proxy:true},{key:\"body\",fn:function(){return [_c('IOSystemDialogView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Getter } from 'vuex-class';\nimport SystemDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport {\n CirclePosition,\n IOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n energyConsumerColors,\n energyHybridColors,\n energyGreyColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IMeasurements } from '@/types/measurements.types';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport { IDevice } from '@/types/devices.types';\nimport {\n IOEnergyDataByPeriodResponse,\n} from '@/types/energyVisualisation/energyVisualisation.types';\nimport IOSystemDialogView\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/IOSystemDialogView.vue';\nimport EnergyIOComponent from '../utils/EnergyIOComponent';\nimport {\n getDefaultArrowDirectionIO,\n getDefaultLineColorsIO\n} from '../utils/EnergyIOVisualisationUtils';\n\ntype SystemInstances = Record\ntype SystemInstance = Record\n\n@Component({\n components: {\n IOSystemDialogView,\n SystemDialog,\n },\n methods: { roundNumber },\n})\nexport default class EnergyFlowViewSystemDialogIO extends mixins(EnergyIOComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop() openedSystemId!: string;\n @Prop() openedSystem!: IOEnergyCircleType;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() energyDataByPeriodResponse!: IOEnergyDataByPeriodResponse | null;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n @Provide('onDialogLineAnimationEnd') onDialogLineAnimationEnd =\n this.onDialogLineAnimationEndCallback;\n dialogHybridHighlightBottomValue = false;\n dialogHybridArrowDirection = ArrowDirection.toCenter;\n dialogHybridLineColors = energyHybridColors;\n\n get systemTitle() {\n return this.deviceData.data.meta.controllerMappings[this.openedSystem as any].components[this.openedSystemId].title;\n }\n\n onDialogLineAnimationEndCallback() {\n this.dialogHybridHighlightBottomValue = !this.dialogHybridHighlightBottomValue;\n this.dialogHybridArrowDirection =\n this.dialogHybridArrowDirection === ArrowDirection.toCenter\n ? ArrowDirection.awayFromCenter\n : ArrowDirection.toCenter;\n this.dialogHybridLineColors =\n this.dialogHybridLineColors === energyHybridColors\n ? energyConsumerColors\n : energyHybridColors;\n }\n get systemDialogCircles() {\n if (!this.openedSystem) return [];\n\n const system = this.getIoSystemComponents(this.openedSystem)[this.openedSystemId];\n const mappedSystems: IOEnergyCircleDisplayData[] = [];\n\n if (this.openedSystem === IOEnergyCircleType.hybrids) {\n let value = (this.energyDataByPeriodResponse?.energies as any)[this.openedSystem as string][`${this.openedSystemId}_from_production`] ?? 0;\n if (this.dialogHybridHighlightBottomValue && this.openedSystem === IOEnergyCircleType.hybrids) value = (this.energyDataByPeriodResponse?.energies as any)[this.openedSystem as string][`${this.openedSystemId}_to_consumer`] ?? 0;\n const spinnerColor = this.defaultColorByType(this.openedSystem, value, this.openedSystem === IOEnergyCircleType.hybrids ? this.dialogHybridLineColors.colorAtCircle : null);\n\n mappedSystems.push({\n id: this.openedSystemId,\n title: this.$t(`mlModel.${this.deviceData.data.type}.groups.${this.openedSystem}.system`) as string,\n systemType: this.openedSystem,\n spinnerColor,\n position: CirclePosition.top,\n disableSpinner: false,\n unit: kiloWattHourUnit,\n bottomValue: value,\n });\n return mappedSystems;\n }\n\n Object.entries(system.energy_counter).forEach(([key, systemComponent], index: number) => {\n let bottomValue;\n if (this.energyDataByPeriodResponse?.energies) bottomValue = (this.energyDataByPeriodResponse?.energies as any)[this.openedSystem as string][this.openedSystemId][key];\n const spinnerColor = this.defaultColorByType(this.openedSystem, bottomValue);\n mappedSystems.push({\n id: key,\n title: `${this.$t(`mlModel.${this.deviceData.data.type}.groups.${this.openedSystem}.system`)} ${index + 1}`,\n systemType: this.openedSystem,\n spinnerColor,\n position: CirclePosition.top,\n disableSpinner: false,\n unit: kiloWattHourUnit,\n bottomValue,\n });\n });\n return mappedSystems;\n }\n\n get systemDialogLines(): Partial[] {\n if (!this.openedSystem) return [];\n\n return this.systemDialogCircles.map((displayData: IOEnergyCircleDisplayData) => {\n if (displayData.systemType === IOEnergyCircleType.hybrids) {\n return {\n id: displayData.id,\n arrowDirection: displayData.bottomValue === 0 ? ArrowDirection.none : this.dialogHybridArrowDirection,\n colors: displayData.bottomValue === 0 ? energyGreyColors : this.dialogHybridLineColors,\n } as Partial;\n }\n return {\n id: displayData.id,\n arrowDirection: getDefaultArrowDirectionIO(this.openedSystem, displayData),\n colors: getDefaultLineColorsIO(this.openedSystem, displayData),\n } as Partial;\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowViewSystemDialogIO.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowViewSystemDialogIO.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyFlowViewSystemDialogIO.vue?vue&type=template&id=528c0780&\"\nimport script from \"./EnergyFlowViewSystemDialogIO.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyFlowViewSystemDialogIO.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Action, Getter } from 'vuex-class';\nimport { kiloWattHourUnit } from '@/utils/unit/unitConstants';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport {\n allIOEnergyCircleTypes,\n getCirclePositionForType,\n IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport EnergyVisualisationIO\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/index.vue';\nimport {\n getDateBoundsByPeriod,\n periodConfigurations,\n Periods,\n} from '@/ui/components/devices/charts/charts/ChartUtils';\nimport { changeDate, formatDateForPeriod, roundNumber } from '@/utils/utilsFunctions';\nimport {\n CirclePosition,\n IOEnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport {\n energyBlue,\n energyConsumerColors,\n energyGreyColors,\n energyHybridColors,\n energyOrange,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport {\n ArrowDirection,\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport CalendarNavigation from '@/ui/components/devices/charts/charts/CalendarNavigation.vue';\nimport IconValueFieldWithTooltip from '@/ui/components/components/IconValueFieldWithTooltip.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { IProject } from '@/types/project.types';\nimport {\n IOEnergyDataByPeriodResponse\n} from '@/types/energyVisualisation/energyVisualisation.types';\nimport EnergyIOComponent\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/EnergyIOComponent';\nimport {\n getDefaultArrowDirectionIO,\n getDefaultLineColorsIO,\n} from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/EnergyIOVisualisationUtils';\nimport EnergyFlowViewSystemDialogIO from './EnergyFlowViewSystemDialogIO.vue';\n\n@Component({\n components: {\n CalendarNavigation,\n CircleSpinner,\n EnergyVisualisationIO,\n EnergyFlowViewSystemDialogIO,\n IconValueFieldWithTooltip,\n },\n methods: { roundNumber },\n})\nexport default class EnergyFlowViewIO extends mixins(EnergyIOComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Getter('projects/projectStartedAtNumber') startedAt!: number;\n @Getter('projects/project') currentProject!: IProject;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: ({\n id,\n start,\n end,\n period,\n }: {\n id: string;\n start: number;\n end: number;\n period: string;\n }) => Promise;\n\n loader = true;\n energyDataByPeriodResponse: IOEnergyDataByPeriodResponse | null = null;\n\n // ========================== systems dialogs ==========================\n showDialog = false;\n openedSystemId?: string;\n openedSystem?: IOEnergyCircleType;\n @Provide('onIOCircleClick') onCircleClick = this.onCircleClickCallback;\n\n @Provide('onLineAnimationEnd') onLineAnimationEnd = this.onLineAnimationEndCallback;\n hybridHighlightBottomValue = false;\n hybridArrowDirection = ArrowDirection.toCenter;\n hybridLineColors = energyHybridColors;\n\n onLineAnimationEndCallback() {\n this.hybridHighlightBottomValue = !this.hybridHighlightBottomValue;\n this.hybridArrowDirection =\n this.hybridArrowDirection === ArrowDirection.toCenter\n ? ArrowDirection.awayFromCenter\n : ArrowDirection.toCenter;\n this.hybridLineColors =\n this.hybridLineColors === energyHybridColors ? energyConsumerColors : energyHybridColors;\n }\n\n onCircleClickCallback(circleData: IOEnergyCircleDisplayData) {\n this.openedSystemId = circleData.id;\n this.openedSystem = circleData.systemType as IOEnergyCircleType;\n this.showDialog = true;\n }\n\n autoReloadInterval: any = null;\n\n // ========================== calendar ==========================\n currentPeriod: string = Periods.DAY;\n currentCalendarStartDate: number | null = null;\n disableNavButton = false;\n navigationItemsToExclude = ['live', 'hour']\n\n // ========================== bottom, top info ==========================\n displayDate: string | null = null;\n\n get shownSystems() {\n return this.filterPresentIoSystems(allIOEnergyCircleTypes);\n }\n\n sumAllEnergies(component: any, systemType: IOEnergyCircleType) {\n let sum = 0;\n const powers = Object.keys(component.energy_counter) as string[];\n powers.forEach((counter_variable: string) => {\n sum += (this.energyDataByPeriodResponse?.energies[systemType][component.id] as any)[counter_variable] ?? 0;\n });\n return sum;\n }\n\n get totalDifferenceForAllInputsAndOutputs() {\n return this.energyDataByPeriodResponse?.calculations.difference;\n }\n\n get circlesDisplayData() {\n const mappedSystems: IOEnergyCircleDisplayData[] = [];\n this.shownSystems.forEach((systemType: IOEnergyCircleType) => {\n const position = getCirclePositionForType(systemType);\n\n const components = this.getIoSystemComponents(systemType);\n // convert the components Record to an array of objects\n const mappedComponents = Object.keys(components).map((key: string) => {\n return {\n id: key,\n ...components[key],\n };\n });\n if (systemType === IOEnergyCircleType.outputs) {\n mappedSystems.push({\n id: 'calculated',\n title: `${this.$t(`mlModel.${this.deviceData.data.type}.difference`)}`,\n systemType,\n spinnerColor: energyOrange,\n position: CirclePosition.bottom,\n disableSpinner: false,\n unit: kiloWattHourUnit,\n bottomValue: this.totalDifferenceForAllInputsAndOutputs,\n });\n }\n mappedComponents.forEach((component: any) => {\n let value = systemType === IOEnergyCircleType.hybrids ? this.energyDataByPeriodResponse?.energies[systemType][`${component.id}_from_production`] ?? 0 : this.sumAllEnergies(component, systemType);\n if (this.hybridHighlightBottomValue && systemType === IOEnergyCircleType.hybrids) value = this.energyDataByPeriodResponse?.energies[systemType][`${component.id}_to_consumer`] ?? 0;\n const systemCount = systemType === IOEnergyCircleType.hybrids ? 1 : Object.values(this.getIoSystemComponents(systemType)[component.id].energy_counter).length;\n const spinnerColor = this.defaultColorByType(systemType, value, systemType === IOEnergyCircleType.hybrids ? this.hybridLineColors.colorAtCircle : null);\n mappedSystems.push({\n id: component.id,\n title: component.title,\n systemType,\n systemCount,\n spinnerColor,\n position,\n disableSpinner: false,\n unit: kiloWattHourUnit,\n bottomValue: value,\n });\n });\n });\n return mappedSystems;\n }\n\n get linesDisplayData() {\n return this.circlesDisplayData.map((circle: IOEnergyCircleDisplayData, index: number) => {\n if (circle.systemType === IOEnergyCircleType.hybrids) {\n return {\n id: circle.id,\n arrowDirection: circle.bottomValue === 0 ? ArrowDirection.none : this.hybridArrowDirection,\n oneArrowOnly: true,\n colors: circle.bottomValue === 0 ? energyGreyColors : this.hybridLineColors,\n } as Partial;\n }\n\n const colors = circle.id === 'calculated' && circle.bottomValue !== 0 ? { colorAtCircle: energyOrange, colorAtCenter: energyBlue } : getDefaultLineColorsIO(circle.systemType as IOEnergyCircleType, circle);\n return {\n id: circle.id,\n arrowDirection: getDefaultArrowDirectionIO(circle.systemType as IOEnergyCircleType, circle),\n colors,\n } as Partial;\n });\n }\n\n setDisplayDate({ start, end }: { start: number; end: number }) {\n this.currentCalendarStartDate = start;\n this.displayDate = formatDateForPeriod(\n this.currentPeriod,\n this.currentPeriod === 'week' ? ([start * 1000, end * 1000] as any) : ([start * 1000] as any),\n );\n }\n\n async fetchEnergyData({ start, end }: { start: number; end: number }) {\n this.disableNavButton = true;\n this.loader = true;\n try {\n this.energyDataByPeriodResponse = await this.fetchDataByPeriod({\n id: this.deviceData.id.replaceAll('_', '-'),\n start,\n end,\n period: this.currentPeriod,\n });\n } catch (e) {\n this.energyDataByPeriodResponse = null;\n console.error(e);\n } finally {\n this.disableNavButton = false;\n this.loader = false;\n }\n clearInterval(this.autoReloadInterval);\n this.autoReloadInterval = setInterval(() => {\n this.fetchEnergyData({ start, end });\n }, 3600000);\n }\n\n async handleNavigation(period: string) {\n this.currentPeriod = period;\n const { start, end } = periodConfigurations[this.currentPeriod].period();\n this.setDisplayDate({ start, end });\n await this.fetchEnergyData({ start, end });\n }\n\n async handleCalendar(data: any) {\n (this.$refs.calendarDialog as any).closeDialog();\n await this.loadCalendarRange(data);\n }\n\n startOfCreatedAtDate() {\n const createdAtDate = new Date(this.startedAt);\n switch (this.currentPeriod) {\n case 'day':\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate(),\n );\n case 'week':\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate() - createdAtDate.getDay(),\n );\n case 'month':\n return new Date(createdAtDate.getFullYear(), createdAtDate.getMonth(), 1);\n case 'year':\n return new Date(createdAtDate.getFullYear(), 0, 1);\n default:\n return new Date(\n createdAtDate.getFullYear(),\n createdAtDate.getMonth(),\n createdAtDate.getDate(),\n );\n }\n }\n\n async handlePrevNextButtonCalendar(direction: string) {\n const date = changeDate(this.currentCalendarStartDate as number, direction, this.currentPeriod);\n const start = this.startOfCreatedAtDate().getTime() / 1000;\n const end = new Date().getTime() / 1000;\n if (date < end && date >= start) {\n await this.loadCalendarRange(date);\n }\n }\n\n async loadCalendarRange(date: number) {\n const now = Math.trunc(new Date().getTime() / 1000);\n const chartBounds = getDateBoundsByPeriod(date, this.currentPeriod);\n const { start, end } = chartBounds as { start: number; end: number; endChart: number };\n const maxEnd = end > now ? now : end;\n\n this.setDisplayDate({ start, end: maxEnd });\n await this.fetchEnergyData({ start, end: maxEnd });\n }\n\n beforeDestroy() {\n clearInterval(this.autoReloadInterval);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cd3bb258&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"settingsWrapper\",staticClass:\"ems-settings\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\",attrs:{\"is-mpc\":false,\"mpc-id\":_vm.mpcId,\"scaling\":_vm.scaling,\"prediction\":_vm.prediction,\"predicted-power\":_vm.predictedPower,\"predicted-energy\":_vm.predictedEnergy,\"predicted-target-power\":_vm.predictedTargetPower,\"predictedSOC\":_vm.predictedSOC,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"shownSystems\":_vm.shownSystemsSingleSystemsChart,\"showHouseConsumptionAlways\":item.showHouseConsumption,\"numberOfSeriesPerChart\":_vm.getNumberOfSeriesPerChart(item),\"showScores\":item.showScores,\"device-data\":_vm.mpcData,\"isHybridSystem\":_vm.isHybridSystem,\"systemsVars\":item.systemsVars,\"defaultAggregation\":item.defaultAggregation,\"showColumnChart\":item.showColumnChart,\"navItemsToExclude\":item.navItemsToExclude}}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('div',{staticClass:\"d-flex justify-center pt-2\"},[_c('SystemsNavigation',{attrs:{\"system-name\":_vm.deviceData.data.type,\"is-list-items-plural\":false,\"items\":_vm.systemSchema},on:{\"handleCurrentChart\":_vm.handleCurrentChart}})],1),(_vm.showCurrentChartData)?_c('div',{staticClass:\"pt-2\"},[_c('BaseChartWrapper',_vm._b({key:_vm.reRenderKey,ref:\"chartWrapper\",attrs:{\"parent-component-width\":1710,\"navigationItemsToExclude\":_vm.currentChartData.data.navigationItemsToExclude,\"settingsWrapperHeight\":_vm.settingsWrapperHeight,\"chartScores\":_vm.scoresForDataExport,\"modularDefaultPeriod\":_vm.navItemsToExclude.includes('day') ? 'week': 'day'},on:{\"chartRangeChange\":_vm.chartRangeChange},scopedSlots:_vm._u([(_vm.showScores)?{key:\"additional-content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-wrap py-2\"},_vm._l((_vm.scores),function(value,key){return _c('div',{key:key,staticClass:\"px-4\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(key)+\": \")]),_c('span',{staticClass:\"px-1\"},[_vm._v(_vm._s(value))]),_c('span',[_vm._v(_vm._s('kWh'))])])}),0)]},proxy:true}:null],null,true)},'BaseChartWrapper',{ ..._vm.currentChartData.data },false)),(_vm.isHybridSystem && _vm.showHouseCalculationTooltip)?_c('div',{staticClass:\"d-flex justify-end\"},[_c('div',{staticStyle:{\"width\":\"30px\"}},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":'accent',\"size\":\"30\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.EMSV2.charts.hybridHouseCalculationInfo'))+\" \")]},proxy:true}],null,false,2902523305)})],1)]):_vm._e()],1):_c('div',{staticClass:\"noDevicesConfiguredStyles\"},[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\n EnergyCircleType, IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { getVariableValue } from '@/ui/components/devices/components/EnergyParts/EMS/utils';\nimport {\n IAggregationProps,\n IExpressionProps,\n ICalculationProps,\n IEnergyIOCalculationProps, IEnergyIOAggregationProps, IEnergyIOExpressionProps,\n} from '@/types/energyVisualisation/energyVisualisation.types';\nimport { IDevice } from '@/types/devices.types';\n\nexport function getAggregation({\n system,\n variable,\n externalMeasurementsList,\n}: IEnergyIOAggregationProps, defaultAggregation = 'avg') {\n switch (system) {\n // case IOEnergyCircleType.hybrids: return [variable, ...externalMeasurementsList].fill(defaultAggregation);\n // case EnergyCircleType.battery: return variable === 'soc' ? ['last'] : [defaultAggregation];\n default:\n return [defaultAggregation];\n }\n}\n\nexport function getExpression({\n system,\n variableValue,\n expressionWrapperFn,\n externalMeasurementsList,\n}: IEnergyIOExpressionProps) {\n switch (system) {\n // case IOEnergyCircleType.house: {\n // const exp = [variableValue, ...externalMeasurementsList].join(' - ');\n // return typeof expressionWrapperFn === 'function' ? expressionWrapperFn(exp) : exp;\n // }\n default:\n return typeof expressionWrapperFn === 'function' ? expressionWrapperFn(variableValue) : variableValue;\n }\n}\n\nexport function getCalculation({\n system,\n instance,\n variable,\n device,\n expressionWrapperFn,\n externalMeasurementsList,\n defaultAggregation = 'avg',\n}: IEnergyIOCalculationProps) {\n const variableValue = getVariableValue(device.data.meta.controllerMappings, system, instance, variable);\n return {\n aggregations: getAggregation({ system, variable, externalMeasurementsList }, defaultAggregation),\n expression: getExpression({\n system,\n variableValue,\n expressionWrapperFn,\n externalMeasurementsList,\n }),\n };\n}\n","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport {\n defineIoSystemType,\n getChartSystemIOInstanceName,\n} from '@/ui/components/devices/components/EnergyParts/EMS/utils';\nimport { roundNumber } from '@/utils/utilsFunctions';\nimport { periodConfigurations, Periods } from '@/ui/components/devices/charts/charts/ChartUtils';\nimport {\n singleEnergyChartScaling,\n singleEnergyChartScalingHybrid,\n} from '@/utils/scalingConstants';\nimport {\n allIOEnergyCircleTypes,\n IOEnergyCircleType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n getCalculation,\n} from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/energyIOChartsUtils';\nimport { IDevice } from '@/types/devices.types';\nimport { ICurrentSystem, ISystemsVars } from '@/types/common.types';\nimport {\n IOEnergyDataByPeriodResponse,\n} from '@/types/energyVisualisation/energyVisualisation.types';\nimport EnergyIOComponent\n from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/utils/EnergyIOComponent';\n\nconst DEFAULT_SYSTEMS_VARS = {\n inputs: ['power', 'energy_counter'],\n outputs: ['power', 'energy_counter'],\n hybrids: ['power', 'energy_counter', 'reverse_energy_counter'],\n};\n\n@Component({\n components: {\n BaseChartWrapper,\n SystemsNavigation,\n InfoTooltip,\n },\n})\nexport default class SingleIOSystemsView extends mixins(EnergyIOComponent) {\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop({ default: '' }) mpcId!: string;\n @Prop() settingsWrapperHeight !: number;\n @Prop({ default: false }) isMpc!: boolean\n @Prop() shownSystems !: string[];\n @Prop({ default: false }) showHouseConsumptionAlways !: boolean;\n @Prop({ default: false }) showScores !: boolean;\n @Prop({ default: false }) setExpressionAsMax!: boolean;\n @Prop({ default: false }) excludeHouse!: boolean;\n @Prop({ default: 9 }) numberOfSeriesPerChart!: number;\n @Prop({ default: () => DEFAULT_SYSTEMS_VARS }) systemsVars!: ISystemsVars;\n @Prop({ default: false }) isHybridSystem!: boolean;\n @Prop({ default: 'avg' }) defaultAggregation!: string;\n @Prop({ default: () => false }) showColumnChart!: boolean;\n @Prop({ default: () => ['live', 'hour'] }) navItemsToExclude!: string[];\n\n @Action('mpc/fetchDataByPeriodMpc') fetchDataByPeriodMpc!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n @Action('devices/fetchDataByPeriod') fetchDataByPeriod!: (\n { id, start, end, period }: { id: string; start: number; end: number; period: string }\n ) => Promise;\n\n reRenderKey = 0;\n currentPeriod = Periods.DAY;\n start = periodConfigurations[this.currentPeriod].period().start;\n end = periodConfigurations[this.currentPeriod].period().end;\n energyResponse: IOEnergyDataByPeriodResponse | null = null;\n systems: string[] = [];\n currentChart: ICurrentSystem = {\n system: null,\n instances: [],\n }\n selectedGroup = 0;\n systemsUnits: any = {\n inputs: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n outputs: {\n energy_counter: 'kWh',\n power: 'kW',\n },\n hybrids: {\n power: 'kW',\n energy_counter: 'kWh',\n reverse_energy_counter: 'kWh',\n },\n }\n showHouseCalculationTooltip = false;\n\n /**\n * Collection of systems scaling\n */\n get systemsScaling(): any {\n return {\n inputs: {\n energy_counter: { min: 0, max: undefined },\n power: singleEnergyChartScaling,\n },\n outputs: {\n power: singleEnergyChartScaling,\n energy_counter: { min: 0, max: undefined },\n },\n hybrids: {\n power: singleEnergyChartScalingHybrid,\n energy_counter: { min: 0, max: undefined },\n reverse_energy_counter: { min: 0, max: undefined },\n },\n };\n }\n scores: Record = {};\n scoresForDataExport: Record = {};\n\n getSystemsExpressionWrappers(system: any) {\n switch (system) {\n // case IOEnergyCircleType.house: return (exp: string) => `max(${exp}, 0)`;\n default: return undefined;\n }\n }\n\n getIOSystems(device: any): Record {\n return allIOEnergyCircleTypes.reduce((acc: any, type: IOEnergyCircleType) => {\n return { ...acc, [type]: device.data.meta.controllerMappings[type] };\n }, {});\n }\n getIOSubSystems(device: any): Record {\n const systems = allIOEnergyCircleTypes.reduce((acc: any, type: IOEnergyCircleType) => {\n return { ...acc, [type]: device.data.meta.controllerMappings[type] };\n }, {});\n let subSystems: any[] = [];\n Object.entries(IOEnergyCircleType).forEach(([key, value]) => {\n if (systems[value]) {\n subSystems = [...subSystems, ...Object.entries(systems[value].components)];\n }\n });\n return subSystems;\n }\n /**\n * Creates array of systems groups and system instances.\n * @return {array} list of system groups. Example: ['battery', [['battery1', 'battery2']]]\n */\n get systemSchema() {\n return this.getIOSubSystems(this.deviceData)\n .filter((system: any) => {\n return this.systems.some((el: any) => Object.values(system[1]?.energy_counter).length);\n });\n }\n\n get isSystemWithMultipleChartValues() {\n return this.currentChart.system ? this.systemsVars[defineIoSystemType(this.currentChart.system)].length > 1 : false;\n }\n\n /**\n * Systems options data\n */\n get systemsChartOptions() {\n if (!this.currentChart.instances.length) return [];\n\n const chartOptions: any = this.currentChart.instances.map((instance: string, index) => {\n const systemType = defineIoSystemType(this.currentChart.system as string);\n const existingSystemVars = this.systemsVars[systemType].filter((v: string) => {\n if (systemType === 'hybrids') {\n return !!instance;\n }\n return !!this.getVariableValue(this.deviceData, systemType, this.currentChart.system as string, v, instance);\n });\n\n const mappedChartOptions: any[] = [];\n existingSystemVars.forEach((variable: string) => {\n const chartInstanceName = getChartSystemIOInstanceName(this.getIOSystems(this.deviceData), this.currentChart.system as string, instance, variable, defineIoSystemType(this.currentChart.system as string));\n\n const name = this.isSystemWithMultipleChartValues\n ? `${this.$t(`devices.EnergyView.ChartsWindow.legend.${this.currentChart.system}.${variable}`)} - ${chartInstanceName}`\n : chartInstanceName;\n\n const scaling = this.systemsScaling[this.currentChart.system as string];\n const units = this.systemsUnits[this.currentChart.system as string];\n\n let variableName = this.deviceData.data.meta.controllerMappings[systemType].components[this.currentChart.system as string][variable];\n if (systemType !== IOEnergyCircleType.hybrids) {\n variableName = this.deviceData.data.meta.controllerMappings[systemType].components[this.currentChart.system as string][variable][instance];\n }\n\n if (!this.showColumnChart) {\n mappedChartOptions.push({\n calculation: getCalculation({\n system: this.currentChart.system as IOEnergyCircleType,\n instance: variableName,\n variable,\n device: this.deviceData,\n expressionWrapperFn: this.setExpressionAsMax\n ? (exp: string) => `max(${exp}, 0)`\n : this.getSystemsExpressionWrappers(this.currentChart.system),\n externalMeasurementsList: [],\n defaultAggregation: this.defaultAggregation,\n }),\n name,\n scaling: scaling ? scaling[variable] : singleEnergyChartScaling,\n seriesType: 'Calculation',\n type: 'line',\n unit: units ? units[variable] : 'kW',\n });\n } else {\n mappedChartOptions.push({\n var: variableName,\n name: `${this.$t(`devices.EnergyView.ChartsWindow.legend.${defineIoSystemType(this.currentChart.system as string)}.${variable}`)} - ${chartInstanceName} ${index + 1}`,\n scaling: scaling ? scaling[variable] : singleEnergyChartScaling,\n seriesType: 'View',\n type: 'column',\n unit: 'kWh',\n agg: 'diff',\n });\n }\n });\n return mappedChartOptions;\n });\n return chartOptions.flat().filter(Boolean);\n }\n\n getSystemTitle(system: string, instance: string) {\n if (['battery', 'grid'].includes(system)) {\n const { title } = this.getIOSystems(this.deviceData)[system].components[instance.split('_')[0]];\n return title || instance;\n } else {\n const { title } = this.getIOSystems(this.deviceData)[system].components[instance];\n return title || instance;\n }\n }\n\n /**\n * Creates an understandable object for the graphs component\n */\n get currentChartData() {\n const chartOptions = [...this.systemsChartOptions];\n\n return {\n title: null,\n data: {\n chartTitle: '',\n chartWidth: null,\n chartHeight: 600,\n chartWrapperHeight: 750,\n chartData: {\n data: { chartOptions },\n },\n navigationItemsToExclude: this.navItemsToExclude,\n },\n };\n }\n\n get showCurrentChartData() {\n return this.currentChartData?.data?.chartData?.data?.chartOptions?.length;\n }\n\n handleCurrentChart(params: {system: IOEnergyCircleType; arr: string[]}, selected = 0) {\n this.currentChart = { system: params.system, instances: params.arr };\n this.selectedGroup = selected;\n this.reRenderKey += 1;\n }\n\n /**\n * Init what system chart will load when open page.\n */\n initFirstSystemByDefault() {\n const filtered: any = this.systemSchema.filter((el: any) => (defineIoSystemType(el[0]) !== IOEnergyCircleType.hybrids ? Object.keys(el[1].energy_counter).length : el[1].energy_counter));\n const instances = defineIoSystemType(filtered[0][0]) === IOEnergyCircleType.hybrids ? ['instance'] : Object.keys(filtered[0][1].energy_counter);\n this.currentChart = filtered.length\n ? {\n system: filtered[0][0],\n instances,\n } : {\n system: null,\n instances: [],\n };\n }\n\n async chartRangeChange(params: any) {\n this.start = params.start;\n this.end = params.end;\n this.currentPeriod = params.period;\n this.energyResponse = await this.fetchDataByPeriod({\n id: this.mpcId.replaceAll('_', '-'),\n start: this.start,\n end: this.end,\n period: this.currentPeriod,\n });\n\n const system: IOEnergyCircleType = this.systemSchema[this.selectedGroup][0];\n const instances = this.systemSchema[this.selectedGroup][1];\n const scores: Record = {};\n const scoresForDataExport: any = {};\n const difference = this.energyResponse?.calculations?.difference;\n const energyResponseSystemData = this.energyResponse?.energies?.[system];\n\n if (this.systemSchema.length > 0 && energyResponseSystemData) {\n if (this.systemSchema[0][0] !== 'house') {\n Object.entries(energyResponseSystemData).forEach(([instance, value]: [string, number]) => {\n scores[this.getSystemTitle(system, instance)] = Math.max(roundNumber(value), 0);\n scoresForDataExport[this.getSystemTitle(system, instance)] = { value: Math.max(roundNumber(value), 0), unit: 'kWh' };\n });\n } else {\n Object.entries(energyResponseSystemData).forEach(([instance, _]: [string, number]) => {\n scores[this.getSystemTitle(system, instance)] = difference\n ? Math.max(roundNumber(difference / instances.length), 0)\n : null;\n scoresForDataExport[this.getSystemTitle(system, instance)] = {\n value: difference ? Math.max(roundNumber(difference / instances.length)) : null,\n unit: 'kWh',\n };\n });\n }\n }\n this.scores = scores;\n this.scoresForDataExport = scoresForDataExport;\n }\n\n created() {\n this.systems = this.shownSystems;\n if (this.navItemsToExclude.includes('day')) {\n this.currentPeriod = Periods.WEEK;\n }\n this.initFirstSystemByDefault();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleIOSystemView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleIOSystemView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SingleIOSystemView.vue?vue&type=template&id=86372588&\"\nimport script from \"./SingleIOSystemView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SingleIOSystemView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\nimport { IAppState } from '@/store/modules/app/types';\nimport { State } from 'vuex-class';\nimport SingleIOSystemsView\n from '@/ui/components/devices/devices/EnergyIO/components/charts/SingleIOSystemView.vue';\nimport { IOEnergyCircleType } from '@/types/energyVisualisation/EnergyCircleType';\n\n/**\n * Component that represent wrapper for charts tabs navigation.\n * Used in EMS.\n */\n@Component({\n components: {\n SingleIOSystemsView,\n },\n})\nexport default class EMSCharts extends Vue {\n @Prop({ default: null }) mpcData!: any;\n @Prop({ default: null }) prediction!: any;\n @Prop({ default: null }) predictedPower!: any;\n @Prop({ default: null }) predictedTargetPower!: any;\n @Prop({ default: null }) predictedEnergy!: any;\n @Prop({ default: null }) predictedSOC!: any;\n @Prop() mpcId!: any;\n @Prop() scaling!: any;\n @Prop({ default: false }) isHybridSystem!: boolean;\n\n @State('app') appState!: IAppState;\n\n tab = null\n settingsWrapperHeight = 0;\n shownSystemsSingleSystemsChart: string[] = [];\n\n created() {\n this.shownSystemsSingleSystemsChart = this.getAllSystems();\n }\n\n getAllSystems() {\n let systems: any[] = [];\n Object.values(IOEnergyCircleType).forEach((value) => {\n if (this.mpcData.data.meta.controllerMappings[value]) {\n systems = [...systems, ...Object.keys(this.mpcData.data.meta.controllerMappings[value].components)];\n }\n });\n return systems;\n }\n mounted() {\n this.$nextTick(() => {\n const settingsWrapperElement = (this.$refs.settingsWrapper as any);\n // change height of settingsWrapper for hybrid systems because we need to calculate in space for a info tooltip\n this.settingsWrapperHeight = !this.isHybridSystem ? settingsWrapperElement.clientHeight * 0.7 : (settingsWrapperElement.clientHeight * 0.7) - 40;\n });\n }\n\n get items() {\n return [\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleIOSystemsView',\n showHouseConsumption: false,\n showScores: false,\n showColumnChart: true,\n systemsVars: {\n inputs: ['energy_counter'],\n outputs: ['energy_counter'],\n hybrids: ['energy_counter', 'reverse_energy_counter'],\n },\n defaultAggregation: 'diff',\n navItemsToExclude: ['live', 'hour', 'day'],\n },\n ];\n }\n\n getNumberOfSeriesPerChart(item: Record) {\n return item?.numberOfSeriesPerChart;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=46c76e2e&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=46c76e2e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceActions from '@/ui/components/devices/actions/DeviceActions.vue';\nimport ActualViewIO from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/ActualViewIO/index.vue';\nimport EnergyFlowViewIO from '@/ui/components/devices/components/EnergyParts/IOEnergyVisualisation/EnergyFlowViewIO/index.vue';\nimport EMSCharts from '@/ui/components/devices/devices/EnergyIO/components/charts/index.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { getSystems } from '@/utils/mpcUtils';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n/**\n * Component that represent EMS\n */\n@Component({\n components: {\n MPCLayout,\n EnergyFlowViewIO,\n ActualViewIO,\n DeviceActions,\n EMSCharts,\n CircleSpinner,\n },\n})\nexport default class EnergyIO extends Vue {\n @Prop() deviceData!: any;\n @Getter('projects/project') project!: IProject;\n\n loaded = true;\n\n /**\n * Gets all systems from EMS controllerMappings\n * @return {object|null} collection of systems\n */\n get allSystems() {\n if (this.deviceData?.data?.meta?.controllerMappings) {\n const {\n inputs,\n outputs,\n hybrids,\n } = this.deviceData.data.meta.controllerMappings;\n return {\n inputs,\n outputs,\n hybrids,\n };\n } else {\n return null;\n }\n }\n\n get mappedDeviceData() {\n return this.deviceData;\n }\n\n get prediction() {\n if (this.deviceData?.data?.meta?.charts?.prediction) return this.deviceData.data.meta.charts.prediction;\n else return null;\n }\n\n get predictedPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_power');\n } else return null;\n }\n\n get predictedTargetPower() {\n if (this.prediction) {\n return getSystems(this.prediction, '_target_power');\n } else return null;\n }\n\n get predictedEnergy() {\n if (this.prediction) {\n return getSystems(this.prediction, '_energy');\n } else return null;\n }\n\n get predictedSOC() {\n if (this.prediction) {\n return getSystems(this.prediction, '_soc');\n } else return null;\n }\n\n get emsScaling() {\n return this.deviceData?.data?.meta?.scaling;\n }\n\n /**\n * Convert MPC id from \"id-id-id\" to \"id_id_id\"\n */\n get mpcIdMod() {\n if (this.deviceData.id) return this.deviceData.id.replace(/-/g, '_');\n return null;\n }\n\n async toggleLoading(status: boolean) {\n this.loaded = !status;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=640863ba&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { State, Getter } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { DevicesSizesFlex } from '@/ui/mixins/devicesSizesFlex';\nimport InputFieldExternal from '@/ui/components/devices/components/InputFields/InputFieldExternal.vue';\nimport Chart from '@/ui/components/devices/charts/charts/ChartDevice.vue';\nimport DropDownOutputFieldWithVariable from '@/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue';\nimport DropDownInputFieldWithVariable from '@/ui/components/devices/devices/DropDownInputFieldWithVariable.vue';\nimport TSGFrischwasser from '@/ui/components/devices/devices/TSGFrischwasser.vue';\nimport TSGBrauchwasser from '@/ui/components/devices/devices/TSGBrauchwasser.vue';\nimport Robot from '@/ui/components/devices/devices/Robot.vue';\nimport SurveyClient from '@/ui/components/devices/devices/SurveyClient.vue';\nimport PVProductionService from '@/ui/components/devices/mpc/PVProductionService/index.vue';\nimport EnergyViewV2 from '@/ui/components/devices/devices/EnergyViewV2/index.vue';\nimport MpcEnergyView from '@/ui/components/devices/mpc/EnergyView/index.vue';\nimport ConsumptionService from '@/ui/components/devices/mpc/ConsumptionService/index.vue';\nimport TSGLadestationNotAus from '@/ui/components/devices/devices/TSGLadestationNotAus.vue';\nimport EMS from '@/ui/components/devices/mpc/EMS/index.vue';\nimport EMSV2 from '@/ui/components/devices/devices/EMS/index.vue';\nimport GeneralSwitchV2 from '@/ui/components/devices/devices/GeneralSwitchV2.vue';\nimport PVMonitoringService from '@/ui/components/devices/mpc/PVMonitoringService/index.vue';\nimport LightDimmer from '@/ui/components/devices/devices/LightDimmer.vue';\nimport LightSwitch from '@/ui/components/devices/devices/LightSwitch.vue';\nimport Temperature from '@/ui/components/devices/devices/Temperature.vue';\nimport VariableInputField from '@/ui/components/devices/devices/VariableInputField.vue';\nimport VariableOutputField from '@/ui/components/devices/devices/VariableOutputField.vue';\nimport VariableTextInputField from '@/ui/components/devices/devices/VariableTextInputField.vue';\nimport VariableTextOutputField from '@/ui/components/devices/devices/VariableTextOutputField.vue';\nimport LightRGB from '@/ui/components/devices/devices/LightRGB.vue';\nimport SocketSwitch from '@/ui/components/devices/devices/SocketSwitch.vue';\nimport LightPushButton from '@/ui/components/devices/devices/LightPushButton.vue';\nimport ControlBlinds from '@/ui/components/devices/devices/ControlBlinds.vue';\nimport ControlShutter from '@/ui/components/devices/devices/ControlShutter.vue';\nimport ControlAwning from '@/ui/components/devices/devices/ControlAwning.vue';\nimport ThermostatDigital from '@/ui/components/devices/devices/ThermostatDigital.vue';\nimport ThermostatAnalog from '@/ui/components/devices/devices/ThermostatAnalog.vue';\nimport BrightnessSensor from '@/ui/components/devices/devices/BrightnessSensor.vue';\nimport AirHumiditySensor from '@/ui/components/devices/devices/AirHumiditySensor.vue';\nimport SensorCO2 from '@/ui/components/devices/devices/SensorCO2.vue';\nimport SensorLevel from '@/ui/components/devices/devices/SensorLevel.vue';\nimport WeatherStation from '@/ui/components/devices/devices/WeatherStation.vue';\nimport HotWaterMeter from '@/ui/components/devices/devices/HotWaterMeter.vue';\nimport ColdWaterMeter from '@/ui/components/devices/devices/ColdWaterMeter.vue';\nimport ElectricityMeter from '@/ui/components/devices/devices/ElectricityMeter.vue';\nimport HeatingMeter from '@/ui/components/devices/devices/HeatingMeter.vue';\nimport MotionSensor from '@/ui/components/devices/devices/MotionSensor.vue';\nimport Battery from '@/ui/components/devices/devices/Battery.vue';\nimport PVSystem from '@/ui/components/devices/devices/PVSystem.vue';\nimport HouseConsumption from '@/ui/components/devices/devices/HouseConsumption.vue';\nimport Generator from '@/ui/components/devices/devices/Generator.vue';\nimport MainsConnection from '@/ui/components/devices/devices/MainsConnection.vue';\nimport ElectricChargingStation from '@/ui/components/devices/devices/ElectricChargingStation.vue';\nimport ElectricChargingStationV2 from '@/ui/components/devices/devices/ElectricChargingStationV2.vue';\nimport ElectronicBoiler from '@/ui/components/devices/devices/ElectronicBoiler.vue';\nimport VentilatorSwitch from '@/ui/components/devices/devices/VentilatorSwitch.vue';\nimport MusicSystem from '@/ui/components/devices/devices/MusicSystem.vue';\nimport TV from '@/ui/components/devices/devices/TV.vue';\nimport MotorWithoutVFD from '@/ui/components/devices/devices/MotorWithoutVFD.vue';\nimport PumpWithoutVFD from '@/ui/components/devices/devices/PumpWithoutVFD.vue';\nimport PumpWithVFD from '@/ui/components/devices/devices/PumpWithVFD.vue';\nimport MotorWithVFD from '@/ui/components/devices/devices/MotorWithVFD.vue';\nimport MixingValve from '@/ui/components/devices/devices/MixingValve.vue';\nimport Ventilation from '@/ui/components/devices/devices/Ventilation.vue';\nimport Gauge from '@/ui/components/devices/devices/Gauge.vue';\nimport RegentLighting from '@/ui/components/devices/devices/RegentLighting.vue';\nimport HeatingCircuitOptimization from '@/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue';\nimport HistoryAnomalyDetection from '@/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue';\nimport StreamAnomalyDetection from '@/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue';\nimport SetpointOptimizer from '@/ui/components/devices/mpc/SetpointOptimizer/index.vue';\nimport TSGModulLadestation from '@/ui/components/devices/devices/TSGModulLadestation.vue';\nimport HppProductionService from '@/ui/components/devices/mpc/HeatingProduction/index.vue';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IProject } from '@/types/project.types';\nimport EnergyIO from '@/ui/components/devices/devices/EnergyIO/index.vue';\n\n/**\n * Component that represent all devices list in Flex grid.\n */\n@Component({\n components: {\n TSGModulLadestation,\n HppProductionService,\n InputFieldExternal,\n SetpointOptimizer,\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n PVMonitoringService,\n GeneralSwitchV2,\n EMSV2,\n EMS,\n EnergyIO,\n TSGLadestationNotAus,\n ConsumptionService,\n PVProductionService,\n EnergyViewV2,\n MpcEnergyView,\n SurveyClient,\n Robot,\n TSGBrauchwasser,\n TSGFrischwasser,\n DropDownInputFieldWithVariable,\n DropDownOutputFieldWithVariable,\n HeatingCircuitOptimization,\n Gauge,\n Ventilation,\n MixingValve,\n MotorWithVFD,\n PumpWithVFD,\n PumpWithoutVFD,\n MotorWithoutVFD,\n TV,\n MusicSystem,\n VentilatorSwitch,\n ElectronicBoiler,\n ElectricChargingStation,\n ElectricChargingStationV2,\n MainsConnection,\n Generator,\n HouseConsumption,\n PVSystem,\n Battery,\n MotionSensor,\n ElectricityMeter,\n HeatingMeter,\n ColdWaterMeter,\n HotWaterMeter,\n WeatherStation,\n SensorLevel,\n SensorCO2,\n BrightnessSensor,\n AirHumiditySensor,\n ThermostatAnalog,\n ThermostatDigital,\n ControlShutter,\n ControlAwning,\n ControlBlinds,\n LightRGB,\n SocketSwitch,\n LightPushButton,\n LightSwitch,\n LightDimmer,\n Temperature,\n VariableOutputField,\n VariableInputField,\n VariableTextInputField,\n VariableTextOutputField,\n RegentLighting,\n chart: Chart,\n },\n})\nexport default class DevicesListFlexGrid extends mixins(DevicesSizesFlex) {\n @Prop() devices!: any;\n @State('projects') projectsState!: IProjectsState;\n @State('mqttClient') mqttState!: IMQTTState;\n @State('mpc') mpcState!: IMPCState;\n @State('devices') devicesState!: IDevicesState;\n @Getter('projects/project') project!: IProject;\n\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n\n /**\n * Filter all devices by search\n * @return {array} list of devices\n */\n get filteredDevices() {\n return this.devices.filter((device: any) => {\n if (this.devicesFilter && this.devicesFilter.length) {\n return device.name.toLowerCase().includes(this.devicesFilter.toLowerCase());\n }\n return device;\n });\n }\n\n get isProjectOnline() {\n if (this.projectsState.project?.meta?.disableDevicesWhenOffline) {\n return this.mqttState.online;\n } else {\n return true;\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=73b3fef2&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73b3fef2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('grid-layout',{ref:\"layout\",staticStyle:{\"touch-action\":\"none\"},attrs:{\"layout\":_vm.dndLayout,\"col-num\":4,\"row-height\":138,\"is-draggable\":_vm.dndStatus,\"is-resizable\":false,\"is-mirrored\":false,\"vertical-compact\":true,\"margin\":[20, 20],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.dndLayout=$event},\"layout-updated\":_vm.layoutUpdatedEvent}},_vm._l((_vm.dndLayout),function(item){return _c('grid-item',{key:item.i,attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.i,\"dragAllowFrom\":\"i.dnd-handler\"}},[_c(item.device.data.type,{tag:\"component\",class:{ 'disable-device-on-event-offline': !_vm.isProjectOnline },attrs:{\"device-data\":item.device,\"chart-data\":item.device,\"chart-width\":_vm.chartInstanceWidth,\"dnd-grid-layout-container-width\":_vm.gridLayoutContainerWidth},scopedSlots:_vm._u([{key:\"dnd\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dndStatus),expression:\"dndStatus\"}],staticClass:\"dnd-handler\",attrs:{\"size\":\"20\"}},[_vm._v(\" fa-arrows-alt \")])]},proxy:true}],null,true)})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport class DND extends Vue {\n /**\n * Returns device dimensions according to type,\n * which used in Drag and Drop grid on Favorites, Rooms pages\n * @param componentType type of device, MPC\n * @return object with props w (width), h (height)\n */\n sizesForDnD(componentType: string) {\n const devicesSizesForDnD: any = {\n GaugeChart: { w: 2, h: 2 },\n ControlBlinds: { w: 1, h: 2 },\n MotorWithoutVFD: { w: 1, h: 2 },\n WeatherStation: { w: 1, h: 2 },\n MotionSensor: { w: 1, h: 2 },\n Gauge: { w: 2, h: 2 },\n MusicSystem: { w: 1, h: 2 },\n RegentLighting: { w: 3, h: 5 },\n MotorWithVFD: { w: 1, h: 2 },\n PumpWithoutVFD: { w: 1, h: 2 },\n PumpWithVFD: { w: 1, h: 2 },\n MixingValve: { w: 1, h: 2 },\n Ventilation: { w: 1, h: 2 },\n TSGFrischwasser: { w: 2, h: 2 },\n TSGBrauchwasser: { w: 2, h: 2 },\n PVProductionService: { w: 1, h: 2 },\n PVMonitoringService: { w: 1, h: 2 },\n ConsumptionService: { w: 1, h: 2 },\n HppProductionService: { w: 1, h: 2 },\n Robot: { w: 1, h: 5 },\n SurveyClient: { w: 1, h: 5 },\n EnergyDevice: { w: 4, h: 5 },\n EMSV2: { w: 4, h: 6 },\n EMS: { w: 4, h: 6 },\n EnergyIO: { w: 4, h: 6 },\n EnergyViewV2: { w: 4, h: 6 },\n MpcEnergyView: { w: 4, h: 6 },\n TSGLadestationNotAus: { w: 1, h: 2 },\n SetpointOptimizer: { w: 2, h: 5 },\n TSGModulLadestation: { w: 1, h: 2 },\n ElectricChargingStationV2: { w: 1, h: 2 },\n };\n const isChart = (type: string) => {\n const charts = ['HistoryAnomalyDetection', 'StreamAnomalyDetection', 'chart'];\n return charts.some((item: string) => item === type) ? { w: 4, h: 4 } : false;\n };\n return devicesSizesForDnD[componentType] || isChart(componentType) || { w: 1, h: 1 };\n }\n}\n","\nimport { Component, Watch } from 'vue-property-decorator';\nimport LightDimmer from '@/ui/components/devices/devices/LightDimmer.vue';\nimport LightSwitch from '@/ui/components/devices/devices/LightSwitch.vue';\nimport Temperature from '@/ui/components/devices/devices/Temperature.vue';\nimport VariableInputField from '@/ui/components/devices/devices/VariableInputField.vue';\nimport VariableOutputField from '@/ui/components/devices/devices/VariableOutputField.vue';\nimport VariableTextInputField from '@/ui/components/devices/devices/VariableTextInputField.vue';\nimport VariableTextOutputField from '@/ui/components/devices/devices/VariableTextOutputField.vue';\nimport LightRGB from '@/ui/components/devices/devices/LightRGB.vue';\nimport SocketSwitch from '@/ui/components/devices/devices/SocketSwitch.vue';\nimport LightPushButton from '@/ui/components/devices/devices/LightPushButton.vue';\nimport ControlBlinds from '@/ui/components/devices/devices/ControlBlinds.vue';\nimport ControlShutter from '@/ui/components/devices/devices/ControlShutter.vue';\nimport ControlAwning from '@/ui/components/devices/devices/ControlAwning.vue';\nimport ThermostatDigital from '@/ui/components/devices/devices/ThermostatDigital.vue';\nimport ThermostatAnalog from '@/ui/components/devices/devices/ThermostatAnalog.vue';\nimport BrightnessSensor from '@/ui/components/devices/devices/BrightnessSensor.vue';\nimport AirHumiditySensor from '@/ui/components/devices/devices/AirHumiditySensor.vue';\nimport SensorCO2 from '@/ui/components/devices/devices/SensorCO2.vue';\nimport SensorLevel from '@/ui/components/devices/devices/SensorLevel.vue';\nimport WeatherStation from '@/ui/components/devices/devices/WeatherStation.vue';\nimport HotWaterMeter from '@/ui/components/devices/devices/HotWaterMeter.vue';\nimport ColdWaterMeter from '@/ui/components/devices/devices/ColdWaterMeter.vue';\nimport ElectricityMeter from '@/ui/components/devices/devices/ElectricityMeter.vue';\nimport HeatingMeter from '@/ui/components/devices/devices/HeatingMeter.vue';\nimport MotionSensor from '@/ui/components/devices/devices/MotionSensor.vue';\nimport Battery from '@/ui/components/devices/devices/Battery.vue';\nimport PVSystem from '@/ui/components/devices/devices/PVSystem.vue';\nimport HouseConsumption from '@/ui/components/devices/devices/HouseConsumption.vue';\nimport Generator from '@/ui/components/devices/devices/Generator.vue';\nimport MainsConnection from '@/ui/components/devices/devices/MainsConnection.vue';\nimport ElectricChargingStation from '@/ui/components/devices/devices/ElectricChargingStation.vue';\nimport ElectricChargingStationV2 from '@/ui/components/devices/devices/ElectricChargingStationV2.vue';\nimport ElectronicBoiler from '@/ui/components/devices/devices/ElectronicBoiler.vue';\nimport VentilatorSwitch from '@/ui/components/devices/devices/VentilatorSwitch.vue';\nimport MusicSystem from '@/ui/components/devices/devices/MusicSystem.vue';\nimport TV from '@/ui/components/devices/devices/TV.vue';\nimport MotorWithoutVFD from '@/ui/components/devices/devices/MotorWithoutVFD.vue';\nimport PumpWithoutVFD from '@/ui/components/devices/devices/PumpWithoutVFD.vue';\nimport PumpWithVFD from '@/ui/components/devices/devices/PumpWithVFD.vue';\nimport MotorWithVFD from '@/ui/components/devices/devices/MotorWithVFD.vue';\nimport MixingValve from '@/ui/components/devices/devices/MixingValve.vue';\nimport Ventilation from '@/ui/components/devices/devices/Ventilation.vue';\nimport Gauge from '@/ui/components/devices/devices/Gauge.vue';\nimport RegentLighting from '@/ui/components/devices/devices/RegentLighting.vue';\nimport HeatingCircuitOptimization from '@/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue';\nimport VueGridLayout from 'vue-grid-layout';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { DND } from '@/ui/mixins/dnd';\nimport Chart from '@/ui/components/devices/charts/charts/ChartDevice.vue';\nimport DropDownOutputFieldWithVariable from '@/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue';\nimport DropDownInputFieldWithVariable from '@/ui/components/devices/devices/DropDownInputFieldWithVariable.vue';\nimport TSGFrischwasser from '@/ui/components/devices/devices/TSGFrischwasser.vue';\nimport TSGBrauchwasser from '@/ui/components/devices/devices/TSGBrauchwasser.vue';\nimport Robot from '@/ui/components/devices/devices/Robot.vue';\nimport SurveyClient from '@/ui/components/devices/devices/SurveyClient.vue';\nimport PVProductionService from '@/ui/components/devices/mpc/PVProductionService/index.vue';\nimport MpcEnergyView from '@/ui/components/devices/mpc/EnergyView/index.vue';\nimport EnergyViewV2 from '@/ui/components/devices/devices/EnergyViewV2/index.vue';\nimport ConsumptionService from '@/ui/components/devices/mpc/ConsumptionService/index.vue';\nimport HppProductionService from '@/ui/components/devices/mpc/HeatingProduction/index.vue';\nimport TSGLadestationNotAus from '@/ui/components/devices/devices/TSGLadestationNotAus.vue';\nimport EMS from '@/ui/components/devices/mpc/EMS/index.vue';\nimport EMSV2 from '@/ui/components/devices/devices/EMS/index.vue';\nimport GeneralSwitchV2 from '@/ui/components/devices/devices/GeneralSwitchV2.vue';\nimport PVMonitoringService from '@/ui/components/devices/mpc/PVMonitoringService/index.vue';\nimport HistoryAnomalyDetection\n from '@/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue';\nimport StreamAnomalyDetection\n from '@/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport SetpointOptimizer from '@/ui/components/devices/mpc/SetpointOptimizer/index.vue';\nimport TSGModulLadestation from '@/ui/components/devices/devices/TSGModulLadestation.vue';\nimport { IDevice } from '@/types/devices.types';\nimport EnergyIO from '@/ui/components/devices/devices/EnergyIO/index.vue';\n\n/**\n * Component that represent all devices list in Drag and Drop grid.\n * Used in Favorites page.\n */\n@Component({\n components: {\n TSGModulLadestation,\n HppProductionService,\n SetpointOptimizer,\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n PVMonitoringService,\n GeneralSwitchV2,\n EMSV2,\n EMS,\n EnergyIO,\n TSGLadestationNotAus,\n ConsumptionService,\n PVProductionService,\n EnergyViewV2,\n MpcEnergyView,\n SurveyClient,\n Robot,\n TSGBrauchwasser,\n TSGFrischwasser,\n DropDownInputFieldWithVariable,\n DropDownOutputFieldWithVariable,\n HeatingCircuitOptimization,\n Gauge,\n Ventilation,\n MixingValve,\n MotorWithVFD,\n PumpWithVFD,\n PumpWithoutVFD,\n MotorWithoutVFD,\n TV,\n MusicSystem,\n VentilatorSwitch,\n ElectronicBoiler,\n ElectricChargingStation,\n ElectricChargingStationV2,\n MainsConnection,\n Generator,\n HouseConsumption,\n PVSystem,\n Battery,\n MotionSensor,\n ElectricityMeter,\n HeatingMeter,\n ColdWaterMeter,\n HotWaterMeter,\n WeatherStation,\n SensorLevel,\n SensorCO2,\n BrightnessSensor,\n AirHumiditySensor,\n ThermostatAnalog,\n ThermostatDigital,\n ControlShutter,\n ControlAwning,\n ControlBlinds,\n LightRGB,\n SocketSwitch,\n LightPushButton,\n LightSwitch,\n LightDimmer,\n Temperature,\n VariableOutputField,\n VariableInputField,\n VariableTextInputField,\n VariableTextOutputField,\n RegentLighting,\n GridLayout: VueGridLayout.GridLayout,\n GridItem: VueGridLayout.GridItem,\n chart: Chart,\n },\n})\nexport default class DevicesListFavorites extends mixins(DND) {\n @State('app') appState!: any;\n @State('mqttClient') mqttState!: any;\n @State('devices') devicesState!: any;\n @State('projects') projectsState!: IProjectsState;\n @Getter('projects/project') project!: any;\n @Getter('devices/favoritesDevices') favoritesDevices!: Array;\n @Getter('members/currentMember') currentMember!: any;\n @Getter('members/currentMemberFavoriteDevicesPositions') currentMemberFavoriteDevicesPositions!: any;\n @Getter('members/currentMemberFavoriteDevices') currentMemberFavoriteDevices!: any;\n @Action('members/updateMemberMeta') updateMemberMeta!: (meta: any) => Promise;\n\n dndLayout = []\n chartInstanceWidth: any = null\n gridLayoutContainerWidth: any = null\n filteredDevicesWithPositions: any = []\n finalProjectWithNewPositions: any = null\n\n @Watch('favoritesDevices')\n onDevicesChange(devices: any) {\n this.initDndDevices(this.favoritesDevices);\n }\n @Watch('dndStatus')\n async onDNDStatusChange(val: boolean) {\n if (!val) {\n await this.saveDevicesPositions();\n }\n }\n\n get isProjectOnline() {\n if (this.projectsState.project?.meta?.disableDevicesWhenOffline) return this.mqttState.online;\n else return true;\n }\n\n get dndStatus() {\n if (this.project) return (this.project.meta as any).isDNDActive;\n return false;\n }\n get devicesTypes() {\n return Object.keys(this.devicesState.devicesTypes);\n }\n get favoritesDevicesPositions() {\n return this.currentMemberFavoriteDevicesPositions;\n }\n\n get user() {\n return this.appState.user;\n }\n\n async saveDevicesPositions() {\n const member = JSON.parse(JSON.stringify(this.currentMember));\n this.createMemberMeta(member);\n this.addFavoritesDevicesPositions(member);\n this.actualizationOfDevicesFavoritesList(member);\n\n await this.updateMemberMeta({ project_id: this.project.id, member });\n }\n\n createMemberMeta(member: any) {\n if (!member?.meta) member.meta = { favorite_positions: [] };\n if (!member?.meta?.favorite_positions) member.meta.favorite_positions = [];\n }\n actualizationOfDevicesFavoritesList(member: any) {\n const local = this.filteredDevicesWithPositions.length\n ? this.filteredDevicesWithPositions.map((el: any) => el.i)\n : [];\n if (member?.meta?.favorite_devices?.length) {\n member.meta.favorite_devices = member.meta.favorite_devices.filter((id: string) => local.includes(id));\n }\n }\n addFavoritesDevicesPositions(member: any) {\n member.meta.favorite_positions = this.filteredDevicesWithPositions;\n }\n\n currentDevicePositions(device: any) {\n return this.favoritesDevicesPositions.find((item: any) => item.i === device.id);\n }\n\n /**\n * Prepares list of devices for Drag and Drop grid\n * @param {array} devices list of devices\n */\n initDndDevices(devices: any) {\n const lastDeviceOnFirstCol = () => {\n if (!this.favoritesDevicesPositions.length) return;\n // filter all devices which on position x = 0, return their y-positions\n const arr = this.favoritesDevicesPositions.filter((device: any) => device.x === 0).map((d: any) => d.y);\n // define last y-position\n const lastPos = Math.max.apply(null, arr);\n return this.favoritesDevicesPositions.filter((device: any) => device.x === 0).find((el: any) => el.y === lastPos);\n };\n const lastDeviceOnFirstColSize = lastDeviceOnFirstCol() ? this.sizesForDnD(devices.find((dev: any) => dev.id === lastDeviceOnFirstCol().i)?.data?.type) : null;\n // define start position for new device what was added\n const startPositionForNewDevice = lastDeviceOnFirstColSize && lastDeviceOnFirstCol() ? lastDeviceOnFirstColSize.h + lastDeviceOnFirstCol().y : 0;\n\n this.dndLayout = devices.map((device: any) => {\n const isFullWidthChart = device.data.selectedWidth === 'full';\n\n const positions = () => {\n if (this.favoritesDevicesPositions.length) {\n // need when chart instance switch between full width and half width\n let snapshot = null;\n if (this.currentDevicePositions(device)) {\n snapshot = { ...this.currentDevicePositions(device) };\n if (isFullWidthChart) snapshot.x = 0;\n else snapshot.x = this.currentDevicePositions(device).x;\n }\n\n return snapshot || {\n x: 0,\n y: startPositionForNewDevice,\n i: device.id,\n };\n }\n return {\n x: 0,\n y: 0,\n i: device.id,\n };\n };\n return {\n device,\n ...positions(),\n ...this.sizesForDnD(device.data.type),\n };\n });\n this.$nextTick(() => {\n const gridLayoutContainerPadding = 40;\n this.chartInstanceWidth = Math.round((this.$refs.layout as any).$el.clientWidth / 2) - 20;\n this.gridLayoutContainerWidth = (this.$refs.layout as any).$el.clientWidth - gridLayoutContainerPadding;\n });\n\n // define sizes for EnergyView, charts\n this.dndLayout.forEach((item: any, index: number) => {\n const isChartOrAnomalyDevices: boolean = ['chart', 'HistoryAnomalyDetection', 'StreamAnomalyDetection']\n .some((type: string) => type === item.device.data.type);\n if (isChartOrAnomalyDevices) {\n if (item.device.data.selectedWidth === 'half') {\n item.w = 2;\n } else {\n item.w = 4;\n }\n }\n });\n }\n\n /**\n * Saves actual devices positions when Drag and Drop layout was updated\n * @param {array} layout Drag and Drop grid items list\n */\n layoutUpdatedEvent(layout: any) {\n this.filteredDevicesWithPositions = layout.map((item: any) => ({\n x: item.x,\n y: item.y,\n i: item.i,\n }));\n if (this.project) {\n // const copy = JSON.parse(JSON.stringify(this.project));\n const copy2 = JSON.parse(JSON.stringify(this.project));\n // copy.meta.favoritesDevicesPositions = this.filteredDevicesWithPositions;\n copy2.meta.favoritesDevicesPositions = copy2?.meta?.favoritesDevicesPositions?.length ? copy2.meta.favoritesDevicesPositions : {};\n copy2.meta.favoritesDevicesPositions[this.user.id] = this.filteredDevicesWithPositions;\n this.finalProjectWithNewPositions = copy2;\n // console.log(this.finalProjectWithNewPositions);\n }\n }\n\n mounted() {\n this.initDndDevices(this.favoritesDevices);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f5c412ae&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f5c412ae&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.dndLayoutDevices.length > 0)?_c('grid-layout',{ref:\"layout\",staticStyle:{\"touch-action\":\"none\"},attrs:{\"layout\":_vm.dndLayoutDevices,\"col-num\":4,\"row-height\":138,\"is-draggable\":false,\"is-resizable\":false,\"is-mirrored\":false,\"vertical-compact\":true,\"auto-size\":true,\"margin\":[20, 20],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.dndLayoutDevices=$event}}},_vm._l((_vm.dndLayoutDevices),function(item){return _c('grid-item',{key:item.i,attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.i,\"dragAllowFrom\":\"i.dnd-handler\"}},[_c(item.device.data.type,{tag:\"component\",class:{ 'disable-device-on-event-offline': !_vm.isProjectOnline },attrs:{\"device-data\":item.device,\"chart-data\":item.device,\"chart-width\":_vm.chartInstanceWidth},scopedSlots:_vm._u([{key:\"dnd\",fn:function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"dnd-handler\"},[_c('lynus-icon',{attrs:{\"name\":\"drag\",\"color\":\"theme\",\"size\":\"24\"}})],1)]},proxy:true}],null,true)})],1)}),1):_vm._e(),_c('grid-layout',{ref:\"layout\",staticStyle:{\"touch-action\":\"none\"},attrs:{\"layout\":_vm.dndLayoutCharts,\"col-num\":4,\"row-height\":138,\"is-draggable\":false,\"is-resizable\":false,\"is-mirrored\":false,\"vertical-compact\":true,\"auto-size\":true,\"margin\":[20, 20],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.dndLayoutCharts=$event}}},_vm._l((_vm.dndLayoutCharts),function(item){return _c('grid-item',{key:item.i,attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.i,\"dragAllowFrom\":\"i.dnd-handler\"}},[_c(item.device.data.type,{tag:\"component\",class:{ 'disable-device-on-event-offline': !_vm.isProjectOnline },attrs:{\"device-data\":item.device,\"chart-data\":item.device,\"chart-width\":_vm.chartInstanceWidth},scopedSlots:_vm._u([{key:\"dnd\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],staticClass:\"dnd-handler\",attrs:{\"size\":\"20\"}},[_vm._v(\" fa-arrows-alt \")])]},proxy:true}],null,true)})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"rooms-list primary\"},[_c('grid-layout',{ref:\"layout\",staticStyle:{\"touch-action\":\"none\"},attrs:{\"layout\":_vm.dndLayout,\"col-num\":6,\"row-height\":_vm.areasHeight,\"is-draggable\":_vm.dndStatus,\"is-resizable\":false,\"is-mirrored\":false,\"vertical-compact\":false,\"auto-size\":true,\"margin\":[20, 20],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.dndLayout=$event},\"layout-updated\":_vm.layoutUpdatedEvent}},_vm._l((_vm.dndLayout),function(item){return _c('grid-item',{key:item.i,staticStyle:{\"overflow\":\"hidden\"},attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.i,\"dragAllowFrom\":\"i.dnd-handler\"}},[_c('RoomItem',{attrs:{\"room-data\":item.room,\"is-active\":_vm.activeRoom(item.room.id),\"areas-mini-view\":_vm.isAreasMiniView},on:{\"handleRoomActiveStatus\":function($event){return _vm.$emit('handleRoomActiveStatus', $event)}}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',_vm._g({class:[{ 'active-room': !!_vm.isActive }, 'primary', 'pa-0', 'room-item'],attrs:{\"min-height\":_vm.breakpoints,\"flat\":\"\",\"ripple\":false}},_vm.currentHandlers),[_c('div',[(_vm.areasMiniView)?_c('div',{staticClass:\"mini-variant\"},[_c('div',{staticClass:\"mini-variant-title\"},[_vm._v(\" \"+_vm._s(_vm.roomData.name)+\" \")]),_c('div',[(_vm.dndStatus && _vm.areasMiniView)?_c('v-icon',{staticClass:\"dnd-handler mini-dnd-handler\"},[_vm._v(\" fa-arrows-alt \")]):_vm._e()],1),(!_vm.dndStatus && _vm.showRoomItemMenuButton)?_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [(_vm.showRoomItemMenuButton)?_c('v-btn',_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpenMiniView = !_vm.isMenuOpenMiniView}}},\"v-btn\",_vm._d({},[_vm.btnSize,true])),[_c('v-icon',_vm._b({},\"v-icon\",_vm._d({},[_vm.btnSize,true])),[_vm._v(\"fa-ellipsis-v\")])],1):_vm._e()]}}],null,false,334562693),model:{value:(_vm.isMenuOpenMiniView),callback:function ($$v) {_vm.isMenuOpenMiniView=$$v},expression:\"isMenuOpenMiniView\"}},[_c('v-list',{staticClass:\"primary room-item-actions\"},_vm._l((_vm.items),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"}},[(item.modal)?_c('div',[(_vm.canMemberAccess('AreaActions', item.id))?_c(item.modal,{tag:\"component\",attrs:{\"deletedItemName\":\"area\",\"form-title\":_vm.$t('modals.manageAreas.editArea'),\"room-data\":_vm.roomData},on:{\"deleteHandler\":_vm.deleteRoom,\"handleRoom\":_vm.editRoom}},[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":function($event){_vm.isMenuOpenMiniView = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])]):_vm._e()],1):_c('div',[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":item.handle}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])])}),1)],1):_vm._e()],1):_c('div',{staticClass:\"room-item-title\"},[_vm._v(\" \"+_vm._s(_vm.roomData.name)+\" \")]),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"image\"},[(_vm.isImageSource)?[(_vm.roomData.meta.imageId)?_c('v-img',{attrs:{\"src\":`https://static.lynus.io/assets/${_vm.roomData.meta.imageId}`,\"aspect-ratio\":\"1.7\",\"contain\":\"\"}}):_vm._e(),(_vm.roomData.meta.cover)?_c('v-img',{staticClass:\"room-icon\",style:(_vm.iconTheme(_vm.roomData.meta.cover)),attrs:{\"src\":`https://static.lynus.io/${_vm.roomData.meta.cover}`,\"aspect-ratio\":\"1.7\",\"contain\":\"\"}}):_vm._e()]:_c('PlaceHolderImage',{staticStyle:{\"width\":\"100%\",\"height\":\"90%\"}})],2),_c('div',{staticClass:\"text\"},[_c('div',{staticClass:\"devices-length\"}),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [(_vm.showRoomItemMenuButton)?_c('v-btn',_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},\"v-btn\",_vm._d({},[_vm.btnSize,true])),[_c('v-icon',_vm._b({},\"v-icon\",_vm._d({},[_vm.btnSize,true])),[_vm._v(\"fa-ellipsis-v\")])],1):_vm._e()]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',{staticClass:\"primary room-item-actions\"},_vm._l((_vm.items),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"}},[(item.modal)?_c('div',[(_vm.canMemberAccess('AreaActions', item.id))?_c(item.modal,{tag:\"component\",attrs:{\"deletedItemName\":\"area\",\"form-title\":_vm.$t('modals.manageAreas.editArea'),\"room-data\":_vm.roomData,\"currentMember\":_vm.currentMember,\"project\":_vm.project},on:{\"deleteHandler\":_vm.deleteRoom,\"handleRoom\":_vm.editRoom}},[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":function($event){_vm.isMenuOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])]):_vm._e()],1):_c('div',[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":item.handle}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])])}),1)],1)],1)])]),(_vm.dndStatus && !_vm.areasMiniView)?_c('v-icon',{staticClass:\"dnd-handler\"},[_vm._v(\" fa-arrows-alt \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"700\",\"disableCloseButton\":_vm.isLoading},on:{\"dialogStatus\":_vm.handleChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.duplicateRoomModal.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"manage-duplicate\"},[(_vm.isLoading === true)?_c('div',{staticClass:\"device-type-field\"},[_c('div',{staticClass:\"loading-animation\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":90}}),_c('div',[_vm._v(_vm._s(_vm.$t('modals.duplicateRoomModal.loadingText')))]),_c('v-btn',{staticClass:\"error\",on:{\"click\":_vm.handleCancel}},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.cancel')))])],1)]):_vm._e()])]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport ManageCollectionsModal from '@/ui/components/components/ManageCollectionsAccessModal.vue';\nimport _ from 'lodash';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { duplicateSingleRoom } from '@/utils/duplicationUtils';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * Component that allows to create a new project\n */\n@Component({\n components: {\n ModalWindow,\n ManageCollectionsModal,\n CircleSpinner,\n },\n})\nexport default class DuplicateRoomModal extends Vue {\n @Prop() roomData!: IRoom;\n @Prop() currentMember!: IMember;\n @Prop() project!: IProject;\n\n isLoading = false;\n\n async handleChange(value: boolean) {\n if (value) {\n this.isLoading = true;\n await duplicateSingleRoom(this.roomData, this.project, this.currentMember);\n this.isLoading = false;\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n }\n\n mounted() {\n this.isLoading = false;\n }\n\n async handleCancel() {\n window.stop();\n this.isLoading = false;\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicateRoomModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DuplicateRoomModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DuplicateRoomModal.vue?vue&type=template&id=5011f82d&scoped=true&\"\nimport script from \"./DuplicateRoomModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DuplicateRoomModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DuplicateRoomModal.vue?vue&type=style&index=0&id=5011f82d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5011f82d\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport PlaceHolderImage from '@/ui/components/components/PlaceHolderImage.vue';\nimport { envUserRolesAccessBlockList } from '@/utils/env';\nimport _ from 'lodash';\nimport DuplicateRoomModal from '@/ui/components/lists/RoomsList/DuplicateRoomModal.vue';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport { CanAccessCheck, IMember } from '@/types/members.types';\n\n/**\n * Component that represent room item\n */\n@Component({\n components: {\n DeleteModalForm,\n ManageRoom,\n PlaceHolderImage,\n DuplicateRoomModal,\n },\n})\nexport default class RoomItem extends Vue {\n @Prop() roomData!: IRoom;\n @Prop() isActive!: boolean;\n @Prop() areasMiniView!: boolean;\n @State('app') appState!: any;\n @Getter('projects/project') project!: IProject;\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => IDevice[];\n @Action('rooms/deleteRoom') deleteRoomState!: (id: string) => Promise;\n @Action('rooms/updateRoom') updateRoom!: (room: IRoom) => Promise;\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('members/currentUserRole') currentUserRole!: any;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n\n isMenuOpen = false\n isMenuOpenMiniView = false\n isCloseOnClick = true\n isAllowedToDelete = true\n\n get showRoomItemMenuButton() {\n if (this.items.length === envUserRolesAccessBlockList[this.currentUserRole].AreaActions.length) {\n return false;\n } else {\n return true;\n }\n }\n /**\n * Define height of element according to window size\n * @return {number} height of room item\n */\n get breakpoints() {\n switch (this.$vuetify.breakpoint.name) {\n case 'xs': return 160;\n case 'sm': return 160;\n case 'md': return 210;\n case 'lg': return 250;\n case 'xl': return 250;\n default: return null;\n }\n }\n\n /**\n * Define button size according to window size\n * @return {string} vuetify class\n */\n get btnSize() {\n switch (this.$vuetify.breakpoint.name) {\n case 'xs': return 'x-small';\n case 'sm': return 'x-small';\n case 'md': return 'small';\n case 'lg': return null;\n case 'xl': return null;\n default: return null;\n }\n }\n\n get dndStatus() {\n if (this.project) {\n return (this.project.meta as any).isDNDActive;\n }\n return false;\n }\n\n get devicesLength() {\n return this.devicesByRoom(this.roomData.id).length;\n }\n\n /**\n * Define which actions to show\n * @return {array} list of manage modals forms\n */\n get items() {\n return [\n { title: 'uiComponents.areasActions.edit', modal: 'ManageRoom', id: 'edit' },\n { title: 'uiComponents.areasActions.duplicate', modal: 'DuplicateRoomModal', id: 'duplicate' },\n { title: 'uiComponents.areasActions.delete', modal: 'DeleteModalForm', id: 'delete' },\n ];\n }\n get currentHandlers() {\n return !this.dndStatus ? { click: this.handleRoom } : null;\n }\n get isImageSource() {\n return !!(this.roomData.meta.imageId || this.roomData.meta.cover);\n }\n\n /**\n * Converts icon color according to current theme\n * @param {string} source icon id\n * @return {object} styles object\n */\n iconTheme(source: string) {\n const isIcon = /icons/g.test(source);\n return isIcon ? { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null } : {};\n }\n\n handleRoom() {\n this.$emit('handleRoomActiveStatus', this.roomData.id);\n }\n editRoom(room: IRoom) {\n this.updateRoom(room);\n }\n deleteRoom() {\n this.deleteRoomState(this.roomData.id);\n }\n\n created() {\n Object.values(this.devicesByRoom(this.roomData.id)).forEach((element: any, index: number) => {\n if (element.data.type === 'Robot' || element.data.type === 'SurveyClient') {\n this.isAllowedToDelete = false;\n }\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RoomItem.vue?vue&type=template&id=cbe41ce2&\"\nimport script from \"./RoomItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./RoomItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RoomItem.vue?vue&type=style&index=0&id=cbe41ce2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport {\n Vue,\n Component,\n Prop,\n Watch,\n} from 'vue-property-decorator';\nimport RoomItem from '@/ui/components/lists/RoomsList/RoomItem.vue';\nimport VueGridLayout from 'vue-grid-layout';\nimport { State, Getter, Action } from 'vuex-class';\nimport { IRoomsState } from '@/store/modules/rooms/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IMemberMetaMapElement } from '@/types/members.types';\n\n/**\n * Component that represent all rooms in Drag and Drop grid.\n * Used in Areas page.\n */\n@Component({\n components: {\n RoomItem,\n GridLayout: VueGridLayout.GridLayout,\n GridItem: VueGridLayout.GridItem,\n },\n})\nexport default class RoomsList extends Vue {\n @Prop() listOfRooms!: IRoom[];\n @Prop() activeRoomId!: string;\n @Prop() currentRoomData!: IRoom;\n\n @State('app') appState!: IAppState;\n @State('rooms') roomsState!: IRoomsState;\n @Getter('projects/project') project!: IProject;\n @Getter('members/currentMember') currentMember!: any;\n @Getter('members/currentMemberAreasPositions') currentMemberAreasPositions!: IMemberMetaMapElement[];\n @Action('projects/updateProject') updateProject!: (project: IProject) => void;\n\n /**\n * Watch on listOfRooms prop, compare changes and save rooms positions in project data\n * @param {array} newRooms actual list of rooms\n * @param {array} oldRooms list of rooms before they are changed\n */\n @Watch('listOfRooms')\n onRoomsChange(newRooms: IRoom[], oldRooms: IRoom[]) {\n if (!newRooms.length) this.$emit('handleRoomActiveStatus', '');\n if (newRooms.length !== oldRooms.length && oldRooms.length && oldRooms) {\n this.$nextTick(() => {\n this.$emit('handleRoomActiveStatus', this.firstSortedRoomByParams);\n this.updateProject(this.project);\n });\n }\n this.initDndRooms(newRooms);\n }\n\n dndLayout: any = [];\n areasPositions = [];\n projectWithActualRoomsPositions: any = {};\n\n get isAreasMiniView() {\n if (this.project) return this.project.meta?.isAreasMiniView;\n return false;\n }\n get areasHeight() {\n return this.isAreasMiniView ? 33 : 250;\n }\n\n get dndStatus() {\n if (this.project) {\n return this.project.meta?.isDNDActive;\n }\n return false;\n }\n\n /**\n * Defines id of first room in sorted list\n * @return {string} room id\n */\n get firstSortedRoomByParams() {\n if (this.dndLayout.length) {\n const filteredByKeys = this.dndLayout.map((room: any) => ({ x: room.x, y: room.y, i: room.i }));\n const sorted = filteredByKeys.sort((a: any, b: any) => a.x - b.x).sort((a: any, b: any) => a.y - b.y);\n return sorted[0].i;\n }\n return null;\n }\n\n /**\n * Defines active room\n * @param {string} roomId room id\n * @return {boolean} status of room\n */\n activeRoom(roomId: string) {\n if (this.activeRoomId) {\n return this.activeRoomId === roomId;\n }\n this.$emit('handleRoomActiveStatus', this.firstSortedRoomByParams);\n return this.firstSortedRoomByParams === roomId;\n }\n\n /**\n * Prepares list of rooms for Drag and Drop grid\n * @param {array} rooms list of rooms\n */\n initDndRooms(rooms: any) {\n // sort rooms by their x, y positions\n const sortedPositions = this.currentMemberAreasPositions.length ? this.currentMemberAreasPositions\n .map((item: any) => ({ x: item.x, y: item.y }))\n .sort((a: any, b: any) => a.x - b.x)\n .sort((a: any, b: any) => a.y - b.y) : null;\n const lastPosition = sortedPositions ? sortedPositions[sortedPositions.length - 1] : null;\n\n this.dndLayout = rooms.map((room: IRoom, index: number) => {\n const positions = () => {\n if (this.currentMember?.meta?.area_positions?.length) {\n const currentRoomPositions = this.currentMember.meta.area_positions.find((item: any) => item.i === room.id);\n return currentRoomPositions || {\n x: (lastPosition?.x + 1) % 6,\n y: lastPosition?.x < 5 ? lastPosition?.y : lastPosition?.y + 1,\n i: room.id,\n };\n }\n return {\n x: index % 6,\n y: 0,\n i: room.id,\n };\n };\n return {\n room,\n ...positions(),\n w: 1,\n h: 1,\n i: room.id,\n };\n });\n }\n\n /**\n * Saves actual rooms positions when Drag and Drop layout was updated\n * @param {array} layout Drag and Drop grid items list\n */\n layoutUpdatedEvent(layout: any) {\n this.areasPositions = layout.map((item: any) => ({ x: item.x, y: item.y, i: item.i }));\n }\n\n handleRoom(id: string) {\n this.$emit('handleRoomActiveStatus', id);\n }\n\n mounted() {\n this.initDndRooms(this.listOfRooms);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=382ce9a6&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=382ce9a6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport Chart from '@/ui/components/devices/charts/charts/ChartDevice.vue';\nimport LightSwitch from '@/ui/components/devices/devices/LightSwitch.vue';\nimport LightDimmer from '@/ui/components/devices/devices/LightDimmer.vue';\nimport Temperature from '@/ui/components/devices/devices/Temperature.vue';\nimport VariableOutputField from '@/ui/components/devices/devices/VariableOutputField.vue';\nimport RoomsList from '@/ui/components/lists/RoomsList/index.vue';\nimport VariableInputField from '@/ui/components/devices/devices/VariableInputField.vue';\nimport VariableTextInputField from '@/ui/components/devices/devices/VariableTextInputField.vue';\nimport VariableTextOutputField from '@/ui/components/devices/devices/VariableTextOutputField.vue';\nimport LightRGB from '@/ui/components/devices/devices/LightRGB.vue';\nimport SocketSwitch from '@/ui/components/devices/devices/SocketSwitch.vue';\nimport LightPushButton from '@/ui/components/devices/devices/LightPushButton.vue';\nimport ControlBlinds from '@/ui/components/devices/devices/ControlBlinds.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport ControlShutter from '@/ui/components/devices/devices/ControlShutter.vue';\nimport ControlAwning from '@/ui/components/devices/devices/ControlAwning.vue';\nimport ThermostatDigital from '@/ui/components/devices/devices/ThermostatDigital.vue';\nimport ThermostatAnalog from '@/ui/components/devices/devices/ThermostatAnalog.vue';\nimport BrightnessSensor from '@/ui/components/devices/devices/BrightnessSensor.vue';\nimport AirHumiditySensor from '@/ui/components/devices/devices/AirHumiditySensor.vue';\nimport SensorCO2 from '@/ui/components/devices/devices/SensorCO2.vue';\nimport SensorLevel from '@/ui/components/devices/devices/SensorLevel.vue';\nimport WeatherStation from '@/ui/components/devices/devices/WeatherStation.vue';\nimport HotWaterMeter from '@/ui/components/devices/devices/HotWaterMeter.vue';\nimport ColdWaterMeter from '@/ui/components/devices/devices/ColdWaterMeter.vue';\nimport ElectricityMeter from '@/ui/components/devices/devices/ElectricityMeter.vue';\nimport HeatingMeter from '@/ui/components/devices/devices/HeatingMeter.vue';\nimport MotionSensor from '@/ui/components/devices/devices/MotionSensor.vue';\nimport Battery from '@/ui/components/devices/devices/Battery.vue';\nimport PVSystem from '@/ui/components/devices/devices/PVSystem.vue';\nimport HouseConsumption from '@/ui/components/devices/devices/HouseConsumption.vue';\nimport Generator from '@/ui/components/devices/devices/Generator.vue';\nimport MainsConnection from '@/ui/components/devices/devices/MainsConnection.vue';\nimport ElectricChargingStation from '@/ui/components/devices/devices/ElectricChargingStation.vue';\nimport ElectronicBoiler from '@/ui/components/devices/devices/ElectronicBoiler.vue';\nimport VentilatorSwitch from '@/ui/components/devices/devices/VentilatorSwitch.vue';\nimport MusicSystem from '@/ui/components/devices/devices/MusicSystem.vue';\nimport TV from '@/ui/components/devices/devices/TV.vue';\nimport MotorWithoutVFD from '@/ui/components/devices/devices/MotorWithoutVFD.vue';\nimport PumpWithoutVFD from '@/ui/components/devices/devices/PumpWithoutVFD.vue';\nimport PumpWithVFD from '@/ui/components/devices/devices/PumpWithVFD.vue';\nimport MotorWithVFD from '@/ui/components/devices/devices/MotorWithVFD.vue';\nimport MixingValve from '@/ui/components/devices/devices/MixingValve.vue';\nimport Ventilation from '@/ui/components/devices/devices/Ventilation.vue';\nimport Gauge from '@/ui/components/devices/devices/Gauge.vue';\nimport RegentLighting from '@/ui/components/devices/devices/RegentLighting.vue';\nimport HeatingCircuitOptimization from '@/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue';\nimport VueGridLayout from 'vue-grid-layout';\nimport { mixins } from 'vue-class-component';\nimport { DND } from '@/ui/mixins/dnd';\nimport DropDownOutputFieldWithVariable from '@/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue';\nimport DropDownInputFieldWithVariable from '@/ui/components/devices/devices/DropDownInputFieldWithVariable.vue';\nimport TSGFrischwasser from '@/ui/components/devices/devices/TSGFrischwasser.vue';\nimport TSGBrauchwasser from '@/ui/components/devices/devices/TSGBrauchwasser.vue';\nimport Robot from '@/ui/components/devices/devices/Robot.vue';\nimport SurveyClient from '@/ui/components/devices/devices/SurveyClient.vue';\nimport PVProductionService from '@/ui/components/devices/mpc/PVProductionService/index.vue';\nimport EnergyViewV2 from '@/ui/components/devices/devices/EnergyViewV2/index.vue';\nimport MpcEnergyView from '@/ui/components/devices/mpc/EnergyView/index.vue';\nimport ConsumptionService from '@/ui/components/devices/mpc/ConsumptionService/index.vue';\nimport HppProductionService from '@/ui/components/devices/mpc/HeatingProduction/index.vue';\nimport TSGLadestationNotAus from '@/ui/components/devices/devices/TSGLadestationNotAus.vue';\nimport EMS from '@/ui/components/devices/mpc/EMS/index.vue';\nimport EMSV2 from '@/ui/components/devices/devices/EMS/index.vue';\nimport GeneralSwitchV2 from '@/ui/components/devices/devices/GeneralSwitchV2.vue';\nimport PVMonitoringService from '@/ui/components/devices/mpc/PVMonitoringService/index.vue';\nimport HistoryAnomalyDetection\n from '@/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue';\nimport StreamAnomalyDetection\n from '@/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport SetpointOptimizer from '@/ui/components/devices/mpc/SetpointOptimizer/index.vue';\nimport TSGModulLadestation from '@/ui/components/devices/devices/TSGModulLadestation.vue';\nimport EnergyIO from '@/ui/components/devices/devices/EnergyIO/index.vue';\n\n/**\n * Component that shows filtered devices, charts in the search\n */\n@Component({\n components: {\n TSGModulLadestation,\n HppProductionService,\n SetpointOptimizer,\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n PVMonitoringService,\n GeneralSwitchV2,\n EMS,\n EMSV2,\n EnergyIO,\n TSGLadestationNotAus,\n ConsumptionService,\n PVProductionService,\n MpcEnergyView,\n EnergyViewV2,\n SurveyClient,\n Robot,\n TSGBrauchwasser,\n TSGFrischwasser,\n DropDownInputFieldWithVariable,\n DropDownOutputFieldWithVariable,\n HeatingCircuitOptimization,\n Gauge,\n Ventilation,\n MixingValve,\n MotorWithVFD,\n PumpWithVFD,\n PumpWithoutVFD,\n MotorWithoutVFD,\n TV,\n MusicSystem,\n VentilatorSwitch,\n ElectronicBoiler,\n ElectricChargingStation,\n MainsConnection,\n Generator,\n HouseConsumption,\n PVSystem,\n Battery,\n MotionSensor,\n HeatingMeter,\n ElectricityMeter,\n ColdWaterMeter,\n HotWaterMeter,\n WeatherStation,\n SensorLevel,\n SensorCO2,\n AirHumiditySensor,\n BrightnessSensor,\n ThermostatAnalog,\n ThermostatDigital,\n ControlShutter,\n ControlAwning,\n ControlBlinds,\n LightPushButton,\n SocketSwitch,\n LightRGB,\n LightSwitch,\n LightDimmer,\n Temperature,\n RoomsList,\n ManageRoom,\n VariableOutputField,\n VariableInputField,\n VariableTextInputField,\n VariableTextOutputField,\n RegentLighting,\n GridLayout: VueGridLayout.GridLayout,\n GridItem: VueGridLayout.GridItem,\n chart: Chart,\n },\n})\nexport default class DevicesList extends mixins(DND) {\n @Prop() devicesByRoomLocal!: any;\n @State('mqttClient') mqttState!: any;\n @State('mpc') mpcState!: any;\n @State('devices') devicesState!: any;\n @Getter('devices/devicesTypes') devicesTypes!: any;\n @Getter('rooms/rooms') rooms!: any;\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => any;\n @Action('rooms/updateRoom') updateRoom!: (payload: any) => void;\n @State('projects') projectsState!: IProjectsState;\n\n get isProjectOnline() {\n if (this.projectsState.project.meta.disableDevicesWhenOffline === true) {\n return this.mqttState.online;\n } else {\n return true;\n }\n }\n\n dndLayoutCharts = []\n dndLayoutDevices = []\n chartInstanceWidth: any = null\n filteredDevicesWithPositions: any = []\n\n @Watch('filteredDevices')\n onRoomChange() {\n this.initDndCharts();\n this.initDndDevices();\n }\n\n get mlModelTypes() {\n return this.mpcState.mlModelTypes;\n }\n get allDevicesTypes() {\n return [...Object.keys(this.devicesTypes), ...Object.keys(this.mlModelTypes)];\n }\n get devicesFilter() {\n return this.devicesState.devicesFilter;\n }\n get filteredDevices() {\n return this.devicesByRoomLocal.filter((device: any) => {\n if (this.devicesFilter && this.devicesFilter.length) {\n return device.name.toLowerCase().includes(this.devicesFilter.toLowerCase());\n }\n return device;\n });\n }\n get charts() {\n const charts = ['ColumnChart', 'LineChart', 'StreamAnomalyDetection', 'AreaChart', 'GaugeChart', 'chart'];\n return this.filteredDevices.filter((device: any) => charts.includes(device.data.type));\n }\n get devices() {\n return this.filteredDevices.filter((device: any) => this.allDevicesTypes.includes(device.data.type));\n }\n\n /**\n * Prepares devices list for Drag and Drop grid\n * @return array, list of devices\n */\n initDndDevices() {\n this.dndLayoutDevices = this.devices.map((device: any, index: number, arr: any) => {\n const sizes = this.sizesForDnD(device.data.type);\n return {\n device,\n x: index % 4,\n y: 0,\n ...sizes,\n i: device.id,\n };\n });\n }\n\n /**\n * Prepares charts list for Drag and Drop grid\n * @return array, list of charts\n */\n initDndCharts() {\n this.dndLayoutCharts = this.charts.map((device: any, index: number, arr: any) => {\n return {\n device,\n x: (index * 2) % 4,\n y: 0,\n w: device.data.selectedWidth === 'full' ? 4 : 2,\n h: 4,\n i: device.id,\n };\n });\n this.$nextTick(() => {\n this.chartInstanceWidth = Math.round((this.$refs.layout as any).$el.clientWidth / 2) - 20;\n });\n }\n\n mounted() {\n this.initDndCharts();\n this.initDndDevices();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=0ecd5762&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ecd5762\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, State, Mutation } from 'vuex-class';\nimport GeneralInfoBanner from '@/ui/components/components/GeneralInfoBanner.vue';\nimport MembersWidget from '@/ui/components/components/MembersWidget.vue';\nimport DevicesListFlexGrid from '@/ui/components/lists/DevicesListFlexGrid/index.vue';\nimport DevicesListFavorites from '@/ui/components/lists/DevicesListFavorites/index.vue';\nimport DevicesList from '@/ui/components/lists/DevicesList/index.vue';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { requestWithTimer } from '@/utils/utilsFunctions';\nimport EnergyVisualisation\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/index.vue';\nimport { IDevice } from '@/types/devices.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * Favorites page, here we see all devices, MPC, charts which was added to favorites\n */\n@Component({\n components: {\n EnergyVisualisation,\n GeneralInfoBanner,\n MembersWidget,\n DevicesListFlexGrid,\n DevicesListFavorites,\n DevicesList,\n },\n})\nexport default class Favorites extends Vue {\n @State('devices') devicesState!: IDevicesState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('devices/favoritesDevices') favoritesDevices!: Array;\n @Getter('members/currentMember') currentMember!: IMember;\n @Mutation('app/setReport') setReport!: (payload: any) => void;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('app/fetchWeather') fetchWeather!: (location: any) => any;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n\n favoritesDataLoaded = false\n\n get project() {\n return this.projectsState.project;\n }\n\n get devicesFilter() {\n return this.devicesState.devicesFilter || '';\n }\n\n async created() {\n this.setProjectLoader(true);\n // Load measurements, rooms, devices, members, MPC, weather data\n await Promise.allSettled([\n this.fetchMeasurements(this.$route.params.id),\n this.fetchRooms(this.$route.params.id),\n this.fetchDevices(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n requestWithTimer([\n this.fetchMPCListByProject(),\n this.fetchWeather(this.project.meta.location),\n ], this.setReport, {\n type: 'error',\n message: this.$t('uiComponents.reportMessages.loadMPCTimeoutError'),\n value: true,\n }),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.favoritesDataLoaded = true;\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorites.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorites.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Favorites.vue?vue&type=template&id=384bf3fb&scoped=true&\"\nimport script from \"./Favorites.vue?vue&type=script&lang=ts&\"\nexport * from \"./Favorites.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Favorites.vue?vue&type=style&index=0&id=384bf3fb&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"384bf3fb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary project-areas\"},[(_vm.isRoomsDataLoaded)?[(_vm.$vuetify.breakpoint.mobile)?_c('RoomsListFlexGrid',{attrs:{\"list-of-rooms\":_vm.rooms,\"active-room-id\":_vm.activeRoomId,\"current-room-data\":_vm.currentRoomData},on:{\"handleRoomActiveStatus\":_vm.handleRoomActiveStatus}}):_c('RoomsList',{ref:\"RoomsList\",attrs:{\"list-of-rooms\":_vm.rooms,\"active-room-id\":_vm.activeRoomId,\"current-room-data\":_vm.currentRoomData},on:{\"handleRoomActiveStatus\":_vm.handleRoomActiveStatus}}),_c('v-divider'),(_vm.$vuetify.breakpoint.mobile)?_c('DevicesListFlexGrid',{attrs:{\"devices\":_vm.devicesByRoomLocal}}):_c('div',{staticClass:\"devices-dnd-grid-wrapper\"},[(_vm.devicesFilter.length)?_c('DevicesList',_vm._b({},'DevicesList',{ devicesByRoomLocal: _vm.devicesByRoomLocal },false)):_vm._e(),(!_vm.devicesFilter.length && _vm.currentRoomData)?_c('DevicesListDnD',_vm._b({ref:\"DevicesList\"},'DevicesListDnD',{ devicesByRoomLocal: _vm.devicesByRoomLocal, currentRoomData: _vm.currentRoomData, activeRoomId: _vm.activeRoomId },false)):_vm._e()],1),(_vm.currentMember && _vm.currentMember.admin && _vm.isRoomCreated)?_c('v-menu',{staticStyle:{\"z-index\":\"100\"},attrs:{\"bottom\":\"\",\"right\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"color\":\"accent lynus-small-btn\",\"rounded\":\"\",\"elevation\":\"0\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"color\":\"white\",\"size\":\"20\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.create'))+\" ... \")])],1)]}}],null,false,170633076),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',_vm._l((_vm.createDeviceOptions),function(item,index){return _c(item.form,{key:index,tag:\"component\",attrs:{\"form-title\":item.formTitle,\"active-room-id\":_vm.activeRoomId},on:{\"handleControl\":_vm.handleWorkbenchButton}},[_c('v-list-item',{attrs:{\"link\":\"\"}},[_c('v-list-item-title',{on:{\"click\":_vm.handleOpen}},[_vm._v(_vm._s(item.formTitle))])],1)],1)}),1)],1):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('grid-layout',{ref:\"layout\",staticStyle:{\"touch-action\":\"none\",\"transition\":\"none\"},attrs:{\"layout\":_vm.dndLayout,\"col-num\":4,\"row-height\":138,\"is-draggable\":_vm.dndStatus,\"is-resizable\":false,\"is-mirrored\":false,\"vertical-compact\":false,\"margin\":[20, 20],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.dndLayout=$event},\"layout-updated\":_vm.layoutUpdatedEvent}},_vm._l((_vm.dndLayout),function(item){return _c('grid-item',{key:item.i,staticStyle:{\"transition\":\"none\"},attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.i,\"dragAllowFrom\":\"i.dnd-handler\"}},[_c(item.device.data.type,{tag:\"component\",class:{ 'disable-device-on-event-offline': !_vm.isProjectOnline },attrs:{\"device-data\":item.device,\"chart-data\":item.device,\"chart-width\":_vm.chartInstanceWidth,\"dnd-grid-layout-container-width\":_vm.gridLayoutContainerWidth},scopedSlots:_vm._u([{key:\"dnd\",fn:function(){return [_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dndStatus),expression:\"dndStatus\"}],staticClass:\"dnd-handler\",attrs:{\"size\":\"20\"}},[_vm._v(\" fa-arrows-alt \")])]},proxy:true}],null,true)})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport Chart from '@/ui/components/devices/charts/charts/ChartDevice.vue';\nimport LightSwitch from '@/ui/components/devices/devices/LightSwitch.vue';\nimport LightDimmer from '@/ui/components/devices/devices/LightDimmer.vue';\nimport Temperature from '@/ui/components/devices/devices/Temperature.vue';\nimport VariableOutputField from '@/ui/components/devices/devices/VariableOutputField.vue';\nimport RoomsList from '@/ui/components/lists/RoomsList/index.vue';\nimport VariableInputField from '@/ui/components/devices/devices/VariableInputField.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport VariableTextOutputField from '@/ui/components/devices/devices/VariableTextOutputField.vue';\nimport VariableTextInputField from '@/ui/components/devices/devices/VariableTextInputField.vue';\nimport LightRGB from '@/ui/components/devices/devices/LightRGB.vue';\nimport SocketSwitch from '@/ui/components/devices/devices/SocketSwitch.vue';\nimport LightPushButton from '@/ui/components/devices/devices/LightPushButton.vue';\nimport ControlBlinds from '@/ui/components/devices/devices/ControlBlinds.vue';\nimport ControlShutter from '@/ui/components/devices/devices/ControlShutter.vue';\nimport ControlAwning from '@/ui/components/devices/devices/ControlAwning.vue';\nimport ThermostatDigital from '@/ui/components/devices/devices/ThermostatDigital.vue';\nimport ThermostatAnalog from '@/ui/components/devices/devices/ThermostatAnalog.vue';\nimport BrightnessSensor from '@/ui/components/devices/devices/BrightnessSensor.vue';\nimport AirHumiditySensor from '@/ui/components/devices/devices/AirHumiditySensor.vue';\nimport SensorCO2 from '@/ui/components/devices/devices/SensorCO2.vue';\nimport SensorLevel from '@/ui/components/devices/devices/SensorLevel.vue';\nimport WeatherStation from '@/ui/components/devices/devices/WeatherStation.vue';\nimport HotWaterMeter from '@/ui/components/devices/devices/HotWaterMeter.vue';\nimport ColdWaterMeter from '@/ui/components/devices/devices/ColdWaterMeter.vue';\nimport ElectricityMeter from '@/ui/components/devices/devices/ElectricityMeter.vue';\nimport HeatingMeter from '@/ui/components/devices/devices/HeatingMeter.vue';\nimport MotionSensor from '@/ui/components/devices/devices/MotionSensor.vue';\nimport Battery from '@/ui/components/devices/devices/Battery.vue';\nimport PVSystem from '@/ui/components/devices/devices/PVSystem.vue';\nimport HouseConsumption from '@/ui/components/devices/devices/HouseConsumption.vue';\nimport Generator from '@/ui/components/devices/devices/Generator.vue';\nimport MainsConnection from '@/ui/components/devices/devices/MainsConnection.vue';\nimport ElectricChargingStation from '@/ui/components/devices/devices/ElectricChargingStation.vue';\nimport ElectricChargingStationV2 from '@/ui/components/devices/devices/ElectricChargingStationV2.vue';\nimport ElectronicBoiler from '@/ui/components/devices/devices/ElectronicBoiler.vue';\nimport VentilatorSwitch from '@/ui/components/devices/devices/VentilatorSwitch.vue';\nimport MusicSystem from '@/ui/components/devices/devices/MusicSystem.vue';\nimport TV from '@/ui/components/devices/devices/TV.vue';\nimport MotorWithoutVFD from '@/ui/components/devices/devices/MotorWithoutVFD.vue';\nimport PumpWithoutVFD from '@/ui/components/devices/devices/PumpWithoutVFD.vue';\nimport PumpWithVFD from '@/ui/components/devices/devices/PumpWithVFD.vue';\nimport MotorWithVFD from '@/ui/components/devices/devices/MotorWithVFD.vue';\nimport MixingValve from '@/ui/components/devices/devices/MixingValve.vue';\nimport Ventilation from '@/ui/components/devices/devices/Ventilation.vue';\nimport Gauge from '@/ui/components/devices/devices/Gauge.vue';\nimport RegentLighting from '@/ui/components/devices/devices/RegentLighting.vue';\nimport HeatingCircuitOptimization from '@/ui/components/devices/mpc/HeatingCircuitOptimization/index.vue';\nimport VueGridLayout from 'vue-grid-layout';\nimport { mixins } from 'vue-class-component';\nimport { DND } from '@/ui/mixins/dnd';\nimport DropDownOutputFieldWithVariable from '@/ui/components/devices/devices/DropDownOutputFieldWithVariable.vue';\nimport DropDownInputFieldWithVariable from '@/ui/components/devices/devices/DropDownInputFieldWithVariable.vue';\nimport TSGFrischwasser from '@/ui/components/devices/devices/TSGFrischwasser.vue';\nimport TSGBrauchwasser from '@/ui/components/devices/devices/TSGBrauchwasser.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport Robot from '@/ui/components/devices/devices/Robot.vue';\nimport MpcEnergyView from '@/ui/components/devices/mpc/EnergyView/index.vue';\nimport EnergyViewV2 from '@/ui/components/devices/devices/EnergyViewV2/index.vue';\nimport SurveyClient from '@/ui/components/devices/devices/SurveyClient.vue';\nimport PVProductionService from '@/ui/components/devices/mpc/PVProductionService/index.vue';\nimport ConsumptionService from '@/ui/components/devices/mpc/ConsumptionService/index.vue';\nimport HppProductionService from '@/ui/components/devices/mpc/HeatingProduction/index.vue';\nimport TSGLadestationNotAus from '@/ui/components/devices/devices/TSGLadestationNotAus.vue';\nimport EMS from '@/ui/components/devices/mpc/EMS/index.vue';\nimport EMSV2 from '@/ui/components/devices/devices/EMS/index.vue';\nimport GeneralSwitchV2 from '@/ui/components/devices/devices/GeneralSwitchV2.vue';\nimport PVMonitoringService from '@/ui/components/devices/mpc/PVMonitoringService/index.vue';\nimport HistoryAnomalyDetection from '@/ui/components/devices/anomalyDetection/HistoryAnomalyDetection.vue';\nimport StreamAnomalyDetection from '@/ui/components/devices/anomalyDetection/StreamAnomalyDetection.vue';\nimport SetpointOptimizer from '@/ui/components/devices/mpc/SetpointOptimizer/index.vue';\nimport TSGModulLadestation from '@/ui/components/devices/devices/TSGModulLadestation.vue';\nimport { IProject } from '@/types/project.types';\nimport { IMemberMetaMap } from '@/types/members.types';\nimport EnergyIO from '@/ui/components/devices/devices/EnergyIO/index.vue';\n\n/**\n * Component that represent all devices list in Drag and Drop grid.\n * Used in Rooms page.\n */\n@Component({\n components: {\n TSGModulLadestation,\n HppProductionService,\n SetpointOptimizer,\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n PVMonitoringService,\n GeneralSwitchV2,\n EMSV2,\n EMS,\n EnergyIO,\n TSGLadestationNotAus,\n ConsumptionService,\n PVProductionService,\n EnergyViewV2,\n MpcEnergyView,\n SurveyClient,\n Robot,\n TSGBrauchwasser,\n TSGFrischwasser,\n DropDownInputFieldWithVariable,\n DropDownOutputFieldWithVariable,\n HeatingCircuitOptimization,\n Gauge,\n Ventilation,\n MixingValve,\n MotorWithVFD,\n PumpWithVFD,\n PumpWithoutVFD,\n MotorWithoutVFD,\n TV,\n MusicSystem,\n VentilatorSwitch,\n ElectronicBoiler,\n ElectricChargingStation,\n ElectricChargingStationV2,\n MainsConnection,\n Generator,\n HouseConsumption,\n PVSystem,\n Battery,\n MotionSensor,\n ElectricityMeter,\n HeatingMeter,\n ColdWaterMeter,\n HotWaterMeter,\n WeatherStation,\n SensorLevel,\n SensorCO2,\n AirHumiditySensor,\n BrightnessSensor,\n ThermostatAnalog,\n ThermostatDigital,\n ControlShutter,\n ControlAwning,\n ControlBlinds,\n LightRGB,\n SocketSwitch,\n LightPushButton,\n LightSwitch,\n LightDimmer,\n Temperature,\n RoomsList,\n ManageRoom,\n VariableOutputField,\n VariableInputField,\n VariableTextOutputField,\n VariableTextInputField,\n RegentLighting,\n GridLayout: VueGridLayout.GridLayout,\n GridItem: VueGridLayout.GridItem,\n chart: Chart,\n },\n})\nexport default class DevicesListDnD extends mixins(DND) {\n @Prop() devicesByRoomLocal!: any;\n @Prop() currentRoomData!: any;\n @Prop() activeRoomId!: any;\n\n @State('mqttClient') mqttState!: any;\n @State('devices') devicesState!: any;\n @State('projects') projectsState!: IProjectsState;\n @Getter('rooms/rooms') rooms!: any;\n @Getter('projects/project') project!: IProject;\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => any;\n @Getter('members/currentMember') currentMember!: any;\n @Getter('members/currentMemberDevicesPositions') currentMemberDevicesPositions!: IMemberMetaMap;\n\n dndLayout = [];\n chartInstanceWidth: any = null;\n gridLayoutContainerWidth: any = null;\n areaDevicesPositions: any = [];\n sortedDevicesLength: any = 0;\n\n @Watch('devicesByRoomLocal')\n onRoomChange(val: any) {\n if (this.devicesByRoomLocal.length) {\n const sortedList = this.sortDevicesForRoom();\n this.initDndDevices(sortedList);\n } else {\n this.initDndDevices(this.devicesByRoomLocal);\n }\n }\n\n get dndStatus() {\n if (this.project) {\n return (this.project.meta as any).isDNDActive;\n }\n return false;\n }\n get devicesTypes() {\n return Object.keys(this.devicesState.devicesTypes);\n }\n get devicesPositionsByCurrentRoom() {\n return this.currentMemberDevicesPositions?.[this.activeRoomId] || [];\n }\n\n get isProjectOnline() {\n if (this.projectsState.project.meta.disableDevicesWhenOffline === true) {\n return this.mqttState.online;\n } else {\n return true;\n }\n }\n\n get areaDevicesPositionsMap() {\n return [this.activeRoomId, this.areaDevicesPositions];\n }\n\n /**\n * Prepares list of devices for Drag and Drop grid\n * @param {array} devices list of devices\n */\n initDndDevices(devices: any) {\n const lastDeviceOnFirstCol = () => {\n if (!this.devicesPositionsByCurrentRoom.length) return;\n // filter all devices which on position x = 0, return their y-positions\n const devicesAtPositionZero = this.devicesPositionsByCurrentRoom\n .filter((device: any) => device.x === 0);\n const arr = devicesAtPositionZero.map((d: any) => d.y);\n // define last y-position\n const lastPos = Math.max.apply(null, arr);\n return devicesAtPositionZero.find((el: any) => el.y === lastPos);\n };\n const lastDeviceOnFirstColSize = lastDeviceOnFirstCol()\n ? this.sizesForDnD(\n devices.find((dev: any) => dev.id === lastDeviceOnFirstCol()?.i)?.data?.type,\n )\n : null;\n // define start position for new device what was added\n const startPositionForNewDevice =\n lastDeviceOnFirstColSize && lastDeviceOnFirstCol()\n ? lastDeviceOnFirstColSize.h + lastDeviceOnFirstCol()?.y\n : 0;\n\n this.dndLayout = devices.map((device: any) => {\n const isFullWidthChart = device.data.selectedWidth === 'full';\n\n // define devices positions\n const positions = () => {\n if (this.currentMemberDevicesPositions?.[this.activeRoomId]) {\n const currentDevicePositions = this.currentMemberDevicesPositions[this.activeRoomId].find(\n (item: any) => item.i === device.id,\n );\n\n // need when chart instance switch between full width and half width\n let snapshot = null;\n if (currentDevicePositions) {\n snapshot = { ...currentDevicePositions };\n if (isFullWidthChart) snapshot.x = 0;\n else snapshot.x = currentDevicePositions.x;\n }\n return (\n snapshot || {\n x: 0,\n y: startPositionForNewDevice,\n i: device.id,\n }\n );\n } else {\n return {\n x: 0,\n y: 0,\n i: device.id,\n };\n }\n };\n\n return {\n device,\n ...positions(),\n ...this.sizesForDnD(device.data.type),\n };\n });\n // TODO: change prop names, remove chartWidth, count device init width from container width\n this.$nextTick(() => {\n const gridLayoutContainerPadding = 40;\n this.chartInstanceWidth = Math.round((this.$refs.layout as any).$el.clientWidth / 2) - 40;\n this.gridLayoutContainerWidth =\n (this.$refs.layout as any).$el.clientWidth - gridLayoutContainerPadding;\n });\n\n // define sizes for EnergyView, charts\n this.dndLayout.forEach((item: any, index: number) => {\n const isChartOrAnomalyDevices: boolean = [\n 'chart',\n 'HistoryAnomalyDetection',\n 'StreamAnomalyDetection',\n ].some((type: string) => type === item.device.data.type);\n if (isChartOrAnomalyDevices) {\n if (item.device.data.selectedWidth === 'half') {\n item.w = 2;\n } else {\n item.w = 4;\n }\n }\n });\n\n // Fit unsorted devices on grid\n this.fitDevices();\n }\n\n fitDevices() {\n // Define columns with occupied spaces\n let occupiedColumns = [0, 0, 0, 0];\n let columnIndexCount = 0;\n let currentRowCount = Math.max(...this.dndLayout.map((device: any) => device.y));\n\n // Go through all devices after the sorted ones and place them in the grid\n this.dndLayout.slice(this.sortedDevicesLength).forEach((currentDevice: any) => {\n const newFittedDevice = currentDevice;\n\n // Check if end of row is reached, else go to next row\n if (currentDevice.w + columnIndexCount > 4) {\n currentRowCount++;\n occupiedColumns = this.nextRow(occupiedColumns);\n columnIndexCount = 0;\n }\n\n // Find the first available position for the device\n while (!this.doesFitSpace(occupiedColumns, columnIndexCount, currentDevice.w)) {\n columnIndexCount++;\n if (currentDevice.w + columnIndexCount > 4) {\n currentRowCount++;\n occupiedColumns = this.nextRow(occupiedColumns);\n columnIndexCount = 0;\n }\n }\n\n // Place the device in the available position\n newFittedDevice.x = columnIndexCount;\n newFittedDevice.y = currentRowCount;\n columnIndexCount += currentDevice.w;\n\n // If device height is more than 1, add space limitation for next rows\n if (newFittedDevice.h > 1) {\n for (let index = newFittedDevice.x; index <= Math.min(newFittedDevice.x + newFittedDevice.w - 1, 3); index++) {\n occupiedColumns[index] = currentDevice.h;\n }\n }\n });\n }\n\n doesFitSpace(occupiedColumns: any, columnIndex: number, deviceWidth: number) {\n return occupiedColumns.slice(columnIndex, columnIndex + deviceWidth).every((limit: number) => limit === 0);\n }\n\n nextRow(occupiedColumns: any) {\n return occupiedColumns.map((limit: number) => Math.max(0, limit - 1));\n }\n\n /**\n * Saves actual devices positions when Drag and Drop layout was updated\n * @param {array} layout Drag and Drop grid items list\n */\n layoutUpdatedEvent(layout: any) {\n this.areaDevicesPositions = layout.map((item: any) => {\n return {\n x: item.x,\n y: item.y,\n i: item.i,\n };\n });\n }\n\n sortDevicesForRoom() {\n // will be final list with all devices\n let sortedDevices: any = [];\n // contains a list with unsorted devices\n const unSortedDevices: any = [];\n // saves list of devices that are already set by User\n\n // adds every device that`s not sorted by the User to a separate list to make sorting by date more simple\n this.devicesByRoomLocal.forEach((device: any) => {\n const hasDeviceSavedPosition = this.devicesPositionsByCurrentRoom\n ? this.devicesPositionsByCurrentRoom.map((d: any) => d.i).includes(device.id)\n : false;\n if (hasDeviceSavedPosition) sortedDevices.push(device);\n else unSortedDevices.push(device);\n });\n this.sortedDevicesLength = sortedDevices.length;\n unSortedDevices.sort(this.compareFunction);\n\n // sorted and not sorted by User list get combined and create one final list\n sortedDevices = sortedDevices.concat(unSortedDevices);\n return sortedDevices;\n }\n\n /**\n * Sorts given array by created at. From oldest do newest device\n */\n compareFunction(a: any, b: any) {\n const dateA = new Date(a.created_at).getTime();\n const dateB = new Date(b.created_at).getTime();\n if (dateA > dateB) {\n return 1;\n } else {\n return -1;\n }\n }\n\n mounted() {\n if (this.devicesByRoomLocal.length) {\n const sortedList = this.sortDevicesForRoom();\n this.initDndDevices(sortedList);\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5ee3961a&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=5ee3961a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',{staticClass:\"px-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.listOfRooms),function(room,roomIndex){return _c('v-col',{key:roomIndex,attrs:{\"md\":\"4\",\"sm\":\"6\",\"xs\":\"6\"}},[_c('RoomItem',{attrs:{\"room-data\":room,\"is-active\":_vm.activeRoom(room.id),\"areas-mini-view\":_vm.isAreasMiniView},on:{\"handleRoomActiveStatus\":function($event){return _vm.$emit('handleRoomActiveStatus', $event)}}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['room-item', { 'room-item-active': !!_vm.isActive }],on:{\"click\":_vm.handleRoom}},[(_vm.areasMiniView)?_c('div',{staticClass:\"room-item__alt-view\"},[_c('div',{staticClass:\"alt-view-title\"},[_vm._v(\" \"+_vm._s(_vm.roomData.name)+\" \")]),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_c('v-icon',[_vm._v(\"fa-ellipsis-v\")])],1)]}}],null,false,634879503),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',{staticClass:\"primary room-item-actions\"},_vm._l((_vm.roomActions),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"}},[(item.modal)?_c('div',[_c(item.modal,{tag:\"component\",attrs:{\"deletedItemName\":\"area\",\"form-title\":_vm.$t('modals.manageAreas.editArea'),\"room-data\":_vm.roomData},on:{\"deleteHandler\":_vm.deleteRoom,\"handleRoom\":_vm.editRoom}},[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":function($event){_vm.isMenuOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])],1):_c('div',[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":item.handle}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])])}),1)],1)],1):[_c('div',{staticClass:\"room-item__title\"},[_vm._v(_vm._s(_vm.roomData.name))]),_c('div',{staticClass:\"room-item__body\"},[_c('div',{staticClass:\"image-wrapper\"},[(_vm.isImageSource)?[(_vm.roomData.meta.imageId)?_c('v-img',{attrs:{\"src\":`https://static.lynus.io/assets/${_vm.roomData.meta.imageId}`,\"aspect-ratio\":\"1.7\",\"contain\":\"\"}}):_vm._e(),(_vm.roomData.meta.cover)?_c('v-img',{staticClass:\"room-icon\",style:(_vm.iconTheme(_vm.roomData.meta.cover)),attrs:{\"src\":`https://static.lynus.io/${_vm.roomData.meta.cover}`,\"aspect-ratio\":\"1.7\",\"contain\":\"\"}}):_vm._e()]:_c('PlaceHolderImage',{staticStyle:{\"width\":\"100%\",\"height\":\"90%\"}})],2),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"devices-length\"}),_c('v-menu',{attrs:{\"bottom\":\"\",\"left\":\"\",\"offset-y\":\"\",\"close-on-click\":_vm.isCloseOnClick},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isMenuOpen = !_vm.isMenuOpen}}},[_c('v-icon',[_vm._v(\"fa-ellipsis-v\")])],1)]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',{staticClass:\"primary room-item-actions\"},_vm._l((_vm.roomActions),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"}},[(item.modal)?_c('div',[_c(item.modal,{tag:\"component\",attrs:{\"deletedItemName\":\"area\",\"form-title\":_vm.$t('modals.manageAreas.editArea'),\"room-data\":_vm.roomData},on:{\"deleteHandler\":_vm.deleteRoom,\"handleRoom\":_vm.editRoom}},[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":function($event){_vm.isMenuOpen = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])],1):_c('div',[_c('div',{staticClass:\"room-item-actions-title\",on:{\"click\":item.handle}},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])])])}),1)],1)],1)])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport PlaceHolderImage from '@/ui/components/components/PlaceHolderImage.vue';\nimport { IMemberState } from '@/store/modules/members/types';\nimport {\n duplicateSingleRoom,\n} from '@/utils/duplicationUtils';\nimport _ from 'lodash';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\n\n/**\n * Component that represent room item\n */\n@Component({\n components: {\n DeleteModalForm,\n ManageRoom,\n PlaceHolderImage,\n },\n})\nexport default class RoomItem extends Vue {\n @Prop() roomData!: IRoom;\n @Prop() isActive!: boolean;\n @Prop() areasMiniView!: boolean;\n @State('members') membersState!: IMemberState;\n @Getter('projects/project') project!: IProject;\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => IDevice[];\n @Action('rooms/deleteRoom') deleteRoomState!: (id: string) => Promise;\n @Action('rooms/updateRoom') updateRoom!: (room: any) => Promise;\n @Getter('members/currentMember') currentMember!: any;\n\n isMenuOpen = false\n isCloseOnClick = true\n isAllowedToDelete = true\n\n /**\n * Defines list of actions by inserted actions names\n * @param {array} actions list of actions names\n * @return {array} list of actions\n */\n roomActionsList(actions: string[]) {\n return actions.map((action: string) => {\n return ({\n edit: { title: 'uiComponents.areasActions.edit', modal: 'ManageRoom' },\n duplicate: { title: 'uiComponents.areasActions.duplicate', handle: () => this.duplicateRoom() },\n delete: { title: 'uiComponents.areasActions.delete', modal: 'DeleteModalForm' },\n } as any)[action];\n });\n }\n\n /**\n * Checks current member access and define which actions to show\n * @return {array} list of actions\n */\n get roomActions() {\n if (this.currentMember?.admin) {\n if (this.isAllowedToDelete) return this.roomActionsList(['edit', 'duplicate', 'delete']);\n else return this.roomActionsList(['edit', 'duplicate']);\n }\n return [];\n }\n\n get isImageSource() {\n return !!(this.roomData.meta.imageId || this.roomData.meta.cover);\n }\n\n get devicesLength() {\n return this.devicesByRoom(this.roomData.id).length;\n }\n\n /**\n * Converts icon color according to current theme\n * @param {string} source icon id\n * @return {object} styles object\n */\n iconTheme(source: string) {\n const isIcon = /icons/g.test(source);\n return isIcon ? { filter: this.$vuetify.theme.dark ? 'brightness(0) invert(1)' : null } : {};\n }\n\n handleRoom() {\n this.$emit('handleRoomActiveStatus', this.roomData.id);\n }\n editRoom(room: IRoom) {\n this.updateRoom(room);\n }\n deleteRoom() {\n this.deleteRoomState(this.roomData.id);\n }\n async duplicateRoom() {\n await duplicateSingleRoom(this.roomData, this.project, this.currentMember);\n }\n\n created() {\n Object.values(this.devicesByRoom(this.roomData.id)).forEach((element: any) => {\n const devicesToExclude: string[] = ['Robot', 'SurveyClient'];\n const isValid: boolean = devicesToExclude.some((el: string) => el === element.data.type);\n if (isValid) this.isAllowedToDelete = false;\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoomItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RoomItem.vue?vue&type=template&id=195dbf06&scoped=true&\"\nimport script from \"./RoomItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./RoomItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RoomItem.vue?vue&type=style&index=0&id=195dbf06&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"195dbf06\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport RoomItem from '@/ui/components/lists/RoomsListFlexGrid/RoomItem.vue';\nimport { Getter } from 'vuex-class';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\n\n/**\n * Component that represent all rooms in Flex grid.\n * Used in Areas page.\n */\n@Component({\n components: {\n RoomItem,\n },\n})\nexport default class RoomsListFlexGrid extends Vue {\n @Prop() listOfRooms!: IRoom[];\n @Prop() activeRoomId!: string;\n @Prop() currentRoomData!: IRoom;\n @Getter('projects/project') project!: IProject;\n\n get isAreasMiniView() {\n if (this.project) return this.project.meta?.isAreasMiniView;\n return false;\n }\n\n /**\n * Checks is current room active\n * @param {string} roomId room id\n */\n activeRoom(roomId: string) {\n if (this.activeRoomId) {\n return this.activeRoomId === roomId;\n }\n this.$emit('handleRoomActiveStatus', this.listOfRooms?.[0]?.id);\n return this.listOfRooms?.[0]?.id === roomId;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=dd871dfa&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"dd871dfa\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport RoomsList from '@/ui/components/lists/RoomsList/index.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport DevicesListFlexGrid from '@/ui/components/lists/DevicesListFlexGrid/index.vue';\nimport DevicesListDnD from '@/ui/components/lists/DevicesListDnD/index.vue';\nimport DevicesList from '@/ui/components/lists/DevicesList/index.vue';\nimport RoomsListFlexGrid from '@/ui/components/lists/RoomsListFlexGrid/index.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport { envWorkbenchButtons } from '@/utils/env';\nimport { requestWithTimer } from '@/utils/utilsFunctions';\nimport ManageDevice from '@/ui/components/modals/ManageDevice/index.vue';\nimport ManageMLModel from '@/ui/components/modals/ManageMLModel/index.vue';\nimport ManageCharts from '@/ui/components/modals/ManageChart/index.vue';\nimport ManageAnomalyDetection from '@/ui/components/modals/ManageAnomalyDetection/index.vue';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IReportBox } from '@/types/app.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * Rooms page that shows rooms list\n */\n@Component({\n components: {\n RoomsList,\n ManageRoom,\n DevicesListFlexGrid,\n DevicesListDnD,\n DevicesList,\n RoomsListFlexGrid,\n ManageMLModel,\n ManageDevice,\n ManageCharts,\n ManageAnomalyDetection,\n },\n})\nexport default class Rooms extends Vue {\n @State('anomalyDetection') anomalyDetectionState!: IAnomalyDetectionState;\n @State('app') appState!: IAppState;\n @State('devices') devicesState!: IDevice[];\n @State('mpc') mpcState!: IMPCState;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => IDevice[];\n @Getter('projects/project') project!: IProject;\n @Getter('members/currentMember') currentMember!: IMember;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => Promise;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('mpc/createMCCInstance') createMCCInstance!: (control: any) => void;\n @Action('devices/createDevice') createDevice!: (control: any) => void;\n @Action('mpc/fetchMPCWeatherStatus') fetchMPCWeatherStatus!: any;\n @Action('members/updateMemberMeta') updateMemberMeta!: (meta: any) => Promise;\n\n isMenuOpen = false;\n isRoomsDataLoaded = false;\n activeRoomId = '';\n\n get isRoomCreated() {\n return this.rooms.length !== 0;\n }\n\n get devicesByRoomLocal() {\n return this.devicesByRoom(this.activeRoomId);\n }\n get currentRoomData() {\n return this.rooms.find((room: any) => room.id === this.activeRoomId);\n }\n get devicesFilter() {\n return (this.devicesState as any).devicesFilter || '';\n }\n\n get isWeatherServiceActive() {\n return this.mpcState.isWeatherServiceActive;\n }\n\n get mlModelTypes() {\n return Object.keys(this.mpcState.mlModelTypes);\n }\n\n get anomalyDetectionTypes() {\n return Object.keys(this.anomalyDetectionState.anomalyDetectionTypes);\n }\n\n /**\n * List of create forms, contains options for ManageDevice, ManageAnomalyDetection,\n * ManageCharts, ManageMLModel\n */\n get createDeviceOptions() {\n return [\n {\n id: 'device',\n form: 'ManageDevice',\n formTitle: this.$t('modals.manageDevice.createDeviceTitle'),\n btnTitle: this.$t('uiComponents.buttons.addDevice'),\n visible: true,\n },\n {\n id: 'aiml',\n form: 'ManageAnomalyDetection',\n formTitle: this.$t('modals.manageAnomalyDetection.createAnomalyDetectionTitle'),\n btnTitle: this.$t('uiComponents.buttons.addAnomalyDetection'),\n visible: true,\n },\n {\n id: 'charts',\n form: 'ManageCharts',\n formTitle: this.$t('modals.manageCharts.createChartTitle'),\n btnTitle: this.$t('uiComponents.buttons.addChart'),\n visible: true,\n },\n {\n id: 'mpc',\n form: 'ManageMLModel',\n formTitle: this.$t('modals.manageMLModel.createDeviceTitle'),\n btnTitle: this.$t('uiComponents.buttons.addMlModel'),\n visible: this.isWeatherServiceActive,\n },\n ].filter((e) => e.visible && envWorkbenchButtons.includes(e.form));\n }\n\n get dndStatus() {\n if (this.project) {\n return this.project.meta?.isDNDActive;\n }\n return false;\n }\n\n @Watch('dndStatus')\n async onDNDStatusChange(val: boolean) {\n if (!val) {\n await this.saveAreasDevicesPositions();\n }\n }\n\n async saveAreasDevicesPositions() {\n const member = JSON.parse(JSON.stringify(this.currentMember));\n this.createMemberMeta(member);\n this.addAreasPositions(member);\n this.addAreaDevicesPositions(member);\n\n await this.updateMemberMeta({ project_id: this.project.id, member });\n }\n\n createMemberMeta(member: any) {\n if (!member?.meta) member.meta = { area_positions: [], device_positions: {} };\n if (!member?.meta?.area_positions) member.meta.area_positions = [];\n if (!member?.meta?.device_positions) member.meta.device_positions = {};\n }\n addAreasPositions(member: any) {\n member.meta.area_positions = (this.$refs.RoomsList as any)?.areasPositions;\n }\n addAreaDevicesPositions(member: any) {\n if (!this.$refs?.DevicesList) return;\n\n const [area_id, devices] = (this.$refs.DevicesList as any)?.areaDevicesPositionsMap;\n\n const actualAreasIds = this.rooms.map((room: IRoom) => room.id);\n // filter removed areas which currently can exist in member meta\n const filtered = Object.keys(member.meta.device_positions).filter((id: string) => actualAreasIds.includes(id));\n member.meta.device_positions = filtered.length\n ? filtered.reduce((acc, el) => ({ ...acc, [el]: member.meta.device_positions[el] }), {})\n : {};\n member.meta.device_positions[area_id] = devices;\n }\n\n /**\n * Create device, MPC device\n * @param payload device or MPC data\n */\n handleWorkbenchButton(payload: any) {\n this.isMenuOpen = false;\n const mpcApiTypes: string[] = [...this.mlModelTypes, ...this.anomalyDetectionTypes];\n // variable that check if current function parameter (payload) device or MPC device\n const isMpc: boolean = mpcApiTypes.some((type: string) => type === payload.data.type);\n if (isMpc) {\n this.createMCCInstance(payload);\n } else {\n this.createDevice(payload);\n }\n }\n\n handleOpen() {\n this.isMenuOpen = false;\n }\n\n handleRoomActiveStatus(roomId: string) {\n this.activeRoomId = roomId;\n }\n\n async created() {\n this.setProjectLoader(true);\n // Load measurements, rooms, devices, MPC\n await Promise.allSettled([\n this.fetchMeasurements(this.$route.params.id),\n this.fetchRooms(this.$route.params.id),\n this.fetchDevices(this.$route.params.id),\n requestWithTimer([\n this.fetchMPCListByProject(),\n this.fetchMPCWeatherStatus(),\n ], this.setReport, {\n type: 'error',\n message: this.$t('uiComponents.reportMessages.loadMPCTimeoutError'),\n value: true,\n }),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.isRoomsDataLoaded = true;\n });\n await this.fetchMPCListByProject();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Rooms.vue?vue&type=template&id=326fe835&\"\nimport script from \"./Rooms.vue?vue&type=script&lang=ts&\"\nexport * from \"./Rooms.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Rooms.vue?vue&type=style&index=0&id=326fe835&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary project-devices-library\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.previewsFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])}),1),_c('v-tabs-items',{attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.previewsFiltered),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c(item.view,{tag:\"component\"})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.chartsLibFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.chartsLibFiltered),function(view,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((view.data),function(item,index){return _c('v-col',{key:`c-${index}`,attrs:{\"lg\":6,\"md\":12,\"sm\":12}},[_c(item.type,{tag:\"component\",attrs:{\"column-view-type\":item.columnViewType,\"multiple-lines\":item.multipleLines,\"chart-title\":item.title,\"chart-description-type\":item.chartDescriptionType,\"chartData\":item.chartData}})],1)}),1)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"column-chart-preview\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"chart-wrapper__header\"},[_vm._v(_vm._s(_vm.chartTitle))]),_c('div',{staticClass:\"projectBackground column-chart-preview-body\"},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false))],1),_c('div',{staticClass:\"chart-rounded__header\"},[_c('OfflineChart',{staticClass:\"chartStyles\",attrs:{\"minValueMockData\":0,\"maxValueMockData\":20,\"chartData\":this.chartData,\"chartWidth\":null,\"navigationItemsToExclude\":[]}})],1),_c('div',{staticStyle:{\"height\":\"20px\",\"width\":\"100%\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport { ChartData } from '@/types/chart.types';\n\n@Component({\n components: {\n DeviceDescription,\n OfflineChart,\n },\n})\nexport default class ColumnChartPreview extends Vue {\n @Prop() chartWidth!: any;\n @Prop() multipleLines!: boolean;\n @Prop() columnViewType!: string | undefined;\n @Prop({ default: 'type1' }) chartDescriptionType!: string;\n @Prop({\n default: 'Column chart',\n }) chartTitle!: string;\n @Prop() chartData!: ChartData;\n\n descriptionTypes: any = {\n type1: 'chartsDescription.ColumnChart',\n type2: 'chartsDescription.ColumnChart2',\n }\n\n get description() {\n return this.$t(this.descriptionTypes[this.chartDescriptionType]);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColumnChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColumnChart.vue?vue&type=template&id=75306474&\"\nimport script from \"./ColumnChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnChart.vue?vue&type=style&index=0&id=75306474&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"line-chart-preview\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"chart-wrapper__header\"},[_vm._v(_vm._s(_vm.chartTitle))]),_c('div',{staticClass:\"projectBackground line-chart-preview-body\"},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false))],1),_c('div',{staticClass:\"chart-rounded__header\"},[_c('OfflineChart',{staticClass:\"chartStyles\",attrs:{\"minValueMockData\":15,\"maxValueMockData\":30,\"chartData\":this.chartData,\"chartWidth\":null,\"navigationItemsToExclude\":[]}})],1),_c('div',{staticStyle:{\"height\":\"20px\",\"width\":\"100%\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport { ChartData } from '@/types/chart.types';\n\n@Component({\n components: {\n DeviceDescription,\n OfflineChart,\n },\n})\nexport default class LineChartPreview extends Vue {\n @Prop() chartWidth!: any;\n @Prop({\n default: 'Line chart',\n }) chartTitle!: string;\n @Prop() chartDescription!: string;\n @Prop() chartData!: ChartData;\n\n get description() {\n return this.$t('chartsDescription.LineChart');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LineChart.vue?vue&type=template&id=6c54c6e9&\"\nimport script from \"./LineChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./LineChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LineChart.vue?vue&type=style&index=0&id=6c54c6e9&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"area-chart-preview\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"chart-wrapper__header\"},[_vm._v(_vm._s(_vm.chartTitle))]),_c('div',{staticClass:\"projectBackground area-chart-preview-body\"},[_c('div',{staticClass:\"d-flex justify-end\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false))],1),_c('div',{staticClass:\"chart-rounded__header\"},[_c('OfflineChart',{staticClass:\"chartStyles\",attrs:{\"minValueMockData\":0,\"maxValueMockData\":5,\"chartData\":this.chartData,\"chartWidth\":null,\"navigationItemsToExclude\":[]}})],1),_c('div',{staticStyle:{\"height\":\"20px\",\"width\":\"100%\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport { ChartData } from '@/types/chart.types';\n\n@Component({\n components: {\n DeviceDescription,\n OfflineChart,\n },\n})\nexport default class AreaChartPreview extends Vue {\n @Prop() chartWidth!: any;\n @Prop({\n default: 'Line area chart',\n }) chartTitle!: string;\n @Prop() chartDescription!: string;\n @Prop() chartData!: ChartData;\n\n get description() {\n return this.$t('chartsDescription.AreaChart');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AreaChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AreaChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AreaChart.vue?vue&type=template&id=3294cf70&\"\nimport script from \"./AreaChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./AreaChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AreaChart.vue?vue&type=style&index=0&id=3294cf70&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ColumnChart from '@/ui/components/devices/previews/charts/ColumnChart.vue';\nimport LineChart from '@/ui/components/devices/previews/charts/LineChart.vue';\nimport AreaChart from '@/ui/components/devices/previews/charts/AreaChart.vue';\nimport { envDeviceLibraryCategories } from '@/utils/env';\n\n@Component({\n components: {\n ColumnChart,\n LineChart,\n AreaChart,\n },\n})\nexport default class ChartsPreviewView extends Vue {\n tab = null\n\n get chartsLib() {\n return [\n {\n name: 'Line',\n locale: 'uiComponents.devicesLibrary.chartTabs.line',\n data: [\n {\n type: 'LineChart',\n title: 'Type 1, Multiple Line',\n multipleLines: true,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'diff',\n name: 'Series 1',\n scaling: {\n max: '35',\n min: '10',\n },\n seriesType: 'View',\n type: 'line',\n unit: '',\n var: '',\n }, {\n agg: 'last',\n name: 'Series 2',\n scaling: {\n max: '30',\n min: '10',\n },\n seriesType: 'View',\n type: 'line',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n {\n type: 'LineChart',\n title: 'Type 1, Single Line',\n multipleLines: false,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'diff',\n name: 'Series 1',\n scaling: {\n max: '35',\n min: '10',\n },\n seriesType: 'View',\n type: 'line',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n {\n type: 'AreaChart',\n title: 'Type 2, Multiple Area based line',\n multipleLines: true,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'diff',\n name: 'Series 1',\n scaling: {\n max: '5',\n min: '0',\n },\n seriesType: 'View',\n type: 'area',\n unit: '',\n var: '',\n }, {\n agg: 'last',\n name: 'Series 2',\n scaling: {\n max: '10',\n min: '0',\n },\n seriesType: 'View',\n type: 'area',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n {\n type: 'AreaChart',\n title: 'Type 2, Single Area based line',\n multipleLines: false,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'diff',\n name: 'Series 1',\n scaling: {\n max: '5',\n min: '0',\n },\n seriesType: 'View',\n type: 'area',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n ],\n },\n {\n name: 'Column',\n locale: 'uiComponents.devicesLibrary.chartTabs.column',\n data: [\n {\n type: 'ColumnChart',\n title: 'Type 1, Multiple Columns, view 1',\n chartDescriptionType: 'type1',\n columnViewType: null,\n multipleLines: true,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'first',\n name: 'Series 1',\n scaling: {\n max: '25',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: '',\n var: '',\n }, {\n agg: 'first',\n name: 'Series 2',\n scaling: {\n max: '20',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: undefined,\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n {\n type: 'ColumnChart',\n title: 'Type 1, Multiple Columns, view 2',\n chartDescriptionType: 'type1',\n columnViewType: 'normal',\n multipleLines: true,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'first',\n name: 'Series 1',\n scaling: {\n max: '20',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: '',\n var: '',\n }, {\n agg: 'first',\n name: 'Series 2',\n scaling: {\n max: '30',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n {\n type: 'ColumnChart',\n title: 'Type 1, Single Column',\n chartDescriptionType: 'type1',\n columnViewType: 'normal',\n multipleLines: false,\n chartData: {\n data: {\n chartOptions: [\n {\n agg: 'first',\n name: 'Series 1',\n scaling: {\n max: '20',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: '',\n var: '',\n },\n ],\n selectedStackingOptions: 'normal',\n selectedWidth: 'half',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n },\n },\n /*\n {\n type: 'ColumnChart',\n title: 'Type 2, Multiple Columns, view 1',\n chartDescriptionType: 'type2',\n columnViewType: null,\n multipleLines: true,\n },\n {\n type: 'ColumnChart',\n title: 'Type 2, Multiple Columns, view 2',\n chartDescriptionType: 'type2',\n columnViewType: 'normal',\n multipleLines: true,\n },\n {\n type: 'ColumnChart',\n title: 'Type 2, Single Column',\n chartDescriptionType: 'type2',\n columnViewType: 'normal',\n multipleLines: false,\n },\n */\n ],\n },\n ];\n }\n\n get chartsLibFiltered() {\n return this.chartsLib.filter((e) => envDeviceLibraryCategories.Charts.includes(e.name));\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartsView.vue?vue&type=template&id=5c397a76&scoped=true&\"\nimport script from \"./ChartsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5c397a76\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLibFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])}),1),_c('v-tabs-items',{attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLibFiltered),function(view,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c('v-container',{staticClass:\"px-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((view.data),function(item,index){return _c('v-col',_vm._b({key:`c-${index}`,attrs:{\"sm\":\"12\",\"cols\":\"12\"}},'v-col',{ ...item.sizes },false),[_c(item.device,{tag:\"component\",attrs:{\"is-modal\":false}})],1)}),1)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'Temperature' },\"is-preview\":true,\"device-icon\":\"temperature\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex temperature-sensor\"},[_c('div',[_vm._v(\"20 °C\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class TemperaturePreview extends Vue {\n state = 0\n timer: any = null\n\n get previewNameLang() {\n return this.$t('devices.Temperature.previewName');\n }\n\n upTemperature() {\n return setInterval(() => {\n this.state += 1;\n if (this.state > 35) {\n this.state = 0;\n clearInterval(this.timer);\n this.timer = this.downTemperature();\n }\n }, 1000);\n }\n downTemperature() {\n return setInterval(() => {\n this.state -= 1;\n if (this.state < -20) {\n this.state = 0;\n clearInterval(this.timer);\n this.timer = this.upTemperature();\n }\n }, 1000);\n }\n\n mounted() {\n this.timer = this.upTemperature();\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Temperature.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Temperature.vue?vue&type=template&id=38d74aa9&scoped=true&\"\nimport script from \"./Temperature.vue?vue&type=script&lang=ts&\"\nexport * from \"./Temperature.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Temperature.vue?vue&type=style&index=0&id=38d74aa9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38d74aa9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'LightDimmer' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center light-dimmer\"},[_c('div',{staticClass:\"slider d-flex align-center\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"},attrs:{\"append-icon\":\"icon-light-switch_on\",\"prepend-icon\":\"icon-light-switch_off\",\"font-size\":\"20\"}})],1),_c('div',{staticClass:\"switch\"},[_c('SwitchMock')],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"slider-mock\"},[_c('v-slider',{attrs:{\"min\":\"0\",\"max\":\"100\",\"color\":\"accent\",\"hide-details\":\"\",\"append-icon\":_vm.appendIcon,\"prepend-icon\":_vm.prependIcon,\"track-color\":\"#dedede\"},model:{value:(_vm.sliderState),callback:function ($$v) {_vm.sliderState=$$v},expression:\"sliderState\"}}),_c('div',{staticClass:\"slider-value\",style:(`font-size: ${_vm.fontSize}px`)},[(_vm.showValAbove)?_c('div',[_c('span',[_vm._v(_vm._s(_vm.sliderState))]),_c('span',[_vm._v(\"%\")])]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class SliderMock extends Vue {\n @Prop({ default: 15 }) fontSize!: number;\n @Prop({ default: null }) appendIcon!: string;\n @Prop({ default: null }) prependIcon!: string;\n @Prop({ default: false }) showValAbove!: boolean;\n sliderState = 20\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SliderMock.vue?vue&type=template&id=552e5ad0&\"\nimport script from \"./SliderMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./SliderMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SliderMock.vue?vue&type=style&index=0&id=552e5ad0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SliderMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class LightDimmerPreview extends Vue {\n state = false\n slider = 0\n\n get previewNameLang() {\n return this.$t('devices.LightDimmer.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightDimmer.vue?vue&type=template&id=2b233fce&\"\nimport script from \"./LightDimmer.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightDimmer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightDimmer.vue?vue&type=style&index=0&id=2b233fce&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'LightSwitch' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-switch\"},[_c('lynus-icon',{attrs:{\"name\":\"light-bulb\",\"size\":\"35\",\"color\":\"theme\"}}),_c('SwitchMock')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class LightSwitchPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.LightSwitch.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightSwitch.vue?vue&type=template&id=6502b2e2&scoped=true&\"\nimport script from \"./LightSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightSwitch.vue?vue&type=style&index=0&id=6502b2e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6502b2e2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'VariableInputField' },\"is-preview\":true,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ padding: '5px 5px 0' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"unit\")]},proxy:true}])})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n DeviceLayout,\n },\n})\nexport default class VariableInputFieldPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.VariableInputField.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableInputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableInputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableInputField.vue?vue&type=template&id=27f5b50a&\"\nimport script from \"./VariableInputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableInputField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'VariableOutputField' },\"is-preview\":true,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex variable-output-field\"},[_c('div',[_vm._v(\"12 °C\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class VariableOutputFieldPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.VariableOutputField.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableOutputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableOutputField.vue?vue&type=template&id=36dbc01d&\"\nimport script from \"./VariableOutputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableOutputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableOutputField.vue?vue&type=style&index=0&id=36dbc01d&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'LightPushButton' },\"device-icon\":\"light-bulb\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-push-button\"},[_c('PushButtonMock')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{class:['push-button-mock', { active: _vm.isActive }],attrs:{\"icon\":\"\",\"width\":_vm.buttonSize,\"height\":_vm.buttonSize,\"outlined\":true,\"color\":\"accent\"},on:{\"click\":function($event){_vm.isActive = !_vm.isActive}}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":_vm.isActive ? 'white': 'theme',\"size\":_vm.iconSize}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class PushButtonMock extends Vue {\n @Prop({ default: 'push_button' }) icon!: string;\n @Prop({ default: null }) iconSize!: null | number | string;\n @Prop({ default: 40 }) buttonSize!: string | number;\n\n isActive = false\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushButtonMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushButtonMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PushButtonMock.vue?vue&type=template&id=487a7904&scoped=true&\"\nimport script from \"./PushButtonMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./PushButtonMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PushButtonMock.vue?vue&type=style&index=0&id=487a7904&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"487a7904\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n DeviceLayout,\n },\n})\nexport default class LightPushButtonPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.LightPushButton.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightPushButton.vue?vue&type=template&id=51ad4a4e&scoped=true&\"\nimport script from \"./LightPushButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightPushButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightPushButton.vue?vue&type=style&index=0&id=51ad4a4e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51ad4a4e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'SocketSwitch' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"socket-switch d-flex justify-space-between align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"socket-switch\",\"size\":\"35\",\"color\":\"theme\"}}),_c('SwitchMock')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class SocketSwitchPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.SocketSwitch.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SocketSwitch.vue?vue&type=template&id=16e5a4d8&scoped=true&\"\nimport script from \"./SocketSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./SocketSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SocketSwitch.vue?vue&type=style&index=0&id=16e5a4d8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16e5a4d8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'LightRGB' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"light-rgb-preview\"},[_c('div',{staticClass:\"rgb\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',{staticClass:\"d-flex color-preview align-center\"},[_c('div',{staticClass:\"rgb-color-preview mr-1\"}),_vm._v(\" \"+_vm._s(_vm.rgbState.r)+\" \")]),_c('div',{staticClass:\"d-flex color-preview align-center\"},[_c('div',{staticClass:\"rgb-color-preview mr-1\"}),_vm._v(\" \"+_vm._s(_vm.rgbState.g)+\" \")]),_c('div',{staticClass:\"d-flex color-preview align-center\"},[_c('div',{staticClass:\"rgb-color-preview mr-1\"}),_vm._v(\" \"+_vm._s(_vm.rgbState.b)+\" \")])]),_c('div',[_c('v-color-picker',{staticClass:\"rgb-base-preview ma-0\",attrs:{\"dot-size\":\"25\",\"swatches-max-height\":\"200\",\"hide-canvas\":\"\",\"hide-mode-switch\":\"\",\"hide-inputs\":\"\",\"width\":\"100%\"},model:{value:(_vm.rgbState),callback:function ($$v) {_vm.rgbState=$$v},expression:\"rgbState\"}})],1)])]),_c('div',{staticClass:\"switch\"},[_c('SwitchMock')],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"light-rgb-settings-preview\"},[_c('div',{staticClass:\"advanced-rgb\"},[_c('v-color-picker',{attrs:{\"flat\":\"\",\"hide-inputs\":\"\",\"hide-mode-switch\":\"\"},model:{value:(_vm.rgbState),callback:function ($$v) {_vm.rgbState=$$v},expression:\"rgbState\"}})],1),_c('div',[_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.LightRGB.settingsView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"}}),_c('div',{staticStyle:{\"padding-top\":\"2px\",\"padding-left\":\"8px\"}},[_vm._v(\"20 %\")])],1)])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SliderMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class LightRGBPreview extends Vue {\n switchState = false\n slider = 0\n rgbState: any = {\n r: 255,\n g: 0,\n b: 0,\n a: 1,\n }\n\n get previewNameLang() {\n return this.$t('devices.LightRGB.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LightRGB.vue?vue&type=template&id=65b6c962&\"\nimport script from \"./LightRGB.vue?vue&type=script&lang=ts&\"\nexport * from \"./LightRGB.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LightRGB.vue?vue&type=style&index=0&id=65b6c962&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ControlBlinds' },\"device-icon\":\"blinds\",\"device-size\":\"x2h\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-blinds\"},[_c('div',{staticClass:\"drop-down\"},[_c('v-select',{attrs:{\"items\":_vm.items,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Slats Position\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('ArrowButtonMock',{attrs:{\"small\":false,\"icon\":\"arrow-2_up\"}}),_c('ArrowButtonMock',{staticClass:\"ml-2\",attrs:{\"small\":false,\"icon\":\"arrow-2_down\"}})],1),_c('div',{staticClass:\"pt-4\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ControlBlinds.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"},attrs:{\"font-size\":\"20\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"4px\",\"padding-left\":\"8px\"}},[_c('span',[_vm._v(\"20\")]),_c('span',{staticStyle:{\"padding-left\":\"4px\"}},[_vm._v(\"%\")])])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-blinds-settings\"},[_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"min\":0,\"max\":600,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"min\":0,\"max\":600,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"min\":0,\"max\":600,\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons icons3\"},[_c('lynus-icon',{staticClass:\"icon-shutter\",attrs:{\"name\":\"shutter1\",\"size\":\"18\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"home-position\"},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.homePosition`))+\" \")]),_c('PushButtonMock')],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SliderMock,\n PushButtonMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class ControlBlindsPreview extends Vue {\n selected = 0\n\n get items() {\n return [\n { name: this.$t(`${this.mainViewLang}.dropDown.fullyOpen`), value: 0 },\n { name: this.$t(`${this.mainViewLang}.dropDown.threeQuarterOpen`), value: 1 },\n { name: this.$t(`${this.mainViewLang}.dropDown.halfOpen`), value: 2 },\n { name: this.$t(`${this.mainViewLang}.dropDown.quarterOpen`), value: 3 },\n { name: this.$t(`${this.mainViewLang}.dropDown.closed`), value: 4 },\n ];\n }\n\n get settingsViewLang() {\n return 'devices.ControlBlinds.settingsView';\n }\n get mainViewLang() {\n return 'devices.ControlBlinds.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.ControlBlinds.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlBlinds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlBlinds.vue?vue&type=template&id=5ec79ffc&scoped=true&\"\nimport script from \"./ControlBlinds.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlBlinds.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlBlinds.vue?vue&type=style&index=0&id=5ec79ffc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ec79ffc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ControlShutter' },\"device-icon\":\"shutter1\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-shutter\"},[_c('div',{staticClass:\"d-flex justify-center\"},[_c('ArrowButtonMock',{attrs:{\"icon\":\"arrow-2_up\"}}),_c('ArrowButtonMock',{staticClass:\"ml-2\",attrs:{\"icon\":\"arrow-2_down\"}})],1),_c('div',{staticClass:\"pt-2\"},[_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ControlShutter.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"100%\"},attrs:{\"font-size\":\"20\"}}),_c('span',[_vm._v(\"20%\")])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-shutter-settings\"},[_c('div',{staticClass:\"control-shutter-settings-field\"},[_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)])]},proxy:true}])})],1),_c('div',{staticClass:\"control-shutter-settings-field\"},[_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)])]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"home-position\"},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.homePosition`))+\" \")]),_c('PushButtonMock')],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SliderMock,\n PushButtonMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class ControlShutterPreview extends Vue {\n get settingsViewLang() {\n return 'devices.ControlShutter.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ControlShutter.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlShutter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlShutter.vue?vue&type=template&id=5041dcb5&scoped=true&\"\nimport script from \"./ControlShutter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlShutter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlShutter.vue?vue&type=style&index=0&id=5041dcb5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5041dcb5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ControlAwning' },\"device-icon\":\"awning\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"control-awning\"},[_c('div',{staticClass:\"top\"},[_c('ArrowButtonMock',{attrs:{\"icon\":\"arrow-2_up\"}}),_c('ArrowButtonMock',{staticClass:\"ml-2\",attrs:{\"icon\":\"arrow-2_down\"}})],1),_c('div',{staticClass:\"bottom\"},[_c('div',{staticClass:\"text-center\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ControlAwning.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"},attrs:{\"font-size\":\"20\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"4px\",\"padding-left\":\"8px\"}},[_c('span',[_vm._v(\"20\")]),_c('span',{staticStyle:{\"padding-left\":\"4px\"}},[_vm._v(\"%\")])])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"control-awning-settings\"},[_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_up\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icons\"},[_c('lynus-icon',{staticClass:\"icon1\",attrs:{\"name\":\"arrow_down\"}}),_c('lynus-icon',{staticClass:\"icon2\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex flex-column align-center\"},[_c('div',{staticClass:\"home-position\"},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.homePosition`))+\" \")]),_c('PushButtonMock')],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SliderMock,\n PushButtonMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class ControlAwningPreview extends Vue {\n get settingsViewLang() {\n return 'devices.ControlAwning.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ControlAwning.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ControlAwning.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ControlAwning.vue?vue&type=template&id=36e96f86&scoped=true&\"\nimport script from \"./ControlAwning.vue?vue&type=script&lang=ts&\"\nexport * from \"./ControlAwning.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ControlAwning.vue?vue&type=style&index=0&id=36e96f86&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36e96f86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ThermostatDigital' },\"is-preview\":true,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"thermostat-digital\"},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('ArrowButtonMock',{attrs:{\"icon\":\"minus\",\"active-color\":\"#9be0ed\",\"inactive-color\":\"#9be0ed\"}})],1),_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('div',[_vm._v(\"20 °C\")])]),_c('v-col',{staticClass:\"d-flex justify-center\"},[_c('ArrowButtonMock',{attrs:{\"icon\":\"plus\",\"active-color\":\"#ed5a24\",\"inactive-color\":\"#ed5a24\"}})],1)],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"d-flex align-center justify-center pt-2\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.cooling`)))])],1),_c('v-col'),_c('v-col',{staticClass:\"d-flex align-center justify-center pt-2\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.heating`)))])],1)],1)],1)],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"thermostat-digital-settings\"},[_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"control-blinds-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})],1)]},proxy:true}])})],1),_c('div',{staticClass:\"switches-wrapper\"},[_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateLoweringMode`)))]),_c('div',[_c('SwitchMock')],1)]),_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.changeHeatingCoolingMode`)))]),_c('div',[_c('SwitchMock')],1)]),_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateTimeControl`)))]),_c('div',[_c('SwitchMock')],1)])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n ShowEventDotMock,\n InputFieldMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class ThermostatDigitalPreview extends Vue {\n get mainViewLang() {\n return 'devices.ThermostatDigital.mainView';\n }\n get settingsViewLang() {\n return 'devices.ThermostatDigital.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ThermostatDigital.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThermostatDigital.vue?vue&type=template&id=497bc0d1&\"\nimport script from \"./ThermostatDigital.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThermostatDigital.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThermostatDigital.vue?vue&type=style&index=0&id=497bc0d1&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ThermostatAnalog' },\"is-preview\":true,\"device-icon\":\"thermostat\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"thermostat-analog\"},[_c('div',{staticClass:\"top\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ maxWidth: '80px', fontSize: '10px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '30px', fontSize: '15px', paddingTop: '2px' },\"small\":true},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.normalTemperature`)))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"bottom d-flex justify-space-around\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotMock',{attrs:{\"color\":\"blue\",\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.cooling`)))])],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotMock',{attrs:{\"color\":\"red\",\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.heating`)))])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"thermostat-analog-settings\"},[_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '100px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.loweringTemperature`)))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"thermostat-analog-settings-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '240px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"switches-wrapper\"},[_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateLoweringMode`)))]),_c('div',[_c('SwitchMock')],1)]),_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.changeHeatingCoolingMode`)))]),_c('div',[_c('SwitchMock')],1)]),_c('div',{staticClass:\"switch-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateTimeControl`)))]),_c('div',[_c('SwitchMock')],1)])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n InputFieldMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class ThermostatAnalogPreview extends Vue {\n get mainViewLang() {\n return 'devices.ThermostatAnalog.mainView';\n }\n get settingsViewLang() {\n return 'devices.ThermostatAnalog.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ThermostatAnalog.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatAnalog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ThermostatAnalog.vue?vue&type=template&id=f14fd150&scoped=true&\"\nimport script from \"./ThermostatAnalog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ThermostatAnalog.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ThermostatAnalog.vue?vue&type=style&index=0&id=f14fd150&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f14fd150\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'AirHumiditySensor' },\"device-icon\":\"humidity\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"air-humidity-sensor\"},[_c('div',[_vm._v(\"0.6 %\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class AirHumiditySensorPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.AirHumiditySensor.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AirHumiditySensor.vue?vue&type=template&id=555a101c&scoped=true&\"\nimport script from \"./AirHumiditySensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./AirHumiditySensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AirHumiditySensor.vue?vue&type=style&index=0&id=555a101c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"555a101c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'BrightnessSensor' },\"device-icon\":\"light-switch_on\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"brightness-sensor\"},[_c('div',[_vm._v(\"0,58 kLux\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class BrightnessSensorPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.BrightnessSensor.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrightnessSensor.vue?vue&type=template&id=5fd4ffa2&scoped=true&\"\nimport script from \"./BrightnessSensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrightnessSensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BrightnessSensor.vue?vue&type=style&index=0&id=5fd4ffa2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5fd4ffa2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'SensorCO2' },\"is-preview\":true,\"device-icon\":\"co2\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex sensor-co2\"},[_c('div',[_vm._v(\"4.981,47 ppm\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class SensorCO2Preview extends Vue {\n get previewNameLang() {\n return this.$t('devices.SensorCO2.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorCO2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SensorCO2.vue?vue&type=template&id=205ab868&scoped=true&\"\nimport script from \"./SensorCO2.vue?vue&type=script&lang=ts&\"\nexport * from \"./SensorCO2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SensorCO2.vue?vue&type=style&index=0&id=205ab868&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"205ab868\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'SensorLevel' },\"is-preview\":true,\"device-icon\":\"water_level\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"sensor-level\"},[_c('v-progress-linear',{staticClass:\"fill-level-display-base\",attrs:{\"color\":\"accent\",\"background-color\":\"#ffffff\",\"height\":\"30\",\"rounded\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('div',[_c('span',[_vm._v(_vm._s(_vm.level))]),_c('span',[_vm._v(\"%\")])])]},proxy:true}]),model:{value:(_vm.level),callback:function ($$v) {_vm.level=$$v},expression:\"level\"}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class SensorLevelPreview extends Vue {\n level = 30\n\n get previewNameLang() {\n return this.$t('devices.SensorLevel.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SensorLevel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SensorLevel.vue?vue&type=template&id=aec12b2a&\"\nimport script from \"./SensorLevel.vue?vue&type=script&lang=ts&\"\nexport * from \"./SensorLevel.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SensorLevel.vue?vue&type=style&index=0&id=aec12b2a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'WeatherStation' },\"is-preview\":true,\"device-icon\":\"weather-station\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"weather-station\"},[_c('div',{staticClass:\"left\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_west\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"188,6\")]),_c('span',[_vm._v(\"kLux\")])]),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_south\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"188,6\")]),_c('span',[_vm._v(\"kLux\")])]),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"compass_east\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"188,6\")]),_c('span',[_vm._v(\"kLux\")])]),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"moon\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"988,31\")]),_c('span',[_vm._v(\"lux\")])])])]),_c('div',{staticClass:\"right\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"1\")]),_c('span',[_vm._v(\"%\")])]),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"windspeed\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"0\")]),_c('span',[_vm._v(\"m/s\")])]),_c('div',{staticClass:\"d-flex align-center weather-station-content-item\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"rainfall\",\"color\":\"theme\"}})],1),_c('div',{staticClass:\"px-1\"},[_vm._v(\"0\")]),_c('span',[_vm._v(\"rainfall\")])])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n DeviceLayout,\n },\n})\nexport default class WeatherStationPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.WeatherStation.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WeatherStation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WeatherStation.vue?vue&type=template&id=f367a644&scoped=true&\"\nimport script from \"./WeatherStation.vue?vue&type=script&lang=ts&\"\nexport * from \"./WeatherStation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WeatherStation.vue?vue&type=style&index=0&id=f367a644&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f367a644\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'HotWaterMeter' },\"device-icon\":\"hot-water\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex hot-water-meter\"},[_c('div',[_vm._v(\"10.193,77 m³\")])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"hot-water-meter-settings\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"size\":\"40\"}}),_c('div',[_vm._v(\"0,34 m³/h\")])],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class HotWaterMeterPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.HotWaterMeter.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HotWaterMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HotWaterMeter.vue?vue&type=template&id=4001862d&scoped=true&\"\nimport script from \"./HotWaterMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./HotWaterMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HotWaterMeter.vue?vue&type=style&index=0&id=4001862d&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4001862d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ColdWaterMeter' },\"device-icon\":\"cold-water\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"cold-water-meter\"},[_c('div',[_vm._v(\"10.193,77 m³\")])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"cold-water-meter-settings\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"humidity\",\"size\":\"40\"}}),_c('div',[_vm._v(\"0,34 m³/h\")])],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class ColdWaterMeterPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.ColdWaterMeter.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWaterMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColdWaterMeter.vue?vue&type=template&id=df7046a8&scoped=true&\"\nimport script from \"./ColdWaterMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColdWaterMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColdWaterMeter.vue?vue&type=style&index=0&id=df7046a8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"df7046a8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'HeatingMeter' },\"device-icon\":\"heating_meter\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex heating-meter\"},[_c('div',[_vm._v(\"91.827,42 kWh\")])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"heating-meter-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity\"}})],1),_c('div',[_vm._v(\"0,2 kW\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity-consumption_tarif_1\"}})],1),_c('div',[_vm._v(\"45.968,38 kWh\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"heating-capacity-consumption_tarif_2\"}})],1),_c('div',[_vm._v(\"45.968,38 kWh\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"counter-used-water\"}})],1),_c('div',[_vm._v(\"82.827,77 m³\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"value-flow\"}})],1),_c('div',[_vm._v(\"0,42 m³/h\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_forward\"}})],1),_c('div',[_vm._v(\"44,03 °C\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_return\"}})],1),_c('div',[_vm._v(\"20,17 °C\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature_difference\"}})],1),_c('div',[_vm._v(\"22,3 k\")])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class HeatingMeterPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.HeatingMeter.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingMeter.vue?vue&type=template&id=5a8926a6&scoped=true&\"\nimport script from \"./HeatingMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeatingMeter.vue?vue&type=style&index=0&id=5a8926a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a8926a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ElectricityMeter' },\"device-icon\":\"electricity_meter\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electricity-meter\"},[_c('div',[_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('div',[_vm._v(\"50 kW\")])]),_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"total-electrical-power_tarif_1\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('div',[_vm._v(\"17.441,49 kWh\")])]),_c('div',{staticClass:\"d-flex align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"total-electrical-power_tarif_2\",\"size\":\"25\",\"color\":\"theme\"}})],1),_c('div',[_vm._v(\"17.461,48 kWh\")])])])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electricity-meter-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-consumption_tarif_1\"}})],1),_c('div',[_vm._v(\"11,01 kWh\")])]),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-production_tarif_1\"}})],1),_c('div',[_vm._v(\"19.130,01 kWh\")])]),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-consumption_tarif_2\"}})],1),_c('div',[_vm._v(\"12,87 kWh\")])]),_c('div',{staticClass:\"d-flex settings-view-field\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical-power-production_tarif_2\"}})],1),_c('div',[_vm._v(\"17.441,49 kWh\")])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class ElectricityMeterPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.ElectricityMeter.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricityMeter.vue?vue&type=template&id=637edbff&scoped=true&\"\nimport script from \"./ElectricityMeter.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricityMeter.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectricityMeter.vue?vue&type=style&index=0&id=637edbff&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"637edbff\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'Gauge' },\"device-size\":\"x2h\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{ref:\"chartDiv\",staticClass:\"gauge\",attrs:{\"id\":\"chartDiv\"}},[_c('VueGauge',{key:_vm.chartKey,staticStyle:{\"margin-top\":\"20px\"},attrs:{\"refid\":\"previewNormalGauge\",\"options\":{\n hasNeedle: false,\n rangeLabel: [\"0\",\"100\"],\n arcDelimiters: [40],\n centralLabel: \"40kW\",\n chartWidth: `${_vm.gaugeWidth}`,\n arcColors: [`${_vm.$vuetify.theme.currentTheme.accent}`,\"lightgray\"\n ]}}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Chart } from 'highcharts-vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport Highcharts from 'highcharts';\nimport solidGauge from 'highcharts/modules/solid-gauge';\nimport highchartsMore from 'highcharts/highcharts-more';\n\nhighchartsMore(Highcharts);\nsolidGauge(Highcharts);\n\n@Component({\n components: {\n highcharts: Chart,\n DeviceDescription,\n PreviewActions,\n DeviceLayout,\n },\n})\nexport default class GaugePreview extends Vue {\n @Prop() chartWidth!: any;\n @Prop() isModal!: boolean;\n\n timer: any\n val = 40;\n gaugeWidth = 490;\n chartKey = 1;\n\n get description() {\n return this.$t('devicesDescriptions.Gauge');\n }\n get previewNameLang() {\n return this.$t('devices.Gauge.previewName');\n }\n\n mounted() {\n this.$nextTick(() => this.resizeChart());\n window.addEventListener('resize', this.resizeChart);\n }\n\n resizeChart() {\n const element: any = this.$refs.chartDiv;\n if (element !== undefined) {\n if (element.clientWidth > 480) {\n this.gaugeWidth = 480;\n } else {\n this.gaugeWidth = element.clientWidth;\n }\n this.chartKey += 1;\n }\n }\n\n destroyed() {\n window.removeEventListener('resize', this.resizeChart);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Gauge.vue?vue&type=template&id=18e48152&\"\nimport script from \"./Gauge.vue?vue&type=script&lang=ts&\"\nexport * from \"./Gauge.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Gauge.vue?vue&type=style&index=0&id=18e48152&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MotionSensor' },\"is-preview\":true,\"device-icon\":\"motion-sensor\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motion-sensor\"},[_c('div',{staticClass:\"basic-control-field\"},[_c('InputFieldMock',{attrs:{\"min\":\"0\",\"max\":\"1200\",\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '70px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.sec')))]},proxy:true},(!_vm.hideIfCrossingPoint)?{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\",\"color\":\"theme\"}})],1)]},proxy:true}:null],null,true)})],1),_c('div',{staticClass:\"pt-4 d-flex justify-space-between align-center\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.permanent`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"pt-4 d-flex justify-space-between align-center\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.impulse`)))]),_c('PushButtonMock',{staticClass:\"mr-2\"})],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n PushButtonMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class MotionSensorPreview extends Vue {\n switchState = false\n\n get hideIfCrossingPoint() {\n return this.$vuetify.breakpoint.width < 1400 && this.$vuetify.breakpoint.width > 1264;\n }\n\n get mainViewLang() {\n return 'devices.MotionSensor.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.MotionSensor.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotionSensor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotionSensor.vue?vue&type=template&id=00225776&\"\nimport script from \"./MotionSensor.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotionSensor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotionSensor.vue?vue&type=style&index=0&id=00225776&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'Battery' },\"device-icon\":\"battery\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"battery-base-wrapper\"},[_c('BatteryBaseMock')],1)]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"battery-settings\"},[_c('div',[_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electrical_voltage\"}})],1),_c('div',[_vm._v(\"800\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"volt\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"temperature\"}})],1),_c('div',[_vm._v(\"2\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\"}})],1),_c('div',[_vm._v(\"550\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"kW\")])]),_c('div',{staticClass:\"d-flex settings-view-field align-center\"},[_c('div',{staticClass:\"icon-wrapper\"},[_c('lynus-icon',{attrs:{\"name\":\"favourites\"}})],1),_c('div',[_vm._v(\"40\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"SOH\")])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"battery-mock\"},[_c('div',{staticClass:\"cap\"}),_c('div',{staticClass:\"battery-body\"},[_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"value\"},[_vm._v(\" \"+_vm._s(_vm.batteryState)+\"% \")]),_c('div',{staticClass:\"scale\",style:(`width: ${_vm.batteryState}%`)})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class BatteryBaseMock extends Vue {\n batteryState = 100\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBaseMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryBaseMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryBaseMock.vue?vue&type=template&id=238440f4&scoped=true&\"\nimport script from \"./BatteryBaseMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryBaseMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatteryBaseMock.vue?vue&type=style&index=0&id=238440f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"238440f4\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport BatteryBaseMock from '@/ui/components/devices/previews/components/BatteryBaseMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n BatteryBaseMock,\n DeviceLayout,\n },\n})\nexport default class BatteryPreview extends Vue {\n isSettingsView = false\n\n get description() {\n return this.$t('devicesDescriptions.Battery');\n }\n get previewNameLang() {\n return this.$t('devices.Battery.previewName');\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Battery.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Battery.vue?vue&type=template&id=222a353a&scoped=true&\"\nimport script from \"./Battery.vue?vue&type=script&lang=ts&\"\nexport * from \"./Battery.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Battery.vue?vue&type=style&index=0&id=222a353a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"222a353a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'PVSystem' },\"is-preview\":true,\"device-icon\":\"photovoltaic\",\"deviceModal\":true,\"showSmallerDeviceActions\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pv-system-lineConfig pv-system\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'))+\" \")]},proxy:true}])}),_c('div',[_vm._v(\"0,95 kW\")])],1),_c('div',{staticClass:\"pv-system-lineConfig pv-system\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'))+\" \")]},proxy:true}])}),_c('div',[_vm._v(\"1,33 V\")])],1),_c('div',{staticClass:\"pv-system-lineConfig justify-between pv-system\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'))+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'))+\" \")]},proxy:true}])}),_c('div',[_vm._v(\"6,24 A\")])],1)]},proxy:true},{key:\"modal-window\",fn:function(){return [_c('PVSystemChartsPreview')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{attrs:{\"width\":\"100%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({}){return [_c('v-btn',{attrs:{\"fab\":\"\",\"height\":\"30\",\"width\":\"30\"},on:{\"mouseenter\":function($event){_vm.isTooltip = true},\"mouseleave\":function($event){_vm.isTooltip = false}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-chart-line\")])],1)]}}]),model:{value:(_vm.isTooltip),callback:function ($$v) {_vm.isTooltip=$$v},expression:\"isTooltip\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.hoverText')))])])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('devices.PVSystem.ChartsWindow.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"pv-systems-charts\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n/**\n * Component that represent PVSystem device\n */\n@Component({\n components: {\n ModalWindow,\n OfflineChart,\n },\n})\nexport default class PVSystemCharts extends Vue {\n isTooltip = false;\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.actualVoltage'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('devices.PVSystem.ChartsWindow.seriesTitles.currentFlow'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemsChartPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystemsChartPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PVSystemsChartPreview.vue?vue&type=template&id=237729bc&scoped=true&\"\nimport script from \"./PVSystemsChartPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./PVSystemsChartPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PVSystemsChartPreview.vue?vue&type=style&index=0&id=237729bc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"237729bc\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport PVSystemChartsPreview from '@/ui/components/devices/previews/devices/devicesCharts/PVSystemsChartPreview.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\n\n@Component({\n components: {\n DeviceLayout,\n PVSystemChartsPreview,\n InfoTooltip,\n },\n})\nexport default class PVSystemPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.PVSystem.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PVSystem.vue?vue&type=template&id=8a70502a&scoped=true&\"\nimport script from \"./PVSystem.vue?vue&type=script&lang=ts&\"\nexport * from \"./PVSystem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PVSystem.vue?vue&type=style&index=0&id=8a70502a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8a70502a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'HouseConsumption' },\"device-icon\":\"house-consumption\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex house-consumption\"},[_c('div',[_vm._v(\"2,11 kW\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class HouseConsumptionPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.HouseConsumption.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HouseConsumption.vue?vue&type=template&id=f5f4135c&scoped=true&\"\nimport script from \"./HouseConsumption.vue?vue&type=script&lang=ts&\"\nexport * from \"./HouseConsumption.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HouseConsumption.vue?vue&type=style&index=0&id=f5f4135c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f5f4135c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'Generator' },\"device-icon\":\"generator\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex generator\"},[_c('div',[_vm._v(\"64 kW\")])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"generator-settings\"},[_c('div',{staticClass:\"generator-settings-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.manual`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"generator-settings-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\"}})],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class GeneratorPreview extends Vue {\n switchState = false\n\n get settingsViewLang() {\n return 'devices.Generator.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.Generator.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Generator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Generator.vue?vue&type=template&id=044484fa&scoped=true&\"\nimport script from \"./Generator.vue?vue&type=script&lang=ts&\"\nexport * from \"./Generator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Generator.vue?vue&type=style&index=0&id=044484fa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"044484fa\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MainsConnection' },\"device-icon\":\"main-connection\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex mains-connection\"},[_c('div',[_vm._v(\"2100 kW\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class MainsConnectionPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.MainsConnection.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainsConnection.vue?vue&type=template&id=2bae1bff&scoped=true&\"\nimport script from \"./MainsConnection.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainsConnection.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MainsConnection.vue?vue&type=style&index=0&id=2bae1bff&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2bae1bff\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ElectricChargingStation' },\"is-preview\":true,\"device-icon\":\"electric-charging-station\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electric-charging-station\"},[_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"550 kW\")])]),_c('div',{staticClass:\"d-flex show-event-section align-center\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\",\"color\":\"#30bf54\",\"is-active\":true}}),_c('div',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.connected`)))])],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electric-charging-station-settings\"},[_c('div',{staticClass:\"settings-content-field d-flex justify-space-between\"},[_c('div',{staticClass:\"switch-field-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.minCharge`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"settings-content-field d-flex justify-space-between switch-field\"},[_c('div',{staticClass:\"switch-field-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.manual`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"settings-content-field d-flex justify-center loading-time\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.chargingTime`)[0]))]),_c('div',[_vm._v(\"40 \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.chargingTime`)[1]))])]),_c('div',{staticClass:\"settings-content-field\"},[_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '100px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-content-field\"},[_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ElectricChargingStation.settingsView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"settings-content-field\",staticStyle:{\"width\":\"90%\"}},[_c('SliderMock')],1),_c('div',[_vm._v(\" 0 % \")])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n ShowEventDotMock,\n SliderMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class ElectricChargingStationPreview extends Vue {\n get mainViewLang() {\n return 'devices.ElectricChargingStation.mainView';\n }\n get settingsViewLang() {\n return 'devices.ElectricChargingStation.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ElectricChargingStation.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricChargingStation.vue?vue&type=template&id=531518c8&scoped=true&\"\nimport script from \"./ElectricChargingStation.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricChargingStation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectricChargingStation.vue?vue&type=style&index=0&id=531518c8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"531518c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'VariableTextOutputField' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fa-pen\")])]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',[_vm._v(\"Hello World\")])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceLayout,\n },\n})\nexport default class VariableTextOutputFieldPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.VariableTextOutputField.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableTextOutputField.vue?vue&type=template&id=5a84f792&scoped=true&\"\nimport script from \"./VariableTextOutputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableTextOutputField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VariableTextOutputField.vue?vue&type=style&index=0&id=5a84f792&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a84f792\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'VariableTextInputField' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"min-width\":\"30px\"}},[_c('v-icon',{attrs:{\"size\":\"20\"}},[_vm._v(\"fa-pen\")])],1)]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('InputFieldMock',{attrs:{\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ padding: '5px 5px 0' },\"initState\":'Text'},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"unit\")]},proxy:true}])})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\n\n@Component({\n components: {\n DeviceLayout,\n InputFieldMock,\n },\n})\nexport default class VariableTextInputFieldPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.VariableTextInputField.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextInputField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextInputField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VariableTextInputField.vue?vue&type=template&id=88bb0aea&scoped=true&\"\nimport script from \"./VariableTextInputField.vue?vue&type=script&lang=ts&\"\nexport * from \"./VariableTextInputField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"88bb0aea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ElectronicBoiler' },\"device-icon\":\"electric-charging-boiler\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"electric-boiler d-flex\"},[_c('div',[_vm._v(\"50 kW\")])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"electric-boiler-settings\"},[_c('div',{staticClass:\"settings-content-field\"},[_c('InputFieldMock',{attrs:{\"min\":\"0\",\"max\":\"23\",\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"settings-content-field\"},[_c('InputFieldMock',{attrs:{\"min\":\"0\",\"max\":\"59\",\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"settings-content-field\"},[_c('InputFieldMock',{attrs:{\"min\":\"0\",\"max\":\"23\",\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"settings-content-field\"},[_c('InputFieldMock',{attrs:{\"min\":\"0\",\"max\":\"59\",\"description-styles\":{ width: '100px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column pr-2\"},[_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])],1)]},proxy:true}])})],1),_c('div',{staticClass:\"settings-content-field d-flex justify-space-between\"},[_c('div',{staticClass:\"switch-field-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.manual`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"settings-content-field d-flex justify-space-between\"},[_c('div',{staticClass:\"switch-field-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateTimeControl`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"settings-content-field\"},[_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.ElectronicBoiler.settingsView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"settings-content-field\",staticStyle:{\"width\":\"90%\"}},[_c('SliderMock',{attrs:{\"font-size\":\"20\"}})],1),_c('div',[_vm._v(\" 20 % \")])])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SliderMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class ElectronicBoilerPreview extends Vue {\n get settingsViewLang() {\n return 'devices.ElectronicBoiler.settingsView';\n }\n get previewNameLang() {\n return this.$t('devices.ElectronicBoiler.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectronicBoiler.vue?vue&type=template&id=6e667a86&scoped=true&\"\nimport script from \"./ElectronicBoiler.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectronicBoiler.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ElectronicBoiler.vue?vue&type=style&index=0&id=6e667a86&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e667a86\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'VentilatorSwitch' },\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"ventilator-switch d-flex justify-space-between align-center\"},[_c('lynus-icon',{attrs:{\"name\":\"ventilator\",\"size\":\"30\",\"color\":\"theme\"}}),_c('SwitchMock')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class VentilatorSwitchPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.VentilatorSwitch.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VentilatorSwitch.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VentilatorSwitch.vue?vue&type=template&id=ea49509e&scoped=true&\"\nimport script from \"./VentilatorSwitch.vue?vue&type=script&lang=ts&\"\nexport * from \"./VentilatorSwitch.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./VentilatorSwitch.vue?vue&type=style&index=0&id=ea49509e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ea49509e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MusicSystem' },\"is-preview\":true,\"device-size\":\"x2h\",\"device-icon\":\"music\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"music-system\"},[_c('div',{staticClass:\"d-flex justify-end pb-4\"},[_c('SwitchMock')],1),_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',[_c('div',{staticClass:\"d-flex justify-end\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"volume-plus\",\"icon-size\":\"24\"}})],1),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"play\",\"icon-size\":\"24\"}})],1),_c('div',{staticClass:\"d-flex justify-end pt-4\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"previous\",\"icon-size\":\"24\"}})],1)]),_c('v-col',{staticClass:\"d-flex align-center justify-center\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"pause\",\"icon-size\":\"24\"}})],1),_c('v-col',[_c('div',{staticClass:\"d-flex justify-start\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"volume-minus\",\"icon-size\":\"24\"}})],1),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"stop\",\"icon-size\":\"24\"}})],1),_c('div',{staticClass:\"d-flex justify-start pt-4\"},[_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"next\",\"icon-size\":\"24\"}})],1)])],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',_vm._b({attrs:{\"color\":_vm.color,\"elevation\":\"0\",\"fab\":\"\"}},\"v-btn\",_vm._d({},[_vm.buttonSizeClass,true])),[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"size\":_vm.iconSize,\"color\":\"white\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class MultimediaButtonMock extends Vue {\n @Prop({ default: '#7c7c7c' }) color!: string;\n @Prop({ default: 'play' }) icon!: string;\n @Prop({ default: null }) iconSize!: string | number;\n @Prop({\n default: 'small',\n validator: (value: any): boolean => [null, 'x-small', 'small', 'large', 'x-large'].some((el: string | null) => el === value),\n }) buttonSizeClass!: string; // vuetify btn classes: x-small, small, large, x-large\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultimediaButtonMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultimediaButtonMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MultimediaButtonMock.vue?vue&type=template&id=12c23d00&scoped=true&\"\nimport script from \"./MultimediaButtonMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./MultimediaButtonMock.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12c23d00\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport MultimediaButtonMock from '@/ui/components/devices/previews/components/MultimediaButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n MultimediaButtonMock,\n DeviceLayout,\n },\n})\nexport default class MusicSystemPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.MusicSystem.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MusicSystem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MusicSystem.vue?vue&type=template&id=a9cd5c32&scoped=true&\"\nimport script from \"./MusicSystem.vue?vue&type=script&lang=ts&\"\nexport * from \"./MusicSystem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MusicSystem.vue?vue&type=style&index=0&id=a9cd5c32&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9cd5c32\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'TV' },\"is-preview\":true,\"device-icon\":\"television\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"tv d-flex flex-wrap align-center justify-space-around\"},[_c('div',{staticClass:\"wrapper d-flex mt-1\"},[_c('MultimediaButtonMock',{staticClass:\"mr-1\",attrs:{\"color\":\"accent\",\"icon\":\"reverse\",\"icon-size\":\"24\",\"button-size-class\":\"x-small\"}}),_c('MultimediaButtonMock',{staticClass:\"mr-2\",attrs:{\"color\":\"accent\",\"icon\":\"volume-minus\",\"icon-size\":\"24\",\"button-size-class\":\"x-small\"}}),_c('MultimediaButtonMock',{attrs:{\"color\":\"accent\",\"icon\":\"volume-plus\",\"icon-size\":\"24\",\"button-size-class\":\"x-small\"}}),_c('MultimediaButtonMock',{staticClass:\"ml-1\",attrs:{\"color\":\"accent\",\"icon\":\"forward\",\"icon-size\":\"24\",\"button-size-class\":\"x-small\"}})],1),_c('SwitchMock',{staticClass:\"mt-1\"})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport MultimediaButtonMock from '@/ui/components/devices/previews/components/MultimediaButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n MultimediaButtonMock,\n DeviceLayout,\n },\n})\nexport default class TVPreview extends Vue {\n get previewNameLang() {\n return this.$t('devices.TV.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TV.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TV.vue?vue&type=template&id=83953b20&scoped=true&\"\nimport script from \"./TV.vue?vue&type=script&lang=ts&\"\nexport * from \"./TV.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TV.vue?vue&type=style&index=0&id=83953b20&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"83953b20\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MotorWithoutVFD' },\"device-icon\":\"motor\",\"device-size\":\"x2h\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motor-without-vfd\"},[_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.autoMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manualMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.inactiveMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-left\"}})],1),_c('div',[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-right\"}})],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"motor-without-vfd-settings d-flex justify-center\"},[_c('div',[_vm._v(\"1000 A\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class MotorWithoutVFDPreview extends Vue {\n get mainViewLang() {\n return 'devices.MotorWithoutVFD.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.MotorWithoutVFD.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotorWithoutVFD.vue?vue&type=template&id=5ce4a51e&scoped=true&\"\nimport script from \"./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotorWithoutVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotorWithoutVFD.vue?vue&type=style&index=0&id=5ce4a51e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ce4a51e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'PumpWithoutVFD' },\"is-preview\":true,\"device-icon\":\"pump\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pump-without-vfd\"},[_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.autoMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manualMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.inactiveMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-left\"}})],1),_c('div',[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-right\"}})],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"pump-without-vfd-settings d-flex justify-center\"},[_c('div',[_vm._v(\"600 A\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class PumpWithoutVFDPreview extends Vue {\n get mainViewLang() {\n return 'devices.PumpWithoutVFD.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.PumpWithoutVFD.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PumpWithoutVFD.vue?vue&type=template&id=3bd403be&scoped=true&\"\nimport script from \"./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./PumpWithoutVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PumpWithoutVFD.vue?vue&type=style&index=0&id=3bd403be&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bd403be\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MotorWithVFD' },\"is-preview\":true,\"device-icon\":\"motor\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"motor-with-vfd\"},[_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.autoMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"auto-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manualMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"manual-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.inactiveMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"inactive-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-left\"}})],1),_c('div',[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-right\"}})],1)]),_c('div',{staticClass:\"basic-control-field\"},[_c('div',{staticClass:\"text-center pt-2\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.MotorWithVFD.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"4px\",\"padding-left\":\"8px\"}},[_c('span',[_vm._v(\"20\")]),_c('span',{staticStyle:{\"padding-left\":\"4px\"}},[_vm._v(\"%\")])])],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"23\",\"button-size\":\"32\"}})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"motor-with-vfd-settings d-flex justify-center\"},[_c('div',[_vm._v(\"1000 A\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n SliderMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class MotorWithVFDPreview extends Vue {\n get mainViewLang() {\n return 'devices.MotorWithVFD.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.MotorWithVFD.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MotorWithVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MotorWithVFD.vue?vue&type=template&id=da8bf1d8&scoped=true&\"\nimport script from \"./MotorWithVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./MotorWithVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MotorWithVFD.vue?vue&type=style&index=0&id=da8bf1d8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"da8bf1d8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'PumpWithVFD' },\"is-preview\":true,\"device-icon\":\"pump\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"pump-with-vfd\"},[_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\",staticStyle:{\"margin-top\":\"-10px\"}},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.autoMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"auto-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manualMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"manual-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.inactiveMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"inactive-mode\",\"icon-size\":\"20\",\"button-size\":\"32\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-left\"}})],1),_c('div',[_c('ArrowButtonMock',{attrs:{\"name\":\"arrow-direction-right\"}})],1)]),_c('div',{staticClass:\"basic-control-field\"},[_c('div',{staticClass:\"text-center pt-2\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.PumpWithVFD.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"4px\",\"padding-left\":\"8px\"}},[_c('span',[_vm._v(\"20\")]),_c('span',{staticStyle:{\"padding-left\":\"4px\"}},[_vm._v(\"%\")])])],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"23\",\"button-size\":\"32\"}})],1)])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"pump-with-vfd-settings d-flex justify-center\"},[_c('div',[_vm._v(\"1000 A\")])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n SliderMock,\n ArrowButtonMock,\n DeviceLayout,\n },\n})\nexport default class PumpWithVFDPreview extends Vue {\n get mainViewLang() {\n return 'devices.PumpWithVFD.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.PumpWithVFD.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PumpWithVFD.vue?vue&type=template&id=e1bf498e&scoped=true&\"\nimport script from \"./PumpWithVFD.vue?vue&type=script&lang=ts&\"\nexport * from \"./PumpWithVFD.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PumpWithVFD.vue?vue&type=style&index=0&id=e1bf498e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e1bf498e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'MixingValve' },\"is-preview\":true,\"device-icon\":\"mixing-valve\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"mixing-valve\"},[_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.autoMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"auto-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manualMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"manual-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.inactiveMode`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"inactive-mode\",\"icon-size\":\"23\",\"button-size\":\"35\"}})],1),_c('div',{staticClass:\"basic-control-field\"},[_c('div',{staticClass:\"text-center switch-field-text\",staticStyle:{\"line-height\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('devices.MixingValve.mainView.sliderLabel'))+\" \")]),_c('div',{staticClass:\"d-flex\"},[_c('SliderMock',{staticStyle:{\"width\":\"90%\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"4px\",\"padding-left\":\"8px\"}},[_c('span',[_vm._v(\"20\")]),_c('span',{staticStyle:{\"padding-left\":\"4px\"}},[_vm._v(\"%\")])])],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n PushButtonMock,\n SliderMock,\n DeviceLayout,\n },\n})\nexport default class MixingValvePreview extends Vue {\n get mainViewLang() {\n return 'devices.MixingValve.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.MixingValve.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MixingValve.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MixingValve.vue?vue&type=template&id=19096613&scoped=true&\"\nimport script from \"./MixingValve.vue?vue&type=script&lang=ts&\"\nexport * from \"./MixingValve.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MixingValve.vue?vue&type=style&index=0&id=19096613&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19096613\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'Ventilation' },\"is-preview\":true,\"device-icon\":\"ventilator\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"ventilation\"},[_c('div',{staticClass:\"basic-control-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ paddingRight: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ padding: '0 5px' },\"small\":true},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" Speed \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"d-flex filter-state\"},[_c('div',[_vm._v(\"0 rpm\")])]),_c('div',{staticClass:\"d-flex align-center filter-event\"},[_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"15\"}}),_c('div',{staticClass:\"filter-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.changeSupplyFilter`)))])],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"d-flex filter-state\"},[_c('div',[_vm._v(\"0 rpm\")])]),_c('div',{staticClass:\"d-flex align-center filter-event\"},[_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"15\"}}),_c('div',{staticClass:\"filter-text\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.changeExhaustFilter`)))])],1)]),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.manual`)))]),_c('SwitchMock')],1),_c('div',{staticClass:\"basic-control-field d-flex align-center justify-space-between\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.reset`)))]),_c('div',{staticClass:\"pr-2\"},[_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n ShowEventDotMock,\n PushButtonMock,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class VentilationPreview extends Vue {\n get mainViewLang() {\n return 'devices.Ventilation.mainView';\n }\n get previewNameLang() {\n return this.$t('devices.Ventilation.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Ventilation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Ventilation.vue?vue&type=template&id=64606cd0&\"\nimport script from \"./Ventilation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Ventilation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Ventilation.vue?vue&type=style&index=0&id=64606cd0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'DropDownInputFieldWithVariable' },\"device-icon\":\"send\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"drop-down-input-field-with-variable\"},[_c('DropDownBase',{attrs:{\"variable-data\":_vm.textMapping,\"text-mapping\":_vm.textMapping,\"instance\":\"DropDown\",\"label\":\"Drop Down\"}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n OutputFieldBase,\n DropDownBase,\n DeviceLayout,\n },\n})\nexport default class DropDownInputFieldWithVariablePreview extends Vue {\n textMapping = {\n 0: 'Example Text 1',\n 1: 'Example Text 2',\n 2: 'Example Text 3',\n 3: 'Example Text 4',\n 4: 'Example Text 5',\n };\n\n get previewNameLang() {\n return this.$t('devices.DropDownInputFieldWithVariable.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownInputFieldWithVariablePreview.vue?vue&type=template&id=3e121adb&scoped=true&\"\nimport script from \"./DropDownInputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownInputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownInputFieldWithVariablePreview.vue?vue&type=style&index=0&id=3e121adb&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e121adb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'DropDownOutputFieldWithVariable' },\"device-icon\":\"notification\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"drop-down-output-field-with-variable\"},[_c('DropDownBase',{attrs:{\"variable-data\":_vm.textMapping,\"text-mapping\":_vm.textMapping,\"instance\":\"DropDown\",\"label\":\"Drop Down\"}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport OutputFieldBase from '@/ui/components/devices/devices/base/OutputFieldBase.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n OutputFieldBase,\n DropDownBase,\n DeviceLayout,\n },\n})\nexport default class DropDownOutputFieldWithVariablePreview extends Vue {\n isSettingsView = false;\n textMapping = {\n 0: 'Example Text 1',\n 1: 'Example Text 2',\n 2: 'Example Text 3',\n 3: 'Example Text 4',\n 4: 'Example Text 5',\n };\n\n get previewNameLang() {\n return this.$t('devices.DropDownOutputFieldWithVariable.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownOutputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropDownOutputFieldWithVariablePreview.vue?vue&type=template&id=19577e9a&scoped=true&\"\nimport script from \"./DropDownOutputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropDownOutputFieldWithVariablePreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropDownOutputFieldWithVariablePreview.vue?vue&type=style&index=0&id=19577e9a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19577e9a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.$t('devices.EnergyViewV2.previewName'), type: 'EnergyViewV2' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex pt-6 fill-height flex-column flex-lg-row\"},[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center mt-5\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('div',{staticStyle:{\"margin-top\":\"60px\"}},[_c('ActualView',{attrs:{\"data\":_vm.localEnergyViewMappingMock}})],1)]),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center mt-5\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.energyFlowView')))]),_c('EnergyFlowView',{attrs:{\"data\":_vm.localEnergyViewMappingMock}})],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts',{attrs:{\"items\":_vm.chartsItems}})]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('Settings')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-preview-settings\"},[_c('div',{staticClass:\"settings-ems-fields-wrapper\"},[_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuseChargingStation')))]),_c('div',{staticClass:\"value\"},[_c('v-dialog',{attrs:{\"max-width\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"accent\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.openList'))+\" \")])]}}]),model:{value:(_vm.sizeMainFuseDialog),callback:function ($$v) {_vm.sizeMainFuseDialog=$$v},expression:\"sizeMainFuseDialog\"}},[_c('div',{staticClass:\"settings-ems-size-main-fuse-list\"},[(_vm.sizeMainFuseDialog)?_vm._l(([0, 1]),function(item,index){return _c('div',{key:index},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuse')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(index + 1))])]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}],null,true)})],1)}):_vm._e()],2)])],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.maxDephOfDischargeInEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveInBatteryForEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.priorityMinChargeBatterySOCInEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveChargingFromGrid')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.updatingTimeEMS')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.inverterPower')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.operationModeEMS')))]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":{},\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingOperation},on:{\"send\":function($event){return _vm.$emit('publish', $event)}}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.messageEMSFunction')))]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":{},\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingMessage},on:{\"send\":function($event){return _vm.$emit('publish', $event)}}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.enableEMS')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.allowedChargingFromGrid')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.mainFuseMonitoring')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport TimezoneChooser from '@/ui/components/components/TimezoneChooser.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SwitchMock,\n DropDownBase,\n TimezoneChooser,\n },\n})\nexport default class Settings extends Vue {\n tab = null\n sizeMainFuseDialog = false\n\n tariffMode: null | number = null\n\n start_low: any = null\n end_low: any = null\n price_low: any = null\n price_high: any = null\n timezone = '';\n\n get tabs() {\n return [\n {\n title: this.$t('mlModel.EMS.settingsView.tabs.emsSettings'),\n },\n\n ];\n }\n\n get textMappingOperation() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingOperation');\n return {\n 0: lang.allOff,\n 1: lang.selfConsumption,\n 2: lang.peakLoadCapping,\n 3: lang.loadManagement,\n };\n }\n get textMappingMessage() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingMessage');\n return {\n 0: lang.disabled,\n 1: lang.enabled,\n 2: lang.allPrioritiesAtMinimum,\n 3: lang.allPrioritiesAtMaximum,\n 4: lang.missingPowerValuesOnDeviceSetup,\n 5: lang.tooManyFunctionsInThisProject,\n };\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=1dbea696&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=1dbea696&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1dbea696\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-settings\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\"}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"single-systems-chart\"},[_c('SystemsNavigation',{attrs:{\"system-name\":\"EMS\",\"is-list-items-plural\":\"false\",\"items\":_vm.mockItems},on:{\"handleCurrentChart\":function($event){return _vm.handleNavigationChanged($event)}}}),_c('OfflineChart',{key:_vm.reRenderKey,attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport SystemsNavigation from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\n\n@Component({\n components: {\n OfflineChart,\n SystemsNavigation,\n },\n})\nexport default class SingleSystemsChart extends Vue {\n selectedSystem = 'pv';\n reRenderKey = 0;\n\n mockItems = [\n ['pv', [['pv1', 'pv2']]],\n ['generator', [['generator1', 'generator2']]],\n ['grid', [['grid1']]],\n ['battery', [['battery1']]],\n ['house', [['house1', 'house2']]],\n ['charge_station', [['charge_station1', 'charge_station2']]],\n ['electric_heating', [['electric_heating1', 'electric_heating2']]],\n ['heating_pump', [['heating_pump1', 'heating_pump2']]],\n ['big_consumer', [['big_consumer1', 'big_consumer2']]],\n ]\n\n handleNavigationChanged(currentSystem: any) {\n this.selectedSystem = currentSystem.system;\n this.reRenderKey += 1;\n }\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n if (this.selectedSystem === 'battery' || this.selectedSystem === 'grid') {\n currentChartOptions = [\n {\n agg: 'first',\n name: `${this.$t(`mlModel.EMSV2.systems.${this.selectedSystem}.reverse_energy_counter`)}`,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: `${this.$t(`mlModel.EMSV2.systems.${this.selectedSystem}.energy_counter`)}`,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kW',\n var: '',\n },\n ];\n } else {\n currentChartOptions = [\n {\n agg: 'first',\n name: `${this.$t(`mlModel.EMSV2.systems.${this.selectedSystem}.energy_counter`)} 1`,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kW',\n var: '',\n },\n {\n agg: 'first',\n name: `${this.$t(`mlModel.EMSV2.systems.${this.selectedSystem}.energy_counter`)} 2`,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kW',\n var: '',\n },\n ];\n }\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n get settingsViewLang() {\n return 'devices.EMSV2.settingsView';\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleSystemsCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleSystemsCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SingleSystemsCharts.vue?vue&type=template&id=3f794120&scoped=true&\"\nimport script from \"./SingleSystemsCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SingleSystemsCharts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SingleSystemsCharts.vue?vue&type=style&index=0&id=3f794120&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f794120\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Provide, Prop } from 'vue-property-decorator';\nimport ChartTimetableConsumer from '@/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue';\nimport EnergyFlow from '@/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue';\nimport SingleSystemsCharts from '@/ui/components/devices/previews/devices/EMSV2/charts/SingleSystem/SingleSystemsCharts.vue';\n\n@Component({\n components: {\n ChartTimetableConsumer,\n EnergyFlow,\n SingleSystemsCharts,\n },\n})\nexport default class EMSCharts extends Vue {\n @Prop({ default: [] }) items!: any;\n tab = null\n\n @Provide('chartColors') provideColors = ['#6ca2d8', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1'];\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=54dfb288&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=54dfb288&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const forecastMockData = { 'pv1': [\n [1626165900, 99], [1626166800, 99], [1626167700, 99], [1626168600, 99], [1626169500, 99], [1626170400, 99], [1626171300, 98.9], [1626172200, 99], [1626173100, 98.9], [1626174000, 99], [1626174900, 99], [1626175800, 99], [1626176700, 99], [1626177600, 99], [1626178500, 99], [1626179400, 99], [1626180300, 99], [1626181200, 99], [1626182100, 99], [1626183000, 99], [1626183900, 99], [1626184800, 99], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 99], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 99], [1626193800, 99], [1626194700, 99], [1626195600, 99], [1626196500, 99], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 99], [1626208200, 99], [1626209100, 99], [1626210000, 99], [1626210900, 99], [1626211800, 99], [1626212700, 99], [1626213600, 99], [1626214500, 99], [1626215400, 99], [1626216300, 99], [1626217200, 99], [1626218100, 99], [1626219000, 98.9], [1626219900, 99], [1626220800, 99], [1626221700, 99], [1626222600, 99], [1626223500, 99], [1626224400, 99.1], [1626225300, 99.1], [1626226200, 99.1], [1626227100, 99.1], [1626228000, 99.1], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99.1], [1626234300, 99.1], [1626235200, 99.1], [1626236100, 99], [1626237000, 99], [1626237900, 99.1], [1626238800, 99.1], [1626239700, 99.1], [1626240600, 99.1], [1626241500, 99.1], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 99], [1626247800, 99], [1626248700, 99], [1626249600, 99], [1626250500, 99], [1626251400, 99]],\n'pv2': [[1626165900, 99], [1626166800, 99.1], [1626167700, 99], [1626168600, 99.1], [1626169500, 99], [1626170400, 99], [1626171300, 98.9], [1626172200, 99], [1626173100, 99], [1626174000, 99], [1626174900, 99], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 99], [1626183900, 99], [1626184800, 99], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 99], [1626188400, 99], [1626189300, 99], [1626190200, 99], [1626191100, 99], [1626192000, 99], [1626192900, 99], [1626193800, 99], [1626194700, 99], [1626195600, 99], [1626196500, 99], [1626197400, 99], [1626198300, 99], [1626199200, 99], [1626200100, 99], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 99], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 99], [1626211800, 99], [1626212700, 99], [1626213600, 99], [1626214500, 99], [1626215400, 99], [1626216300, 98.9], [1626217200, 99], [1626218100, 99], [1626219000, 98.9], [1626219900, 98.9], [1626220800, 99], [1626221700, 99], [1626222600, 99], [1626223500, 99], [1626224400, 99], [1626225300, 99], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 98.9], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 99], [1626247800, 99], [1626248700, 99.1], [1626249600, 99], [1626250500, 99], [1626251400, 99]],\n'grid1': [[1626165900, -394.4], [1626166800, -394.4], [1626167700, -394.5], [1626168600, -394.5], [1626169500, -394.3], [1626170400, -394.2], [1626171300, -394], [1626172200, -394.1], [1626173100, -393.9], [1626174000, -394.3], [1626174900, -394.3], [1626175800, -394.2], [1626176700, -394.2], [1626177600, -394.1], [1626178500, -394.2], [1626179400, -394.2], [1626180300, -394.1], [1626181200, -394.1], [1626182100, -394.1], [1626183000, -394.1], [1626183900, -394], [1626184800, -393.9], [1626185700, -393.6], [1626186600, -393.7], [1626187500, -393.7], [1626188400, -393.8], [1626189300, -393.9], [1626190200, -393.8], [1626191100, -393.8], [1626192000, -393.5], [1626192900, -393.9], [1626193800, -393.9], [1626194700, -393.9], [1626195600, -393.9], [1626196500, -393.9], [1626197400, -393.9], [1626198300, -393.8], [1626199200, -393.9], [1626200100, -394], [1626201000, -394], [1626201900, -393.8], [1626202800, -393.9], [1626203700, -393.9], [1626204600, -394.4], [1626205500, -394.4], [1626206400, -394.5], [1626207300, -394.5], [1626208200, -394.2], [1626209100, -394.3], [1626210000, -394.2], [1626210900, -394.6], [1626211800, -394.7], [1626212700, -394.7], [1626213600, -394.5], [1626214500, -394.5], [1626215400, -394.3], [1626216300, -394.2], [1626217200, -394.2], [1626218100, -394.1], [1626219000, -393.3], [1626219900, -393.8], [1626220800, -393.8], [1626221700, -393.9], [1626222600, -393.9], [1626223500, -393.8], [1626224400, -394.1], [1626225300, -394.2], [1626226200, -394.3], [1626227100, -394.2], [1626228000, -394.3], [1626228900, -394.2], [1626229800, -394.3], [1626230700, -394.4], [1626231600, -394.3], [1626232500, -394.3], [1626233400, -394.4], [1626234300, -394.3], [1626235200, -394.4], [1626236100, -394.2], [1626237000, -394.3], [1626237900, -394.6], [1626238800, -394.7], [1626239700, -394.6], [1626240600, -394.6], [1626241500, -394.6], [1626242400, -394.5], [1626243300, -394.2], [1626244200, -394.2], [1626245100, -394], [1626246000, -393.6], [1626246900, -393.9], [1626247800, -393.9], [1626248700, -393.9], [1626249600, -394], [1626250500, -394], [1626251400, -394.1]],\n'battery1': [[1626165900, 99], [1626166800, 98.9], [1626167700, 99], [1626168600, 99], [1626169500, 98.9], [1626170400, 98.9], [1626171300, 98.9], [1626172200, 98.9], [1626173100, 98.9], [1626174000, 98.9], [1626174900, 98.9], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 98.9], [1626183900, 98.9], [1626184800, 98.9], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 98.9], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 98.9], [1626193800, 98.9], [1626194700, 98.9], [1626195600, 98.9], [1626196500, 98.9], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.8], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 98.9], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 99], [1626211800, 99], [1626212700, 98.9], [1626213600, 98.9], [1626214500, 98.9], [1626215400, 98.9], [1626216300, 98.9], [1626217200, 98.9], [1626218100, 98.9], [1626219000, 98.8], [1626219900, 98.9], [1626220800, 98.9], [1626221700, 99], [1626222600, 99], [1626223500, 98.9], [1626224400, 99], [1626225300, 99], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 99], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 98.9], [1626247800, 99], [1626248700, 99], [1626249600, 99], [1626250500, 98.9], [1626251400, 98.9]],\n'battery2': [[1626165900, 99], [1626166800, 99], [1626167700, 99], [1626168600, 99], [1626169500, 98.9], [1626170400, 98.9], [1626171300, 98.9], [1626172200, 98.9], [1626173100, 98.9], [1626174000, 99], [1626174900, 99], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 99], [1626183900, 99], [1626184800, 98.9], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 98.9], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 98.9], [1626193800, 98.9], [1626194700, 98.9], [1626195600, 98.9], [1626196500, 98.9], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 98.9], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 98.9], [1626211800, 98.9], [1626212700, 98.9], [1626213600, 98.9], [1626214500, 98.9], [1626215400, 98.9], [1626216300, 98.9], [1626217200, 98.9], [1626218100, 98.9], [1626219000, 98.8], [1626219900, 98.9], [1626220800, 98.9], [1626221700, 98.9], [1626222600, 98.9], [1626223500, 98.9], [1626224400, 98.9], [1626225300, 98.9], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 98.9], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 99], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 98.9], [1626243300, 98.9], [1626244200, 98.9], [1626245100, 98.9], [1626246000, 98.8], [1626246900, 98.9], [1626247800, 98.9], [1626248700, 98.9], [1626249600, 99], [1626250500, 98.9], [1626251400, 98.9]],\n'heating_pump1': [[1626165900, 41.2], [1626166800, 39.6], [1626167700, 63.1], [1626168600, 63.2], [1626169500, 62.2], [1626170400, 60.6], [1626171300, 60.8], [1626172200, 60.1], [1626173100, 60.4], [1626174000, 60.9], [1626174900, 62.3], [1626175800, 61.9], [1626176700, 60.8], [1626177600, 59.6], [1626178500, 59.3], [1626179400, 59.1], [1626180300, 59], [1626181200, 56.1], [1626182100, 51.8], [1626183000, 46.8], [1626183900, 45.7], [1626184800, 45.9], [1626185700, 48.4], [1626186600, 49.3], [1626187500, 50.3], [1626188400, 50.8], [1626189300, 51.5], [1626190200, 49.9], [1626191100, 49.7], [1626192000, 50.7], [1626192900, 50.4], [1626193800, 51.9], [1626194700, 52.7], [1626195600, 53.1], [1626196500, 53.4], [1626197400, 52.6], [1626198300, 52.8], [1626199200, 52.2], [1626200100, 48.8], [1626201000, 43], [1626201900, 39.9], [1626202800, 38.3], [1626203700, 39.7], [1626204600, 39.4], [1626205500, 41.1], [1626206400, 42.2], [1626207300, 42.5], [1626208200, 43.1], [1626209100, 42.7], [1626210000, 42.2], [1626210900, 41.6], [1626211800, 40.4], [1626212700, 39.8], [1626213600, 38], [1626214500, 34.9], [1626215400, 33.8], [1626216300, 30.5], [1626217200, 30.2], [1626218100, 31.4], [1626219000, 34.9], [1626219900, 39.5], [1626220800, 44.7], [1626221700, 48.1], [1626222600, 54.1], [1626223500, 53.2], [1626224400, 52.6], [1626225300, 51.9], [1626226200, 56.9], [1626227100, 63.9], [1626228000, 69.2], [1626228900, 70.2], [1626229800, 71], [1626230700, 70.9], [1626231600, 72], [1626232500, 72.1], [1626233400, 73.6], [1626234300, 75.5], [1626235200, 78.6], [1626236100, 76.1], [1626237000, 72.5], [1626237900, 69.9], [1626238800, 66.3], [1626239700, 64.3], [1626240600, 61.1], [1626241500, 55.3], [1626242400, 51], [1626243300, 48.5], [1626244200, 50.9], [1626245100, 59.8], [1626246000, 64.3], [1626246900, 68.8], [1626247800, 71.2], [1626248700, 72.8], [1626249600, 70.9], [1626250500, 67.8], [1626251400, 65.4]],\n'heating_pump2': [[1626165900, 42.8], [1626166800, 42.9], [1626167700, 62.4], [1626168600, 63.2], [1626169500, 62], [1626170400, 60.4], [1626171300, 60.3], [1626172200, 59.9], [1626173100, 58.8], [1626174000, 59.9], [1626174900, 59.4], [1626175800, 58.8], [1626176700, 58.1], [1626177600, 57.8], [1626178500, 57.3], [1626179400, 57.8], [1626180300, 57.5], [1626181200, 55.8], [1626182100, 53.7], [1626183000, 52.5], [1626183900, 52.9], [1626184800, 52.2], [1626185700, 54], [1626186600, 53.8], [1626187500, 53.2], [1626188400, 52.5], [1626189300, 52.3], [1626190200, 50.4], [1626191100, 50.5], [1626192000, 50.1], [1626192900, 52.2], [1626193800, 50.3], [1626194700, 50.8], [1626195600, 51.9], [1626196500, 51.8], [1626197400, 51.1], [1626198300, 51.3], [1626199200, 49.6], [1626200100, 46.7], [1626201000, 41.2], [1626201900, 37.7], [1626202800, 36.9], [1626203700, 36.4], [1626204600, 35.9], [1626205500, 36.2], [1626206400, 36.6], [1626207300, 35.8], [1626208200, 36], [1626209100, 35.4], [1626210000, 36.2], [1626210900, 36.3], [1626211800, 37.5], [1626212700, 37.4], [1626213600, 39.8], [1626214500, 36.4], [1626215400, 34.4], [1626216300, 32], [1626217200, 30.7], [1626218100, 31.3], [1626219000, 34.1], [1626219900, 40.3], [1626220800, 44.8], [1626221700, 46.2], [1626222600, 51.7], [1626223500, 50.1], [1626224400, 49.4], [1626225300, 49.5], [1626226200, 55.1], [1626227100, 64.8], [1626228000, 68.1], [1626228900, 73.3], [1626229800, 73.5], [1626230700, 73.9], [1626231600, 73.8], [1626232500, 73.9], [1626233400, 74.9], [1626234300, 76.3], [1626235200, 79.1], [1626236100, 77.1], [1626237000, 74.6], [1626237900, 72.9], [1626238800, 71.2], [1626239700, 69.4], [1626240600, 62], [1626241500, 58.8], [1626242400, 54.6], [1626243300, 53.8], [1626244200, 55.2], [1626245100, 60.6], [1626246000, 64.2], [1626246900, 67.3], [1626247800, 67.8], [1626248700, 69.1], [1626249600, 68.2], [1626250500, 67.9], [1626251400, 65.4]],\n'electric_heating1': [[1626165900, 98.8], [1626166800, 98.9], [1626167700, 98.9], [1626168600, 98.9], [1626169500, 98.8], [1626170400, 98.8], [1626171300, 98.7], [1626172200, 98.8], [1626173100, 98.7], [1626174000, 98.8], [1626174900, 98.8], [1626175800, 98.7], [1626176700, 98.7], [1626177600, 98.7], [1626178500, 98.7], [1626179400, 98.7], [1626180300, 98.7], [1626181200, 98.7], [1626182100, 98.7], [1626183000, 98.7], [1626183900, 98.7], [1626184800, 98.7], [1626185700, 98.6], [1626186600, 98.6], [1626187500, 98.7], [1626188400, 98.7], [1626189300, 98.7], [1626190200, 98.7], [1626191100, 98.7], [1626192000, 98.7], [1626192900, 98.8], [1626193800, 98.7], [1626194700, 98.8], [1626195600, 98.8], [1626196500, 98.8], [1626197400, 98.8], [1626198300, 98.8], [1626199200, 98.8], [1626200100, 98.8], [1626201000, 98.7], [1626201900, 98.7], [1626202800, 98.7], [1626203700, 98.7], [1626204600, 98.8], [1626205500, 98.8], [1626206400, 98.8], [1626207300, 98.8], [1626208200, 98.7], [1626209100, 98.7], [1626210000, 98.6], [1626210900, 98.7], [1626211800, 98.8], [1626212700, 98.8], [1626213600, 98.7], [1626214500, 98.8], [1626215400, 98.7], [1626216300, 98.7], [1626217200, 98.7], [1626218100, 98.7], [1626219000, 98.6], [1626219900, 98.7], [1626220800, 98.7], [1626221700, 98.7], [1626222600, 98.7], [1626223500, 98.7], [1626224400, 98.8], [1626225300, 98.8], [1626226200, 98.8], [1626227100, 98.8], [1626228000, 98.8], [1626228900, 98.8], [1626229800, 98.8], [1626230700, 98.8], [1626231600, 98.8], [1626232500, 98.8], [1626233400, 98.9], [1626234300, 98.9], [1626235200, 98.9], [1626236100, 98.8], [1626237000, 98.8], [1626237900, 98.8], [1626238800, 98.8], [1626239700, 98.8], [1626240600, 98.8], [1626241500, 98.8], [1626242400, 98.8], [1626243300, 98.8], [1626244200, 98.8], [1626245100, 98.8], [1626246000, 98.7], [1626246900, 98.8], [1626247800, 98.8], [1626248700, 98.8], [1626249600, 98.8], [1626250500, 98.8], [1626251400, 98.8]],\n'electric_heating2': [[1626165900, 98.9], [1626166800, 98.9], [1626167700, 98.9], [1626168600, 98.9], [1626169500, 98.8], [1626170400, 98.8], [1626171300, 98.7], [1626172200, 98.7], [1626173100, 98.7], [1626174000, 98.8], [1626174900, 98.8], [1626175800, 98.8], [1626176700, 98.8], [1626177600, 98.8], [1626178500, 98.8], [1626179400, 98.8], [1626180300, 98.8], [1626181200, 98.8], [1626182100, 98.8], [1626183000, 98.8], [1626183900, 98.8], [1626184800, 98.8], [1626185700, 98.7], [1626186600, 98.7], [1626187500, 98.7], [1626188400, 98.7], [1626189300, 98.7], [1626190200, 98.7], [1626191100, 98.7], [1626192000, 98.8], [1626192900, 98.8], [1626193800, 98.8], [1626194700, 98.8], [1626195600, 98.7], [1626196500, 98.7], [1626197400, 98.8], [1626198300, 98.7], [1626199200, 98.7], [1626200100, 98.7], [1626201000, 98.7], [1626201900, 98.7], [1626202800, 98.7], [1626203700, 98.7], [1626204600, 98.9], [1626205500, 98.8], [1626206400, 98.8], [1626207300, 98.8], [1626208200, 98.7], [1626209100, 98.7], [1626210000, 98.7], [1626210900, 98.8], [1626211800, 98.9], [1626212700, 98.8], [1626213600, 98.8], [1626214500, 98.8], [1626215400, 98.8], [1626216300, 98.8], [1626217200, 98.8], [1626218100, 98.8], [1626219000, 98.7], [1626219900, 98.7], [1626220800, 98.7], [1626221700, 98.8], [1626222600, 98.8], [1626223500, 98.7], [1626224400, 98.8], [1626225300, 98.8], [1626226200, 98.8], [1626227100, 98.8], [1626228000, 98.8], [1626228900, 98.8], [1626229800, 98.8], [1626230700, 98.8], [1626231600, 98.8], [1626232500, 98.8], [1626233400, 98.8], [1626234300, 98.9], [1626235200, 98.9], [1626236100, 98.8], [1626237000, 98.8], [1626237900, 98.9], [1626238800, 98.9], [1626239700, 98.9], [1626240600, 98.9], [1626241500, 98.9], [1626242400, 98.8], [1626243300, 98.8], [1626244200, 98.8], [1626245100, 98.8], [1626246000, 98.7], [1626246900, 98.8], [1626247800, 98.9], [1626248700, 98.9], [1626249600, 98.8], [1626250500, 98.8], [1626251400, 98.8]],\n'charge_station1': [[1626165900, 99.7], [1626166800, 99.7], [1626167700, 99.7], [1626168600, 99.7], [1626169500, 99.7], [1626170400, 99.7], [1626171300, 99.7], [1626172200, 99.7], [1626173100, 99.7], [1626174000, 99.7], [1626174900, 99.7], [1626175800, 99.7], [1626176700, 99.7], [1626177600, 99.7], [1626178500, 99.7], [1626179400, 99.7], [1626180300, 99.7], [1626181200, 99.7], [1626182100, 99.7], [1626183000, 99.7], [1626183900, 99.7], [1626184800, 99.7], [1626185700, 99.7], [1626186600, 99.7], [1626187500, 99.7], [1626188400, 99.7], [1626189300, 99.7], [1626190200, 99.7], [1626191100, 99.7], [1626192000, 99.7], [1626192900, 99.7], [1626193800, 99.7], [1626194700, 99.7], [1626195600, 99.7], [1626196500, 99.7], [1626197400, 99.7], [1626198300, 99.7], [1626199200, 99.7], [1626200100, 99.7], [1626201000, 99.7], [1626201900, 99.7], [1626202800, 99.7], [1626203700, 99.7], [1626204600, 99.7], [1626205500, 99.7], [1626206400, 99.7], [1626207300, 99.7], [1626208200, 99.7], [1626209100, 99.7], [1626210000, 99.7], [1626210900, 99.7], [1626211800, 99.7], [1626212700, 99.7], [1626213600, 99.7], [1626214500, 99.7], [1626215400, 99.7], [1626216300, 99.7], [1626217200, 99.7], [1626218100, 99.7], [1626219000, 99.7], [1626219900, 99.7], [1626220800, 99.7], [1626221700, 99.7], [1626222600, 99.7], [1626223500, 99.7], [1626224400, 99.7], [1626225300, 99.7], [1626226200, 99.7], [1626227100, 99.8], [1626228000, 99.7], [1626228900, 99.7], [1626229800, 99.7], [1626230700, 99.8], [1626231600, 99.7], [1626232500, 99.7], [1626233400, 99.7], [1626234300, 99.7], [1626235200, 99.7], [1626236100, 99.7], [1626237000, 99.7], [1626237900, 99.8], [1626238800, 99.8], [1626239700, 99.7], [1626240600, 99.7], [1626241500, 99.7], [1626242400, 99.7], [1626243300, 99.7], [1626244200, 99.7], [1626245100, 99.7], [1626246000, 99.7], [1626246900, 99.7], [1626247800, 99.7], [1626248700, 99.7], [1626249600, 99.7], [1626250500, 99.7], [1626251400, 99.7]],\n'charge_station2': [[1626165900, 99.7], [1626166800, 99.7], [1626167700, 99.7], [1626168600, 99.7], [1626169500, 99.7], [1626170400, 99.7], [1626171300, 99.7], [1626172200, 99.7], [1626173100, 99.7], [1626174000, 99.7], [1626174900, 99.7], [1626175800, 99.7], [1626176700, 99.7], [1626177600, 99.7], [1626178500, 99.7], [1626179400, 99.7], [1626180300, 99.7], [1626181200, 99.7], [1626182100, 99.7], [1626183000, 99.7], [1626183900, 99.7], [1626184800, 99.7], [1626185700, 99.7], [1626186600, 99.7], [1626187500, 99.7], [1626188400, 99.7], [1626189300, 99.7], [1626190200, 99.7], [1626191100, 99.7], [1626192000, 99.7], [1626192900, 99.7], [1626193800, 99.7], [1626194700, 99.7], [1626195600, 99.7], [1626196500, 99.7], [1626197400, 99.7], [1626198300, 99.7], [1626199200, 99.7], [1626200100, 99.7], [1626201000, 99.7], [1626201900, 99.7], [1626202800, 99.7], [1626203700, 99.7], [1626204600, 99.8], [1626205500, 99.8], [1626206400, 99.8], [1626207300, 99.7], [1626208200, 99.7], [1626209100, 99.7], [1626210000, 99.7], [1626210900, 99.7], [1626211800, 99.7], [1626212700, 99.7], [1626213600, 99.7], [1626214500, 99.7], [1626215400, 99.7], [1626216300, 99.7], [1626217200, 99.7], [1626218100, 99.7], [1626219000, 99.7], [1626219900, 99.7], [1626220800, 99.7], [1626221700, 99.7], [1626222600, 99.7], [1626223500, 99.7], [1626224400, 99.7], [1626225300, 99.7], [1626226200, 99.7], [1626227100, 99.8], [1626228000, 99.8], [1626228900, 99.7], [1626229800, 99.7], [1626230700, 99.8], [1626231600, 99.7], [1626232500, 99.7], [1626233400, 99.7], [1626234300, 99.7], [1626235200, 99.7], [1626236100, 99.7], [1626237000, 99.7], [1626237900, 99.8], [1626238800, 99.8], [1626239700, 99.8], [1626240600, 99.7], [1626241500, 99.7], [1626242400, 99.7], [1626243300, 99.7], [1626244200, 99.7], [1626245100, 99.7], [1626246000, 99.7], [1626246900, 99.7], [1626247800, 99.7], [1626248700, 99.7], [1626249600, 99.7], [1626250500, 99.7], [1626251400, 99.7]],\n'big_consumer1': [[1626165900, 95.7], [1626166800, 95.7], [1626167700, 95.6], [1626168600, 95.7], [1626169500, 95.5], [1626170400, 95.1], [1626171300, 94.6], [1626172200, 95], [1626173100, 95.1], [1626174000, 95.4], [1626174900, 95.4], [1626175800, 95.2], [1626176700, 95.2], [1626177600, 95.2], [1626178500, 95.1], [1626179400, 95], [1626180300, 95.1], [1626181200, 94.9], [1626182100, 94.9], [1626183000, 94.8], [1626183900, 94.9], [1626184800, 94.9], [1626185700, 94.8], [1626186600, 94.7], [1626187500, 94.7], [1626188400, 94.5], [1626189300, 94.3], [1626190200, 94], [1626191100, 94], [1626192000, 94.1], [1626192900, 94.1], [1626193800, 94], [1626194700, 94.2], [1626195600, 94.2], [1626196500, 94.2], [1626197400, 94.2], [1626198300, 94.3], [1626199200, 94.1], [1626200100, 94.1], [1626201000, 94.2], [1626201900, 94.5], [1626202800, 94.9], [1626203700, 95.3], [1626204600, 95.5], [1626205500, 95.6], [1626206400, 95.7], [1626207300, 95.7], [1626208200, 95.4], [1626209100, 95.5], [1626210000, 95.5], [1626210900, 95.7], [1626211800, 95.8], [1626212700, 95.9], [1626213600, 95.5], [1626214500, 95.9], [1626215400, 95.7], [1626216300, 95.3], [1626217200, 95.6], [1626218100, 95.7], [1626219000, 95.4], [1626219900, 95.7], [1626220800, 95.8], [1626221700, 96.1], [1626222600, 96.1], [1626223500, 96], [1626224400, 96.1], [1626225300, 96.3], [1626226200, 96.4], [1626227100, 96.4], [1626228000, 96.3], [1626228900, 96.5], [1626229800, 96.5], [1626230700, 96.6], [1626231600, 96.5], [1626232500, 96.6], [1626233400, 96.6], [1626234300, 96.5], [1626235200, 96.5], [1626236100, 96.4], [1626237000, 96.3], [1626237900, 96.3], [1626238800, 96.3], [1626239700, 96.1], [1626240600, 95.9], [1626241500, 95.7], [1626242400, 95.5], [1626243300, 95.6], [1626244200, 95.4], [1626245100, 95.6], [1626246000, 95.1], [1626246900, 94.7], [1626247800, 95.5], [1626248700, 95.8], [1626249600, 95.9], [1626250500, 95.7], [1626251400, 95.5]],\n'big_consumer2': [[1626165900, 95.6], [1626166800, 95.7], [1626167700, 95.5], [1626168600, 95.4], [1626169500, 95], [1626170400, 94.9], [1626171300, 94.4], [1626172200, 94.7], [1626173100, 94.9], [1626174000, 95.3], [1626174900, 95.5], [1626175800, 95.4], [1626176700, 95.1], [1626177600, 95], [1626178500, 95.1], [1626179400, 95.1], [1626180300, 95], [1626181200, 94.8], [1626182100, 94.7], [1626183000, 94.5], [1626183900, 94.6], [1626184800, 94.5], [1626185700, 94.1], [1626186600, 94], [1626187500, 93.9], [1626188400, 94.1], [1626189300, 93.8], [1626190200, 93.5], [1626191100, 93.4], [1626192000, 93.4], [1626192900, 93.6], [1626193800, 93.6], [1626194700, 93.9], [1626195600, 93.9], [1626196500, 94], [1626197400, 93.9], [1626198300, 94], [1626199200, 93.9], [1626200100, 93.8], [1626201000, 93.8], [1626201900, 93.9], [1626202800, 94.6], [1626203700, 95.1], [1626204600, 95.4], [1626205500, 95.5], [1626206400, 95.7], [1626207300, 95.6], [1626208200, 95.5], [1626209100, 95.7], [1626210000, 95.7], [1626210900, 95.8], [1626211800, 96], [1626212700, 96], [1626213600, 95.4], [1626214500, 95.9], [1626215400, 95.8], [1626216300, 95.4], [1626217200, 95.4], [1626218100, 95.6], [1626219000, 95.1], [1626219900, 95.5], [1626220800, 95.6], [1626221700, 95.7], [1626222600, 95.7], [1626223500, 95.5], [1626224400, 95.9], [1626225300, 96.1], [1626226200, 96.1], [1626227100, 96.1], [1626228000, 96.1], [1626228900, 96.3], [1626229800, 96.3], [1626230700, 96.3], [1626231600, 96.2], [1626232500, 96.3], [1626233400, 96.3], [1626234300, 96], [1626235200, 96.1], [1626236100, 95.8], [1626237000, 95.8], [1626237900, 96], [1626238800, 96.1], [1626239700, 95.9], [1626240600, 95.7], [1626241500, 95.7], [1626242400, 95.4], [1626243300, 95.7], [1626244200, 95.8], [1626245100, 95.7], [1626246000, 95.2], [1626246900, 94.9], [1626247800, 95.4], [1626248700, 95.6], [1626249600, 95.3], [1626250500, 95.3], [1626251400, 95.1]],\n'house1': [[1626165900, 0.8], [1626166800, 0.8], [1626167700, 0.8], [1626168600, 0.8], [1626169500, 0.8], [1626170400, 0.8], [1626171300, 0.8], [1626172200, 0.8], [1626173100, 0.8], [1626174000, 0.8], [1626174900, 0.8], [1626175800, 0.8], [1626176700, 0.7], [1626177600, 0.8], [1626178500, 0.8], [1626179400, 0.8], [1626180300, 0.8], [1626181200, 0.8], [1626182100, 0.8], [1626183000, 0.9], [1626183900, 0.9], [1626184800, 0.9], [1626185700, 1], [1626186600, 1], [1626187500, 1], [1626188400, 1], [1626189300, 0.9], [1626190200, 0.9], [1626191100, 1], [1626192000, 1.1], [1626192900, 1], [1626193800, 1], [1626194700, 0.9], [1626195600, 0.9], [1626196500, 0.9], [1626197400, 0.9], [1626198300, 0.9], [1626199200, 0.9], [1626200100, 0.8], [1626201000, 0.8], [1626201900, 0.8], [1626202800, 0.9], [1626203700, 0.8], [1626204600, 0.8], [1626205500, 0.8], [1626206400, 0.7], [1626207300, 0.7], [1626208200, 0.7], [1626209100, 0.7], [1626210000, 0.7], [1626210900, 0.6], [1626211800, 0.6], [1626212700, 0.6], [1626213600, 0.6], [1626214500, 0.6], [1626215400, 0.7], [1626216300, 0.7], [1626217200, 0.7], [1626218100, 0.8], [1626219000, 1.1], [1626219900, 1], [1626220800, 1], [1626221700, 1], [1626222600, 1], [1626223500, 1], [1626224400, 0.9], [1626225300, 0.9], [1626226200, 0.9], [1626227100, 0.9], [1626228000, 0.9], [1626228900, 0.9], [1626229800, 0.8], [1626230700, 0.8], [1626231600, 0.8], [1626232500, 0.8], [1626233400, 0.9], [1626234300, 0.9], [1626235200, 0.9], [1626236100, 0.9], [1626237000, 0.8], [1626237900, 0.7], [1626238800, 0.7], [1626239700, 0.7], [1626240600, 0.7], [1626241500, 0.7], [1626242400, 0.7], [1626243300, 0.8], [1626244200, 0.9], [1626245100, 0.9], [1626246000, 1], [1626246900, 0.9], [1626247800, 1], [1626248700, 1], [1626249600, 1], [1626250500, 1], [1626251400, 0.9]],\n'house2': [[1626165900, 0.8], [1626166800, 0.8], [1626167700, 0.8], [1626168600, 0.8], [1626169500, 0.8], [1626170400, 0.8], [1626171300, 0.8], [1626172200, 0.9], [1626173100, 0.9], [1626174000, 0.8], [1626174900, 0.8], [1626175800, 0.8], [1626176700, 0.8], [1626177600, 0.8], [1626178500, 0.8], [1626179400, 0.8], [1626180300, 0.8], [1626181200, 0.8], [1626182100, 0.9], [1626183000, 0.9], [1626183900, 0.9], [1626184800, 1], [1626185700, 1], [1626186600, 1], [1626187500, 1], [1626188400, 1], [1626189300, 0.9], [1626190200, 0.9], [1626191100, 0.9], [1626192000, 1.1], [1626192900, 0.9], [1626193800, 0.9], [1626194700, 0.9], [1626195600, 0.9], [1626196500, 0.9], [1626197400, 0.9], [1626198300, 0.9], [1626199200, 0.9], [1626200100, 0.9], [1626201000, 0.8], [1626201900, 0.8], [1626202800, 0.9], [1626203700, 0.9], [1626204600, 0.8], [1626205500, 0.8], [1626206400, 0.8], [1626207300, 0.7], [1626208200, 0.7], [1626209100, 0.7], [1626210000, 0.7], [1626210900, 0.7], [1626211800, 0.7], [1626212700, 0.7], [1626213600, 0.7], [1626214500, 0.7], [1626215400, 0.8], [1626216300, 0.8], [1626217200, 0.8], [1626218100, 0.9], [1626219000, 1.1], [1626219900, 1], [1626220800, 1], [1626221700, 1], [1626222600, 1], [1626223500, 1], [1626224400, 0.9], [1626225300, 0.9], [1626226200, 0.9], [1626227100, 0.9], [1626228000, 0.9], [1626228900, 0.9], [1626229800, 0.8], [1626230700, 0.8], [1626231600, 0.9], [1626232500, 0.9], [1626233400, 0.9], [1626234300, 0.9], [1626235200, 0.8], [1626236100, 0.8], [1626237000, 0.8], [1626237900, 0.7], [1626238800, 0.7], [1626239700, 0.7], [1626240600, 0.7], [1626241500, 0.7], [1626242400, 0.7], [1626243300, 0.9], [1626244200, 0.9], [1626245100, 1], [1626246000, 1], [1626246900, 1], [1626247800, 1], [1626248700, 1], [1626249600, 1], [1626250500, 0.9], [1626251400, 0.9]],\n'consumption': [[1626165900, 338.9], [1626166800, 339], [1626167700, 425], [1626168600, 427.1], [1626169500, 425], [1626170400, 425], [1626171300, 427.5], [1626172200, 428.8], [1626173100, 430.1], [1626174000, 431.3], [1626174900, 434.2], [1626175800, 435], [1626176700, 433.5], [1626177600, 433.9], [1626178500, 434.5], [1626179400, 436.3], [1626180300, 436.3], [1626181200, 435.9], [1626182100, 436.3], [1626183000, 436.7], [1626183900, 438], [1626184800, 438.2], [1626185700, 438], [1626186600, 437.7], [1626187500, 437], [1626188400, 437.1], [1626189300, 437.3], [1626190200, 436.6], [1626191100, 434.8], [1626192000, 434.9], [1626192900, 434.7], [1626193800, 434.5], [1626194700, 434.6], [1626195600, 434], [1626196500, 433.7], [1626197400, 432.7], [1626198300, 432.3], [1626199200, 431.2], [1626200100, 430], [1626201000, 430], [1626201900, 429.6], [1626202800, 428.1], [1626203700, 428.3], [1626204600, 430.7], [1626205500, 430], [1626206400, 430.6], [1626207300, 430.3], [1626208200, 429.7], [1626209100, 429.7], [1626210000, 429.6], [1626210900, 429.8], [1626211800, 428.7], [1626212700, 428.2], [1626213600, 430.1], [1626214500, 427.2], [1626215400, 427.8], [1626216300, 428.7], [1626217200, 426.7], [1626218100, 424.9], [1626219000, 425.8], [1626219900, 426.5], [1626220800, 425.9], [1626221700, 424.6], [1626222600, 423.4], [1626223500, 422], [1626224400, 420.2], [1626225300, 420.2], [1626226200, 420.2], [1626227100, 420.6], [1626228000, 420.9], [1626228900, 421.1], [1626229800, 420], [1626230700, 418.9], [1626231600, 419.5], [1626232500, 420.7], [1626233400, 423.9], [1626234300, 426.4], [1626235200, 429], [1626236100, 429.4], [1626237000, 428.3], [1626237900, 427.7], [1626238800, 427.8], [1626239700, 427.6], [1626240600, 427.5], [1626241500, 427.8], [1626242400, 427.5], [1626243300, 429], [1626244200, 432], [1626245100, 432.7], [1626246000, 432], [1626246900, 430.2], [1626247800, 426.8], [1626248700, 423.5], [1626249600, 422.9], [1626250500, 419], [1626251400, 418.6]],\n'generator1': [[1626165900, 2], [1626166800, 2.1], [1626167700, 2.1], [1626168600, 2.1], [1626169500, 2.1], [1626170400, 2.2], [1626171300, 2.2], [1626172200, 2.4], [1626173100, 2.2], [1626174000, 2.1], [1626174900, 2.1], [1626175800, 2], [1626176700, 1.9], [1626177600, 1.9], [1626178500, 1.9], [1626179400, 1.9], [1626180300, 1.9], [1626181200, 2], [1626182100, 2], [1626183000, 2.2], [1626183900, 2.3], [1626184800, 2.5], [1626185700, 2.5], [1626186600, 2.6], [1626187500, 2.5], [1626188400, 2.5], [1626189300, 2.5], [1626190200, 2.4], [1626191100, 2.7], [1626192000, 3], [1626192900, 2.7], [1626193800, 2.5], [1626194700, 2.4], [1626195600, 2.5], [1626196500, 2.5], [1626197400, 2.5], [1626198300, 2.5], [1626199200, 2.5], [1626200100, 2.2], [1626201000, 2.2], [1626201900, 2.2], [1626202800, 2.2], [1626203700, 2.2], [1626204600, 2], [1626205500, 2], [1626206400, 1.9], [1626207300, 1.8], [1626208200, 1.8], [1626209100, 1.8], [1626210000, 1.7], [1626210900, 1.7], [1626211800, 1.7], [1626212700, 1.6], [1626213600, 1.6], [1626214500, 1.7], [1626215400, 2.1], [1626216300, 2], [1626217200, 2], [1626218100, 2.2], [1626219000, 3.1], [1626219900, 2.7], [1626220800, 2.8], [1626221700, 2.8], [1626222600, 2.8], [1626223500, 2.9], [1626224400, 2.4], [1626225300, 2.3], [1626226200, 2.4], [1626227100, 2.4], [1626228000, 2.4], [1626228900, 2.4], [1626229800, 2.2], [1626230700, 2.1], [1626231600, 2.1], [1626232500, 2.1], [1626233400, 2.1], [1626234300, 2.2], [1626235200, 2.3], [1626236100, 2.3], [1626237000, 2.1], [1626237900, 1.9], [1626238800, 1.9], [1626239700, 1.9], [1626240600, 1.8], [1626241500, 1.9], [1626242400, 2], [1626243300, 2.1], [1626244200, 2.2], [1626245100, 2.2], [1626246000, 2.4], [1626246900, 2.5], [1626247800, 2.6], [1626248700, 2.6], [1626249600, 2.4], [1626250500, 2.3], [1626251400, 2.2]],\n'generator2': [[1626165900, 0], [1626166800, 0], [1626167700, 0], [1626168600, 0], [1626169500, 0], [1626170400, 0], [1626171300, 0], [1626172200, 0], [1626173100, 0], [1626174000, 0], [1626174900, 0.1], [1626175800, 0.1], [1626176700, 0.1], [1626177600, 0.1], [1626178500, 0.1], [1626179400, 0.1], [1626180300, 0.1], [1626181200, 0.1], [1626182100, 0.1], [1626183000, 0.1], [1626183900, 0.1], [1626184800, 0.1], [1626185700, 0.1], [1626186600, 0.1], [1626187500, 0.2], [1626188400, 0.2], [1626189300, 0.2], [1626190200, 0.1], [1626191100, 0.1], [1626192000, 0.1], [1626192900, 0.1], [1626193800, 0.1], [1626194700, 0.1], [1626195600, 0.1], [1626196500, 0.1], [1626197400, 0], [1626198300, 0], [1626199200, 0], [1626200100, 0], [1626201000, 0], [1626201900, 0], [1626202800, 0.1], [1626203700, 0.1], [1626204600, 0.1], [1626205500, 0.1], [1626206400, 0.1], [1626207300, 0.1], [1626208200, 0.1], [1626209100, 0], [1626210000, 0], [1626210900, 0], [1626211800, 0], [1626212700, 0], [1626213600, 0], [1626214500, 0], [1626215400, 0], [1626216300, 0], [1626217200, 0], [1626218100, 0], [1626219000, 0], [1626219900, 0], [1626220800, 0], [1626221700, 0], [1626222600, 0], [1626223500, 0], [1626224400, 0], [1626225300, 0], [1626226200, 0], [1626227100, 0], [1626228000, 0], [1626228900, 0], [1626229800, 0], [1626230700, 0], [1626231600, 0], [1626232500, 0], [1626233400, 0], [1626234300, 0], [1626235200, 0], [1626236100, 0], [1626237000, 0], [1626237900, 0], [1626238800, 0], [1626239700, 0], [1626240600, 0], [1626241500, 0], [1626242400, 0], [1626243300, 0.1], [1626244200, 0.1], [1626245100, 0.1], [1626246000, 0.1], [1626246900, 0.1], [1626247800, 0.2], [1626248700, 0.3], [1626249600, 0.4], [1626250500, 0.3], [1626251400, 0.3]],\n};\n\nexport default forecastMockData;\n\n","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport ActualView from '@/ui/components/devices/previews/devices/EMSV2/ActualView.vue';\nimport ForecastView from '@/ui/components/devices/previews/mpc/EMS/ForecastView.vue';\nimport EnergyFlowView from '@/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue';\nimport Settings from '@/ui/components/devices/previews/devices/EMSV2/Settings.vue';\nimport EMSCharts from '@/ui/components/devices/previews/devices/EMSV2/charts/index.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport forecastMockData from '@/ui/components/devices/previews/devices/EMSV2/forecastMockData';\nimport energyViewMappingMock from '@/ui/components/devices/previews/mockObjects/energyViewObject.json';\n\n@Component({\n components: {\n PreviewActions,\n DeviceDescription,\n SettingsView,\n ShowEventDotMock,\n TimeSlider,\n ActualView,\n ForecastView,\n EnergyFlowView,\n Settings,\n EMSCharts,\n MPCLayout,\n },\n})\nexport default class EMSPreview extends Vue {\n @Prop({ default: false }) isPreviewManageModalOpen!: boolean;\n\n isSettingsView = false\n groupSlider = 0\n mpc: any = null\n localEnergyViewMappingMock = energyViewMappingMock;\n\n energyFlowContentMinHeight = '680px';\n\n forecastData = forecastMockData;\n\n chartsItems = [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.title'),\n view: 'EnergyFlow',\n },\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleSystemsCharts',\n },\n ];\n\n get description() {\n return this.$t('mlModelsDescriptions.EMS');\n }\n\n get predictedPower() {\n if (this.mpc?.data?.meta?.charts?.predictedPower) return this.mpc.data.meta.charts.predictedPower;\n else return null;\n }\n\n get energyFlowData() {\n const data: any = {};\n Object.entries(this.forecastData).forEach((system: any) => {\n if (system[0].includes('grid') || system[0].includes('battery')) {\n data[system[0]] = {\n producer: this.sum(system[1].filter((entry: any) => entry[1] < 0)),\n consumer: this.sum(system[1].filter((entry: any) => entry[1] > 0)),\n };\n } else {\n data[system[0]] = this.sum(system[1]);\n }\n });\n return data;\n }\n\n sum(arr: any) {\n let sum = 0;\n arr.forEach((entry: any) => {\n sum += entry[1];\n });\n return sum;\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async rerenderDevice() {\n this.mpc = null;\n }\n\n async created() {\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyViewPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyViewPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyViewPreview.vue?vue&type=template&id=f0320d9e&\"\nimport script from \"./EnergyViewPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyViewPreview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'GeneralSwitchV2' },\"device-icon\":\"general_switch\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-end\",staticStyle:{\"width\":\"100%\"}},[_c('SwitchMock')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class GeneralSwitchV2Preview extends Vue {\n get previewNameLang() {\n return this.$t('devices.GeneralSwitchV2.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralSwitchV2.vue?vue&type=template&id=0f5f6ff9&scoped=true&\"\nimport script from \"./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralSwitchV2.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralSwitchV2.vue?vue&type=style&index=0&id=0f5f6ff9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f5f6ff9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.$t('mlModel.EMS.previewName'), type: 'EMS' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x6h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex pt-6 fill-height flex-column flex-lg-row\"},[_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center mt-5\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('div',{staticStyle:{\"margin-top\":\"60px\"}},[_c('ActualView',{attrs:{\"data\":_vm.localEmsMappingMock}})],1)]),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('h3',{staticClass:\"text-center mt-5\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMSV2.mainView.energyFlowView')))]),_c('EnergyFlowView',{attrs:{\"data\":_vm.localEmsMappingMock}})],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts',{attrs:{\"items\":_vm.chartsItems}})]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('Settings')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport ActualView from '@/ui/components/devices/previews/devices/EMSV2/ActualView.vue';\nimport ForecastView from '@/ui/components/devices/previews/mpc/EMS/ForecastView.vue';\nimport EnergyFlowView from '@/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue';\nimport Settings from '@/ui/components/devices/previews/devices/EMSV2/Settings.vue';\nimport EMSCharts from '@/ui/components/devices/previews/devices/EMSV2/charts/index.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport emsMappingMock from '@/ui/components/devices/previews/mockObjects/emsObject.json';\nimport forecastMockData from './forecastMockData';\n\n@Component({\n components: {\n PreviewActions,\n DeviceDescription,\n SettingsView,\n ShowEventDotMock,\n TimeSlider,\n ActualView,\n ForecastView,\n EnergyFlowView,\n Settings,\n EMSCharts,\n MPCLayout,\n },\n})\nexport default class EMSPreview extends Vue {\n @Prop({ default: false }) isPreviewManageModalOpen!: boolean;\n\n isSettingsView = false\n groupSlider = 0\n mpc: any = null\n localEmsMappingMock = emsMappingMock;\n\n energyFlowContentMinHeight = '680px';\n\n forecastData = forecastMockData;\n\n chartsItems = [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.title'),\n view: 'EnergyFlow',\n },\n {\n title: this.$t('devices.EnergyView.ChartsWindow.singleSystems'),\n view: 'SingleSystemsCharts',\n },\n {\n title: this.$t('mlModel.EMS.charts.chartTimeTableConsumer.title'),\n view: 'ChartTimetableConsumer',\n },\n ];\n\n get description() {\n return this.$t('mlModelsDescriptions.EMS');\n }\n\n get predictedPower() {\n if (this.mpc?.data?.meta?.charts?.predictedPower) return this.mpc.data.meta.charts.predictedPower;\n else return null;\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async rerenderDevice() {\n this.mpc = null;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=5a439632&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Temperature from '@/ui/components/devices/previews/devices/Temperature.vue';\nimport LightDimmer from '@/ui/components/devices/previews/devices/LightDimmer.vue';\nimport LightSwitch from '@/ui/components/devices/previews/devices/LightSwitch.vue';\nimport VariableInputField from '@/ui/components/devices/previews/devices/VariableInputField.vue';\nimport VariableOutputField from '@/ui/components/devices/previews/devices/VariableOutputField.vue';\nimport LightPushButton from '@/ui/components/devices/previews/devices/LightPushButton.vue';\nimport SocketSwitch from '@/ui/components/devices/previews/devices/SocketSwitch.vue';\nimport LightRGB from '@/ui/components/devices/previews/devices/LightRGB.vue';\nimport ControlBlinds from '@/ui/components/devices/previews/devices/ControlBlinds.vue';\nimport ControlShutter from '@/ui/components/devices/previews/devices/ControlShutter.vue';\nimport ControlAwning from '@/ui/components/devices/previews/devices/ControlAwning.vue';\nimport ThermostatDigital from '@/ui/components/devices/previews/devices/ThermostatDigital.vue';\nimport ThermostatAnalog from '@/ui/components/devices/previews/devices/ThermostatAnalog.vue';\nimport AirHumiditySensor from '@/ui/components/devices/previews/devices/AirHumiditySensor.vue';\nimport BrightnessSensor from '@/ui/components/devices/previews/devices/BrightnessSensor.vue';\nimport SensorCO2 from '@/ui/components/devices/previews/devices/SensorCO2.vue';\nimport SensorLevel from '@/ui/components/devices/previews/devices/SensorLevel.vue';\nimport WeatherStation from '@/ui/components/devices/previews/devices/WeatherStation.vue';\nimport HotWaterMeter from '@/ui/components/devices/previews/devices/HotWaterMeter.vue';\nimport ColdWaterMeter from '@/ui/components/devices/previews/devices/ColdWaterMeter.vue';\nimport HeatingMeter from '@/ui/components/devices/previews/devices/HeatingMeter.vue';\nimport ElectricityMeter from '@/ui/components/devices/previews/devices/ElectricityMeter.vue';\nimport Gauge from '@/ui/components/devices/previews/devices/Gauge.vue';\nimport MotionSensor from '@/ui/components/devices/previews/devices/MotionSensor.vue';\nimport Battery from '@/ui/components/devices/previews/devices/Battery.vue';\nimport PVSystem from '@/ui/components/devices/previews/devices/PVSystem.vue';\nimport HouseConsumption from '@/ui/components/devices/previews/devices/HouseConsumption.vue';\nimport Generator from '@/ui/components/devices/previews/devices/Generator.vue';\nimport MainsConnection from '@/ui/components/devices/previews/devices/MainsConnection.vue';\nimport ElectricChargingStation from '@/ui/components/devices/previews/devices/ElectricChargingStation.vue';\nimport VariableTextOutputField from '@/ui/components/devices/previews/devices/VariableTextOutputField.vue';\nimport VariableTextInputField from '@/ui/components/devices/previews/devices/VariableTextInputField.vue';\nimport ElectronicBoiler from '@/ui/components/devices/previews/devices/ElectronicBoiler.vue';\nimport VentilatorSwitch from '@/ui/components/devices/previews/devices/VentilatorSwitch.vue';\nimport MusicSystem from '@/ui/components/devices/previews/devices/MusicSystem.vue';\nimport TV from '@/ui/components/devices/previews/devices/TV.vue';\nimport MotorWithoutVFD from '@/ui/components/devices/previews/devices/MotorWithoutVFD.vue';\nimport PumpWithoutVFD from '@/ui/components/devices/previews/devices/PumpWithoutVFD.vue';\nimport MotorWithVFD from '@/ui/components/devices/previews/devices/MotorWithVFD.vue';\nimport PumpWithVFD from '@/ui/components/devices/previews/devices/PumpWithVFD.vue';\nimport MixingValve from '@/ui/components/devices/previews/devices/MixingValve.vue';\nimport Ventilation from '@/ui/components/devices/previews/devices/Ventilation.vue';\nimport DropDownInputFieldWithVariablePreview from '@/ui/components/devices/previews/devices/DropDownInputFieldWithVariablePreview.vue';\nimport DropDownOutputFieldWithVariablePreview from '@/ui/components/devices/previews/devices/DropDownOutputFieldWithVariablePreview.vue';\nimport EnergyView from '@/ui/components/devices/previews/devices/EnergyViewPreview.vue';\nimport GeneralSwitchV2 from '@/ui/components/devices/previews/devices/GeneralSwitchV2.vue';\nimport EMSV2 from '@/ui/components/devices/previews/devices/EMSV2/index.vue';\nimport { envDeviceLibraryCategories } from '@/utils/env';\n\n@Component({\n components: {\n GeneralSwitchV2,\n EnergyView,\n DropDownInputFieldWithVariablePreview,\n DropDownOutputFieldWithVariablePreview,\n Ventilation,\n MixingValve,\n MotorWithVFD,\n PumpWithVFD,\n PumpWithoutVFD,\n MotorWithoutVFD,\n TV,\n MusicSystem,\n VentilatorSwitch,\n ElectronicBoiler,\n VariableTextInputField,\n VariableTextOutputField,\n MotionSensor,\n SensorLevel,\n SensorCO2,\n BrightnessSensor,\n AirHumiditySensor,\n Temperature,\n LightDimmer,\n LightSwitch,\n VariableOutputField,\n VariableInputField,\n LightPushButton,\n SocketSwitch,\n LightRGB,\n ControlBlinds,\n ControlShutter,\n ControlAwning,\n ThermostatDigital,\n ThermostatAnalog,\n WeatherStation,\n HotWaterMeter,\n ColdWaterMeter,\n HeatingMeter,\n ElectricityMeter,\n Gauge,\n Battery,\n PVSystem,\n HouseConsumption,\n Generator,\n MainsConnection,\n ElectricChargingStation,\n EMSV2,\n },\n})\nexport default class DevicesView extends Vue {\n tab = null\n\n get devicesLib() {\n const defaultSizes: any = { lg: '3', md: '6' };\n return [\n {\n name: 'Energy',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.energy',\n data: [\n { device: 'Battery', sizes: defaultSizes },\n { device: 'PVSystem', sizes: defaultSizes },\n { device: 'HouseConsumption', sizes: defaultSizes },\n { device: 'Generator', sizes: defaultSizes },\n { device: 'MainsConnection', sizes: defaultSizes },\n { device: 'ElectricChargingStation', sizes: defaultSizes },\n { device: 'ElectronicBoiler', sizes: defaultSizes },\n { device: '', sizes: defaultSizes },\n { device: 'EnergyView', sizes: { lg: '12', md: '12' } },\n { device: 'EMSV2', sizes: { lg: '12', md: '12' } },\n ],\n },\n {\n name: 'Gauges',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.gauges',\n data: [{ device: 'Gauge', sizes: { lg: '6', md: '12' } }],\n },\n {\n name: 'Multimedia',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.multimedia',\n data: [\n { device: 'MusicSystem', sizes: defaultSizes },\n { device: 'TV', sizes: defaultSizes },\n ],\n },\n {\n name: 'Light',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.light',\n data: [\n { device: 'LightDimmer', sizes: defaultSizes },\n { device: 'LightSwitch', sizes: defaultSizes },\n { device: 'LightRGB', sizes: defaultSizes },\n { device: 'LightPushButton', sizes: defaultSizes },\n ],\n },\n {\n name: 'Sensors',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.sensors',\n data: [\n { device: 'AirHumiditySensor', sizes: defaultSizes },\n { device: 'BrightnessSensor', sizes: defaultSizes },\n { device: 'SensorCO2', sizes: defaultSizes },\n { device: 'SensorLevel', sizes: defaultSizes },\n { device: 'Temperature', sizes: defaultSizes },\n { device: 'WeatherStation', sizes: defaultSizes },\n { device: 'MotionSensor', sizes: defaultSizes },\n ],\n },\n {\n name: 'Meters',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.meters',\n data: [\n { device: 'HotWaterMeter', sizes: defaultSizes },\n { device: 'ColdWaterMeter', sizes: defaultSizes },\n { device: 'HeatingMeter', sizes: defaultSizes },\n { device: 'ElectricityMeter', sizes: defaultSizes },\n ],\n },\n {\n name: 'Motion',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.motion',\n data: [\n { device: 'MotorWithoutVFD', sizes: defaultSizes },\n { device: 'MotorWithVFD', sizes: defaultSizes },\n { device: 'PumpWithoutVFD', sizes: defaultSizes },\n { device: 'PumpWithVFD', sizes: defaultSizes },\n { device: 'MixingValve', sizes: defaultSizes },\n ],\n },\n {\n name: 'Shading',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.shading',\n data: [\n { device: 'ControlBlinds', sizes: defaultSizes },\n { device: 'ControlShutter', sizes: defaultSizes },\n { device: 'ControlAwning', sizes: defaultSizes },\n ],\n },\n {\n name: 'Variable I/O Fields',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.variableFields',\n data: [\n { device: 'VariableOutputField', sizes: defaultSizes },\n { device: 'VariableInputField', sizes: defaultSizes },\n { device: 'VariableTextOutputField', sizes: defaultSizes },\n { device: 'VariableTextInputField', sizes: defaultSizes },\n { device: 'DropDownInputFieldWithVariablePreview', sizes: defaultSizes },\n { device: 'DropDownOutputFieldWithVariablePreview', sizes: defaultSizes },\n ],\n },\n {\n name: 'Sockets',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.sockets',\n data: [{ device: 'SocketSwitch', sizes: defaultSizes }],\n },\n {\n name: 'Heating/Cooling',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.heatingCooling',\n data: [\n { device: 'ThermostatDigital', sizes: defaultSizes },\n { device: 'ThermostatAnalog', sizes: defaultSizes },\n ],\n },\n {\n name: 'Ventilation',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.ventilation',\n data: [\n { device: 'VentilatorSwitch', sizes: defaultSizes },\n { device: 'Ventilation', sizes: defaultSizes },\n ],\n },\n {\n name: 'Switch',\n locale: 'uiComponents.devicesLibrary.buildingAutomationTabs.switch',\n data: [{ device: 'GeneralSwitchV2', sizes: defaultSizes }],\n },\n ];\n }\n\n get devicesLibFiltered() {\n return this.devicesLib.filter((e) => envDeviceLibraryCategories['Building Automation'].includes(e.name));\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DevicesView.vue?vue&type=template&id=d27bda84&\"\nimport script from \"./DevicesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DevicesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.devices),function(item,index){return _c('v-col',{key:index,attrs:{\"cols\":9}},[_c(item,{tag:\"component\",attrs:{\"is-modal\":false}})],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary device-x3h regent-preview\",style:(`${_vm.isModal ? 'height: 300px': null}`)},[_c('v-toolbar',{staticClass:\"primary\",attrs:{\"flat\":\"\"}},[_c('v-icon',[_vm._v(\"fa-laptop-house\")]),_c('v-spacer'),_c('v-toolbar-title',[_vm._v(_vm._s(_vm.previewNameLang))]),_c('v-spacer'),_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false)),_c('PreviewActions',{attrs:{\"device-type\":\"RegentLighting\"}})],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"pt-0\",attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"regent-img text-center\"},[_c('img',{style:(`${_vm.isModal ? 'height: 200px': null}`),attrs:{\"src\":require(\"../../../../assets/regent.jpg\"),\"alt\":\"regent\"}})])]),_c('v-col',{staticClass:\"pt-0 regent-content\",attrs:{\"cols\":\"4\"}},[_c('v-card',{staticClass:\"primary\"},[_c('v-toolbar',{staticClass:\"primary\",attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Stockwerk\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0 primary\",attrs:{\"dense\":\"\"}},_vm._l((_vm.stockwerk),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1),_c('v-card',[_c('v-toolbar',{staticClass:\"primary\",attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Beacon BRF1L\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0 primary\",attrs:{\"dense\":\"\"}},_vm._l((_vm.beacons),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1),_c('v-card',[_c('v-toolbar',{staticClass:\"primary\",attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-toolbar-title',[_vm._v(\"Platz BRF1L\")]),_c('v-spacer'),_c('div',{staticClass:\"pr-1\"},[_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"fa-circle\")])],1)],1),_c('v-list',{staticClass:\"pa-0 primary\",attrs:{\"dense\":\"\"}},_vm._l((_vm.platz),function(stockItem,stockIndex){return _c('v-list-item',{key:stockIndex,attrs:{\"dense\":\"\"}},[_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.name)}})],1),_c('v-list-item-content',[_c('v-list-item-title',{domProps:{\"textContent\":_vm._s(stockItem.value)}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"fa-eye\")])],1)],1)],1)}),1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\n\n@Component({\n components: {\n DeviceDescription,\n PreviewActions,\n },\n})\nexport default class RegentLightingPreview extends Vue {\n @Prop() isModal?: boolean;\n\n get description() {\n return this.$t('devicesDescriptions.RegentLighting');\n }\n get previewNameLang() {\n return this.$t('devices.RegentLighting.previewName');\n }\n\n get stockwerk() {\n return [\n { name: 'Temperatur', value: '25.5 °C' },\n { name: 'Luftfeuchtigkeit', value: '52 %rH' },\n { name: 'CO2-eq', value: '1431 ppm' },\n { name: 'TVOC', value: '998 ppb' },\n { name: 'Auslastung', value: '77 %' },\n { name: 'Warm Desks', value: '23 %' },\n { name: 'Lighting', value: '250 Lux' },\n ];\n }\n get beacons() {\n return [\n { name: 'Temperatur', value: '25 °C' },\n { name: 'Luftfeuchtigkeit', value: '0.1 % rH' },\n { name: 'Helligkeit', value: '21 Lux' },\n { name: 'CO2-eq', value: '1200 ppm' },\n { name: 'TVOC', value: '900 ppb' },\n ];\n }\n get platz() {\n return [\n { name: 'Anwesenheit', value: 'Ja' },\n { name: 'Bewegung', value: 'Nein' },\n { name: 'Warm Desk', value: 'Nein' },\n ];\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentLighting.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegentLighting.vue?vue&type=template&id=104f6b50&scoped=true&\"\nimport script from \"./RegentLighting.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegentLighting.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegentLighting.vue?vue&type=style&index=0&id=104f6b50&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"104f6b50\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport RegentLighting from '@/ui/components/devices/previews/devices/RegentLighting.vue';\n\n@Component({\n components: {\n RegentLighting,\n },\n})\nexport default class RegentsView extends Vue {\n devices = [\n 'RegentLighting',\n ]\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegentsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegentsView.vue?vue&type=template&id=32304f8f&scoped=true&\"\nimport script from \"./RegentsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegentsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32304f8f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLibFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLibFiltered),function(view,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((view.data),function(item,index){return _c('v-col',_vm._b({key:`c-${index}`},'v-col',{ ...item.sizes },false),[_c(item.device,{tag:\"component\",attrs:{\"is-modal\":false}})],1)}),1)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'TSGFrischwasser' },\"device-icon\":\"fresh_water\",\"device-size\":\"x2h\",\"is-preview\":true,\"settings-modal-width\":\"1300\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center tsg-frischwasser\"},[_c('div',{staticClass:\"pr-4\",staticStyle:{\"width\":\"50%\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('div',[_vm._v(\"Schwimmerschalter\")]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"10\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Status Reedkontakt Chemie\")]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"10\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Sensorwert Redox Sonde\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2,01\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"mV\")])])]),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Durchfluss Frischwasser\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2,01\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])])]),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Zählerstand Frischwasser\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])])])]),_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',[_vm._v(\"Durchfluss Chemie\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2,1\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])])]),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',[_vm._v(\"Zählerstand Chemie\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])])]),_c('div',{staticClass:\"d-flex pt-2\"},[_c('v-select',{attrs:{\"items\":_vm.itemsError,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Error\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"d-flex pt-2\"},[_c('v-select',{attrs:{\"items\":_vm.itemsError,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Error\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',[_vm._v(\"Reset\")]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"15\",\"button-size\":\"25\"}})],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"d-flex tsg-frischwasser-settings-view\"},[_c('div',{staticClass:\"tsg-frischwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Offset Redox Sonde\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Wert Redox\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Wert Redox\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Impulslänge Pumpe\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Pausezeit Pumpe\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '220px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Nachlaufzeit bei Dauer Ein\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\" Pumpe Dauer Ein statt Impuls \")]),_c('div',{staticClass:\"pr-3\"},[_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]),_c('div',{staticClass:\"tsg-frischwasser-settings-view-side flex-grow-1\"},[_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"s\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Zeitverz. zum regeln auf Max Wert\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Frischwasser\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Chemie\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Chemie 24h\")]},proxy:true}])})],1)])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SettingsView,\n PushButtonMock,\n ShowEventDotMock,\n DeviceDescription,\n PreviewActions,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class TSGFrischwasserPreview extends Vue {\n isSettingsView = false\n selected = 0;\n itemsError = [\n { name: 'error', value: 0 },\n { name: 'no error', value: 1 },\n ];\n itemsAlarm = [\n { name: 'alarm', value: 0 },\n { name: 'no alarm', value: 1 },\n ];\n\n get description() {\n return this.$t('devicesDescriptions.TSGFrischwasser');\n }\n get previewNameLang() {\n return this.$t('devices.TSGFrischwasser.previewName');\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasserPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGFrischwasserPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGFrischwasserPreview.vue?vue&type=template&id=3e6ec442&scoped=true&\"\nimport script from \"./TSGFrischwasserPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGFrischwasserPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGFrischwasserPreview.vue?vue&type=style&index=0&id=3e6ec442&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3e6ec442\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'TSGBrauchwasser' },\"device-icon\":\"waste_water\",\"device-size\":\"x2h\",\"is-preview\":true,\"settings-modal-width\":\"1300\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"d-flex tsg-brauchwasser\"},[_c('div',{staticClass:\"pr-4\",staticStyle:{\"width\":\"50%\"}},[_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('div',[_vm._v(\"Schwimmerschalter\")]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"10\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Status Reedkontakt Chemie\")]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"10\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between align-center pt-sm-2\"},[_c('div',[_vm._v(\"Sensorwert Redox Sonde\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2,01\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"mV\")])])])]),_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Durchfluss Chemie\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2,1\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l/min\")])])]),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',[_vm._v(\"Zählerstand Chemie\")]),_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\"2\")]),_c('div',{staticClass:\"pl-2\"},[_vm._v(\"l\")])])]),_c('div',{staticClass:\"d-flex pt-2\"},[_c('v-select',{attrs:{\"items\":_vm.itemsError,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Error\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"d-flex pt-2\"},[_c('v-select',{attrs:{\"items\":_vm.itemsAlarm,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":\"Alarm\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',[_vm._v(\"Reset\")]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"15\",\"button-size\":\"25\"}})],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('v-row',[_c('v-col',[_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Offset Redox Sonde\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Wert Redox\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"mV\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Wert Redox\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Impulslänge Pumpe\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Pausezeit Pumpe\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"ms\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Nachlaufzeit bei Dauer Ein\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\" Pumpe Dauer Ein statt Impuls \")]),_c('div',{staticClass:\"pr-3\"},[_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)])]),_c('v-col',[_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"On\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"h\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\"Off\")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"min\")]},proxy:true},{key:\"icon\",fn:function(){return [_c('v-icon',{staticClass:\"pt-2\",attrs:{\"size\":\"18\"}},[_vm._v(\" far fa-clock \")])]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Max Chemie\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '250px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '80px' },\"icon-styles\":{ width: '40px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"l\")]},proxy:true},{key:\"textDescription\",fn:function(){return [_vm._v(\"Min Chemie 24h\")]},proxy:true}])})],1)])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n InputFieldMock,\n ShowEventDotMock,\n PushButtonMock,\n PreviewActions,\n SwitchMock,\n DeviceLayout,\n },\n})\nexport default class TSGBrauchwasserPreview extends Vue {\n isSettingsView = false\n selected = 0;\n itemsError = [\n { name: 'error', value: 0 },\n { name: 'no error', value: 1 },\n ];\n itemsAlarm = [\n { name: 'alarm', value: 0 },\n { name: 'no alarm', value: 1 },\n ];\n\n get previewNameLang() {\n return this.$t('devices.TSGBrauchwasser.previewName');\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasserPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasserPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGBrauchwasserPreview.vue?vue&type=template&id=96b53124&scoped=true&\"\nimport script from \"./TSGBrauchwasserPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGBrauchwasserPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGBrauchwasserPreview.vue?vue&type=style&index=0&id=96b53124&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"96b53124\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'TSGLadestationNotAus' },\"device-icon\":\"electric-charging-station\",\"device-icon-size\":\"26\",\"device-size\":\"x2h\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',[_c('v-select',{attrs:{\"items\":_vm.textMappingStatus,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":_vm.$t('devices.TSGLadestationNotAus.mainView.dropDownTitle1')},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('v-select',{attrs:{\"items\":_vm.textMappingEmergency,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"label\":_vm.$t('devices.TSGLadestationNotAus.mainView.dropDownTitle2')},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('div',{staticClass:\"d-flex justify-space-around pt-4\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('small',{staticClass:\"pr-1\"},[_vm._v(_vm._s(_vm.$t('devices.TSGLadestationNotAus.mainView.engine')))]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"15\"}})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('small',{staticClass:\"pr-1\"},[_vm._v(_vm._s(_vm.$t('devices.TSGLadestationNotAus.mainView.emergencyOff')))]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"size\":\"15\"}})],1)]),_c('div',{staticClass:\"d-flex justify-space-around pt-4\"},[_c('div',[_vm._v(\"Reset\")]),_c('PushButtonMock',{attrs:{\"icon\":\"push_reset\",\"icon-size\":\"25\",\"button-size\":\"35\"}})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceDescription,\n PreviewActions,\n PushButtonMock,\n ShowEventDotMock,\n DeviceLayout,\n },\n})\nexport default class TSGLadestationNotAusPreview extends Vue {\n get textMappingStatus() {\n return [\n { name: this.$t(`${this.mainViewLang}.dropDown1.value0`), value: 0 },\n { name: this.$t(`${this.mainViewLang}.dropDown1.value1`), value: 1 },\n ];\n }\n\n get textMappingEmergency() {\n return [\n { name: this.$t(`${this.mainViewLang}.dropDown2.value0`), value: 0 },\n { name: this.$t(`${this.mainViewLang}.dropDown2.value1`), value: 1 },\n ];\n }\n\n selected = 0;\n\n get mainViewLang() {\n return 'devices.TSGLadestationNotAus.mainView';\n }\n get description() {\n return this.$t('devicesDescriptions.TSGLadestationNotAus');\n }\n get previewNameLang() {\n return this.$t('devices.TSGLadestationNotAus.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAusPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAusPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGLadestationNotAusPreview.vue?vue&type=template&id=5a3fd0f4&scoped=true&\"\nimport script from \"./TSGLadestationNotAusPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGLadestationNotAusPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGLadestationNotAusPreview.vue?vue&type=style&index=0&id=5a3fd0f4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a3fd0f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('DeviceLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'TSGModulLadestation' },\"device-icon\":\"electric-charging-station\",\"device-icon-size\":\"0\",\"device-size\":\"x2h\",\"is-preview\":true},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"electric-charging-station\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"modul-ladestation-valueSpacing\"},[_c('ShowEventDotMock',{staticStyle:{\"padding-top\":\"15px\"},attrs:{\"size\":\"16\",\"color\":\"#30bf54\",\"is-active\":true}})],1)],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"charging_power_3\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_vm._v(\" 10 \"),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kW \")])])],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"battery\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_vm._v(\" 12 \"),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kWh \")])])],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"time\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_vm._v(\" 8 \"),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" min \")])])],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_battery_50\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_vm._v(\" 12 \"),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" % \")])])],1),_c('div',{staticClass:\"d-flex my-2\"},[_c('lynus-icon',{attrs:{\"name\":\"electricity\",\"size\":26,\"color\":\"theme\"}}),_c('div',{staticClass:\"d-flex modul-ladestation-valueSpacing\"},[_vm._v(\" 400,02 \"),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" kWh \")])])],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport DeviceLayout from '@/ui/components/devices/components/DeviceLayout.vue';\n\n@Component({\n components: {\n DeviceDescription,\n PreviewActions,\n PushButtonMock,\n ShowEventDotMock,\n DeviceLayout,\n },\n})\nexport default class TSGModulLadestationPreview extends Vue {\n get mainViewLang() {\n return 'devices.TSGLadestationNotAus.mainView';\n }\n get description() {\n return this.$t('devicesDescriptions.TSGModulLadestation');\n }\n get previewNameLang() {\n return this.$t('devices.TSGModulLadestation.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestationPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestationPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGModulLadestationPreview.vue?vue&type=template&id=0c5611ea&scoped=true&\"\nimport script from \"./TSGModulLadestationPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGModulLadestationPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TSGModulLadestationPreview.vue?vue&type=style&index=0&id=0c5611ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c5611ea\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport TSGFrischwasser from '@/ui/components/devices/previews/devices/TSGFrischwasserPreview.vue';\nimport TSGBrauchwasser from '@/ui/components/devices/previews/devices/TSGBrauchwasserPreview.vue';\nimport TSGLadestationNotAus from '@/ui/components/devices/previews/devices/TSGLadestationNotAusPreview.vue';\nimport TSGModulLadestation from '@/ui/components/devices/previews/devices/TSGModulLadestationPreview.vue';\nimport { envDeviceLibraryCategories } from '@/utils/env';\n\n@Component({\n components: {\n TSGFrischwasser,\n TSGBrauchwasser,\n TSGLadestationNotAus,\n TSGModulLadestation,\n },\n})\nexport default class TSGView extends Vue {\n tab = null\n\n get devicesLib() {\n return [\n {\n name: 'TSG Devices',\n locale: 'uiComponents.devicesLibrary.tsgTabs.tsgDevices',\n data: [\n { device: 'TSGFrischwasser', sizes: { lg: 6, md: 12, sm: 12 } },\n { device: 'TSGBrauchwasser', sizes: { lg: 6, md: 12, sm: 12 } },\n { device: 'TSGLadestationNotAus', sizes: { lg: 3, md: 6, sm: 12 } },\n { device: 'TSGModulLadestation', sizes: { lg: 3, md: 6, sm: 12 } },\n ],\n },\n ];\n }\n\n get devicesLibFiltered() {\n return this.devicesLib.filter((e: any) => envDeviceLibraryCategories.TSG.includes(e.name));\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TSGView.vue?vue&type=template&id=16ef11e3&\"\nimport script from \"./TSGView.vue?vue&type=script&lang=ts&\"\nexport * from \"./TSGView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"padding-top\":\"50px\"}},[_c('Robot',{staticStyle:{\"width\":\"387px\"}}),_c('SurveyClient',{staticStyle:{\"width\":\"387px\",\"margin-left\":\"20px\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary robot\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"device-header\"},[_c('div',[_vm._v(_vm._s(_vm.previewNameLang))])]),_c('div',{staticClass:\"device-body\"},[_c('div',{staticClass:\"device-actions\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false)),_c('PreviewActions',{attrs:{\"is-settings-view\":_vm.isSettingsView,\"device-type\":\"Robot\"},on:{\"switchSettingsView\":_vm.switchSettingsView}})],1),_c('div',{staticClass:\"robot-icon\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_robot\",\"color\":\"theme\",\"size\":\"35\"}})],1),_c('div',{staticClass:\"device-basic-controls\"},[_c('div',{staticClass:\"device-status-bar d-flex pt-10 justify-end align-center\"},[_c('div',{staticClass:\"pr-1\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_wifi_full\",\"color\":\"theme\",\"size\":\"30\"}})],1),_c('div',{staticClass:\"pr-1\"},[_c('span',[_vm._v(\"5\")])]),_c('div',{staticClass:\"pr-1\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_gps_fix\",\"color\":\"theme\",\"size\":\"30\"}})],1),_c('div',{staticClass:\"pr-1\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_lte_med\",\"color\":\"theme\",\"size\":\"30\"}})],1),_c('div',{staticClass:\"d-flex pr-1\"},[_c('span',[_vm._v(\"75\")]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"%\")])]),_c('div',[_c('lynus-icon',{attrs:{\"name\":\"ronova_battery_75\",\"color\":\"theme\",\"size\":\"30\"}})],1)]),_c('div',[_c('div',{staticClass:\"message-box\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" Text \")]),_c('lynus-icon',{attrs:{\"name\":\"ronova_info\",\"size\":\"35\",\"color\":\"theme\"}})],1),_c('div',[_vm._v(\" This is the message text \")])])]),_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Position\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" Pos1 \")])]),_c('div',{staticClass:\"robot-progress-bar\"},[_c('div',{staticClass:\"robot-progress-bar-prefix\"},[_c('div',[_vm._v(\"Progress\")]),_c('div',[_c('span',[_vm._v(\"40\")]),_c('span',[_vm._v(\"%\")])])]),_c('div',{staticClass:\"robot-progress-bar-level\"},[_c('v-progress-linear',{attrs:{\"value\":\"40\",\"color\":\"white\",\"background-color\":\"#215B28\",\"height\":\"15\",\"rounded\":\"\"}})],1)]),_c('div',{staticClass:\"d-flex justify-space-around pt-6\"},[_c('div',[_c('v-btn',{attrs:{\"width\":\"150px\",\"height\":\"65px\",\"color\":\"lynusTextInvert\"}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_pause\",\"size\":\"30\"}}),_c('span',[_vm._v(\"Anhalten\")])],1)])],1),_c('div',[_c('v-btn',{attrs:{\"width\":\"150px\",\"height\":\"65px\",\"color\":\"lynusTextInvert\"}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_cancel\",\"color\":_vm.redColorVar,\"size\":\"30\"}}),_c('span',[_vm._v(\"Abbrechen\")])],1)])],1)])]),_c('div',{staticClass:\"pt-10\"},[_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"FOC (Frequency of clip)\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.focValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"mm\")])])]),_c('SliderMock')],1),_c('div',{staticClass:\"pt-2\"},[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_vm._v(\"Mähgeschwindigkeit\")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_c('span',[_vm._v(_vm._s(_vm.speedValue))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"km/h\")])])]),_c('SliderMock')],1)])])]),_c('SettingsView',_vm._b({on:{\"switchSettingsView\":_vm.switchSettingsView},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticStyle:{\"justify-content\":\"center\",\"display\":\"grid\",\"padding-bottom\":\"10px\",\"width\":\"100%\"}},[_c('h3',[_vm._v(\"Neuer Mähjob Screen\")])]),_c('div',[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"padding-bottom\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\"}},[_c('div',[_vm._v(\" Position \")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" Pos1 \")])]),_c('v-divider'),_c('div',{staticStyle:{\"display\":\"flex\",\"width\":\"100%\",\"justify-content\":\"center\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\"}},[_c('v-select',{staticStyle:{\"padding-left\":\"30px\",\"padding-right\":\"30px\"},attrs:{\"items\":_vm.itemsTypes,\"label\":\"Muster\",\"item-value\":\"value\",\"item-text\":\"name\",\"rounded\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticStyle:{\"display\":\"flex\",\"width\":\"100%\",\"justify-content\":\"center\",\"padding-top\":\"10px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_vm._v(\" Muster 1 \")]),_c('v-divider'),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('div',{staticStyle:{\"padding-top\":\"20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',[_vm._v(\" FOC (Frequency of clip) \")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" \"+_vm._s(_vm.focValue)+\" mm \")])]),_c('SliderMock')],1),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"padding-bottom\":\"20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',[_vm._v(\" Mähgeschwindigkeit \")]),_c('div',{staticStyle:{\"color\":\"#4B6978\"}},[_vm._v(\" \"+_vm._s(_vm.speedValue)+\" km/h \")])]),_c('SliderMock')],1)]),_c('v-divider'),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('div',{staticStyle:{\"padding-top\":\"10px\"}},[_vm._v(\" Startzeit \")]),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('VueCtkDateTimePicker',{staticStyle:{\"padding-right\":\"4px\"},attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"right\":_vm.alignRight,\"dark\":_vm.$vuetify.theme.dark,\"color\":_vm.letAccentColorForCalendar},model:{value:(_vm.dateValue),callback:function ($$v) {_vm.dateValue=$$v},expression:\"dateValue\"}}),_c('v-btn',{staticStyle:{\"height\":\"42px !important\"},attrs:{\"color\":\"accent\"}},[_vm._v(\"Send\")])],1)]),_c('v-divider'),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"padding-top\":\"20px\",\"padding-left\":\"22px\",\"padding-right\":\"22px\",\"padding-bottom\":\"10px\"}},[_c('v-btn',{attrs:{\"width\":\"180px\",\"height\":\"52px\",\"color\":\"accent\"}},[_vm._v(\" Mähjob \"),_c('br'),_vm._v(\" hochladen \"),_c('lynus-icon',{attrs:{\"name\":\"ronova_upload\",\"icon-color\":\"white\",\"size\":\"22\"}})],1)],1),_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"center\",\"color\":\"#AA3536\"}},[_vm._v(\" Kein Text \")])],1)]},proxy:true}])},'SettingsView',{ isSettingsView: _vm.isSettingsView, deviceData: { name: _vm.previewNameLang } },false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport SliderMock from '@/ui/components/devices/previews/components/SliderMock.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport { envThemes } from '@/utils/env';\n\n@Component({\n components: {\n SettingsView,\n SliderMock,\n DeviceDescription,\n PreviewActions,\n SwitchMock,\n },\n})\nexport default class RobotPreview extends Vue {\n statePosition = 'Test';\n redColorVar = 'red';\n focValue = 20;\n speedValue = 20;\n isSettingsView = false;\n // value of DateTimePicker\n dateValue: any = null;\n // used for the accent color in the DateTimePicker\n letAccentColorForCalendar = this.$vuetify.theme.dark ? envThemes.dark.accent : envThemes.light.accent;\n disableSendButton = true;\n alignRight=true\n itemsTypes = [\n { name: 'Muster 1', value: 0 },\n { name: 'Muster 2', value: 1 },\n ];\n selected = 0;\n\n get description() {\n return this.$t('devicesDescriptions.Robot');\n }\n get previewNameLang() {\n return this.$t('devices.Robot.previewName');\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RobotPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RobotPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RobotPreview.vue?vue&type=template&id=465e67f9&scoped=true&\"\nimport script from \"./RobotPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./RobotPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RobotPreview.vue?vue&type=style&index=0&id=465e67f9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"465e67f9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary survey-client\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"device-header\"},[_c('div',[_vm._v(_vm._s(_vm.previewNameLang))])]),_c('div',{staticClass:\"device-body\"},[_c('div',{staticClass:\"device-actions\"},[_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false)),_c('PreviewActions',{attrs:{\"device-type\":\"SurveyClient\"}})],1),_c('div',{staticClass:\"survey-client-icon\"},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"ronova_survey_client\",\"color\":\"theme\",\"size\":\"30\"}})],1)]),_c('div',{staticClass:\"device-basic-controls\"},[_c('div',{staticClass:\"device-status-bar d-flex pt-10 justify-end align-center\"},[_c('div',{staticClass:\"pr-1\"},[_c('span',[_vm._v(\"10\")])]),_c('div',{staticClass:\"pr-1\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_gps_fix\",\"color\":\"theme\",\"size\":\"30\"}})],1),_c('div',{staticClass:\"pr-1\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_lte_med\",\"color\":\"theme\",\"size\":\"30\"}})],1),_c('div',{staticClass:\"d-flex pr-1\"},[_c('span',[_vm._v(\"75\")]),_c('span',{staticClass:\"pl-1\"},[_vm._v(\"%\")])]),_c('div',[_c('lynus-icon',{attrs:{\"name\":\"ronova_battery_75\",\"color\":\"theme\",\"size\":\"30\"}})],1)]),_c('div',[_c('div',[_vm._v(\"Field Name\")]),_c('div',{staticClass:\"d-flex input-field-mock justify-space-between\"},[_c('div',{staticClass:\"field\"},[_c('v-text-field',{attrs:{\"step\":1,\"solo\":\"\",\"flat\":\"\",\"rounded\":\"\",\"height\":\"36\",\"background-color\":\"white\"},model:{value:(_vm.stateFieldname),callback:function ($$v) {_vm.stateFieldname=$$v},expression:\"stateFieldname\"}})],1),_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"accent\",\"rounded\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)]),_c('div',[_c('div',[_vm._v(\"Figure Type\")]),_c('v-select',{staticStyle:{\"padding-left\":\"5px\"},attrs:{\"items\":_vm.itemsTypes,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_c('div',{staticClass:\"message-box\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\" Message Title \")]),_c('lynus-icon',{attrs:{\"name\":\"ronova_info\",\"size\":\"35\",\"color\":\"red\"}})],1),_c('div',[_vm._v(\" This is the message text \")])]),_c('div',{staticClass:\"step-number-section\"},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_left\",\"size\":\"30\"}}),_c('div',{staticClass:\"step-number-output-text\"},[_vm._v(\" OutputField 25 Chars \")]),_c('div',{staticClass:\"pl-1\"},[_c('ShowEventDotMock',{attrs:{\"isActive\":true,\"color\":\"#AA3536\",\"size\":\"20\"}})],1),_c('div',{staticClass:\"pl-1\"},[_c('lynus-icon',{attrs:{\"name\":\"arrow-2_right\",\"size\":\"30\"}})],1)],1),_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',[_c('v-btn',{attrs:{\"width\":\"150px\",\"height\":\"65px\",\"color\":\"lynusTextInvert\"}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_record\",\"color\":_vm.redColorVar,\"size\":\"30\"}}),_c('span',[_vm._v(\"Messen\")])],1)])],1),_c('div',[_c('v-btn',{attrs:{\"width\":\"150px\",\"height\":\"65px\",\"color\":\"lynusTextInvert\"}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":\"ronova_close_figure\",\"color\":\"accent\",\"size\":\"30\"}}),_c('span',[_vm._v(\" Schließen \")])],1)])],1)]),_c('div',{staticClass:\"d-flex justify-center pt-4\"},[_c('div',[_c('v-btn',{attrs:{\"width\":\"180px\",\"color\":\"lynusTextInvert\"}},[_vm._v(\" Cancel \"),_c('lynus-icon',{attrs:{\"name\":\"ronova_cancel\",\"color\":_vm.redColorVar,\"size\":\"22\"}})],1)],1)])])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport PushButtonMock from '@/ui/components/devices/previews/components/PushButtonMock.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n PushButtonMock,\n InputFieldMock,\n DeviceDescription,\n PreviewActions,\n SwitchMock,\n },\n})\nexport default class SurveyClientPreview extends Vue {\n stateFieldname = 'Test';\n itemsTypes = [\n { name: 'Type 1', value: 0 },\n { name: 'Type 2', value: 1 },\n ];\n selected= 0;\n redColorVar = 'red'\n\n get description() {\n return this.$t('devicesDescriptions.SurveyClient');\n }\n get previewNameLang() {\n return this.$t('devices.SurveyClient.previewName');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClientPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SurveyClientPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SurveyClientPreview.vue?vue&type=template&id=5a2f11c5&scoped=true&\"\nimport script from \"./SurveyClientPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./SurveyClientPreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SurveyClientPreview.vue?vue&type=style&index=0&id=5a2f11c5&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a2f11c5\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Robot from '@/ui/components/devices/previews/devices/RobotPreview.vue'\nimport SurveyClient from '@/ui/components/devices/previews/devices/SurveyClientPreview.vue'\n\n@Component({\n components: {\n Robot,\n SurveyClient\n },\n})\nexport default class RonovatecVue extends Vue {\n tab = null\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RonovatecView.vue?vue&type=template&id=8feefb62&\"\nimport script from \"./RonovatecView.vue?vue&type=script&lang=ts&\"\nexport * from \"./RonovatecView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ChartsView from '@/ui/components/devices/previews/components/ChartsView.vue';\nimport DevicesView from '@/ui/components/devices/previews/components/DevicesView.vue';\nimport RegentsView from '@/ui/components/devices/previews/components/RegentsView.vue';\nimport TSGView from '@/ui/components/devices/previews/components/TSGView.vue';\nimport RonovatecView from '@/ui/components/devices/previews/components/RonovatecView.vue';\nimport { envDeviceLibraryCategories } from '@/utils/env';\n\n/**\n * Device Library page\n * here are previews of the devices, charts\n */\n@Component({\n components: {\n RonovatecView,\n TSGView,\n ChartsView,\n DevicesView,\n RegentsView,\n },\n})\nexport default class Controls extends Vue {\n tab = null\n\n get previews() {\n return [\n {\n name: 'Building Automation',\n locale: 'uiComponents.devicesLibrary.mainTabs.buildingAutomation',\n view: 'DevicesView',\n },\n {\n name: 'Charts',\n locale: 'uiComponents.devicesLibrary.mainTabs.charts',\n view: 'ChartsView',\n },\n {\n name: 'TSG',\n locale: 'uiComponents.devicesLibrary.mainTabs.tsg',\n view: 'TSGView',\n },\n {\n name: 'Ronovatec Devices',\n locale: 'uiComponents.devicesLibrary.mainTabs.ronovatecDevices',\n view: 'RonovatecView',\n },\n ];\n }\n\n get previewsFiltered() {\n return this.previews.filter((e: any) => Object.keys(envDeviceLibraryCategories).some((el: string) => el === e.name));\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesLibrary.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DevicesLibrary.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DevicesLibrary.vue?vue&type=template&id=071390d6&\"\nimport script from \"./DevicesLibrary.vue?vue&type=script&lang=ts&\"\nexport * from \"./DevicesLibrary.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary aiml-library\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.previewsFiltered),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.previewsFiltered),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c(item.view,{tag:\"component\"})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"show-arrows\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLib),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])}),1),_c('v-tabs-items',{attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.devicesLib),function(view,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[_c('v-container',{staticClass:\"px-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((view.data),function(item,index){return _c('v-col',_vm._b({key:`c-${index}`,attrs:{\"sm\":\"12\",\"cols\":\"12\"}},'v-col',{ ...item.sizes },false),[_c(item.device,{tag:\"component\",attrs:{\"is-modal\":false}})],1)}),1)],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'SetpointOptimizer' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"temperature\",\"device-size\":\"x5h\",\"settings-modal-width\":\"700\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"setpoint-optimizer d-flex flex-column justify-center\"},[_c('MainView'),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.mainView.serviceReady')))]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"is-active\":1,\"size\":\"15\"}})],1)],1)]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('Charts')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"canvas\",staticClass:\"setpoint-optimizer-main-view\"},[_c('div',{staticClass:\"setpoint-optimizer-main-view__row\"},_vm._l((_vm.heatingGroup),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system,refInFor:true},[_c('System',{attrs:{\"system-instance-type\":system,\"system-data\":_vm.systemsData[system].components,\"system-count\":_vm.systemsData[system].count,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines[system],\"line-ready\":_vm.loadLine,\"system-colors\":_vm.systemsSchemas[system].colors}})],1)}),0),_c('div',{staticClass:\"setpoint-optimizer-main-view__row\"},[_c('div',{ref:\"hybrid_air_systems\",class:{ 'system-wrapper': !_vm.systemsData['hybrid_air_systems'].count }},[(_vm.systemsData['hybrid_air_systems'].count)?_c('System',{attrs:{\"system-instance-type\":\"hybrid_air_systems\",\"system-data\":_vm.systemsData['hybrid_air_systems'].components,\"system-count\":_vm.systemsData['hybrid_air_systems'].count,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines['hybrid_air_systems'],\"line-ready\":_vm.loadLine,\"system-colors\":_vm.systemsSchemas['hybrid_air_systems'].colors}}):_vm._e()],1),_c('div',{ref:\"centralEndpoint\"},[_c('CentralEndpoint')],1),_c('div',{ref:\"hybrid_water_systems\",class:{ 'system-wrapper': !_vm.systemsData['hybrid_water_systems'].count }},[(_vm.systemsData['hybrid_water_systems'].count)?_c('System',{attrs:{\"system-instance-type\":\"hybrid_water_systems\",\"system-data\":_vm.systemsData['hybrid_water_systems'].components,\"system-count\":_vm.systemsData['hybrid_water_systems'].count,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines['hybrid_water_systems'],\"line-ready\":_vm.loadLine,\"system-colors\":_vm.systemsSchemas['hybrid_water_systems'].colors}}):_vm._e()],1)]),_c('div',{staticClass:\"setpoint-optimizer-main-view__row\"},_vm._l((_vm.collingGroup),function(system,systemIndex){return _c('div',{key:systemIndex,ref:system,refInFor:true},[_c('System',{attrs:{\"system-instance-type\":system,\"system-data\":_vm.systemsData[system].components,\"system-count\":_vm.systemsData[system].count,\"canvas-center\":_vm.canvasCenter,\"canvas-size\":_vm.canvasSize,\"line-data\":_vm.canvasLines[system],\"line-ready\":_vm.loadLine,\"system-colors\":_vm.systemsSchemas[system].colors}})],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"setpoint-optimizer-system\"},[_c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.title`),\"window-width\":1500},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.lineReady)?_c('AnimatedLine',{key:`${_vm.canvasSize.width}`,attrs:{\"line-data\":_vm.lineData,\"width\":_vm.canvasSize.width,\"height\":_vm.canvasSize.height,\"center\":_vm.canvasCenter,\"is-movement-reverse\":_vm.lineMovement,\"color2\":_vm.systemColors.animatedLine.main,\"color2-reverse\":_vm.systemColors.animatedLine.reversed,\"is-reverse-movement-default\":true,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":null,\"preview-icon\":_vm.currentPreviewIcon,\"preview-icon-size\":\"40\",\"rotating-backlight-color\":!_vm.lineMovement ? _vm.systemColors.rotatingBacklightColor.main : _vm.systemColors.rotatingBacklightColor.reversed,\"system-count\":_vm.systemCount,\"error-warning-local\":{},\"no-data\":false,\"show-actual-value\":false}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"setpoint-optimizer-preview-system-content-view\"},[_c('div',{staticClass:\"setpoint-optimizer-preview-system-content-view-wrapper\"},[_c('InstancesGridView',{attrs:{\"system-instance-type\":_vm.systemInstanceType,\"system-data\":_vm.systemData,\"system-colors\":_vm.systemColors,\"canvas-size\":_vm.canvasSize,\"canvas-center\":_vm.canvasCenter}})],1),_c('div',{staticClass:\"setpoint-optimizer-preview-system-content-view-wrapper\"},[_c('InstancesGridView',{attrs:{\"system-instance-type\":_vm.systemInstanceType,\"system-data\":_vm.systemData,\"system-colors\":_vm.systemColors,\"canvas-size\":_vm.canvasSize,\"canvas-center\":_vm.canvasCenter,\"is-forecast-view\":true}})],1)])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{ref:\"instancesCanvas\",staticClass:\"setpoint-optimizer-system-instances-grid\"},[_c('div',{staticClass:\"setpoint-optimizer-system-instances-grid__row\"},_vm._l((_vm.instancesTopLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('SystemInstance',{attrs:{\"forecast-actual-value\":_vm.systemsForecastDataFiltered['system'][1],\"is-forecast-view\":_vm.isForecastView,\"system-instance-type\":_vm.systemInstanceType,\"system-instance-data\":_vm.systemData[systemInstance],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"system-colors\":_vm.systemColors,\"current-preview-icon\":_vm.currentPreviewIcon}})],1)}),0),_c('div',{ref:\"instancesCentralEndpoint\",staticClass:\"setpoint-optimizer-system-instances-grid__row\"},[_c('CentralEndpoint')],1),_c('div',{staticClass:\"setpoint-optimizer-system-instances-grid__row\"},_vm._l((_vm.instancesBottomLine),function(systemInstance,systemInstanceIndex){return _c('div',{key:systemInstanceIndex,ref:systemInstance,refInFor:true},[_c('SystemInstance',{attrs:{\"forecast-actual-value\":_vm.systemsForecastDataFiltered['system'][1],\"is-forecast-view\":_vm.isForecastView,\"system-instance-type\":_vm.systemInstanceType,\"system-instance-data\":_vm.systemData[systemInstance],\"instance-canvas-center\":_vm.instancesCanvasCenter,\"instance-canvas-size\":_vm.instancesCanvasSize,\"instance-line-data\":_vm.instancesCanvasLines[systemInstance],\"instance-line-ready\":_vm.isDataForInstancesAnimatedLineReady,\"system-colors\":_vm.systemColors,\"preview-title-position\":\"bottom\",\"current-preview-icon\":_vm.currentPreviewIcon}})],1)}),0)]),(_vm.isForecastView)?_c('div',[_c('TimeSlider',{attrs:{\"items\":_vm.timeSliderInitArr},model:{value:(_vm.systemSlider),callback:function ($$v) {_vm.systemSlider=$$v},expression:\"systemSlider\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('SystemModalWindowView',{attrs:{\"system-title\":_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.title`),\"window-width\":_vm.modalWindowWidth ? 1200 : 1000,\"is-call-content-click-event\":!_vm.isForecastView},scopedSlots:_vm._u([{key:\"preview\",fn:function(){return [(_vm.instanceLineReady)?_c('AnimatedLine',{key:`${_vm.instanceCanvasSize.width}${_vm.lineMovement}${_vm.defaultLineMovement}`,attrs:{\"line-data\":_vm.instanceLineData,\"width\":_vm.instanceCanvasSize.width,\"height\":_vm.instanceCanvasSize.height,\"center\":_vm.instanceCanvasCenter,\"is-movement-reverse\":_vm.lineMovement,\"color2\":_vm.systemColors.animatedLine.main,\"color2-reverse\":_vm.systemColors.animatedLine.reversed,\"is-reverse-movement-default\":_vm.defaultLineMovement,\"is-line-active\":true}}):_vm._e(),_c('Preview',{attrs:{\"actual-value\":_vm.isForecastView ? _vm.forecastActualValue : 20,\"actual-value-unit\":_vm.celsiusUnit,\"preview-icon\":_vm.currentPreviewIcon,\"rotating-backlight-color\":!_vm.lineMovement\n ? _vm.systemColors.rotatingBacklightColor.main\n : _vm.systemColors.rotatingBacklightColor.reversed,\"preview-title\":\"title\",\"error-warning-local\":{},\"no-data\":false}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"setpoint-optimizer-system-instance-content-wrapper\"},[_c(_vm.settingsType,{tag:\"component\",attrs:{\"system-instance-type\":_vm.systemInstanceType}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"d-flex flex-grow-1 flex-column\"},[_c('div',{staticClass:\"d-flex justify-end pb-2\"},[_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.heating'))+\" \")]),_c('div',{staticClass:\"text-center\",staticStyle:{\"width\":\"120px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systemsSettings.cooling'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-grow-1\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.max_flow_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.min_flow_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.set_point_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"input-field-styles\":{ width: '90px' },\"unit-styles\":{ width: '30px' }},scopedSlots:_vm._u([{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1)])]),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"accent\",\"small\":\"\"}},[_vm._v(\" send \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.flow_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.return_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),(_vm.systemInstanceType === 'hybrid_air_systems')?[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.out_in_flow_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,false,744056594)}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.in_out_flow_temperature.label'))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,false,4238261796)})]:_vm._e(),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.hybrid_air_systems.mappings.status.label')))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotMock',{attrs:{\"color\":_vm.colors.red,\"is-active\":1,\"size\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l(([1, 2]),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.instanceLabel`, { count: index + 1 }))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport colors from '@/ui/components/devices/mpc/colors';\n\n@Component({\n components: {\n SystemsInstanceControlsTemplate,\n InputFieldMock,\n LabelUnitWrapper,\n ShowEventDotMock,\n },\n})\nexport default class HybridSettings extends Vue {\n @Prop({ default: null }) systemInstanceType!: string;\n\n get colors() {\n return colors;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HybridSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HybridSettings.vue?vue&type=template&id=76b8868c&scoped=true&\"\nimport script from \"./HybridSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./HybridSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"76b8868c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('SystemsInstanceControlsTemplate',{scopedSlots:_vm._u([{key:\"left-side\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"flex-grow-1\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.max_flow_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.min_flow_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])}),_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ width: '100px' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.set_point_temperature.label`))+\" \")]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-btn',{staticClass:\"mb-6\",attrs:{\"color\":\"accent\",\"small\":\"\"}},[_vm._v(\" send \")])],1)]),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.flow_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.return_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}])}),(_vm.isAdditionalFields)?[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.out_in_flow_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,false,744056594)}),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.in_out_flow_temperature.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,false,616774066)})]:_vm._e(),_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":false},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.${_vm.systemInstanceType}.mappings.status.label`)))]},proxy:true},{key:\"value\",fn:function(){return [_c('ShowEventDotMock',{attrs:{\"color\":_vm.currentShowEventColor[_vm.systemInstanceType],\"is-active\":1,\"size\":\"15\"}})]},proxy:true}])})]},proxy:true},{key:\"right-side\",fn:function(){return [_c('div',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.label'))+\" \")]),_vm._l(([1, 2]),function(item,index){return _c('div',{key:index},[_c('LabelUnitWrapper',{staticClass:\"pt-4\",attrs:{\"variables-list-for-check\":[],\"is-default-view\":true},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.SetpointOptimizer.systems.heating_air_systems.mappings.room_temperatures.instanceLabel`, { count: index + 1 }))+\" \")]},proxy:true},{key:\"value\",fn:function(){return [_c('span',[_vm._v(\"20\")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(\"°C\")])]},proxy:true}],null,true)})],1)})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemsInstanceControlsTemplate\n from '@/ui/components/devices/mpc/SetpointOptimizer/system/SystemInstanceControls/SystemsInstanceControlsTemplate.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport LabelUnitWrapper from '@/ui/components/devices/components/LabelUnitWrapper.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport colors from '@/ui/components/devices/mpc/colors';\n\n@Component({\n components: {\n SystemsInstanceControlsTemplate,\n InputFieldMock,\n LabelUnitWrapper,\n ShowEventDotMock,\n },\n})\nexport default class DefaultSettings extends Vue {\n @Prop({ default: null }) systemInstanceType!: string;\n\n get isAdditionalFields() {\n const systems: any = ['heating_air_systems', 'cooling_air_systems'];\n return systems.some((el: string) => el === this.systemInstanceType);\n }\n\n get currentShowEventColor() {\n return {\n heating_air_systems: this.colors.red,\n heating_water_systems: this.colors.red,\n cooling_air_systems: this.colors.blue,\n cooling_water_systems: this.colors.blue,\n };\n }\n\n get colors() {\n return colors;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultSettings.vue?vue&type=template&id=5bc6c566&scoped=true&\"\nimport script from \"./DefaultSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5bc6c566\",\n null\n \n)\n\nexport default component.exports","import { Vue, Component } from 'vue-property-decorator';\nimport {\n celsiusUnit,\n emptyUnit,\n kilogramUnit,\n kiloWattHourUnit,\n kiloWattUnit,\n} from '@/utils/unit/unitConstants';\n\n/**\n * Unit Mixins to use globally\n */\n@Component\nexport class UnitMixin extends Vue {\n emptyUnit = emptyUnit;\n kiloWattUnit = kiloWattUnit;\n kiloWattHourUnit = kiloWattHourUnit;\n kilogramUnit = kilogramUnit;\n celsiusUnit = celsiusUnit;\n}\n","\nimport { Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport HybridSettings from '@/ui/components/devices/previews/mpc/SetpointOptimizer/system/HybridSettings.vue';\nimport DefaultSettings from '@/ui/components/devices/previews/mpc/SetpointOptimizer/system/DefaultSettings.vue';\nimport { UnitMixin } from '@/ui/mixins/unitMixin';\nimport { mixins } from 'vue-class-component';\n\n@Component({\n components: {\n SystemModalWindowView,\n AnimatedLine,\n Preview,\n HybridSettings,\n DefaultSettings,\n },\n})\nexport default class SystemInstance extends mixins(UnitMixin) {\n @Prop({ default: false }) isForecastView!: boolean;\n @Prop({ default: null }) forecastActualValue!: number;\n @Prop({ default: null }) systemInstanceType!: string;\n @Prop({ default: 'top' }) previewTitlePosition!: string;\n @Prop({ default: null }) systemInstanceData!: any;\n @Prop({ default: null }) instanceCanvasSize!: any;\n @Prop({ default: null }) instanceCanvasCenter!: any;\n @Prop({ default: null }) instanceLineData!: any;\n @Prop({ default: false }) instanceLineReady!: boolean;\n @Prop({ default: null }) systemColors!: any;\n @Prop({ default: true }) isLineMovementReversed!: boolean;\n @Prop({ default: null }) currentPreviewIcon!: any;\n\n get settingsType() {\n return ({\n heating_air_systems: 'DefaultSettings',\n heating_water_systems: 'DefaultSettings',\n cooling_air_systems: 'DefaultSettings',\n cooling_water_systems: 'DefaultSettings',\n hybrid_water_systems: 'HybridSettings',\n hybrid_air_systems: 'HybridSettings',\n } as any)[this.systemInstanceType];\n }\n\n /**\n * Defines default line movement direction for current system\n * @return {boolean} if true arrows moves in default direction else in opposite direction\n */\n get defaultLineMovement() {\n return ({\n heating_air_systems: false,\n heating_water_systems: false,\n cooling_air_systems: false,\n cooling_water_systems: false,\n hybrid_water_systems: true, // switch between hating and cooling\n hybrid_air_systems: true, // switch between hating and cooling\n } as any)[this.systemInstanceType];\n }\n\n /**\n * Collection of systems line movement directions\n */\n get lineMovementSystems(): any {\n return {\n heating_air_systems: true,\n heating_water_systems: true,\n cooling_air_systems: true,\n cooling_water_systems: true,\n hybrid_water_systems: false, // switch between hating and cooling\n hybrid_air_systems: false, // switch between hating and cooling\n };\n }\n\n /**\n * Defines line movement direction for current system\n * @return {boolean} if true arrows moves in default direction else in opposite direction\n */\n get lineMovement() {\n return this.lineMovementSystems[this.systemInstanceType];\n }\n\n get modalWindowWidth() {\n const hybrid: string[] = ['hybrid_water_systems', 'hybrid_air_systems'];\n return hybrid.includes(this.systemInstanceType);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemInstance.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemInstance.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemInstance.vue?vue&type=template&id=07677c5d&\"\nimport script from \"./SystemInstance.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemInstance.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemInstance.vue?vue&type=style&index=0&id=07677c5d&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const forecastMockData = {\n 'system': [[1626165900, 0.9], [1626166800, 0.8], [1626167700, 0.8], [1626168600, 0.8], [1626169500, 0.8], [1626170400, 0.8], [1626171300, 0.8], [1626172200, 0.9], [1626173100, 0.9], [1626174000, 0.8], [1626174900, 0.8], [1626175800, 0.8], [1626176700, 0.8], [1626177600, 0.8], [1626178500, 0.8], [1626179400, 0.8], [1626180300, 0.8], [1626181200, 0.8], [1626182100, 0.9], [1626183000, 0.9], [1626183900, 0.9], [1626184800, 1], [1626185700, 1], [1626186600, 1], [1626187500, 1], [1626188400, 1], [1626189300, 0.9], [1626190200, 0.9], [1626191100, 0.9], [1626192000, 1.1], [1626192900, 0.9], [1626193800, 0.9], [1626194700, 0.9], [1626195600, 0.9], [1626196500, 0.9], [1626197400, 0.9], [1626198300, 0.9], [1626199200, 0.9], [1626200100, 0.9], [1626201000, 0.8], [1626201900, 0.8], [1626202800, 0.9], [1626203700, 0.9], [1626204600, 0.8], [1626205500, 0.8], [1626206400, 0.8], [1626207300, 0.7], [1626208200, 0.7], [1626209100, 0.7], [1626210000, 0.7], [1626210900, 0.7], [1626211800, 0.7], [1626212700, 0.7], [1626213600, 0.7], [1626214500, 0.7], [1626215400, 0.8], [1626216300, 0.8], [1626217200, 0.8], [1626218100, 0.9], [1626219000, 1.1], [1626219900, 1], [1626220800, 1], [1626221700, 1], [1626222600, 1], [1626223500, 1], [1626224400, 0.9], [1626225300, 0.9], [1626226200, 0.9], [1626227100, 0.9], [1626228000, 0.9], [1626228900, 0.9], [1626229800, 0.8], [1626230700, 0.8], [1626231600, 0.9], [1626232500, 0.9], [1626233400, 0.9], [1626234300, 0.9], [1626235200, 0.8], [1626236100, 0.8], [1626237000, 0.8], [1626237900, 0.7], [1626238800, 0.7], [1626239700, 0.7], [1626240600, 0.7], [1626241500, 0.7], [1626242400, 0.7], [1626243300, 0.9], [1626244200, 0.9], [1626245100, 1], [1626246000, 1], [1626246900, 1], [1626247800, 1], [1626248700, 1], [1626249600, 1], [1626250500, 0.9], [1626251400, 0.9]],\n};\n\nexport default forecastMockData;\n","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemInstance\n from '@/ui/components/devices/previews/mpc/SetpointOptimizer/system/SystemInstance.vue';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport { throttle } from 'lodash';\nimport forecastMockData\n from '@/ui/components/devices/previews/mpc/SetpointOptimizer/forecastMockData';\n\n@Component({\n components: {\n SystemInstance,\n CentralEndpoint,\n TimeSlider,\n },\n})\nexport default class InstancesGridView extends Vue {\n @Prop({ default: null }) systemInstanceType!: string;\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) systemColors!: any;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: false }) isForecastView!: boolean;\n\n systemSlider = 0\n\n instancesCanvasSize: any = null\n instancesCanvasCenter: any = null\n instancesCanvasLines: any = {}\n forecastData: any = {}\n\n get timeSliderInitArr() {\n return Object.values(forecastMockData)[0];\n }\n get systemsForecastDataFiltered() {\n let obj = {};\n Object.entries(forecastMockData).forEach((system: any) => {\n const res = system[1][this.systemSlider] || [null, null];\n obj = { ...obj, ...{ [system[0]]: res } };\n });\n return obj;\n }\n\n get instancesTopLine() {\n return Object.keys(this.systemData);\n }\n get instancesBottomLine() {\n return [];\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get isDataForInstancesAnimatedLineReady() {\n return !!this.instancesCanvasSize && !!this.instancesCanvasCenter && !!Object.values(this.instancesCanvasLines);\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getInstancesCoords() {\n const central: any = this.$refs.instancesCentralEndpoint;\n const actualViewRef: any = this.$refs.instancesCanvas;\n this.instancesCanvasSize = { width: actualViewRef?.clientWidth, height: actualViewRef?.clientHeight };\n this.instancesCanvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n\n [...this.instancesTopLine, ...this.instancesBottomLine].forEach((system: any) => {\n const target: any = this.$refs[system];\n if (!target.length) return;\n\n this.instancesCanvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n });\n }\n getInstancesCoordsThrottle = throttle(this.getInstancesCoords, 500)\n\n async created() {\n await this.$nextTick();\n window.addEventListener('resize', this.getInstancesCoordsThrottle);\n this.getInstancesCoords();\n }\n beforeDestroy() {\n window.removeEventListener('resize', this.getInstancesCoordsThrottle);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstancesGridView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstancesGridView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstancesGridView.vue?vue&type=template&id=7a0319ce&scoped=true&\"\nimport script from \"./InstancesGridView.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstancesGridView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstancesGridView.vue?vue&type=style&index=0&id=7a0319ce&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a0319ce\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport SystemModalWindowView from '@/ui/components/devices/components/EnergyParts/SystemModalWindowView.vue';\nimport InstancesGridView\n from '@/ui/components/devices/previews/mpc/SetpointOptimizer/system/InstancesGridView.vue';\nimport Preview from '@/ui/components/devices/components/EnergyParts/Preview.vue';\nimport AnimatedLine from '@/ui/components/devices/components/EnergyParts/AnimatedLine/index.vue';\n\n@Component({\n components: {\n InstancesGridView,\n SystemModalWindowView,\n Preview,\n AnimatedLine,\n },\n})\nexport default class System extends Vue {\n @Prop({ default: null }) systemInstanceType!: string;\n @Prop({ default: null }) systemData!: any;\n @Prop({ default: null }) systemCount!: number;\n @Prop({ default: null }) systemColors!: any;\n @Prop({ default: null }) canvasSize!: any;\n @Prop({ default: null }) canvasCenter!: any;\n @Prop({ default: null }) lineData!: any;\n @Prop({ default: false }) lineReady!: boolean;\n\n /**\n * Defines current system icon\n * @return {string} current icon\n */\n get currentPreviewIcon() {\n return ({\n heating_air_systems: 'heating_air',\n heating_water_systems: 'hot-water',\n cooling_air_systems: 'cooling_air',\n cooling_water_systems: 'cold-water',\n hybrid_water_systems: 'hybrid_water',\n hybrid_air_systems: 'hybrid_air',\n } as any)[this.systemInstanceType];\n }\n\n /**\n * Collection of systems line movement directions\n */\n get lineMovementSystems(): any {\n return {\n heating_air_systems: false,\n heating_water_systems: false,\n cooling_air_systems: false,\n cooling_water_systems: false,\n hybrid_water_systems: false, // value will be getter\n hybrid_air_systems: false, // value will be getter\n };\n }\n\n /**\n * Defines line movement direction for current system\n * @return {boolean} if true arrows moves in default direction else in opposite direction\n */\n get lineMovement() {\n return this.lineMovementSystems[this.systemInstanceType];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=db8628d4&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=db8628d4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { throttle } from 'lodash';\nimport { State } from 'vuex-class';\nimport CentralEndpoint from '@/ui/components/devices/components/EnergyParts/CentralEndpoint.vue';\nimport System from '@/ui/components/devices/previews/mpc/SetpointOptimizer/system/index.vue';\n\n@Component({\n components: {\n CentralEndpoint,\n System,\n },\n})\nexport default class MainView extends Vue {\n @State('mpc') mpcState!: any;\n\n heatingGroup = ['heating_air_systems', 'heating_water_systems']\n collingGroup = ['cooling_air_systems', 'cooling_water_systems']\n canvasSize: any = null\n canvasCenter: any = null\n canvasLines: any = {}\n systemsList = ['heating_air_systems', 'heating_water_systems', 'cooling_air_systems', 'cooling_water_systems',\n 'hybrid_water_systems', 'hybrid_air_systems']\n\n systemsData = {\n heating_air_systems: {\n components: {\n heating_air_systems1: {},\n },\n count: 1,\n },\n heating_water_systems: {\n components: {\n heating_water_systems1: {},\n },\n count: 1,\n },\n cooling_air_systems: {\n components: {\n cooling_air_systems1: {},\n },\n count: 1,\n },\n cooling_water_systems: {\n components: {\n cooling_water_systems1: {},\n },\n count: 1,\n },\n hybrid_water_systems: {\n components: {\n hybrid_water_systems1: {},\n },\n count: 1,\n },\n hybrid_air_systems: {\n components: {\n hybrid_air_systems1: {},\n },\n count: 1,\n },\n }\n\n /**\n * Load line if all coords and sizes ready\n * @return {boolean} load line status\n */\n get loadLine() {\n return !!this.canvasSize && !!this.canvasCenter && !!Object.values(this.canvasLines);\n }\n\n get systemsSchemas() {\n return this.mpcState.mlModelTypes.SetpointOptimizer.systems;\n }\n\n /**\n * Defines coordinates of systems, Central Energy Point.\n * Use vm.$refs to retrieve references to elements.\n * Then it goes through the list of references and creates an options object for each one.\n */\n getCoords() {\n const central: any = this.$refs.centralEndpoint;\n const actualViewRef: any = this.$refs.canvas;\n this.canvasSize = { width: actualViewRef?.clientWidth, height: actualViewRef?.clientHeight };\n this.canvasCenter = {\n x: central.offsetLeft + central.offsetWidth / 2,\n y: central.offsetTop + central.offsetHeight / 2,\n w: central.offsetWidth,\n h: central.offsetHeight,\n };\n this.systemsList.forEach((system: string) => {\n const target: any = this.$refs[system];\n if (!target) return;\n\n if (Array.isArray(target)) {\n this.canvasLines[system] = {\n key: system,\n x: target[0].offsetLeft + target[0].offsetWidth / 2,\n y: target[0].offsetTop + target[0].offsetHeight / 2,\n w: target[0].offsetWidth,\n h: target[0].offsetHeight,\n };\n } else {\n this.canvasLines[system] = {\n key: system,\n x: target.offsetLeft + target.offsetWidth / 2,\n y: target.offsetTop + target.offsetHeight / 2,\n w: target.offsetWidth,\n h: target.offsetHeight,\n };\n }\n });\n }\n getCoordsThrottle = throttle(this.getCoords, 500)\n\n mounted() {\n window.addEventListener('resize', this.getCoordsThrottle);\n this.getCoords();\n }\n destroyed() {\n window.removeEventListener('resize', this.getCoordsThrottle);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=2044e232&scoped=true&\"\nimport script from \"./MainView.vue?vue&type=script&lang=ts&\"\nexport * from \"./MainView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./MainView.vue?vue&type=style&index=0&id=2044e232&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2044e232\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"setpoint-optimizer-charts\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{staticClass:\"primary\"},[_c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.schema,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){{}}}}),_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"}},[_c('v-tab',{attrs:{\"color\":\"accent\"}},[_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.SetpointOptimizer.charts.navigation.temperatures'))+\": 1\")])])],1)],1),_c('div',[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":400}})],1)],1)]),_c('v-tab-item',{staticClass:\"primary\"},[_c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.schema,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){{}}}}),_c('div',[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":400}})],1)],1)]),_c('v-tab-item',{staticClass:\"primary\"},[_c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{staticClass:\"pt-2\",attrs:{\"items\":_vm.schema,\"is-list-items-plural\":false},on:{\"handleCurrentChart\":function($event){{}}}}),_c('div',[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"showNavigationButtons\":false,\"chartHeight\":400}})],1)],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SystemsNavigation\n from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n SystemsNavigation,\n OfflineChart,\n },\n})\nexport default class Charts extends Vue {\n chartColors = ['#6ca2d8', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1'];\n tab: any = null\n\n schema = [\n [\n 'heating_air_systems',\n [\n [\n 'heating_air_systems1',\n ],\n [\n 'heating_air_systems2',\n ],\n ],\n ],\n [\n 'heating_water_systems',\n [\n [\n 'heating_water_systems1',\n ],\n ],\n ],\n [\n 'cooling_air_systems',\n [\n [\n 'cooling_air_systems1',\n ],\n ],\n ],\n [\n 'cooling_water_systems',\n [\n [\n 'cooling_water_systems1',\n ],\n ],\n ],\n [\n 'hybrid_water_systems',\n [\n [\n 'hybrid_water_systems1',\n ],\n ],\n ],\n [\n 'hybrid_air_systems',\n [\n [\n 'hybrid_air_systems1',\n ],\n ],\n ],\n ]\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: 'EnergyCircle Name: var',\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: '°C',\n var: '',\n }, {\n agg: 'first',\n name: 'EnergyCircle Name: var',\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: '°C',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n get items() {\n return [\n {\n id: 'chartsRoomTemperatures',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.chartsRoomTemperatures'),\n view: 'ChartsRoomTemperatures',\n },\n {\n id: 'chartControlVariables',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.chartControlVariables'),\n view: 'ChartControlVariables',\n },\n {\n id: 'forecast',\n title: this.$t('mlModel.SetpointOptimizer.charts.navigation.forecast'),\n view: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Charts.vue?vue&type=template&id=3d83e1d9&scoped=true&\"\nimport script from \"./Charts.vue?vue&type=script&lang=ts&\"\nexport * from \"./Charts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Charts.vue?vue&type=style&index=0&id=3d83e1d9&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d83e1d9\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport MainView from '@/ui/components/devices/previews/mpc/SetpointOptimizer/MainView.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport Charts from '@/ui/components/devices/previews/mpc/SetpointOptimizer/Charts.vue';\n\n@Component({\n components: {\n MPCLayout,\n MainView,\n ShowEventDotMock,\n Charts,\n },\n})\nexport default class SetpointOptimizer extends Vue {\n get previewNameLang() {\n return this.$t('mlModel.SetpointOptimizer.previewName');\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=da6394a2&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=da6394a2&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport HeatingCircuitOptimization from '@/ui/components/devices/previews/mpc/HeatingCircuitOptimization/index.vue';\nimport PVProductionService from '@/ui/components/devices/previews/mpc/PVProductionService/index.vue';\nimport ConsumptionService from '@/ui/components/devices/previews/mpc/ConsumptionService/index.vue';\nimport PVMonitoringService from '@/ui/components/devices/previews/mpc/PVMonitoringService/index.vue';\nimport EMS from '@/ui/components/devices/previews/mpc/EMS/index.vue';\nimport SetpointOptimizer from '@/ui/components/devices/previews/mpc/SetpointOptimizer/index.vue';\nimport HppProductionService from '@/ui/components/devices/previews/mpc/HeatingProduction/index.vue';\nimport { envMPCDeviceList, envMPCLibraryTabs } from '@/utils/env';\n\n@Component({\n components: {\n HeatingCircuitOptimization,\n PVProductionService,\n ConsumptionService,\n EMS,\n PVMonitoringService,\n SetpointOptimizer,\n HppProductionService,\n },\n})\nexport default class MPCPreviewsList extends Vue {\n tab = null;\n get devicesLib() {\n return [\n {\n name: 'Energy',\n locale: 'uiComponents.aimlLibrary.mpcSubTabs.energyTab',\n data: [\n { device: 'PVProductionService', sizes: { lg: 3, md: 6, sm: 12 } },\n { device: 'ConsumptionService', sizes: { lg: 3, md: 6, sm: 12 } },\n { device: 'PVMonitoringService', sizes: { lg: 3, md: 6, sm: 12 } },\n { device: 'EMS', sizes: { lg: 12, md: 12, sm: 12 } },\n ].filter((element: any) => envMPCDeviceList.includes(element.device)),\n },\n {\n name: 'Heating',\n locale: 'uiComponents.aimlLibrary.mpcSubTabs.heatingTab',\n data: [\n { device: 'SetpointOptimizer', sizes: { lg: 6, md: 12, sm: 12 } },\n { device: 'HppProductionService', sizes: { lg: 3, md: 6, sm: 12 } },\n { device: 'HeatingCircuitOptimization', sizes: { lg: 3, md: 6, sm: 12 } },\n ].filter((element: any) => envMPCDeviceList.includes(element.device)),\n },\n ].filter((element: any) => envMPCLibraryTabs.includes(element.name));\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCPreviewsList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MPCPreviewsList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MPCPreviewsList.vue?vue&type=template&id=16c0dcf2&scoped=true&\"\nimport script from \"./MPCPreviewsList.vue?vue&type=script&lang=ts&\"\nexport * from \"./MPCPreviewsList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"16c0dcf2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.aimlDevices),function(item,index){return _c('v-col',{key:index,attrs:{\"lg\":\"6\",\"md\":\"12\",\"sm\":\"12\",\"xs\":\"12\"}},[_c(item,{tag:\"component\"})],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport StreamAnomalyDetection from '@/ui/components/devices/previews/aiml/StreamAnomalyDetection.vue';\nimport HistoryAnomalyDetection from '@/ui/components/devices/previews/aiml/HistoryAnomalyDetection.vue';\n\n@Component({\n components: {\n StreamAnomalyDetection,\n HistoryAnomalyDetection,\n },\n})\nexport default class AnomalyDetectionPreviewsList extends Vue {\n aimlDevices = ['StreamAnomalyDetection', 'HistoryAnomalyDetection']\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetectionPreviewsList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnomalyDetectionPreviewsList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnomalyDetectionPreviewsList.vue?vue&type=template&id=50f7bb9a&scoped=true&\"\nimport script from \"./AnomalyDetectionPreviewsList.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnomalyDetectionPreviewsList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"50f7bb9a\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport MPCPreviewsList from '@/ui/components/devices/previews/components/MPCPreviewsList.vue';\nimport AnomalyDetectionPreviewsList from '@/ui/components/devices/previews/components/AnomalyDetectionPreviewsList.vue';\nimport { envAimlLibraryCategories } from '@/utils/env';\n\n/**\n * AIML page, here render Anomaly Detection, ML Model devices previews\n */\n@Component({\n components: {\n AnomalyDetectionPreviewsList,\n MPCPreviewsList,\n },\n})\nexport default class AIML extends Vue {\n tab = null\n previews = [\n {\n name: 'Anomaly Detection',\n locale: this.localisationPath,\n title: 'Anomaly Detection',\n view: 'AnomalyDetectionPreviewsList',\n },\n {\n name: 'MPC',\n locale: this.localisationPath,\n title: 'ML Model',\n view: 'MPCPreviewsList',\n },\n ]\n\n get previewsFiltered() {\n return this.previews.filter((e) => envAimlLibraryCategories.includes(e.name));\n }\n\n get localisationPath() {\n return 'uiComponents.aimlLibrary.mainTabs';\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AIML.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AIML.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AIML.vue?vue&type=template&id=6c0f438e&\"\nimport script from \"./AIML.vue?vue&type=script&lang=ts&\"\nexport * from \"./AIML.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"project-settings primary\"},[_c('v-container',{staticClass:\"settings-list pa-0\",staticStyle:{\"margin-bottom\":\"20px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"margin-top\":\"-12px\"}},_vm._l((_vm.settingsFiltered),function(item,index){return _c('v-col',{key:index,attrs:{\"lg\":\"4\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-card',{staticClass:\"settings-card\",attrs:{\"to\":item.route,\"exact-active-class\":\"settings-card__active\",\"elevation\":\"1\",\"flat\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":item.icon,\"color\":\"lynusText\",\"size\":\"25\"}}),_c('div',{staticClass:\"settings-card-title\"},[_vm._v(_vm._s(_vm.$t(item.locale)))])],1)],1)}),1),_c('div',{staticClass:\"lynus-divider\"})],1),_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { envProjectSettingsEnteries } from '@/utils/env';\nimport { IAppState } from '@/store/modules/app/types';\nimport { checkProtocolAccessList } from '@/utils/userRoles';\nimport { CanAccessCheck } from '@/types/members.types';\n\n/**\n * Page allows you to:\n * set up notifications, permissions, general settings;\n * check MQTT information;\n * upload repositories;\n * download certificates;\n */\n@Component\nexport default class Settings extends Vue {\n @State('app') appState!: IAppState;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get accessListCheckProtocolSettings() {\n const userMail = this.appState.user.email;\n return checkProtocolAccessList.includes(userMail);\n }\n\n get defaultSettingsItems() {\n return [\n {\n title: 'General',\n locale: 'uiComponents.settings.settingsTabs.general',\n component: 'General',\n icon: 'settings',\n route: `/projects/${this.$route.params.id}/settings/general`,\n },\n {\n title: 'EnergyPrice',\n locale: 'uiComponents.settings.settingsTabs.energyPrice',\n component: 'EnergyPrice',\n icon: 'energy_view',\n route: `/projects/${this.$route.params.id}/settings/energy-price`,\n },\n {\n title: 'Downloads',\n locale: 'uiComponents.settings.settingsTabs.downloads',\n component: 'Downloads',\n icon: 'download',\n route: `/projects/${this.$route.params.id}/settings/downloads`,\n },\n {\n title: 'Notification',\n locale: 'uiComponents.settings.settingsTabs.notification',\n component: 'Notification',\n icon: 'notification',\n route: `/projects/${this.$route.params.id}/settings/notification`,\n },\n ...(this.superAdmin ? [{\n title: 'MQTT',\n locale: 'uiComponents.settings.settingsTabs.mqtt',\n component: 'MQTT',\n icon: 'mqtt',\n route: `/projects/${this.$route.params.id}/settings/mqtt`,\n }] : []),\n {\n title: 'Permissions',\n locale: 'uiComponents.settings.settingsTabs.permissions',\n component: 'Permissions',\n icon: 'permission',\n route: `/projects/${this.$route.params.id}/settings/permissions`,\n },\n {\n title: 'SettingsVariables',\n locale: 'uiComponents.settings.settingsTabs.variables',\n component: 'VariablesInSettings',\n icon: 'variables',\n route: `/projects/${this.$route.params.id}/settings/variables`,\n },\n ...(this.accessListCheckProtocolSettings ? [{\n title: 'CheckProtocol',\n locale: 'uiComponents.settings.settingsTabs.checkProtocol',\n component: 'CheckProtocol',\n icon: 'ok',\n route: `/projects/${this.$route.params.id}/settings/check-protocol`,\n }] : []),\n ];\n }\n\n get settings() {\n return this.defaultSettingsItems\n .filter((item: any) => this.canMemberAccess('ProjectSettingsEntries', item.title));\n }\n\n get settingsFiltered() {\n return this.settings.filter((e) => envProjectSettingsEnteries.includes(e.title));\n }\n\n async created() {\n // go to first page that user can access inside settings if user doens't have access to general\n if (!this.canMemberAccess('ProjectSettingsEntries', 'General') && this.settingsFiltered.length > 0) {\n // fix error of duplicate navigation when reloading page\n if (this.$route.path !== this.settingsFiltered[0].route) {\n this.$router.push(this.settingsFiltered[0].route);\n }\n } else {\n if (this.$route.path !== this.settingsFiltered[0].route) {\n this.$router.push(`/projects/${this.$route.params.id}/settings/general`);\n }\n }\n await this.fetchMembers(this.$route.params.id);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4e2b17b7&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4e2b17b7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e2b17b7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary project-events-list\"},[(_vm.eventListDataLoaded)?[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tables),function(item,inx){return _c('v-tab',{key:inx,on:{\"click\":function($event){return _vm.handleEvents(inx)}}},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tables),function(table,idx){return _c('v-tab-item',{key:idx},[_c('div',{staticStyle:{\"overflow\":\"auto\"}},[_c('v-data-table',{staticClass:\"primary\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":table.headers,\"items\":_vm.eventsListTable,\"items-per-page\":20,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"header.accepted\",fn:function({ header }){return [(!_vm.tab)?_c('span',{staticClass:\"pl-5\"},[_vm._v(\" \"+_vm._s(header.text)+\" \")]):_c('span',{staticClass:\"pr-4\"},[_vm._v(\" \"+_vm._s(header.text !== 'Accept' ? header.text : 'Accepted At')+\" \")]),(!_vm.tab)?_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"ml-4\",attrs:{\"icon\":\"\"},on:{\"click\":_vm.acceptAllEvents}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":!_vm.getIsAllAccepted ? '' : 'blue'}},[_vm._v(\"fa-check\")])],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.getIsAllAccepted ? 'Accept all events' : 'No events to Accept'))])]):_vm._e()]}},{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(_vm.typeFromNumberCode(item.type)))]),_c('td',[_vm._v(_vm._s(item.body))]),_c('td',[_vm._v(_vm._s(_vm.formatDate(item.created_at)))]),(item.accepted_at)?_c('td',[_vm._v(_vm._s(_vm.formatDate(item.accepted_at)))]):_vm._e(),(item.accepted_by)?_c('td',[_vm._v(_vm._s(_vm.getAcceptedByMember(item.accepted_by)))]):_vm._e(),(!item.accepted_at || !item.accepted_by)?_c('td',[_c('v-btn',{directives:[{name:\"show\",rawName:\"v-show\",value:(!item.accepted_by),expression:\"!item.accepted_by\"}],attrs:{\"text\":\"\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.acceptEvent(item.id)}}},[_vm._v(\" ACCEPT \")])],1):_vm._e()])}),0)]}}],null,true)}),(!_vm.getEventList.length)?_c('h2',{staticClass:\"primary text-center py-4\",staticStyle:{\"min-width\":\"1000px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.eventListTable.noDataFound'))+\" \")]):_vm._e(),_c('div',{staticClass:\"primary d-flex justify-center\",staticStyle:{\"min-width\":\"1000px\"}},[_c('v-pagination',{attrs:{\"value\":!_vm.tab ? _vm.notAcceptedEventsPaginationPage : _vm.acceptedEventsPaginationPage,\"length\":_vm.numberOfPages,\"total-visible\":9,\"color\":\"accent\"},on:{\"input\":_vm.handlePagination}})],1)],1)])}),1)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { IEventState } from '@/store/modules/events/types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IUser } from '@/types/app.types';\nimport { IEvent } from '@/types/events.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * Event list page that shows table of events\n */\n@Component\nexport default class EventList extends Vue {\n @State('events') eventsState!: IEventState;\n @Getter('events/getEventList') getEventList!: IEvent[];\n @Getter('events/getIsAllAccepted') getIsAllAccepted!: IEvent[];\n @Getter('members/members') membersList!: IMember[];\n @Getter('app/getUser') currentUser!: IUser;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Mutation('events/clean') clean!: () => void;\n @Action('events/loadEvents') loadEvents!: (payload: { page: number; bol: boolean }) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('events/acceptOneEvent') acceptOneEvent!: (payload: { id: string }) => Promise;\n @Action('events/acceptEveryEvent') acceptEveryEvent!: () => Promise;\n\n eventListDataLoaded = false;\n tab = null;\n notAcceptedEventsPaginationPage = 1;\n acceptedEventsPaginationPage = 1;\n\n get isUserAdmin() {\n const member: IMember | undefined = this.membersList.find((member: IMember) => member.id === this.currentUser.id);\n if (member?.role === UserRoleCode.admin) {\n return true;\n }\n return false;\n }\n\n /**\n * Contains all headers for the EventTable\n */\n get notAcceptedEventsTableHeaders() {\n return [\n {\n text: this.$t('uiComponents.eventListTable.headers.type'),\n align: 'start',\n width: '10%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.text'),\n align: 'start',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.date'),\n align: 'start',\n width: '15%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.accept'),\n align: 'start',\n width: '15%',\n sortable: false,\n value: 'accepted',\n },\n ];\n }\n get acceptedEventsTableHeaders() {\n return [\n {\n text: this.$t('uiComponents.eventListTable.headers.type'),\n align: 'start',\n width: '10%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.text'),\n align: 'start',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.date'),\n align: 'start',\n width: '15%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.accept'),\n align: 'start',\n width: '10%',\n sortable: false,\n value: 'accepted',\n },\n {\n text: this.$t('uiComponents.eventListTable.headers.acceptedBy'),\n align: 'start',\n width: '15%',\n sortable: false,\n value: 'acceptedBy',\n },\n ];\n }\n\n get tables() {\n return [\n {\n title: this.$t('uiComponents.eventListTable.eventListTabs.events'),\n headers: this.notAcceptedEventsTableHeaders,\n },\n {\n title: this.$t('uiComponents.eventListTable.eventListTabs.accepted'),\n headers: this.acceptedEventsTableHeaders,\n },\n ];\n }\n\n get eventsListTable() {\n return this.getEventList.map((event: IEvent) => ({\n ...event,\n created_at: event.created_at ? this.parseDate(event.created_at) : null,\n accepted_at: event?.accepted_at ? this.parseDate(event.accepted_at) : null,\n }));\n }\n\n get numberOfPages() {\n return this.eventsState.numberOfPages;\n }\n\n /**\n * pads the given number to 2 digits. e.g. pad(1) -> \"01\"\n * @param n number of occupancy\n * @return string of 2 digits\n * @private\n */\n pad(n: number) {\n return n.toString().padStart(2, '0');\n }\n parseDate(dateString: string) {\n return new Date(dateString);\n }\n typeFromNumberCode(type: number) {\n switch (type) {\n case 1:\n return 'Warning';\n case 2:\n return 'Error';\n default:\n return 'Info';\n }\n }\n /**\n * Convert date string to specific format\n * @param date date string\n * @return date in format MM.DD.YYYY - HH.MM.SS\n */\n formatDate(date: Date) {\n return `${this.pad(date.getDate())}.${this.pad(date.getMonth() + 1)}.${date.getFullYear()} - ${this.pad(date.getHours())}:${this.pad(date.getMinutes())}:${this.pad(date.getSeconds())}`;\n }\n\n /**\n * Define member who accepted event\n * @param acceptedBy member id\n * @return full name of member\n */\n getAcceptedByMember(acceptedBy: string) {\n // get Username based on the given ID\n const member: IMember | undefined = this.membersList.find(member => member.id === acceptedBy);\n if (member !== undefined) return `${member?.first_name} ${member?.last_name}`;\n else return '';\n }\n\n async handlePagination(page: number) {\n await this.loadEvents({ page, bol: !!this.tab });\n if (!this.tab) this.notAcceptedEventsPaginationPage = page;\n else this.acceptedEventsPaginationPage = page;\n }\n\n async handleEvents(inx: number) {\n const page = this.tab ? this.notAcceptedEventsPaginationPage : this.acceptedEventsPaginationPage;\n await this.loadEvents({ page, bol: !!inx });\n }\n\n async acceptEvent(id: string) {\n if (!this.isUserAdmin) return;\n await this.acceptOneEvent({ id });\n }\n async acceptAllEvents() {\n await this.acceptEveryEvent();\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.allSettled([\n this.loadEvents({ page: 1, bol: false }),\n this.fetchMembers(this.$route.params.id),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.eventListDataLoaded = true;\n });\n }\n async destroyed() {\n this.clean();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EventList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EventList.vue?vue&type=template&id=1544b9ee&scoped=true&\"\nimport script from \"./EventList.vue?vue&type=script&lang=ts&\"\nexport * from \"./EventList.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1544b9ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"project-rules\"},[(_vm.rulesDataLoaded)?_c('v-expansion-panels',{attrs:{\"focusable\":\"\"},model:{value:(_vm.openedPanel),callback:function ($$v) {_vm.openedPanel=$$v},expression:\"openedPanel\"}},_vm._l((_vm.filteredRulesList),function(rule,index){return _c('v-expansion-panel',{key:rule.id},[_c('v-expansion-panel-header',[_c('div',{staticClass:\"rule-header-name\"},[_vm._v(_vm._s(rule.name))]),_c('div',{class:['rule-header-status', { 'active-rule-header-status': rule.active }]},[_vm._v(\" \"+_vm._s(rule.active ? _vm.$t('uiComponents.rules.active') : _vm.$t('uiComponents.rules.notActive'))+\" \")])]),_c('v-expansion-panel-content',[(index === _vm.openedPanel)?_c('ManageRule',{attrs:{\"rule\":rule},on:{\"closePanel\":_vm.closePanel}}):_vm._e()],1)],1)}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport ManageRule from '@/ui/components/modals/ManageRule/index.vue';\nimport { State, Action, Mutation } from 'vuex-class';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { IRule } from '@/types/rules.types';\n\n/**\n * Rules page that shows rules\n */\n@Component({\n components: { ManageRule },\n})\nexport default class Rules extends Vue {\n @State('rules') rulesState!: IRulesState;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('rules/loadRules') loadRules!: (project_id: string) => Promise;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n\n openedPanel = null;\n rulesDataLoaded = false;\n\n get rulesList() {\n return this.rulesState.rulesList;\n }\n get rulesFilter() {\n return this.rulesState.rulesFilter;\n }\n get rulesListSortedByDate() {\n const copy = JSON.parse(JSON.stringify(this.rulesList));\n return copy.sort((a: IRule, b: IRule) => {\n const first = new Date(a.created_at).getTime();\n const second = new Date(b.created_at).getTime();\n if (first > second) return 1;\n if (first < second) return -1;\n return 0;\n });\n }\n get filteredRulesList() {\n return this.rulesFilter\n ? this.rulesListSortedByDate.filter((rule: IRule) => rule.name.toLowerCase().includes(this.rulesFilter.toLowerCase()))\n : this.rulesListSortedByDate;\n }\n\n closePanel() {\n this.openedPanel = null;\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.allSettled([\n this.loadRules(this.$route.params.id),\n this.fetchVariables(this.$route.params.id),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.rulesDataLoaded = true;\n });\n }\n}\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rules.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rules.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Rules.vue?vue&type=template&id=55ff1fc3&\"\nimport script from \"./Rules.vue?vue&type=script&lang=ts&\"\nexport * from \"./Rules.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Rules.vue?vue&type=style&index=0&id=55ff1fc3&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"project-reports\"},[(_vm.isReportsLoaded)?_c('div',[_c('div',{staticClass:\"d-flex justify-center\"},[(!_vm.reportList.length)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.noReportsFound'))+\" \")]):_vm._e(),(!_vm.reportsListToShowLength && _vm.reportList.length)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.noReportsWithNameFound', { name: _vm.getReportFilter }))+\" \")]):_vm._e()]),_c('div',_vm._l((_vm.reportsListToShow),function(item,inx){return _c('div',{key:inx},[(item.items.length)?_c('ReportExpansionPanel',{staticClass:\"mb-12\",attrs:{\"reportList\":item.items,\"reportListTitle\":_vm.$t(`modals.manageReport.${item.key}`)}}):_vm._e()],1)}),0)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h2',[_vm._v(_vm._s(_vm.reportListTitle)+\":\")]),_c('v-expansion-panels',{attrs:{\"focusable\":\"\"},model:{value:(_vm.currentReport),callback:function ($$v) {_vm.currentReport=$$v},expression:\"currentReport\"}},_vm._l((_vm.reportList),function(report,inx){return _c('v-expansion-panel',{key:report.id},[_c('v-expansion-panel-header',[_c('v-row',{staticStyle:{\"max-width\":\"calc(100% - 21px)\"},attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('div',{staticClass:\"text-truncate\"},[_vm._v(\" \"+_vm._s(report.name)+\" \")])]),_c('v-col',{attrs:{\"cols\":_vm.$vuetify.breakpoint.xs ? 12 : 4}},[_c('div',{class:[report.active ? 'green--text' : 'red--text', 'font-weight-bold']},[_vm._v(\" \"+_vm._s(report.active ? _vm.$t('uiComponents.rules.active') : _vm.$t('uiComponents.rules.notActive'))+\" \")])])],1)],1),_c('v-expansion-panel-content',[(inx === _vm.currentReport)?_c('EditReport',{attrs:{\"report\":report},on:{\"duplicationDone\":function($event){_vm.currentReport = null}}}):_vm._e()],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"edit-report\"},[_c('v-container',[(_vm.reportType !== 'zev' && _vm.currentMember.role === _vm.UserRoleCode.admin)?_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\",\"md\":\"6\",\"sm\":\"12\"}},[_c('h2',{staticClass:\"pb-3\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.selectTypeTitle')))]),_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"items\":_vm.reportTypesList,\"item-text\":\"state\",\"item-value\":\"abbr\",\"label\":_vm.$t('modals.manageReport.textFields.newTypeField')},model:{value:(_vm.reportType),callback:function ($$v) {_vm.reportType=$$v},expression:\"reportType\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c(_vm.reportsNames[this.report.type],{ref:\"CurrentReport\",tag:\"component\",attrs:{\"report\":_vm.report},on:{\"onFormValidStatusChange\":function($event){_vm.isFormValid = $event}}})],1)],1)],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"disabled\":!_vm.isFormValid,\"elevation\":\"0\"},on:{\"click\":_vm.updateReport}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.modifyReport'))+\" \")]),_c('DeleteModalForm',{attrs:{\"deletedItemName\":`${_vm.report.name}`,\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},on:{\"deleteHandler\":_vm.removeReport}},[_c('v-btn',{staticClass:\"lynus-small-btn ml-4\",attrs:{\"color\":\"error\",\"elevation\":\"0\",\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.deleteReport'))+\" \")])],1)],1),_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"disabled\":!_vm.isFormValid || _vm.currentMember?.role !== _vm.UserRoleCode.admin,\"elevation\":\"0\"},on:{\"click\":_vm.duplicateReport}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.duplicateReport'))+\" \")])],1)])],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator';\nimport NormalReport from '@/ui/components/modals/ManageReport/NormalReport.vue';\nimport ZevReport from '@/ui/components/modals/ManageReport/ZevReport.vue';\nimport { Action, Getter } from 'vuex-class';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport { IReport } from '@/types/report.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMember } from '@/types/members.types';\n\n/**\n * A component that allows to create or modify reports\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n NormalReport,\n ZevReport,\n DeleteModalForm,\n },\n})\nexport default class EditReport extends Vue {\n @Prop() report!: any;\n @Getter('members/currentMember') currentMember!: IMember;\n @Action('report/modifyReport') modifyReport!:\n ({ id, report_id, reportModel }: { id: string; report_id: string; reportModel: IReport }) => Promise;\n @Action('report/deleteReport') deleteReport!:\n ({ project_id, report_id }: { project_id: string; report_id: string }) => Promise;\n @Action('report/addReport') addReport!: ({ id, reportModel }: { id: string; reportModel: IReport }) => Promise;\n\n isFormValid = true;\n reportType = '';\n\n get reportTypesList() {\n const translations: any = this.$t('modals.manageReport.newReportListItems');\n return [\n { state: translations[1], abbr: 'heatingReport' },\n { state: translations[2], abbr: 'coldWaterReport' },\n { state: translations[3], abbr: 'hotWaterReport' },\n { state: translations[4], abbr: 'electricityReport' },\n { state: translations[5], abbr: 'otherReport' },\n ];\n }\n\n get reportsNames() {\n return {\n normal: 'NormalReport',\n zev: 'ZevReport',\n heatingReport: 'NormalReport',\n coldWaterReport: 'NormalReport',\n hotWaterReport: 'NormalReport',\n electricityReport: 'NormalReport',\n otherReport: 'NormalReport',\n };\n }\n\n mounted() {\n // new reports all have showInList prop. If it's not there, it's an old report\n if ((this.$refs.CurrentReport as any).reportDataToSend.meta.showInList !== undefined) {\n this.reportType = (this.$refs.CurrentReport as any).reportDataToSend.meta.showInList;\n }\n if (this.report.type === 'zev') {\n this.reportType = 'zev';\n }\n }\n\n async updateReport() {\n const modelForUpdate = (this.$refs.CurrentReport as any).reportDataToSend;\n if (modelForUpdate.type === 'normal' && this.reportType !== '') {\n modelForUpdate.meta.showInList = this.reportType;\n }\n await this.modifyReport({\n id: this.$route.params.id,\n report_id: (this.$refs.CurrentReport as any).reportDataToSend.id,\n reportModel: (this.$refs.CurrentReport as any).reportDataToSend,\n });\n }\n async removeReport() {\n await this.deleteReport({\n project_id: this.$route.params.id,\n report_id: (this.$refs.CurrentReport as any).reportDataToSend.id,\n });\n }\n async duplicateReport() {\n const newModel = (this.$refs.CurrentReport as any).reportDataToSend;\n delete newModel.id;\n newModel.name += '(copy)';\n await this.addReport({\n id: this.$route.params.id,\n reportModel: newModel,\n });\n // will close the currently open expansion panel\n this.$emit('duplicationDone');\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditReport.vue?vue&type=template&id=d48ba910&\"\nimport script from \"./EditReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport EditReport from '@/ui/components/modals/ManageReport/EditReport.vue';\nimport { TranslateResult } from 'vue-i18n';\n\n/**\n * Report page that shows reports list\n */\n@Component({\n components: {\n EditReport,\n },\n})\nexport default class Report extends Vue {\n @Prop({ default: '' }) reportListTitle!: string | TranslateResult;\n @Prop({ default: [] }) reportList!: any[];\n\n currentReport = null;\n}\n","\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport ReportExpansionPanel from '@/ui/components/modals/ManageReport/components/ReportsExpansionPanel.vue';\nimport { IReport } from '@/types/report.types';\nimport { IReportState } from '@/store/modules/report/types';\n\nenum ReportType {\n normal = 'normal',\n zev = 'zev',\n heatingReport = 'heatingReport',\n coldWaterReport = 'coldWaterReport',\n hotWaterReport = 'hotWaterReport',\n electricityReport = 'electricityReport',\n otherReport = 'otherReport',\n}\n\n/**\n * Report page that shows reports list\n */\n@Component({\n components: {\n ReportExpansionPanel,\n },\n})\nexport default class Report extends Vue {\n @State('report') reportState!: IReportState;\n @Getter('report/getReportFilter') getReportFilter!: string;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('report/loadReports') loadReports!: (project_id: string) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n\n isReportsLoaded = false;\n\n reportsTypesListToShow = [\n ReportType.normal,\n ReportType.zev,\n ReportType.heatingReport,\n ReportType.coldWaterReport,\n ReportType.hotWaterReport,\n ReportType.electricityReport,\n ReportType.otherReport,\n ];\n\n // All reports stored in store\n get reportList() {\n return this.reportState.reportList;\n }\n\n get reportListFilteredBySearch() {\n if (this.getReportFilter?.length) {\n return this.reportList\n .filter((currentReport: IReport) => currentReport.name.toLowerCase()\n .includes(this.getReportFilter.toLowerCase()));\n } else {\n return this.reportList;\n }\n }\n\n get reportsListToShow() {\n return this.reportsTypesListToShow.map((type: ReportType) => {\n return {\n key: type,\n items: this.reportFilter(this.reportListFilteredBySearch, type),\n };\n });\n }\n get reportsListToShowLength() {\n return this.reportsListToShow\n .flatMap((item: { key: ReportType; items: IReport[] }) => item.items)\n .length;\n }\n\n reportFilter(reports: IReport[], type: ReportType) {\n if ([ReportType.normal, ReportType.zev].includes(type)) {\n return reports.filter((report: IReport) => report.type === type && (report.meta.showInList === type || !report.meta.showInList));\n } else {\n return reports.filter((report: IReport) => report.meta.showInList === type);\n }\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.allSettled([\n this.loadReports(this.$route.params.id),\n this.fetchMeasurements(this.$route.params.id),\n this.fetchVariables(this.$route.params.id),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.isReportsLoaded = true;\n });\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportsExpansionPanel.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportsExpansionPanel.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReportsExpansionPanel.vue?vue&type=template&id=0e93538f&\"\nimport script from \"./ReportsExpansionPanel.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportsExpansionPanel.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Report.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Report.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Report.vue?vue&type=template&id=5801ec16&\"\nimport script from \"./Report.vue?vue&type=script&lang=ts&\"\nexport * from \"./Report.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"height\":\"100%\"}},[(_vm.showInstallationWizard)?_c('InstallationWizard'):_vm._e(),(_vm.showLoggerWizard)?_c('LoggerWizard'):_vm._e(),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t(`navigation.appNavigation.installationWizard`),\"additional-information\":_vm.$t('installationWizard.routeLeave.text'),\"sendWizardVariables\":_vm.sendWizardVariables},on:{\"handleRouteChange\":_vm.handleRouteChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"height\":\"100%\"}},[(_vm.hasBatteryDefined && (_vm.doesEnergyDevicesHaveBattery || _vm.isDeye) && !_vm.wizardBlocked)?_c('Wizard',{ref:\"wizard\",attrs:{\"name\":\"installationWizard\",\"steps-count\":6,\"pages\":_vm.pages,\"has-to-be-online\":_vm.hasToBeOnline,\"current-step\":_vm.activeStep,\"current-page\":_vm.currentPage,\"consider-project-status\":_vm.considerProjectStatus,\"is-project-online\":_vm.isProjectOnline}}):_vm._e(),(_vm.wizardBlocked)?_c('div',[_c('div',{staticClass:\"d-flex flex-column py-8 mx-10\"},[_c('div',{staticClass:\"text-lg-h5 pb-10\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmedMessage'))+\" \")]),(_vm.failedHybridInverters.length)?_c('div',{staticClass:\"d-flex justify-center my-10\"},_vm._l((_vm.failedHybridInverters),function(i){return _c('div',{key:i,staticClass:\"d-flex justify-center align-center failed-inverter-container\"},[_c('div',{staticClass:\"pr-2 text-xl-h6\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.inverter'))+\" \"+_vm._s(i + 1))])])}),0):_vm._e(),(_vm.failedStringInverters.length)?_c('div',{staticClass:\"d-flex justify-center mb-10\"},_vm._l((_vm.failedStringInverters),function(i){return _c('div',{key:i,staticClass:\"d-flex justify-center align-center failed-inverter-container rounded-lg\"},[_c('div',{staticClass:\"pr-2 text-xl-h6\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.stringInverter'))+\" \"+_vm._s(i + 1))])])}),0):_vm._e(),_c('div',{staticClass:\"text-lg-h5 pb-4\"},[_c('div',{staticClass:\"text-lg-h5 pb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.possibilities'))+\" \")]),_c('ul',{staticClass:\"text-lg-h6 pb-4\"},[_c('li',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.1'))+\" \")]),_c('li',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.2'))+\" \")]),_c('li',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.3'))+\" \")]),_c('li',{staticClass:\"pb-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.4'))+\" \")])]),_c('div',{staticClass:\"text-lg-h5 pb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.else'))+\" \")]),_c('div',{staticClass:\"my-10\",staticStyle:{\"width\":\"100%\",\"display\":\"flex\",\"justify-content\":\"center\"}},[_c('v-btn',{on:{\"click\":_vm.reloadPage}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inverterConfigurationNotConfirmed.restart'))+\" \")])],1)])])]):_vm._e(),(!_vm.loading)?_c('div',[(!(_vm.doesEnergyDevicesHaveBattery || _vm.isDeye || _vm.isSolarmax))?_c('div',{staticClass:\"d-flex flex-column justify-center align-center pt-8\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.energyDevicesWithNoBatteryMessage'))+\" \")]):_vm._e(),(!_vm.hasBatteryDefined)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center pt-8\"},[_c('div',{staticClass:\"text-lg-h4 pb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.batteryNotDefinedMessage'))+\" \")])]):_vm._e(),(!(_vm.doesEnergyDevicesHaveBattery || _vm.isDeye || _vm.isSolarmax) || !_vm.hasBatteryDefined)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_c('div',{staticClass:\"text-lg-h4 mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.contactSupportMessage'))+\" \")])]):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('div',{staticClass:\"installation-wizard\"},[_c('div',{staticClass:\"d-flex\"},[_c('SideBar',{attrs:{\"name\":_vm.name,\"steps-count\":_vm.stepsCount,\"wizard-pages\":_vm.pages,\"active-page\":_vm.currentPage,\"active-step\":_vm.currentStep}}),_c('v-divider',{attrs:{\"vertical\":\"\"}})],1),_c('WizardContent',{attrs:{\"name\":_vm.name,\"pages\":_vm.pages,\"current-page\":_vm.currentPage,\"has-to-be-online\":_vm.hasToBeOnline,\"consider-project-status\":_vm.considerProjectStatus,\"is-project-online\":_vm.isProjectOnline}})],1),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t(`navigation.appNavigation.${_vm.name}`),\"additional-information\":_vm.$t('installationWizard.routeLeave.text')},on:{\"handleRouteChange\":_vm.handleRouteChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"wizard-content\"},[_c(_vm.pages[_vm.currentPage].view,{tag:\"component\",attrs:{\"name\":_vm.name,\"currentStoreName\":_vm.name}}),(_vm.hasToBeOnline)?_c('v-overlay',{staticClass:\"offline-overlay\",attrs:{\"absolute\":true,\"value\":_vm.considerProjectStatus && !_vm.isProjectOnline,\"opacity\":0.9,\"color\":\"red\"}},[_c('h1',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.projectOffline.title')))]),_c('p',[_vm._v(_vm._s(_vm.$t(`${_vm.name}.projectOffline.line1`)))]),_c('p',[_vm._v(_vm._s(_vm.$t(`${_vm.name}.projectOffline.line2`)))]),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"to\":`/projects/${_vm.$route.params.id}/favorites`}},[_vm._v(_vm._s(_vm.$t(`${_vm.name}.projectOffline.quit`)))])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-auto-fix\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.welcome')))])])],1),(!_vm.isMobileDeye)?_c('v-card-text',[_c('p',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.textParts.1')))]),_c('ul',[_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.1')))]),_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.2', { count: _vm.emsLimits?.charge_station })))]),_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.3')))]),(_vm.isNewChargeStationPlcVersion)?_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.4')))]):_vm._e(),_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.5')))]),(_vm.isDeye || _vm.isSolarmax)?_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.6')))]):_vm._e(),(_vm.isDeye)?_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.7')))]):_vm._e(),(_vm.isSolarmax)?_c('li',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.listing.8')))]):_vm._e()]),_c('p',{staticClass:\"pt-4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.textParts.2')))]),_c('a',{staticStyle:{\"color\":\"var(--v-accent-base)\"},attrs:{\"href\":\"https://www.youtube.com/watch?v=F7Z3IV0cwbQ\",\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.textParts.3'))+\" \")]),(_vm.showAdditionalMessage)?_c('div',{staticClass:\"mt-1 warning-text\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.additionalMessage')))])]):_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.tenantWizardInfo')))])])]):_c('v-card-text',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.mobileText'))+\" \")]),_c('v-card-actions',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"color\":\"accent\",\"x-large\":\"\",\"disabled\":_vm.considerProjectStatus && !_vm.isProjectOnline},on:{\"click\":_vm.handleStart}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.start'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"wizard-content-view\"},[_c('div',{staticClass:\"wizard-content-view__header\"},[_vm._t(\"header\")],2),_c('div',{staticClass:\"wizard-content-view__content\"},[_vm._t(\"content\")],2),_c('div',{staticClass:\"wizard-content-view__footer\"},[_c('Navigation',{attrs:{\"buttons\":_vm.definedButtons}})],1),_c('v-overlay',{attrs:{\"absolute\":true,\"value\":_vm.loadingState.isLoading || _vm.customTimerLoadingState.isLoading,\"opacity\":0.8,\"color\":\"primary\"}},[_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_c('ProgressBar',{staticStyle:{\"width\":\"50vw\"},attrs:{\"max\":_vm.loadingState.loadingTotal,\"current\":_vm.loadingState.loadingCount,\"size\":\"128\"}}),(_vm.customTimerLoadingState.isLoading)?_c('h2',{staticStyle:{\"color\":\"var(--v-lynusText-base)\"}},[_vm._v(_vm._s(_vm.$t('installationWizard.loadingData'))+\": \"+_vm._s(_vm.customTimerLoadingState.loadingCount))]):_vm._e()],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex justify-space-between\"},_vm._l((_vm.buttons),function(button){return _c('v-btn',{key:button.id,attrs:{\"color\":\"accent\",\"disabled\":button.disabled || _vm.disabled},on:{\"click\":function($event){return _vm.buttonClickThrottle(button)}}},[_vm._v(\" \"+_vm._s(button.title)+\" \")])}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { debounce, throttle } from 'lodash';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { NavigationButton } from '@/types/wizards/wizard.general.types';\n\n@Component\nexport default class Navigation extends Vue {\n @Prop({ default: () => [] }) buttons!: NavigationButton[];\n\n disabled = false;\n\n async handleButtonClick(button: any) {\n button.onClick();\n this.disabled = true;\n await new Promise((resolve) => setTimeout(resolve, 250));\n this.disabled = false;\n }\n\n buttonClickThrottle = debounce(this.handleButtonClick, 50);\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=7e8b0a38&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Object containing all the wizard store names to access via route name\nexport const wizardStores: any = {\n 'InstallationWizard': 'installationWizard',\n 'installationWizard': 'installationWizard',\n 'TenantWizard': 'tenantWizard',\n 'loggerWizard': 'loggerWizard',\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-column align-center justify-content-center\"},[_c('v-progress-circular',{attrs:{\"color\":\"accent\",\"size\":_vm.size,\"value\":_vm.percentage,\"rotate\":-90,\"rounded\":\"\"}},[_c('strong',{staticClass:\"text-content\"},[_vm._v(_vm._s(_vm.percentageText))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from 'vue';\nimport { Component, Prop } from 'vue-property-decorator';\n\n@Component({})\nexport default class ProgressBar extends Vue {\n @Prop({ default: 100 }) max!: number;\n @Prop({ default: 0 }) current!: number;\n @Prop({ default: 40 }) size!: number;\n @Prop({ default: 'default' }) color!: string; // possible values: default, accent, secondary (colors are taken from config.ts/VUE_APP_THEMES)\n\n get percentage() {\n if (this.max === 0) return 0;\n return (this.current / this.max) * 100;\n }\n\n get percentageText() {\n return `${this.percentage.toFixed(0)}%`; // Rounds to nearest whole number\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=0c13e448&scoped=true&\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=0c13e448&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c13e448\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport Navigation from '@/ui/components/wizards/baseComponents/Navigation.vue';\nimport { State } from 'vuex-class';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport store from '@/store';\nimport { wizardStores } from '@/ui/components/wizards';\nimport { IWizardLoadingState, NavigationButton } from '@/types/wizards/wizard.general.types';\nimport ProgressBar from '@/ui/components/components/ProgressBar.vue';\n\n@Component({\n components: {\n ProgressBar,\n CircleSpinner,\n Navigation,\n },\n})\nexport default class WizardContentView extends Vue {\n @Prop({ default: 'InstallationWizard' }) wizardName!: string;\n @Prop({ default: true }) valid!: boolean;\n @Prop() handleNext?: () => void;\n @Prop() handleBack?: () => void;\n @State('mqttClient') mqttState!: IMQTTState;\n\n get projectOnline() {\n return this.mqttState.online;\n }\n\n get storeName() {\n return wizardStores[this.wizardName];\n }\n\n get loadingState(): IWizardLoadingState {\n return store.getters['installationWizard/loadingState'];\n }\n\n get customTimerLoadingState(): IWizardLoadingState {\n return store.getters['installationWizard/customTimerLoadingState'];\n }\n\n get considerProjectStatus() {\n return store.getters[`${this.storeName}/considerProjectStatus`];\n }\n\n get notValid() {\n return !this.valid || this.loadingState.isLoading || (this.considerProjectStatus && !this.projectOnline);\n }\n\n get buttons(): NavigationButton[] {\n return [\n { id: 'back', title: this.$t('uiComponents.buttons.back') as string, onClick: this.handleBack, disabled: this.loadingState.isLoading },\n { id: 'next', title: this.$t('uiComponents.buttons.next') as string, onClick: this.handleNext, disabled: this.notValid },\n ];\n }\n\n get definedButtons() {\n return this.buttons.filter((button: NavigationButton) => button.onClick);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContentView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContentView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WizardContentView.vue?vue&type=template&id=18076822&scoped=true&\"\nimport script from \"./WizardContentView.vue?vue&type=script&lang=ts&\"\nexport * from \"./WizardContentView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WizardContentView.vue?vue&type=style&index=0&id=18076822&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18076822\",\n null\n \n)\n\nexport default component.exports","/* eslint-disable max-classes-per-file */\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport { MQTTFeedbackError } from '@/store/modules/installationWizard/MQTTFeedbackError';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IReportBox } from '@/types/app.types';\nimport { IIncludedSystemsTypes, IMQTTVariable } from '@/types/wizards/installationWizard.types';\nimport { newChargeStationLimitDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport {\n SEND_MQTT_DISABLED,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/developmentConfig';\nimport { defaultTimeoutRepotMessages } from '@/utils/constants';\n\nclass ProcessFailedError implements Error {\n constructor(processStatusCheckFailed: string) {\n this.message = processStatusCheckFailed;\n this.name = 'ProcessFailedError';\n }\n\n message: string;\n name: string;\n}\n\n/**\n * Generic WizardComponent class, which provides common functionality used throughout\n * multiple wizard pages/components, such as mqtt sending, page navigation, etc.\n */\n@Component\nexport default class WizardComponent extends Validation {\n @Getter('installationWizard/includedSystemsTypes') includedSystems!: IIncludedSystemsTypes;\n @Getter('measurements/measurements') measurements!: any;\n @Getter('installationWizard/wasInstallationWizardCompleted') wasInstallationWizardCompleted!: boolean;\n @Mutation('installationWizard/resetLoadingState') resetLoadingState!: () => void;\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n @Action('installationWizard/handleIncrement') handleIncrement!: () => void;\n @Action('installationWizard/handleDecrement') handleDecrement!: () => void;\n @Action('installationWizard/sendVariables') sendVariables!: (variablesToSend: IMQTTVariable[]) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n\n // we use Map here to assure that the order in which the data is added is preserved\n variablesToSend: Map = new Map();\n\n processFailedMessage = 'Process status check failed';\n\n /**\n * Fills the variablesToSend object with the necessary data in order to send them over MQTT.\n */\n prepareVariablesToSend(): void {}\n\n // check process state after everything is sent\n async checkProcessStatus() {\n return true;\n }\n\n async startSending() {\n await this.prepareVariablesToSend();\n if (!SEND_MQTT_DISABLED) {\n return this.sendVariables(Array.from(this.variablesToSend.values()));\n }\n }\n\n async handleNext() {\n try {\n await this.fetchMeasurements(this.$route.params.id);\n await this.startSending();\n const isDeye = this.$store.getters['projects/isDeye'];\n const isSolarmax = this.$store.getters['projects/isSolarmax'];\n if (plcVersionDate(this.$store.getters['projects/project']).getTime() > newChargeStationLimitDate.getTime() && (isDeye || isSolarmax)) {\n const processStatus = await this.checkProcessStatus();\n if (processStatus) this.handleIncrement();\n else {\n throw new ProcessFailedError(this.processFailedMessage);\n }\n } else {\n this.handleIncrement();\n }\n } catch (e) {\n if (e instanceof ProcessFailedError) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.processFailedMessage,\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n }\n if (e instanceof MQTTFeedbackError) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.$t('installationWizard.mqttFeedbackErrorMessage', { variable: e.variable }),\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n }\n }\n }\n}\n","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { IProject } from '@/types/project.types';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport {\n hybridVersionDate,\n newChargeStationLimitDate,\n plcVersionDate,\n} from '@/utils/versionManagementUtils';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { NavigationDirection } from '@/types/wizards/installationWizard.types';\nimport { IInverter } from '@/types/serialNumber.types';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class Information extends WizardComponent {\n @Getter('mqttClient/isProjectOnline') isProjectOnline!: boolean;\n @Getter('installationWizard/considerProjectStatus') considerProjectStatus !: boolean;\n @Getter('projects/project') project!: IProject;\n @Getter('serialNumber/inverters') inverters!: IInverter[];\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('projects/isMobileDeye') isMobileDeye!: boolean;\n @Getter('installationWizard/emsLimits') emsLimits!: Record;\n @Mutation('installationWizard/setDisablePilotDevices') setDisablePilotDevices!: (value: boolean) => void;\n @Mutation('installationWizard/setSerialNumberCheckDone') setSerialNumberCheckDone!: () => void;\n @Action('installationWizard/initDevices') initDevices!: () => void;\n\n showAdditionalMessage = false;\n\n async created() {\n await this.fetchMeasurements(this.$route.params.id);\n if (this.measurements['prgEM.bEnable'] && this.measurements['prgEM.bEnable'] === 1) {\n this.showAdditionalMessage = true;\n this.setDisablePilotDevices(true);\n }\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n handleStart() {\n // initialise EnergyView and EMS device object in store\n this.initDevices();\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Information.vue?vue&type=template&id=6132c3f2&scoped=true&\"\nimport script from \"./Information.vue?vue&type=script&lang=ts&\"\nexport * from \"./Information.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Information.vue?vue&type=style&index=0&id=6132c3f2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6132c3f2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.onNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(_vm.dataLoaded)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.title'))+\" \")]):_vm._e()]},proxy:true},{key:\"content\",fn:function(){return [(_vm.dataLoaded)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[((_vm.isSolarmax || (_vm.isDeye && _vm.isHybrid)) && !_vm.hasOnlyStringInverter)?_c('InverterComponentSettings',{on:{\"changeInverterQuantity\":function($event){return _vm.handleInverterQuantityChange($event, false)}}}):_vm._e(),_vm._l((Object.entries(_vm.systems).filter((element) => ['pv', 'battery'].includes(element[0]))),function(system,index){return (!_vm.hasOnlyStringInverter)?_c('SystemComponent',{key:'2' + index,attrs:{\"system\":system[0],\"includedSystemsTypes\":_vm.includedSystemsTypes},on:{\"statusUpdate\":_vm.handleStatusChange,\"validate\":_vm.validate,\"updateEnergyVisualization\":() => _vm.rerenderKey++},scopedSlots:_vm._u([(system[0] === 'pv' && !_vm.isSolarmax)?{key:\"action\",fn:function(){return [_c('div',{staticStyle:{\"width\":\"20rem\",\"padding-left\":\"10px\"}},[_c('h4',{staticClass:\"mt-6\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvTitle')))]),_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('v-checkbox',{staticClass:\"mr-0\",attrs:{\"color\":\"accent\"},on:{\"change\":_vm.handleAcpvChange},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvAvailable'))+\" \")]},proxy:true}],null,true),model:{value:(_vm.wizardState.acpvAvailable),callback:function ($$v) {_vm.$set(_vm.wizardState, \"acpvAvailable\", $$v)},expression:\"wizardState.acpvAvailable\"}}),_c('ModalWindow',{ref:\"ModalWindowInstance\",refInFor:true,attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvAvailableTitle'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvAvailableInfo'))+\" \")]),_c('div',{staticClass:\"my-5 warning--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvAvailableWarning'))+\" \")]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"max-width\":\"900px\",\"border-radius\":\"10px\"},attrs:{\"src\":require(\"./../../../../../assets/images/installation wizard/acpv_on_grid.png\"),\"alt\":\"acpv\"}})])]},proxy:true}],null,true)})],1),(_vm.isDeye && _vm.isHybridVersion)?_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('v-checkbox',{staticClass:\"mt-0 pt-0 mr-0\",attrs:{\"color\":\"accent\"},on:{\"change\":_vm.handleAcpvOnLoadChange},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvOnLoadAvailable'))+\" \")]},proxy:true}],null,true),model:{value:(_vm.wizardState.acpvOnLoadAvailable),callback:function ($$v) {_vm.$set(_vm.wizardState, \"acpvOnLoadAvailable\", $$v)},expression:\"wizardState.acpvOnLoadAvailable\"}}),_c('ModalWindow',{ref:\"ModalWindowInstance\",refInFor:true,attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvOnLoadAvailable'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvOnLoadAvailableInfo'))+\" \")]),_c('div',{staticClass:\"my-5 warning--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.acpvOnLoadAvailableWarning'))+\" \")]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"max-width\":\"900px\",\"border-radius\":\"10px\"},attrs:{\"src\":require(\"./../../../../../assets/images/installation wizard/acpv_on_load.png\"),\"alt\":\"acpv\"}})])]},proxy:true}],null,true)})],1):_vm._e()])]},proxy:true}:null],null,true)}):_vm._e()}),(_vm.isDeye && _vm.isHybridVersion && _vm.hasStringInverter)?_c('StringInverterComponentSettings',{on:{\"changeInverterQuantity\":function($event){return _vm.handleInverterQuantityChange($event, true)}}}):_vm._e(),_vm._l((Object.entries(_vm.systems).filter((element) => !(['pv', 'battery'].includes(element[0])))),function(system,index){return (!_vm.hasOnlyStringInverter)?_c('SystemComponent',{key:index,attrs:{\"system\":system[0],\"includedSystemsTypes\":_vm.includedSystemsTypes},on:{\"statusUpdate\":_vm.handleStatusChange,\"validate\":_vm.validate,\"updateEnergyVisualization\":() => _vm.rerenderKey++}}):_vm._e()}),((_vm.isDeye || _vm.isSolarmax) && !_vm.hasOnlyStringInverter)?_c('v-row',[_c('v-col',[_c('DeyeConsumerComponentSettings',{ref:\"deyeConsumer\",attrs:{\"includedSystemsTypes\":_vm.includedSystemsTypes},on:{\"deyeConsumerValidationStatus\":_vm.handleStatusChange,\"reRender\":_vm.handleRerender}}),(!_vm.isNoBatteryPath)?_c('DeyeProducerComponentSettings',{attrs:{\"includedSystemsTypes\":_vm.includedSystemsTypes},on:{\"deyeProducerValidationStatus\":_vm.handleStatusChange,\"reRender\":_vm.handleRerender}}):_vm._e()],1)],1):_vm._e()],2),(!_vm.hasOnlyStringInverter)?_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$tc(`installationWizard.defineComponents.componentsPage.systems.pilot.title`, 2))+\" \")]),_c('v-checkbox',{staticStyle:{\"margin-right\":\"0\"},attrs:{\"input-value\":_vm.localExternalVisualisaton.isSelected,\"color\":\"accent\",\"disabled\":_vm.externalVisualisatonLimit.min > 0 || _vm.getDisablePilotDevices},on:{\"change\":function($event){return _vm.handleCheckboxPilot($event)}}}),(_vm.getDisablePilotDevices)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.pilotDevicesBlockedMessage'))+\" \")]},proxy:true}],null,false,3925142059)}):_vm._e()],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('div',{staticClass:\"d-flex align-center\"},[(_vm.localExternalVisualisaton.isSelected)?_c('v-select',{key:_vm.localExternalVisualisaton.count,attrs:{\"value\":_vm.localExternalVisualisaton.count,\"items\":Array.from(\n {\n length: _vm.externalVisualisatonLimit.max - _vm.externalVisualisatonLimit.min + 1,\n },\n (_, index) => index + _vm.externalVisualisatonLimit.min,\n ),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){return _vm.handleSelectPilot($event)}}}):_vm._e(),_c('div',{staticClass:\"d-flex justify-center pt-1 pl-2\"},[(_vm.localExternalVisualisaton.isSelected)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t( `installationWizard.defineComponents.componentsPage.systems.pilot.tooltip`, ))+\" \")]},proxy:true}],null,false,1114394234)}):_vm._e()],1)],1)])],1)],1)],1):_vm._e()],1):_vm._e(),(_vm.dataLoaded && !_vm.hasOnlyStringInverter)?_c('div',{staticClass:\"d-flex justify-center flex-col\"},[_c('div',[_c('EnergyVisualisationPreview',{key:_vm.rerenderKey,staticClass:\"pb-8\",attrs:{\"deviceData\":_vm.emsDeviceForPreview}})],1)]):(!_vm.hasOnlyStringInverter)?_c('div',{staticStyle:{\"height\":\"100%\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('CircleSpinner',{staticClass:\"d-flex justify-center\",attrs:{\"color\":\"accent\",\"size\":\"50\"}})],1):_vm._e(),_c('ModalWindow',{ref:\"confirmationModal\",attrs:{\"width\":\"100%\",\"maxWidth\":\"800\"},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.wecoBatteryInformation'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"pa-3 d-flex flex-column\"},[(_vm.includedSystemsTypes.battery.definition[0].batteryType === _vm.deyeTypes.WecoBatteryStack)?_c('div',[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.wecoBatteryStack'))+\" \")])]):_c('div',[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.wecoSlimStack'))+\" \")])]),_c('div',[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.additionalWecoInformation'))+\" \")])]),_c('a',{staticStyle:{\"color\":\"var(--v-accent-base)\"},attrs:{\"target\":\"_blank\",\"href\":_vm.getFaqLink(_vm.includedSystemsTypes.battery.definition[0].batteryType)}},[_vm._v(_vm._s(_vm.includedSystemsTypes.battery.definition[0].batteryType))]),(_vm.deyeTypes.WecoSlimStack === _vm.includedSystemsTypes.battery.definition[0].batteryType)?_c('div',{staticClass:\"mt-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.wecoSlimActivationProcessInfo'))+\" \")]):_vm._e(),_c('a',{staticStyle:{\"color\":\"var(--v-accent-base)\"},attrs:{\"target\":\"_blank\",\"href\":_vm.getFaqLink('activation_process')}},[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.wecoSlimActivationProcess')))]),_c('div',{staticClass:\"align-self-end pt-4\"},[_c('v-btn',{staticClass:\"mr-2\",on:{\"click\":() => _vm.$refs.confirmationModal.dialog = false}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.cancel'))+\" \")]),_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":() => _vm.confirmedNext()}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.accept'))+\" \")])],1)])]},proxy:true}])})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('EnergyVisualisation',{staticStyle:{\"width\":\"650px\",\"height\":\"650px\"},attrs:{\"circles-display-data\":_vm.circlesDisplayData,\"lines-display-data\":_vm.linesDisplayData}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport EnergyComponent from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n EnergyCircleType,\n allEnergyCircleTypes,\n energyCircleIconForType,\n getCirclePositionForType,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { EnergyCircleDisplayData } from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport { EnergyLineDisplayData } from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport EnergyVisualisation from './index.vue';\nimport {\n getDefaultArrowDirection,\n getDefaultLineColors,\n getDefaultSpinnerColor,\n} from './utils/EnergyVisualisationUtils';\n\n/**\n * A component for previewing the structure of an EnergyVisualisation, given an object with device mappings.\n */\n@Component({\n components: {\n EnergyVisualisation,\n },\n})\nexport default class EnergyVisualisationPreview extends mixins(EnergyComponent) {\n @Prop({ default: false }) enableAnimations!: boolean;\n\n get shownSystems() {\n return this.filterPresentSystems(this.deviceData, allEnergyCircleTypes);\n }\n\n get circlesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType) => {\n return {\n id: systemType,\n bottomValue: undefined,\n centerContent: {\n type: 'icon',\n value: energyCircleIconForType(systemType),\n },\n position: getCirclePositionForType(systemType),\n systemCount: this.getSystemCount(this.deviceData, systemType),\n spinnerColor: getDefaultSpinnerColor(systemType, this.enableAnimations ? 1 : undefined),\n alternativeValue: this.enableAnimations ? 1 : undefined,\n } as EnergyCircleDisplayData;\n });\n }\n\n get linesDisplayData() {\n return this.shownSystems.map((systemType: EnergyCircleType, index: number) => {\n const displayData = this.circlesDisplayData[index];\n\n return {\n id: displayData.id,\n arrowDirection: getDefaultArrowDirection(systemType, displayData),\n colors: getDefaultLineColors(systemType, displayData),\n } as Partial;\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyVisualisationPreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyVisualisationPreview.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyVisualisationPreview.vue?vue&type=template&id=e77a82cc&\"\nimport script from \"./EnergyVisualisationPreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyVisualisationPreview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',{staticClass:\"pt-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.title')))])]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-select',{attrs:{\"value\":_vm.battery.systemType,\"items\":Object.values(_vm.localBatteryTypes),\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.selectBatterySystem'),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"disabled\":\"\",\"rules\":[_vm.rules.notEmptyString]},on:{\"change\":function($event){return _vm.handleChange('systemType', $event)}}})],1),(_vm.hasMultipleBatteryTypes(_vm.battery.systemType))?_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"2\"}},[_c('v-select',{attrs:{\"value\":_vm.battery.batteryType,\"items\":Object.values(_vm.localDeyeTypes),\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.selectBatteryType'),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required, ..._vm.itemsContainValue(Object.values(_vm.localDeyeTypes), _vm.battery.batteryType)]},on:{\"change\":function($event){return _vm.handleChange('batteryType', $event)}}})],1):_vm._e(),_c('v-col',{key:_vm.rerenderKey,staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[(_vm.projectBatteryType !== '')?_c('v-row',{staticClass:\"d-flex\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"6\",\"lg\":\"6\"}},[_c('v-select',{attrs:{\"value\":_vm.battery.batteryCapacity,\"items\":_vm.getBatteryItems(_vm.battery),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.batteryCapacity'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required, ..._vm.itemsContainValue(_vm.batteryItemValue(_vm.battery), _vm.battery.batteryCapacity)]},on:{\"change\":function($event){return _vm.handleChange('batteryCapacity', $event)}}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-row',{staticClass:\"flex-nowrap\"},[(!_vm.isDeye(_vm.battery))?_c('v-select',{attrs:{\"value\":_vm.battery.inverterPower,\"items\":_vm.getInverterPowers(_vm.battery.systemType),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.inverterPower'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required]},on:{\"change\":function($event){return _vm.handleChange('inverterPower', $event)}}}):_vm._e(),_c('div',{staticClass:\"pt-4 pl-2\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.batteryInfoTooltipText)+\" \")]},proxy:true}],null,false,4040168982)})],1)],1)],1)],1):_c('p',{staticClass:\"error--text pt-2\"},[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.batteryTypeEmptyMessage')))])])],1)],1),(_vm.isHybrid && !_vm.isStandalone)?_c('v-row',{attrs:{\"justify\":\"space-between\",\"align\":\"center\"}},[(_vm.includedSystemsTypes.battery.definition.length === 1)?_c('v-checkbox',{staticClass:\"py-4 pl-3\",attrs:{\"color\":\"accent\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('strong',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.useBothBatteryInputs')))])])]},proxy:true}],null,false,3987553815),model:{value:(_vm.wizardState.hybridSettings.useBothBatteryInputs),callback:function ($$v) {_vm.$set(_vm.wizardState.hybridSettings, \"useBothBatteryInputs\", $$v)},expression:\"wizardState.hybridSettings.useBothBatteryInputs\"}}):_vm._e()],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport {\n batteryCapacity,\n BatteryType,\n deyeBatteryTypes,\n deyeTypes,\n inverterPowers,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IProject } from '@/types/project.types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport {\n IIncludedSystemsBatteryDefinition,\n IIncludedSystemsTypes,\n} from '@/types/wizards/installationWizard.types';\nimport { plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n@Component({\n methods: { itemsContainValue },\n computed: {\n batteryTypes() {\n return BatteryType;\n },\n },\n components: {\n ModalWindow,\n InfoTooltip,\n EnergyVisualisationPreview,\n },\n})\nexport default class BatteryComponentSettings extends mixins(Validation, BasicControl) {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Prop({ default: {} }) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/isHybrid') isHybrid!: boolean;\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n @Getter('measurements/measurements') projectMeasurements!: IMeasurements;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n payload: { systemName: string; systemIndex: number; prop: string; value: any },\n ) => void;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (\n projectId: string,\n ) => Promise;\n // variables are needed to use those types inside template\n localBatteryTypes = BatteryType;\n localDeyeTypes = deyeTypes;\n localBatteryCapacity: any = batteryCapacity;\n localInverterPowers = inverterPowers;\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n deyeInverterPower = 0;\n\n get battery() {\n return this.includedSystemsTypes.battery.definition[0];\n }\n\n get isStandalone() {\n return this.projectBatteryType === BatteryType.STANDALONE;\n }\n\n get projectBatteryType() {\n // contains type of system that's selected inside the project settings\n const { batterySystemType } = this.project?.meta?.controller;\n return batterySystemType === undefined ? '' : batterySystemType;\n }\n\n @Watch('includedSystemsTypes.battery.definition', { deep: true })\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n isDeye(battery: IIncludedSystemsBatteryDefinition) {\n return deyeBatteryTypes.includes(battery.systemType as BatteryType);\n }\n\n get batteryInfoTooltipText() {\n if (this.isDeye(this.includedSystemsTypes.battery.definition[0])) {\n return this.$t('installationWizard.defineComponents.componentsPage.toolTips.battery.deye');\n } else {\n return this.$t('installationWizard.defineComponents.componentsPage.toolTips.battery.azzurro');\n }\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('validationStatus', { system: 'battery', status: this.valid });\n }\n\n hasMultipleBatteryTypes(system: string) {\n return [BatteryType.DEYE.toString()].includes(system);\n }\n\n getBatteryItems(system: IIncludedSystemsBatteryDefinition) {\n if (!system.systemType) return [];\n const batteryCapacityItems = this.getBatteryCapacityItems(system);\n return batteryCapacityItems.filter((capacityElement: {\n name: string;\n value: string;\n availableFrom: Date;\n }) => capacityElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n }\n\n batteryItemValue(system: IIncludedSystemsBatteryDefinition) {\n return this.getBatteryItems(system).map((capacityElement: {\n name: string;\n value: string;\n availableFrom: number;\n }) => capacityElement.value);\n }\n\n getBatteryCapacityItems(system: IIncludedSystemsBatteryDefinition) {\n let batteryCapacityItems;\n if (this.hasMultipleBatteryTypes(system.systemType)) {\n batteryCapacityItems = system.batteryType\n ? this.localBatteryCapacity[system.systemType][system.batteryType]\n : [];\n } else {\n batteryCapacityItems = this.localBatteryCapacity[system.systemType];\n }\n return batteryCapacityItems;\n }\n\n getInverterPowers(batteryType: BatteryType) {\n if (!batteryType) {\n return [];\n }\n const inverterPowersByBatteryType = this.localInverterPowers[batteryType];\n return inverterPowersByBatteryType.filter((inverterElement: {\n name: string;\n value: string;\n availableFrom: Date;\n }) => inverterElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n }\n\n handleChange(prop: string, value: any) {\n const index = 0;\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'battery',\n systemIndex: index,\n prop,\n value,\n });\n this.rerenderKey++;\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n async created() {\n const currentInverterPower: any = Object.entries(this.projectMeasurements).find((element: any) => element[0] === 'prgEnergy.fbI.rMaxPowerInverter');\n this.deyeInverterPower = currentInverterPower !== undefined ? currentInverterPower[1] : 0;\n }\n\n async mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryComponentSettings.vue?vue&type=template&id=2b9e7670&\"\nimport script from \"./BatteryComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryComponentSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatteryComponentSettings.vue?vue&type=style&index=0&id=2b9e7670&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},_vm._l((_vm.includedSystems.electric_heating.definition),function(electricHeating,index){return _c('v-row',{key:index,staticClass:\"py-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_vm._v(_vm._s(_vm.$tc('installationWizard.defineComponents.componentsPage.systems.electric_heating.title', 1))+\" \"+_vm._s(index + 1))]),(_vm.isNewChargeStationPlcVersion)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-2\"},[_vm._v(\"IP: 192.168.250.\"+_vm._s(_vm.SYSTEM_IP_RANGE_START.electric_heating + index))]),_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddress'))+\" \")]),_c('div',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddressMoreInfo'))+\" \")])]},proxy:true}],null,true)})],1):_vm._e()]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-select',{attrs:{\"value\":electricHeating.systemType,\"items\":_vm.electricHeatingTypesBeforeProjectCreation,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.electric_heating.labels.heatingElementType'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, ..._vm.itemsContainValue(_vm.electricHeatingTypesBeforeProjectCreation.map((item) => item.value), electricHeating.systemType)]},on:{\"change\":function($event){return _vm.handleChange(index, 'systemType', $event)}}}),(_vm.showEHETypeFeature && electricHeating.systemType !== '')?_c('div',[_c('v-select',{staticClass:\"ml-2\",attrs:{\"value\":electricHeating.modelType,\"items\":_vm.heatingElementModelTypes(),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.electric_heating.labels.heatingElementModelType'),\"color\":\"accent\"},on:{\"change\":function($event){return _vm.handleChange(index, 'systemType', $event)}}})],1):_vm._e(),(_vm.isDeye)?_c('div',{staticClass:\"pt-4 pl-2\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.heatingElementConfiguration'))+\" \")])]},proxy:true}],null,true)})],1):_vm._e()],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// IP Address Range Start for each system\nexport const SYSTEM_IP_RANGE_START = {\n charge_station: 56,\n big_plc_charge_station: 100,\n electric_heating: 66,\n heating_pump: 76,\n};\n","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Getter, Mutation } from 'vuex-class';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport {\n electricHeatingTypes,\n heatingElementModelTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport { IIncludedSystemsTypes } from '@/types/wizards/installationWizard.types';\nimport { newChargeStationLimitDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { SYSTEM_IP_RANGE_START } from '../../../wizardSettings/wizardConstants';\n\n@Component({\n computed: {\n SYSTEM_IP_RANGE_START() {\n return SYSTEM_IP_RANGE_START;\n },\n },\n methods: {\n heatingElementModelTypes() {\n return heatingElementModelTypes;\n },\n itemsContainValue },\n components: {\n InfoTooltip,\n EnergyVisualisationPreview,\n WizardContentView,\n },\n})\nexport default class ElectricHeatingSetting extends WizardComponent {\n @Prop({ default: {} }) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n payload: { systemName: string; systemIndex: number; prop: string; value: any },\n ) => void;\n\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n\n @Watch('includedSystemsTypes.electric_heating.definition', { deep: true })\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n // returns all system types that can be selected for the current project\n get electricHeatingTypesBeforeProjectCreation() {\n return electricHeatingTypes.filter((systemTypeElement) => systemTypeElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n }\n\n // additional field should only be shown on deye systems after a certain plc date\n get showEHETypeFeature() {\n return (this.isDeye || this.isSolarmax) && (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime());\n }\n\n // updates IncludedSystemsDefinitions in Store\n async handleChange(system_index: number | string, prop: string, value: any) {\n const index = typeof system_index === 'string' ? parseInt(system_index, 10) : system_index;\n this.handleIncludedSystemsTypesSystemDefinitionProps({ systemName: 'electric_heating', systemIndex: index, prop, value });\n this.rerenderKey++;\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('validationStatus', { system: 'electric_heating', status: this.valid });\n }\n\n mounted() {\n setTimeout(() => {\n this.validate();\n }, 10);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricHeatingSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricHeatingSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ElectricHeatingSettings.vue?vue&type=template&id=257de001&\"\nimport script from \"./ElectricHeatingSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ElectricHeatingSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_vm._l((_vm.includedSystemsTypes.charge_station.definition),function(chargeStation,index){return _c('v-row',{key:index,staticClass:\"py-4\"},[_c('v-col',{staticClass:\"py-0\",class:chargeStation.occupiedByTwinPoint ? 'pb-10' : '',attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',{class:chargeStation.occupiedByTwinPoint ? 'grey--text' : ''},[_vm._v(_vm._s(_vm.$tc('installationWizard.defineComponents.componentsPage.systems.charge_station.title', 1))+\" \"+_vm._s(index + 1))]),(_vm.isNewChargeStationPlcVersion && !chargeStation.occupiedByTwinPoint)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-2\"},[_vm._v(\"IP: 192.168.250.\"+_vm._s(_vm.getIpAddress(index))+\" \")]),_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddress'))+\" \")]),_c('div',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddressMoreInfo'))+\" \")])]},proxy:true}],null,true)})],1)],1):_vm._e(),(_vm.isMennekesEnerchargeVersion && chargeStation.occupiedByTwinPoint)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-2 grey--text\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.twinChargeStation'))+\" \")])]):_vm._e()]),(!chargeStation.occupiedByTwinPoint)?_c('v-col',{directives:[{name:\"intersect\",rawName:\"v-intersect.once\",value:(_vm.debouncedOnIntersect),expression:\"debouncedOnIntersect\",modifiers:{\"once\":true}}],staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[_c('v-select',{attrs:{\"value\":chargeStation.systemType,\"items\":_vm.availableChargeStationTypes(index),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.chargeStationType'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, ..._vm.itemsContainValue(_vm.availableChargeStationTypes(index).map((item) => item.value), chargeStation.systemType)],\"disabled\":chargeStation.occupiedByTwinPoint},on:{\"change\":function($event){return _vm.handleChange(index, 'systemType', $event)}}})],1),(chargeStation?.systemType !== '')?_c('div',[_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleClear(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1):_vm._e(),_c('div',{staticClass:\"pt-4 pl-2\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.chargeStation'))+\" \"),(_vm.isDeye || _vm.isSolarmax)?_c('div',{staticClass:\"mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.chargeStationConfiguration'))+\" \")]):_vm._e()]},proxy:true}],null,true)})],1),(chargeStation.systemType !== '' && _vm.getChargeStationTypeInformationBySystemType(chargeStation.systemType) && _vm.getChargeStationTypeInformationBySystemType(chargeStation.systemType).type === 'Webasto' && _vm.showChargeStationV2Feature)?_c('div',{staticStyle:{\"max-width\":\"30%\"}},[_c('v-select',{staticClass:\"ml-2\",attrs:{\"value\":chargeStation.webastoType,\"items\":_vm.webastoChargeStationTypes,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"rules\":[_vm.rules.required],\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.selectWebastoType'),\"color\":\"accent\"},on:{\"change\":function($event){return _vm.handleChange(index, 'webastoType', $event)}}})],1):_vm._e()],1):_vm._e(),(!chargeStation.occupiedByTwinPoint)?_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[(chargeStation.systemType.includes('external'))?_c('div',{staticClass:\"ml-2 d-flex\"},[_c('div',{staticClass:\"pt-4\"},[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.connectWith')))])]),_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[_c('v-select',{staticClass:\"select-dropdown pl-2\",attrs:{\"disabled\":_vm.getDisablePilotDevices,\"value\":chargeStation.connectWithLine,\"items\":_vm.localConnectWithLineItems,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.connectWithLine'),\"color\":\"accent\",\"item-color\":\"accent\",\"outlined\":\"\",\"item-value\":\"value\",\"item-text\":\"name\",\"rules\":[_vm.rules.notEmptyString, _vm.hasDuplicateValue]},on:{\"change\":function($event){return _vm.handleChange(index, 'connectWithLine', $event)}}})],1),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[(_vm.getDisablePilotDevices)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddress'))+\" \")]),_c('div',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddressMoreInfo'))+\" \")])]},proxy:true}],null,true)}):_vm._e()],1)],1)],1):_vm._e()]):_vm._e(),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}}),_c('v-col',{staticClass:\"py-0 pb-4\",attrs:{\"sm\":\"12\",\"lg\":\"4\",\"offset-sm\":\"0\"}},[_c('div',{staticClass:\"d-flex\",staticStyle:{\"width\":\"700px\"}},[(!chargeStation.occupiedByTwinPoint && !chargeStation.systemType.includes('Enercharge'))?_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[_c('v-checkbox',{staticClass:\"pr-4\",staticStyle:{\"margin-top\":\"0\"},attrs:{\"input-value\":chargeStation.noFreeLoading,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.noFreeLoading'),\"color\":\"accent\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.handleChange(index, 'noFreeLoading', $event)}}})],1):_vm._e(),(!chargeStation.occupiedByTwinPoint && !chargeStation.systemType.includes('Enercharge'))?_c('div',{staticClass:\"mt-1 pr-10\"},[_c('v-lazy',{attrs:{\"transition\":\"fade-transition\"}},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.toolTips.freeLoading`))+\" \")]),((_vm.isDeye || _vm.isSolarmax) && chargeStation.noFreeLoading && chargeStation.webastoType === 0)?_c('div',{staticClass:\"pt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.toolTips.freeLoadingWhenNext`))+\" \")]):_vm._e()]},proxy:true}],null,true)})],1)],1):_vm._e()],1)])],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { connectWithLineItems } from '@/utils/installationWizardUtilsFunctions';\nimport { Getter, Mutation } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport {\n IIncludedSystemsChargeStationDefinition,\n IIncludedSystemsTypes,\n} from '@/types/wizards/installationWizard.types';\nimport {\n chargingStationV2Feature,\n mennekesEnerchargeDate,\n newChargeStationLimitDate,\n plcLevelVersionDate,\n plcVersionDate,\n} from '@/utils/versionManagementUtils';\nimport { ChargeStationType, IProject } from '@/types/project.types';\nimport {\n chargeStationTypes,\n getChargeStationTypeInformationBySystemType,\n} from '@/ui/components/wizards/loggerWizard/wizardSettings/systemTypes';\nimport {\n webastoChargeStationTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { PlcPerformanceCategorie } from '@/utils/plcPerformanceLimits';\nimport { debounce } from 'lodash';\nimport {\n limitWaidmullerChargeStations,\n limitWebastoChargeStations,\n} from '../../../wizardSettings/wizardLimits';\nimport { SYSTEM_IP_RANGE_START } from '../../../wizardSettings/wizardConstants';\n\n@Component({\n computed: {\n PlcPerformanceCategorie() {\n return PlcPerformanceCategorie;\n },\n SYSTEM_IP_RANGE_START() {\n return SYSTEM_IP_RANGE_START;\n },\n webastoChargeStationTypes() {\n return webastoChargeStationTypes;\n },\n },\n methods: {\n mennekesEnerchargeDate() {\n return mennekesEnerchargeDate;\n },\n plcLevelVersionDate() {\n return plcLevelVersionDate;\n },\n itemsContainValue,\n getChargeStationTypeInformationBySystemType,\n },\n\n components: {\n InfoTooltip,\n EnergyVisualisationPreview,\n },\n})\nexport default class ChargeStationComponentsSetting extends mixins(Validation, BasicControl) {\n @Prop({default: {}}) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/connectedLines') connectedLines!: number[];\n @Getter('installationWizard/getDisablePilotDevices') getDisablePilotDevices!: boolean;\n @Mutation('installationWizard/resetChargeStationDefinition') resetChargeStationDefinition!: (payload: {\n index: number;\n }) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n {systemName, systemIndex, prop, value}: any\n ) => void;\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n localConnectWithLineItems = connectWithLineItems();\n applyOnNextValues: { [key: number]: number | null } = {};\n enableApply: { [key: number]: boolean } = {};\n\n @Watch('includedSystemsTypes.charge_station.definition', {deep: true})\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.initializeApplyProperties();\n this.rerenderKey++;\n });\n }\n\n filterConnectWithLine(systemType: any[]): any[] {\n return systemType.map((element: any) => {\n return typeof element.connectWithLine !== 'string' ? element.connectWithLine : undefined;\n }).filter(element => element !== undefined);\n }\n\n getFilteredApplyOnNextItems(index: number) {\n const totalItems = Array.from(\n {length: this.includedSystemsTypes.charge_station.definition.length - 1 - index},\n (_, i) => ({value: i + 1, text: i + 1})\n );\n\n // Check if the current station is a twinpoint and filter the items to show every second value\n if (this.isDualPointStation(this.includedSystemsTypes.charge_station.definition[index].systemType)) {\n // only display every second number and if the item is the last index also filter it out\n return totalItems.filter(item => (item.value % 2 === 0) && !(index + item.value === this.includedSystemsTypes.charge_station.definition.length - 1));\n }\n\n // If it's not a twinpoint station, return all items\n return totalItems;\n }\n\n initializeApplyProperties() {\n this.includedSystemsTypes.charge_station.definition.forEach((_, index) => {\n if (!Object.hasOwnProperty.call(this.enableApply, index)) {\n this.$set(this.enableApply, index, false);\n }\n if (!Object.hasOwnProperty.call(this.applyOnNextValues, index)) {\n this.$set(this.applyOnNextValues, index, null);\n }\n });\n }\n\n getIpAddress(index: number) {\n return (index < 10) ? SYSTEM_IP_RANGE_START.charge_station + index : SYSTEM_IP_RANGE_START.big_plc_charge_station + (index - 10);\n }\n\n onIntersect() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n // debounce onIntersect\n debouncedOnIntersect = debounce(this.onIntersect, 100);\n\n /**\n * Check change in length of charge station definition\n */\n @Watch('includedSystemsTypes.charge_station.definition', {deep: true})\n handleDefinitionChange() {\n this.validateChargeStationObject();\n }\n\n isObjectValid = false;\n\n validateChargeStationObject() {\n this.isObjectValid = this.includedSystemsTypes.charge_station.definition.every((chargeStation: IIncludedSystemsChargeStationDefinition) => {\n const chargeStationInformations = getChargeStationTypeInformationBySystemType(chargeStation.systemType);\n if (!chargeStationInformations) {\n // if systemType is not set return false\n return chargeStation.occupiedByTwinPoint;\n }\n if (chargeStationInformations.isExternal) {\n // for external charge stations we need to check if systemType & connectWithLine is set\n return chargeStation.systemType !== '' && chargeStation.connectWithLine !== '';\n } else {\n // for internal charge stations we only need to check if systemType is set\n return chargeStation.systemType !== '';\n }\n });\n }\n\n get showChargeStationV2Feature() {\n return plcVersionDate(this.project).getTime() > chargingStationV2Feature.getTime();\n }\n\n get plcLevelVersionDateFeature() {\n return plcVersionDate(this.project).getTime() > plcLevelVersionDate.getTime();\n }\n\n isDualPointStation(systemType: string): boolean {\n return systemType === 'AmtronTC22' || systemType === 'AmedioPro22';\n }\n\n get hasDuplicateValue(): boolean | string {\n const heatingPumpArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.heating_pump.definition);\n const chargeStationArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.charge_station.definition);\n const bigConsumerArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.big_consumer.definition);\n\n const array = [heatingPumpArray, chargeStationArray, bigConsumerArray].flat();\n // Create an object to store the count of each value\n const count: any = {};\n\n // Iterate over each element in the array\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n // If the value is already in the count object, it's a duplicate\n if (count[value]) {\n return this.$t('installationWizard.defineComponents.componentsPage.duplicatePilotLineSelection').toString();\n }\n\n // Otherwise, add the value to the count object\n count[value] = 1;\n }\n\n // No duplicates found\n return true;\n }\n\n // checks if limit of Webasto Charge Stations is reached\n get isLimitOfWebastoStationsReached() {\n const arrayWebasto = this.includedSystemsTypes.charge_station.definition.filter((value: IIncludedSystemsChargeStationDefinition) => {\n return ['Webasto11', 'Webasto22', ChargeStationType.WebastoNext11, ChargeStationType.WebastoNext22, ChargeStationType.WebastoUnite11, ChargeStationType.WebastoUnite22].includes(value.systemType);\n });\n return arrayWebasto.length >= limitWebastoChargeStations;\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n get isMennekesEnerchargeVersion() {\n return plcVersionDate(this.project).getTime() > mennekesEnerchargeDate.getTime() && (this.isDeye || this.isSolarmax);\n }\n\n // checks if limit of Weidmüller Charge Stations is reached\n get isLimitOfWeidmuellerStationsReached() {\n if (this.isNewChargeStationPlcVersion) return false;\n const arrayWeidmueller = this.includedSystemsTypes.charge_station.definition.filter((value: IIncludedSystemsChargeStationDefinition) => {\n return value.systemType.includes('Weidmüller') && value.systemType.includes('external');\n });\n return arrayWeidmueller.length >= limitWaidmullerChargeStations;\n }\n\n // returns all system types that can be selected for the current project and state of allready selected charge stations\n availableChargeStationTypes(index: number) {\n const filteredStations = [...chargeStationTypes].filter(systemTypeElement => systemTypeElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n\n return filteredStations.map(system => {\n const isLastDefinition = this.includedSystemsTypes.charge_station.definition.length === index + 1;\n const isNextStationOccupied = isLastDefinition ||\n (this.includedSystemsTypes.charge_station.definition[index + 1].systemType !== '' && !this.includedSystemsTypes.charge_station.definition[index + 1].occupiedByTwinPoint);\n const isTwinChargeStation = system.name.includes('TwinCharge') || system.name.includes('AMEDIO');\n\n let isDisabled = false;\n\n // Disable Weidmüller stations if limit is reached\n if (this.isLimitOfWeidmuellerStationsReached && system.name.includes('Weidmüller') && system.value.includes('external')) {\n isDisabled = true;\n }\n\n // Disable TwinCharge stations if the next station is occupied\n if (isNextStationOccupied && isTwinChargeStation) {\n isDisabled = true;\n }\n\n // Disable Webasto stations if limit is reached\n if (system.name.includes('Webasto')) {\n isDisabled = plcVersionDate(this.project).getTime() < newChargeStationLimitDate.getTime() && this.isLimitOfWebastoStationsReached;\n }\n\n return {...system, disabled: isDisabled};\n });\n }\n\n // updates IncludedSystemsDefinitions in Store\n handleChange(system_index: number | string, prop: string, value: any) {\n const index = typeof system_index === 'string' ? parseInt(system_index, 10) : system_index;\n if (prop === 'systemType') {\n this.handleClear(index);\n }\n\n if (prop === 'applyOnNext') {\n if (!this.enableApply[index] || this.applyOnNextValues[index] === null) return;\n\n const currentStation = {...this.includedSystemsTypes.charge_station.definition[index]};\n const applyValue = this.applyOnNextValues[index];\n\n if (applyValue === null) return;\n for (let i = 1; i <= applyValue; i++) {\n if (index + i < this.includedSystemsTypes.charge_station.definition.length) {\n if (this.isDualPointStation(currentStation.systemType)) {\n this.$set(this.includedSystemsTypes.charge_station.definition, (index + i) + 1, {\n ...currentStation,\n connectWithLine: ''\n });\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'charge_station',\n systemIndex: (index + i) + 2,\n prop: 'occupiedByTwinPoint',\n value: true,\n });\n i += 1;\n } else {\n const newStation = {...currentStation, connectWithLine: ''};\n this.$set(this.includedSystemsTypes.charge_station.definition, index + i, newStation);\n }\n }\n }\n this.$set(this.applyOnNextValues, index, null);\n this.$set(this.enableApply, index, false);\n } else {\n if (prop === 'systemType') {\n this.handleClear(index);\n\n this.$set(this.includedSystemsTypes.charge_station.definition[index], 'systemType', value);\n\n const chargeStationInformations = getChargeStationTypeInformationBySystemType(value);\n if (chargeStationInformations) {\n if (this.getDisablePilotDevices && chargeStationInformations.isExternal) {\n this.$set(this.includedSystemsTypes.charge_station.definition[index], 'connectWithLine', 'noLine');\n }\n\n if (chargeStationInformations.type === 'Webasto' && this.showChargeStationV2Feature) {\n this.$set(this.includedSystemsTypes.charge_station.definition[index], 'webastoType', 0);\n }\n }\n } else {\n this.$set(this.includedSystemsTypes.charge_station.definition[index], prop, value);\n }\n\n if (this.isDualPointStation(value)) {\n if (index < this.includedSystemsTypes.charge_station.definition.length - 1) {\n if (prop === 'systemType') {\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'charge_station',\n systemIndex: index + 1,\n prop: 'occupiedByTwinPoint',\n value: true,\n });\n }\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'charge_station',\n systemIndex: index + 1,\n prop,\n value,\n });\n }\n }\n }\n\n // if prop is something other than systemtype and the charge station on the system is a dual point station, update the next charge station as well\n const chargeStationDefinition = this.includedSystemsTypes.charge_station.definition[index];\n const isDualPointStation = ['AmtronTC22', 'AmedioPro22'].includes(chargeStationDefinition.systemType);\n if (isDualPointStation) {\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'charge_station',\n systemIndex: index + 1,\n prop,\n value,\n });\n }\n\n this.validate();\n this.rerenderKey++;\n }\n\n handleClear(index: number) {\n // if clearing a occupied twin point, also clear the previous charge point\n if (this.includedSystemsTypes.charge_station.definition[index].occupiedByTwinPoint) {\n this.includedSystemsTypes.charge_station.definition[index - 1].systemType = '';\n this.includedSystemsTypes.charge_station.definition[index - 1].connectWithLine = '';\n this.includedSystemsTypes.charge_station.definition[index - 1].occupiedByTwinPoint = false;\n }\n\n // If clearing a dual-point station, also clear the next charge point\n if (this.isDualPointStation(this.includedSystemsTypes.charge_station.definition[index].systemType)) {\n this.includedSystemsTypes.charge_station.definition[index + 1].systemType = '';\n this.includedSystemsTypes.charge_station.definition[index + 1].connectWithLine = '';\n this.includedSystemsTypes.charge_station.definition[index + 1].occupiedByTwinPoint = false;\n }\n\n this.includedSystemsTypes.charge_station.definition[index].systemType = '';\n this.includedSystemsTypes.charge_station.definition[index].connectWithLine = '';\n this.includedSystemsTypes.charge_station.definition[index].occupiedByTwinPoint = false;\n\n // Emit an event to notify parent component\n this.$emit('chargeStationCleared', index);\n\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n @Watch('connectedLines', {deep: true})\n updateLineItems() {\n this.localConnectWithLineItems = this.localConnectWithLineItems.map((item: any) => {\n item.disabled = this.connectedLines.includes(item.value);\n return item;\n });\n }\n\n validate() {\n (this.$refs.form as any).validate();\n // TODO: remove this when PLC performance level is implemented on SPS side\n // if (this.plcLevelVersionDateFeature && this.project.meta.controller.plcPerformanceLevel === PlcPerformanceCategorie.high) {\n // this.$emit('validationStatus', {\n // system: 'charge_station',\n // status: this.valid && this.isObjectValid,\n // });\n // } else {\n // this.$emit('validationStatus', {system: 'charge_station', status: this.valid});\n // }\n this.$emit('validationStatus', {system: 'charge_station', status: this.valid});\n }\n\n mounted() {\n this.$nextTick(() => {\n this.validate();\n this.initializeApplyProperties();\n });\n this.updateLineItems();\n this.validateChargeStationObject();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargeStationComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargeStationComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChargeStationComponentSettings.vue?vue&type=template&id=09dc2391&\"\nimport script from \"./ChargeStationComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChargeStationComponentSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$tc( `installationWizard.defineComponents.componentsPage.systems.${_vm.system}.title`, 2, ))+\" \"),(_vm.system === 'pv' && _vm.isSolarmax)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.pv.perInverter'))+\" \")]):_vm._e()]),(_vm.system !== 'pv')?_c('v-checkbox',{staticStyle:{\"margin-right\":\"0\"},attrs:{\"input-value\":_vm.includedSystemsTypes[_vm.system].isSelected,\"color\":\"accent\",\"disabled\":_vm.systemLimits[_vm.system].min > 0},on:{\"change\":function($event){return _vm.handleCheckbox($event, _vm.system)}}}):_vm._e()],1),(_vm.system !== 'pv')?_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('div',{staticClass:\"d-flex align-center\"},[(_vm.includedSystemsTypes[_vm.system].isSelected)?_c('v-select',{key:_vm.includedSystemsTypes[_vm.system].count,attrs:{\"value\":_vm.includedSystemsCount[_vm.system],\"items\":Array.from(\n { length: _vm.systemLimits[_vm.system].max - _vm.systemLimits[_vm.system].min + 1 },\n (_, index) => index + _vm.systemLimits[_vm.system].min,\n ),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":[..._vm.itemsContainValue(Object.values(Array.from(\n { length: _vm.systemLimits[_vm.system].max - _vm.systemLimits[_vm.system].min + 1 },\n (_, index) => index + _vm.systemLimits[_vm.system].min,\n )), _vm.includedSystemsCount[_vm.system])]},on:{\"change\":function($event){return _vm.handleQuantitySelect($event, _vm.system)}}}):_vm._e(),(_vm.system[0] !== 'battery')?_c('div',{staticClass:\"d-flex justify-center pt-1 pl-2\"},[(_vm.includedSystemsTypes[_vm.system].isSelected && _vm.system !== 'battery')?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [(_vm.system !== 'heating_pump')?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t( `installationWizard.defineComponents.componentsPage.systems.${_vm.system}.tooltip`, ))+\" \")]):_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.systems.${_vm.system}.additionalTooltip`)))])])]},proxy:true}],null,false,2517112990)}):_vm._e()],1):_vm._e(),_vm._t(\"action\")],2)]):_vm._e(),(_vm.system === 'battery' && !_vm.isStandalone && _vm.includedSystemsTypes[_vm.system].isSelected)?_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.systems.battery.labels.${_vm.image}`))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"max-width\":\"900px\",\"border-radius\":\"10px\"},attrs:{\"src\":_vm.imageSrc,\"alt\":_vm.image}})])]},proxy:true}],null,false,1274874056)}):_vm._e(),(_vm.system === 'pv')?_c('v-col',{staticClass:\"py-0\",attrs:{\"lg\":\"12\"}},[_c('div',{staticClass:\"d-flex pt-1 pl-2\",staticStyle:{\"min-width\":\"200px\"}},_vm._l((Array.from({ length: _vm.wizardState.inverterCount }, (_, index) => index + 1)),function(inverter){return _c('div',{key:inverter,staticStyle:{\"width\":\"20%\",\"min-width\":\"100px\"}},[_c('div',[_vm._v(\" Inverter \"+_vm._s(inverter)+\" \")]),_c('v-select',{staticClass:\"mr-1\",attrs:{\"value\":_vm.countPvByInverter(inverter - 1),\"items\":Array.from({ length: _vm.systemLimits[_vm.system].max - _vm.systemLimits[_vm.system].min + 1 }, (_, index) => index + _vm.systemLimits[_vm.system].min),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":value => _vm.handleQuantitySelect(value, _vm.system, inverter - 1)}})],1)}),0),_vm._t(\"action\")],2):_vm._e()],1)],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[(_vm.includedSystemsTypes[_vm.system].isSelected)?_c(_vm.componentsMapping[_vm.system],{ref:_vm.componentsMapping[_vm.system],tag:\"component\",attrs:{\"includedSystemsTypes\":_vm.includedSystemsTypes},on:{\"validationStatus\":_vm.handleStatusChange}}):_vm._e()],1),_c('v-col',{staticClass:\"pb-0 pt-4\",attrs:{\"cols\":\"12\"}},[(_vm.system[0] !== 'pilot')?_c('v-divider',{attrs:{\"color\":\"blue\"}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},_vm._l((_vm.filteredHeatingPumps),function(heatingPump,index){return _c('v-row',{key:index,staticClass:\"py-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_vm._v(_vm._s(_vm.$tc('installationWizard.defineComponents.componentsPage.systems.heating_pump.title', 1))+\" \"+_vm._s(index + 1))]),(_vm.isNewChargeStationPlcVersion)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-2\"},[_vm._v(\"IP: 192.168.250.\"+_vm._s(_vm.SYSTEM_IP_RANGE_START.heating_pump + index))]),_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddress'))+\" \")]),_c('div',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.ipAddressMoreInfo'))+\" \")])]},proxy:true}],null,true)})],1):_vm._e()]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-select',{attrs:{\"value\":heatingPump.systemType,\"items\":_vm.heatingPumpTypesBeforeProjectCreation,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.labels.heatingPumpType'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, ..._vm.itemsContainValue(_vm.heatingPumpTypesBeforeProjectCreation.map((item) => item.value), heatingPump.systemType)]},on:{\"change\":function($event){return _vm.handleChange(index, 'systemType', $event)}}})],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Getter, Mutation } from 'vuex-class';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport {\n electricHeatingTypes, heatingPumpTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport {\n IIncludedSystemsHeatingPumpDefinition,\n IIncludedSystemsTypes,\n} from '@/types/wizards/installationWizard.types';\nimport { newChargeStationLimitDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { SYSTEM_IP_RANGE_START } from '../../../wizardSettings/wizardConstants';\n\n@Component({\n computed: {\n SYSTEM_IP_RANGE_START() {\n return SYSTEM_IP_RANGE_START;\n },\n },\n methods: { itemsContainValue },\n components: {\n InfoTooltip,\n EnergyVisualisationPreview,\n WizardContentView,\n },\n})\nexport default class HeatingPumpComponentsSettings extends WizardComponent {\n @Prop({ default: {} }) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n payload: { systemName: string; systemIndex: number; prop: string; value: any },\n ) => void;\n\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n\n @Watch('includedSystemsTypes.heating_pump.definition', { deep: true })\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n // returns all system types that can be selected for the current project\n get heatingPumpTypesBeforeProjectCreation() {\n return heatingPumpTypes.filter((systemTypeElement) => systemTypeElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n }\n\n get filteredHeatingPumps() {\n return this.includedSystems.heating_pump.definition;\n }\n\n // updates IncludedSystemsDefinitions in Store\n async handleChange(system_index: number | string, prop: string, value: any) {\n const index = typeof system_index === 'string' ? parseInt(system_index, 10) : system_index;\n this.handleIncludedSystemsTypesSystemDefinitionProps({ systemName: 'heating_pump', systemIndex: index, prop, value });\n this.rerenderKey++;\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('validationStatus', { system: 'electric_heating', status: this.valid });\n }\n\n mounted() {\n setTimeout(() => {\n this.validate();\n }, 10);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingPumpComponentsSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingPumpComponentsSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingPumpComponentsSettings.vue?vue&type=template&id=0c9ae32c&\"\nimport script from \"./HeatingPumpComponentsSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingPumpComponentsSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport BatteryComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue';\nimport ElectricHeatingSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue';\nimport HeatingPumpComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/HeatingPumpComponentsSettings.vue';\nimport ChargeStationComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport {\n DEFINITIONS,\n Definitions,\n IHandleStatusChangeParams,\n IIncludedSystemsTypes,\n} from '@/types/wizards/installationWizard.types';\nimport { newChargeStationLimitDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { BatteryType } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\n\n@Component({\n methods: {itemsContainValue},\n components: {\n ModalWindow,\n InfoTooltip,\n BatteryComponentsSettings,\n ElectricHeatingSettings,\n HeatingPumpComponentsSettings,\n ChargeStationComponentsSettings,\n },\n})\nexport default class ComponentsPage extends Vue {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Prop() system!: string;\n @Prop() includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/emsLimits') emsLimits!: Record;\n @Mutation('installationWizard/setEMSSystemCount') setEMSSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setEnergyViewSystemCount') setEnergyViewSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystem') handleIncludedSystemsTypesSystem!: (\n { system, key, data }: { system: keyof IIncludedSystemsTypes; key: string; data: any }\n ) => void;\n\n systemLimits: any = {};\n doesHover = false;\n\n componentsMapping: any = {\n battery: 'BatteryComponentsSettings',\n electric_heating: 'ElectricHeatingSettings',\n charge_station: 'ChargeStationComponentsSettings',\n }\n\n get includedSystemsCount() {\n const includedSystemsCount: any = {};\n includedSystemsCount[this.system] = (this.includedSystemsTypes[this.system as keyof IIncludedSystemsTypes].definition.length < this.systemLimits[this.system].min) ? this.systemLimits[this.system].min : this.includedSystemsTypes[this.system as keyof IIncludedSystemsTypes].definition.length;\n\n return includedSystemsCount;\n }\n\n get image() {\n if (this.includedSystemsTypes.battery.definition.length > 1) return '2_batteries_on_2_inputs';\n if (this.wizardState.hybridSettings.useBothBatteryInputs) return 'battery_on_2_inputs';\n return 'battery_on_1_input';\n }\n\n get imageSrc() {\n return require(`../../../../../../assets/images/installation wizard/${this.image}.png`);\n }\n\n get isStandalone() {\n return this.projectBatteryType === BatteryType.STANDALONE;\n }\n\n get projectBatteryType() {\n // contains type of system that's selected inside the project settings\n const { batterySystemType } = this.project?.meta?.controller;\n return batterySystemType === undefined ? '' : batterySystemType;\n }\n\n handleStatusChange(value: IHandleStatusChangeParams) {\n this.$emit('statusUpdate', value);\n }\n\n /**\n * @description Handles checkbox change\n * @param event\n * @param system_name\n */\n async handleCheckbox(event: boolean, system_name: string) {\n if (!event) this.handleStatusChange({ system: system_name, status: true } as IHandleStatusChangeParams);\n // Set includedSystemsTypes system isSelected in store\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'isSelected', data: event,\n });\n // If checkbox is checked set system count to 1 and add system definition from DEFINITIONS list\n if (event) {\n const clone = JSON.parse(JSON.stringify(DEFINITIONS));\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'count', data: 1,\n });\n this.selectEmsSystem(system_name, 1, 'definition', [clone[system_name]]);\n // if battery is selected there must also be a pv System\n if (!this.isDeye && system_name === 'battery') {\n this.handleIncludedSystemsTypesSystem({ system: 'pv', key: 'count', data: 1 });\n this.selectEmsSystem('pv', 1, 'isSelected', true);\n }\n } else {\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.selectEmsSystem(system_name, 0, 'definition', []);\n // if battery is not selected there is no pv System\n if (!this.isDeye && system_name === 'battery') {\n this.handleIncludedSystemsTypesSystem({ system: 'pv', key: 'count', data: 0 });\n this.selectEmsSystem('pv', 0, 'isSelected', false);\n }\n }\n\n // Rerender EnergyVisualisation component\n this.updateEnergyVisualization();\n\n // Validate form to see rules errors\n await this.$nextTick();\n this.validate();\n }\n\n countPvByInverter(inverter: number) {\n return this.includedSystemsTypes.pv.definition.filter((item: any) => item.inverter === inverter).length;\n }\n\n /**\n * @description Handles system count change\n * @param newCount\n * @param system_name\n * @param inverter\n */\n async handleQuantitySelect(newCount: number, system_name: keyof IIncludedSystemsTypes, inverter = 0) {\n const oldCount = system_name === 'pv' ? this.countPvByInverter(inverter) : this.includedSystemsTypes[system_name].definition.length;\n const currentDefinitions = this.includedSystemsTypes[system_name].definition;\n\n if (newCount > oldCount) {\n const amount = newCount - oldCount;\n let newObjects = JSON.parse(JSON.stringify(\n Array(amount).fill({ ...DEFINITIONS[system_name as keyof Definitions] }),\n ));\n if (system_name === 'pv') {\n newObjects = newObjects.map((item: any) => ({ ...item, inverter }));\n }\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: [...currentDefinitions, ...newObjects],\n });\n }\n if (newCount < oldCount) {\n if (system_name !== 'pv') {\n const amount = oldCount - newCount;\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: currentDefinitions.slice(0, -amount),\n });\n } else {\n const filteredCurrentDefinitions = currentDefinitions.filter((item: any) => item.inverter !== inverter);\n const newObjects = JSON.parse(JSON.stringify(\n Array(newCount).fill({ ...DEFINITIONS[system_name as keyof Definitions] }),\n )).map((item: any) => ({ ...item, inverter }));\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: [...filteredCurrentDefinitions, ...newObjects],\n });\n }\n }\n\n const pvCount = this.includedSystemsTypes.pv.definition.length;\n const count = system_name === 'pv' ? pvCount : newCount;\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'count', data: count,\n });\n this.setEMSSystemCount({ system: system_name, count });\n this.setEnergyViewSystemCount({ system: system_name, count });\n\n if (count === 0) {\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n }\n\n this.updateEnergyVisualization();\n await this.$nextTick();\n this.validate();\n }\n\n selectEmsSystem(system: string, count: number, prop: string, data: any) {\n this.setEMSSystemCount({ system, count });\n this.setEnergyViewSystemCount({ system, count });\n this.handleIncludedSystemsTypesSystem({\n system: system as keyof IIncludedSystemsTypes,\n key: prop,\n data,\n });\n }\n\n updateEnergyVisualization() {\n this.$emit('updateEnergyVisualization');\n }\n\n validate() {\n this.$emit('validate');\n }\n\n mounted() {\n this.validate();\n }\n\n created() {\n if ((this.isDeye || this.isSolarmax) && plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) {\n this.componentsMapping = {\n ...this.componentsMapping,\n heating_pump: 'HeatingPumpComponentsSettings',\n };\n }\n this.systemLimits = {\n battery: {\n min: this.isDeye ? 0 : 1,\n max: this.emsLimits.battery,\n },\n electric_heating: {\n min: 0,\n max: this.emsLimits.electric_heating,\n },\n charge_station: {\n min: 0,\n max: this.emsLimits.charge_station,\n },\n charge_station_consumer: {\n min: 0,\n max: this.emsLimits.charge_station_consumer,\n },\n pv: {\n min: 0,\n max: this.emsLimits.pv - 1,\n },\n heating_pump: {\n min: 0,\n max: this.emsLimits.heating_pump,\n },\n };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemComponent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemComponent.vue?vue&type=template&id=7c12c3b1&\"\nimport script from \"./SystemComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemComponent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$tc( `installationWizard.defineComponents.componentsPage.systems.inverter.title`, 2, ))+\" \")]),_c('v-checkbox',{staticStyle:{\"margin-right\":\"0\"},attrs:{\"input-value\":true,\"color\":\"accent\",\"disabled\":true}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{attrs:{\"value\":_vm.wizardState.inverterCount,\"items\":Array.from(\n { length: 4 },\n (_, index) => index + 2,\n ),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"rules\":[_vm.rules.required, _vm.rules.onlyNumbersRule],\"outlined\":\"\"},on:{\"change\":function($event){return _vm.handleInverterQuantityChange($event)}}})],1)])],1)],1),_c('v-col',{staticClass:\"pb-0 pt-4\",attrs:{\"cols\":\"12\"}},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport EnergyVisualisationPreview from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport { batteryCapacity, BatteryType, deyeBatteryTypes, deyeTypes, inverterPowers } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IProject } from '@/types/project.types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport { plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\n\n@Component({\n methods: { itemsContainValue },\n components: {\n InfoTooltip,\n EnergyVisualisationPreview,\n },\n})\nexport default class InverterComponentSettings extends mixins(Validation, BasicControl) {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n rerenderKey = 0;\n\n valid = false;\n doesHover = false;\n\n @Watch('wizardState.inverterCount', { deep: true })\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('validationStatus', { system: 'battery', status: this.valid });\n }\n\n handleInverterQuantityChange(event: any) {\n this.$emit('changeInverterQuantity', event);\n }\n\n async mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InverterComponentSettings.vue?vue&type=template&id=55d9c6ce&\"\nimport script from \"./InverterComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./InverterComponentSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InverterComponentSettings.vue?vue&type=style&index=0&id=55d9c6ce&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$tc( `installationWizard.defineComponents.componentsPage.systems.stringInverter.title`, 2, ))+\" \")]),_c('v-checkbox',{staticStyle:{\"margin-right\":\"0\"},attrs:{\"input-value\":_vm.wizardState.stringInverterCount > 0,\"color\":\"accent\",\"disabled\":_vm.includedSystems.chp.isSelected},on:{\"change\":function($event){return _vm.handleInverterQuantityChange($event)}}})],1),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{attrs:{\"value\":_vm.wizardState.stringInverterCount,\"items\":Array.from(\n { length: _vm.localLimitStringInverter + 1 },\n (_, index) => index,\n ),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"disabled\":_vm.includedSystems.chp.isSelected,\"rules\":[_vm.rules.required, _vm.rules.onlyNumbersRule],\"outlined\":\"\"},on:{\"change\":function($event){return _vm.handleInverterQuantityChange($event)}}})],1)])],1)],1),_c('v-col',{staticClass:\"pb-0 pt-4\",attrs:{\"cols\":\"12\"}},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport EnergyVisualisationPreview from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport { batteryCapacity, BatteryType, deyeBatteryTypes, deyeTypes, inverterPowers } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IProject } from '@/types/project.types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { itemsContainValue } from '@/utils/utilsFunctions';\nimport { plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { IIncludedSystemsTypes } from '@/types/wizards/installationWizard.types';\nimport { limitStringInverter } from '@/ui/components/wizards/installationWizard/wizardSettings/wizardLimits';\n\n@Component({\n methods: { itemsContainValue },\n components: {\n InfoTooltip,\n EnergyVisualisationPreview,\n },\n})\nexport default class StringInverterComponentSettings extends mixins(Validation, BasicControl) {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/includedSystemsTypes') includedSystems!: IIncludedSystemsTypes;\n rerenderKey = 0;\n\n valid = false;\n doesHover = false;\n\n get localLimitStringInverter() {\n return limitStringInverter;\n }\n\n @Watch('wizardState.stringInverterCount', { deep: true })\n updateValidation() {\n this.$nextTick(() => {\n this.validate();\n this.rerenderKey++;\n });\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('validationStatus', { system: 'battery', status: this.valid });\n }\n\n handleInverterQuantityChange(event: any) {\n if (typeof event === 'boolean') {\n this.$emit('changeInverterQuantity', event ? 1 : 0);\n } else {\n this.$emit('changeInverterQuantity', event);\n }\n }\n\n async mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StringInverterComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StringInverterComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StringInverterComponentSettings.vue?vue&type=template&id=6545eaeb&\"\nimport script from \"./StringInverterComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./StringInverterComponentSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StringInverterComponentSettings.vue?vue&type=style&index=0&id=6545eaeb&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex pb-2 align-center\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.otherConsumerOptions')))]),_c('v-checkbox',{staticClass:\"pb-4 pl-4\",attrs:{\"color\":\"accent\",\"hide-details\":\"\"},on:{\"change\":_vm.handleConsumerOptionsEnabled},model:{value:(_vm.optionsEnabled),callback:function ($$v) {_vm.optionsEnabled=$$v},expression:\"optionsEnabled\"}})],1),(_vm.optionsEnabled)?_c('div',{staticClass:\"py-3 d-flex\",staticStyle:{\"max-width\":\"32%\"}},[_c('v-select',{attrs:{\"items\":_vm.availableItems,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.selectConsumer'),\"color\":\"accent\",\"item-color\":\"accent\",\"outlined\":\"\",\"item-value\":\"value\",\"item-text\":\"text\",\"hide-details\":\"\",\"hide-selected\":\"\"},on:{\"change\":_vm.handleSelectionChange},model:{value:(_vm.selectedConsumer),callback:function ($$v) {_vm.selectedConsumer=$$v},expression:\"selectedConsumer\"}}),(_vm.selectedConsumer !== '')?_c('div',{staticClass:\"pt-4 pl-2\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.toolTips.deyeConsumers'))+\" \")]},proxy:true}],null,false,4191447875)})],1):_vm._e()],1):_vm._e(),_vm._l((Object.entries(_vm.systemLimits)),function(system,index){return (_vm.optionsEnabled)?_c('div',{key:index+`${_vm.rerenderKey}`},[(system[0] === _vm.selectedConsumer)?_c('v-row',{staticClass:\"d-flex align-center pt-2\"},[_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.systems.${system[0] === 'heating_pump_consumer' ? system[0].split('_consumer')[0] : system[0]}.title`)))])]),_c('v-col',{attrs:{\"sm\":\"6\",\"lg\":\"2\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{key:_vm.includedSystemsTypes[system[0]].count,attrs:{\"value\":_vm.includedSystemsTypes[system[0]].count,\"items\":Array.from({ length: _vm.systemLimits[system[0]].max - _vm.systemLimits[system[0]].min + 1 }, (_, index) => index + _vm.systemLimits[system[0]].min),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"change\":function($event){return _vm.handleQuantitySelect($event, system[0])}}})],1)])],1):_vm._e(),_c('div',[(_vm.selectedConsumer === system[0] && system[0] === 'heating_pump_consumer')?_c('div',_vm._l((_vm.includedSystemsTypes.heating_pump_consumer.definition),function(element,elementIndex){return _c('v-row',{key:`heating_pump`+elementIndex,attrs:{\"cols\":\"12\"}},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.title')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(elementIndex + 1))])])]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"5\"}},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.labels.powerHeatingpump'),\"type\":\"number\",\"color\":\"accent\",\"min\":0.1,\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required, _vm.rules.oneComma, _vm.fieldMoreThan(0.1)],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'powerSGR1', $event, 'heating_pump_consumer')}},model:{value:(element.powerSGR1),callback:function ($$v) {_vm.$set(element, \"powerSGR1\", $$v)},expression:\"element.powerSGR1\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.labels.additionalPower'),\"type\":\"number\",\"color\":\"accent\",\"min\":0.1,\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required, _vm.rules.oneComma, _vm.fieldMoreThan(0.1)],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'powerSGR2', $event, 'heating_pump_consumer')}},model:{value:(element.powerSGR2),callback:function ($$v) {_vm.$set(element, \"powerSGR2\", $$v)},expression:\"element.powerSGR2\"}})],1),_c('div',[_c('div',{staticClass:\"ml-2\",staticStyle:{\"margin-top\":\"100px\"}},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.tooltip.text1'))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.tooltip.point1'))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.tooltip.point2'))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.tooltip.text2'))+\" \")])]},proxy:true}],null,true)})],1)])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('div',{staticClass:\"ml-2 d-flex\"},[_c('div',{staticClass:\"pt-4\"},[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.connectWith')))])]),_c('v-select',{staticClass:\"select-dropdown pl-2\",attrs:{\"disabled\":_vm.getDisablePilotDevices,\"value\":element.connectWithLine,\"items\":_vm.localConnectWithLineItems,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.connectWithLine'),\"color\":\"accent\",\"item-color\":\"accent\",\"outlined\":\"\",\"item-value\":\"value\",\"item-text\":\"name\",\"rules\":[_vm.hasDuplicateValue]},on:{\"change\":function($event){return _vm.handlePilotLineChange(elementIndex, 'connectWithLine', $event, 'heating_pump_consumer')}}}),_c('div',{staticClass:\"mt-4 ml-1\"},[(_vm.getDisablePilotDevices)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.pilotDevicesBlockedMessage'))+\" \")]},proxy:true}],null,true)}):_vm._e()],1)],1)])],1)}),1):_vm._e(),(_vm.selectedConsumer === system[0] && system[0] === 'big_consumer')?_c('div',_vm._l((_vm.includedSystemsTypes.big_consumer.definition),function(element,elementIndex){return _c('v-row',{key:`big_consumer`+elementIndex},[(_vm.checkIsConsumer(elementIndex+1, 'big_consumer'))?_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.big_consumer.title')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(elementIndex + 1))])])]):_vm._e(),(_vm.checkIsConsumer(elementIndex+1, 'big_consumer'))?_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"5\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.big_consumer.labels.power'),\"type\":\"number\",\"color\":\"accent\",\"min\":0,\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required, _vm.rules.oneComma, _vm.fieldMoreThan(1)],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'power', $event, 'big_consumer')}},model:{value:(element.power),callback:function ($$v) {_vm.$set(element, \"power\", $$v)},expression:\"element.power\"}})],1):_vm._e(),(_vm.checkIsConsumer(elementIndex+1, 'big_consumer'))?_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('div',{staticClass:\"ml-2 d-flex\"},[_c('div',{staticClass:\"pt-4\"},[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.connectWith')))])]),_c('v-select',{staticClass:\"select-dropdown pl-2\",attrs:{\"disabled\":_vm.getDisablePilotDevices,\"value\":element.connectWithLine,\"items\":_vm.localConnectWithLineItems,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.charge_station.labels.connectWithLine'),\"color\":\"accent\",\"item-color\":\"accent\",\"outlined\":\"\",\"item-value\":\"value\",\"item-text\":\"name\",\"rules\":[_vm.hasDuplicateValue]},on:{\"change\":function($event){return _vm.handlePilotLineChange(elementIndex, 'connectWithLine', $event, 'big_consumer')}}}),_c('div',{staticClass:\"mt-4 ml-1\"},[(_vm.getDisablePilotDevices)?_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.pilotDevicesBlockedMessage'))+\" \")]},proxy:true}],null,true)}):_vm._e()],1)],1)]):_vm._e()],1)}),1):_vm._e(),(_vm.selectedConsumer === system[0] && system[0] === 'load_shedding')?_c('div',_vm._l((_vm.includedSystemsTypes.load_shedding.definition),function(element,elementIndex){return _c('v-row',{key:`load_shedding`+elementIndex},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('h4',[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.load_shedding.title')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(elementIndex + 1))])])]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"9\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.load_shedding.labels.maxBatteryPower'),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[\n _vm.rules.required,\n _vm.rules.oneComma,\n _vm.fieldMoreThan(0),\n _vm.fieldLessThan(500),\n ],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'maxBatteryPower', $event, 'load_shedding')}},model:{value:(element.maxBatteryPower),callback:function ($$v) {_vm.$set(element, \"maxBatteryPower\", $$v)},expression:\"element.maxBatteryPower\"}}),_c('div',{staticClass:\"px-4\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.load_shedding.labels.powerConsumer')+'1',\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[\n _vm.rules.onlyNumbersRule,\n _vm.rules.required,\n _vm.rules.oneComma,\n _vm.fieldMoreThan(0),\n _vm.fieldLessThan(100),\n ],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'powerConsumer1', $event, 'load_shedding')}},model:{value:(element.powerConsumer1),callback:function ($$v) {_vm.$set(element, \"powerConsumer1\", _vm._n($$v))},expression:\"element.powerConsumer1\"}})],1),_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.load_shedding.labels.powerConsumer') + '2',\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[\n _vm.rules.onlyNumbersRule,\n _vm.rules.required,\n _vm.rules.oneComma,\n _vm.fieldMoreThan(0),\n _vm.fieldLessThan(100),\n ],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(elementIndex, 'powerConsumer2', $event, 'load_shedding')}},model:{value:(element.powerConsumer2),callback:function ($$v) {_vm.$set(element, \"powerConsumer2\", $$v)},expression:\"element.powerConsumer2\"}})],1)])],1)}),1):_vm._e()])],1):_vm._e()}),_c('div',{staticClass:\"pb-8 pt-4\"},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Getter, Mutation } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IProject } from '@/types/project.types';\nimport { connectWithLineItems, getSelectedSystem } from '@/utils/installationWizardUtilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport { IIncludedSystemsTypes } from '@/types/wizards/installationWizard.types';\n\nconst DEFINITIONS = {\n heating_pump_consumer: { connectWithLine: '', powerSGR1: '', powerSGR2: '' },\n big_consumer: { connectWithLine: '', power: '' },\n load_shedding: { maxBatteryPower: '', powerConsumer1: '', powerConsumer2: '' },\n};\n\n@Component({\n components: {\n InfoTooltip,\n },\n})\nexport default class DeyeConsumerComponentSettings extends mixins(Validation, BasicControl) {\n @Prop({ default: {} }) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n @Getter('installationWizard/connectedLines') connectedLines!: number[];\n @Getter('installationWizard/consumerOptionsEnabled') consumerOptionsEnabled!: boolean;\n @Getter('installationWizard/wasInstallationWizardCompleted') wasInstallationWizardCompleted!: boolean;\n @Getter('installationWizard/getDisablePilotDevices') getDisablePilotDevices!: boolean;\n @Mutation('installationWizard/setEMSSystemCount') setEMSSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setConsumerOptionsEnabled') setConsumerOptionsEnabled!: (data: boolean) => void;\n @Mutation('installationWizard/setEnergyViewSystemCount') setEnergyViewSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n { systemName, systemIndex, prop, value }: any\n ) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystem') handleIncludedSystemsTypesSystem!: (\n { system, key, data }: { system: keyof IIncludedSystemsTypes; key: string; data: any }\n ) => void;\n\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n localConnectWithLineItems = connectWithLineItems();\n selectedConsumer = 'load_shedding';\n optionsEnabled = false;\n\n systemLimits = {\n heating_pump_consumer: {\n min: 1,\n max: 1,\n },\n big_consumer: {\n min: 1,\n max: 2,\n },\n load_shedding: {\n min: 1,\n max: 1,\n },\n };\n\n localIncludedSystemTypes: any = {\n heating_pump_consumer: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n big_consumer: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n load_shedding: {\n isSelected: true,\n count: 1,\n definition: [{\n maxBatteryPower: 0,\n powerConsumer1: 0,\n powerConsumer2: 0,\n }],\n },\n }\n\n checkIsConsumer(elementIndex: number, deviceType: string) {\n if (!this.emsDevice.data.meta.controllerMappings[deviceType].components[`${deviceType}${elementIndex}`]) return true;\n const power = this.emsDevice.data.meta.controllerMappings[deviceType].components[`${deviceType}${elementIndex}`]?.power;\n // if external_energy_measurement is not defined it cant be a dummy device since dummys have external_energy_measurement: true\n return (power === '' || power.includes('prgPilot.lrPower')) &&\n this.emsDevice.data.meta.controllerMappings[deviceType].components[`${deviceType}${elementIndex}`]?.external_energy_measurement === undefined;\n }\n\n get availableItems() {\n return [\n {\n text: 'SG Ready',\n value: 'heating_pump_consumer',\n },\n {\n text: this.$t('installationWizard.defineComponents.componentsPage.systems.big_consumer.title'),\n value: 'big_consumer',\n },\n {\n text: this.$t('installationWizard.defineComponents.componentsPage.systems.load_shedding.title'),\n value: 'load_shedding',\n },\n ];\n }\n\n filterConnectWithLine(systemType: any[]): any[] {\n return systemType.map((element: any) => {\n return typeof element.connectWithLine !== 'string' ? element.connectWithLine : undefined;\n }).filter(element => element !== undefined);\n }\n\n get hasDuplicateValue(): boolean | string {\n const heatingPumpArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.heating_pump_consumer.definition);\n const chargeStationArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.charge_station.definition);\n const bigConsumerArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.big_consumer.definition);\n\n const array = [heatingPumpArray, chargeStationArray, bigConsumerArray].flat();\n // Create an object to store the count of each value\n const count: any = {};\n\n // Iterate over each element in the array\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n // If the value is already in the count object, it's a duplicate\n if (count[value]) {\n return this.$t('installationWizard.defineComponents.componentsPage.duplicatePilotLineSelection').toString();\n }\n\n // Otherwise, add the value to the count object\n count[value] = 1;\n }\n\n // No duplicates found\n return true;\n }\n\n async handleSelectionChange(event: string) {\n const clone = JSON.parse(JSON.stringify(DEFINITIONS));\n\n this.handleIncludedSystemsTypesSystem({\n system: event as keyof IIncludedSystemsTypes, key: 'count', data: 1,\n });\n if (this.getDisablePilotDevices && event === 'heating_pump_consumer' || event === 'big_consumer') {\n clone[event].connectWithLine = 'noLine';\n }\n this.handleIncludedSystemsTypesSystem({\n system: event as keyof IIncludedSystemsTypes, key: 'definition', data: [clone[event]],\n });\n this.handleIncludedSystemsTypesSystem({\n system: event as keyof IIncludedSystemsTypes, key: 'isSelected', data: true,\n });\n if (event !== 'load_shedding') {\n const system = event === 'heating_pump_consumer' ? 'heating_pump' : event;\n const count = event === 'heating_pump_consumer' ? this.includedSystemsTypes.heating_pump.definition.length + 1 : 1;\n this.setEMSSystemCount({ system, count });\n this.setEnergyViewSystemCount({ system, count });\n }\n\n // will update counts and isSelected for other systems\n if (event === 'heating_pump_consumer') {\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.setEMSSystemCount({ system: 'big_consumer', count: 0 });\n this.setEnergyViewSystemCount({ system: 'big_consumer', count: 0 });\n }\n if (event === 'big_consumer') {\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.setEMSSystemCount({ system: 'heating_pump', count: 0 });\n this.setEnergyViewSystemCount({ system: 'heating_pump', count: 0 });\n }\n if (event === 'load_shedding') {\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.setEMSSystemCount({ system: 'heating_pump', count: 0 });\n this.setEnergyViewSystemCount({ system: 'heating_pump', count: 0 });\n this.setEMSSystemCount({ system: 'big_consumer', count: 0 });\n this.setEnergyViewSystemCount({ system: 'big_consumer', count: 0 });\n }\n\n // Validate form to see rules errors\n await this.$nextTick();\n this.validate();\n }\n\n async handleQuantitySelect(newCount: number, system_name: 'heating_pump_consumer' | 'big_consumer' | 'load_shedding') {\n const oldCount = this.localIncludedSystemTypes[system_name].count;\n const currentDefinitions = this.localIncludedSystemTypes[system_name].definition;\n\n if (newCount > oldCount) {\n const amount = newCount - oldCount;\n const newObjects = JSON.parse(JSON.stringify(\n Array(amount).fill({ ...DEFINITIONS[system_name] }),\n ));\n if (this.getDisablePilotDevices && system_name === 'heating_pump_consumer' || system_name === 'big_consumer') {\n newObjects.forEach((element: any) => {\n element.connectWithLine = 'noLine';\n });\n }\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: [...currentDefinitions, ...newObjects],\n });\n }\n if (newCount < oldCount) {\n const amount = oldCount - newCount;\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: currentDefinitions.slice(0, -amount),\n });\n }\n\n this.handleIncludedSystemsTypesSystem({\n system: system_name as keyof IIncludedSystemsTypes, key: 'count', data: newCount,\n });\n this.setEMSSystemCount({ system: system_name === 'heating_pump_consumer' ? 'heating_pump' : system_name, count: newCount });\n this.setEnergyViewSystemCount({ system: system_name === 'heating_pump_consumer' ? 'heating_pump' : system_name, count: newCount });\n this.rerenderKey += 1;\n\n // Validate form to see rules errors\n await this.$nextTick();\n this.validate();\n }\n\n // updates IncludedSystemsDefinitions in Store\n async handleChange(system_index: number | string, prop: string, value: any, systemType: string) {\n const index = typeof system_index === 'string' ? parseInt(system_index, 10) : system_index;\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: systemType,\n systemIndex: index,\n prop,\n value,\n });\n this.rerenderKey++;\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n async handlePilotLineChange(system_index: number | string, prop: string, value: any, systemType: string) {\n const index = typeof system_index === 'string' ? parseInt(system_index, 10) : system_index;\n this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: systemType,\n systemIndex: index,\n prop,\n value,\n });\n this.rerenderKey++;\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n @Watch('connectedLines', { deep: true })\n updateLineItems() {\n this.localConnectWithLineItems = this.localConnectWithLineItems.map((item: any) => {\n item.disabled = this.connectedLines.includes(item.value);\n return item;\n });\n }\n\n validate() {\n if (!this.optionsEnabled) {\n this.valid = true;\n } else {\n (this.$refs.form as any).validate();\n }\n this.$emit('deyeConsumerValidationStatus', { system: 'deyeConsumer', status: this.valid });\n }\n\n created() {\n if (this.wasInstallationWizardCompleted) {\n const allConsumers = ['heating_pump', 'big_consumer', 'load_shedding'];\n this.selectedConsumer = this.consumerOptionsEnabled ? getSelectedSystem(this.emsDevice.data.meta.controllerMappings, allConsumers, 'load_shedding') : '';\n this.selectedConsumer = this.selectedConsumer === 'heating_pump' ? 'heating_pump_consumer' : this.selectedConsumer;\n } else {\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'heating_pump_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'big_consumer' as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'count', data: 1,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: [{ maxBatteryPower: 0, powerConsumer1: 0, powerConsumer2: 0 }],\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'load_shedding' as keyof IIncludedSystemsTypes, key: 'isSelected', data: true,\n });\n }\n\n this.optionsEnabled = (this.consumerOptionsEnabled || this.selectedConsumer !== 'load_shedding') && this.selectedConsumer !== '';\n this.handleConsumerOptionsEnabled(this.optionsEnabled, true);\n }\n\n async handleConsumerOptionsEnabled(checked: boolean, init = false) {\n if (!checked) this.clearSystem();\n else {\n if (!init) {\n this.selectedConsumer = 'load_shedding';\n await this.handleSelectionChange('load_shedding');\n }\n }\n this.setConsumerOptionsEnabled(checked);\n this.$nextTick(() => this.validate());\n this.$emit('reRender');\n }\n\n clearSystem() {\n const allConsumers = ['heating_pump_consumer', 'big_consumer', 'load_shedding'];\n allConsumers.forEach((consumer) => {\n this.handleIncludedSystemsTypesSystem({\n system: consumer as keyof IIncludedSystemsTypes, key: 'isSelected', data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: consumer as keyof IIncludedSystemsTypes, key: 'count', data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: consumer as keyof IIncludedSystemsTypes, key: 'definition', data: [],\n });\n if (consumer !== 'load_shedding') {\n const emsConsumer = consumer === 'heating_pump_consumer' ? 'heating_pump' : consumer;\n this.setEMSSystemCount({ system: emsConsumer, count: 0 });\n this.setEnergyViewSystemCount({ system: emsConsumer, count: 0 });\n }\n });\n }\n\n mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n this.updateLineItems();\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeyeConsumerComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeyeConsumerComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeyeConsumerComponentSettings.vue?vue&type=template&id=b74c6fac&scoped=true&\"\nimport script from \"./DeyeConsumerComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeyeConsumerComponentSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeyeConsumerComponentSettings.vue?vue&type=style&index=0&id=b74c6fac&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b74c6fac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\",\"lg\":\"4\"}},[_c('div',{staticClass:\"d-flex pb-2 align-center\"},[(!_vm.isSolarmax)?_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.otherProducerOptions')))]):_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.acpvSystem')))]),_c('v-checkbox',{staticClass:\"pb-4 pl-4\",attrs:{\"color\":\"accent\",\"hide-details\":\"\"},on:{\"change\":_vm.handleGeneratorOptionsEnabled},model:{value:(_vm.optionsEnabled),callback:function ($$v) {_vm.optionsEnabled=$$v},expression:\"optionsEnabled\"}})],1),(_vm.optionsEnabled)?_c('div',{staticClass:\"d-flex align-center\"},[(!_vm.isSolarmax)?_c('v-select',{attrs:{\"items\":_vm.availableItems,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.selectProducer'),\"color\":\"accent\",\"item-color\":\"accent\",\"outlined\":\"\",\"item-value\":\"value\",\"item-text\":\"text\",\"hide-details\":\"\",\"hide-selected\":\"\",\"disabled\":!_vm.optionsEnabled},on:{\"change\":function($event){return _vm.handleSelect($event)}},model:{value:(_vm.selectedSystem),callback:function ($$v) {_vm.selectedSystem=$$v},expression:\"selectedSystem\"}}):_vm._e(),(!_vm.isSolarmax)?_c('div',{staticClass:\"d-flex justify-center pt-1 pl-2\"},[_c('InfoTooltip',{scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.componentsPage.systems.${_vm.selectedSystem}.tooltip`))+\" \")]},proxy:true}],null,false,733891862)})],1):_vm._e()],1):_vm._e()])],1),(_vm.optionsEnabled && _vm.isSystemSelected('generator'))?_c('v-row',[_c('v-col',[(_vm.isSystemSelected('generator'))?_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{key:_vm.localGeneratorsOnGeneratorConnection.count,attrs:{\"selectable\":val => val !== 0,\"value\":_vm.localGeneratorsOnGeneratorConnection.count,\"items\":Array.from({ length: _vm.generatorsLimit.max - _vm.generatorsLimit.min + 1 }, (_, index) => index + _vm.generatorsLimit.min).splice(1),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"}})],1):_vm._e()]),_c('v-col',{staticClass:\"d-flex align-center\"},[_c('v-text-field',{key:_vm.rerenderKey,attrs:{\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"min\":0,\"type\":\"number\",\"suffix\":\"W\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.generator.labels.power'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required, _vm.rules.noCommas, ..._vm.minMaxValidation(_vm.generatorPower, _vm.generatorsLimit.minPower, _vm.generatorsLimit.maxPower)]},on:{\"input\":function($event){return _vm.handleGeneratorPowerChange($event)}},model:{value:(_vm.generatorPower),callback:function ($$v) {_vm.generatorPower=_vm._n($$v)},expression:\"generatorPower\"}})],1)],1):_vm._e(),(_vm.optionsEnabled && _vm.isSystemSelected('ac_pv'))?_c('v-row',[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{key:_vm.localACPV.count,attrs:{\"value\":_vm.localACPV.count,\"items\":Array.from({ length: _vm.generatorsLimit.max - _vm.generatorsLimit.min + 1 }, (_, index) => index + _vm.generatorsLimit.min).splice(1),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"}})],1)])],1):_vm._e(),(_vm.optionsEnabled && _vm.isSystemSelected('chp'))?_c('v-row',[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-col',{attrs:{\"lg\":\"6\"}},[_c('div',{staticClass:\"d-flex align-center\"},[_c('v-select',{key:_vm.localCHP.count,attrs:{\"value\":_vm.localCHP.count,\"items\":Array.from({ length: _vm.chpLimit.max - _vm.chpLimit.min + 1 }, (_, index) => index + _vm.chpLimit.min).splice(1),\"label\":_vm.$t('modals.manageMLModel.quantity'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"input\":function($event){return _vm.handleChpCountChange($event)}}})],1)]),_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.chp.configuration'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[(_vm.isMultipleChpVersion)?_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"border-radius\":\"10px\"},attrs:{\"src\":require(\"./../../../../../../assets/images/installation wizard/multiple_chp.png\"),\"alt\":\"acpv\"}}):_vm._e()])]},proxy:true}],null,false,3091197251)})],1)]):_vm._e(),_c('v-row',{staticClass:\"py-4\",attrs:{\"cols\":\"12\"}},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport { IProject } from '@/types/project.types';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport { getSelectedSystem } from '@/utils/installationWizardUtilsFunctions';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { IIncludedSystemsTypes } from '@/types/wizards/installationWizard.types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n ModalWindow,\n InfoTooltip,\n },\n})\nexport default class DeyeProducerComponentSettings extends mixins(Validation) {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Prop({ default: {} }) includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/emsLimits') emsLimits!: Record;\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('installationWizard/producerOptionsEnabled') producerOptionsEnabled!: boolean;\n @Getter('installationWizard/wasInstallationWizardCompleted') wasInstallationWizardCompleted!: boolean;\n @Mutation('installationWizard/setEMSSystemCount') setEMSSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setEnergyViewSystemCount') setEnergyViewSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setACPVSystemCount') setACPVSystemCount!: (data: number) => void;\n @Mutation('installationWizard/setACPVSystemSelection') setACPVSystemSelection!: (data: boolean) => void;\n @Mutation('installationWizard/setProducerOptionsEnabled') setProducerOptionsEnabled!: (data: boolean) => void;\n @Getter('installationWizard/generatorsOnGeneratorConnections') generatorsOnGeneratorConnection!: {\n isSelected: boolean;\n count: number;\n definition: [];\n };\n @Getter('installationWizard/ACPV') ACPV!: {\n isSelected: boolean;\n count: number;\n };\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemDefinitionProps') handleIncludedSystemsTypesSystemDefinitionProps!: (\n payload: { systemName: string; systemIndex: number; prop: string; value: any },\n ) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystem') handleIncludedSystemsTypesSystem!: (\n { system, key, data }: { system: keyof IIncludedSystemsTypes; key: string; data: any }\n ) => void;\n\n rerenderKey = 0;\n valid = false;\n doesHover = false;\n generatorPower = 500;\n optionsEnabled = false;\n\n localGeneratorsOnGeneratorConnection: any = null;\n localACPV: any = null;\n localCHP: any = null;\n selectedSystem = 'generator'\n previousSystem = 'generator';\n\n DEFINITIONS: any = {\n generator: {\n power: 0,\n connectWithLine: '',\n },\n chp: {},\n };\n\n get isMultipleChpVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n get availableItems() {\n return [\n {\n text: this.$t('installationWizard.defineComponents.componentsPage.systems.generator.title'),\n value: 'generator',\n },\n {\n text: this.$t('installationWizard.defineComponents.componentsPage.systems.ac_pv.title'),\n value: 'ac_pv',\n },\n {\n text: this.$t('installationWizard.defineComponents.componentsPage.systems.chp.title'),\n value: 'chp',\n disabled: this.wizardState.stringInverterCount > 0,\n },\n ];\n }\n\n async handleSelect(system: string) {\n if (system === '') return;\n this.selectedSystem = system;\n this.selectProducer();\n this.previousSystem = this.selectedSystem;\n\n await this.$nextTick();\n this.validate();\n }\n\n handleChpCountChange(count: number) {\n // add the definition for chp to included systems the amount of times the chp count is set\n const definition = this.DEFINITIONS.chp;\n this.handleIncludedSystemsTypesSystem({\n system: 'chp',\n key: 'definition',\n data: Array(count).fill(definition),\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'chp',\n key: 'count',\n data: count,\n });\n\n // update count in energy visualization\n this.setEMSSystemCount({ system: 'chp', count });\n this.setEnergyViewSystemCount({ system: 'chp', count });\n this.$nextTick();\n this.$emit('reRender');\n }\n\n handleGeneratorOptionsEnabled(checked: boolean, init = false) {\n if (!checked) this.clearAll();\n else {\n if (!init) this.handleSelect(this.isSolarmax ? 'ac_pv' : 'generator');\n }\n this.setProducerOptionsEnabled(checked);\n this.$nextTick();\n this.$emit('reRender');\n }\n\n clearAll() {\n const allProducerSystems = ['generator', 'ac_pv', 'chp'];\n allProducerSystems.forEach((system) => {\n const systemHasDefinitions = system !== 'ac_pv';\n this.selectSystem(system, false, systemHasDefinitions);\n });\n }\n\n validate() {\n (this.$refs.form as any).validate();\n this.$emit('deyeProducerValidationStatus', { system: 'deyeProducer', status: this.valid });\n }\n\n isSystemSelected(system: string) {\n return this.selectedSystem === system;\n }\n\n async handleGeneratorPowerChange(power: string) {\n await this.handleIncludedSystemsTypesSystemDefinitionProps({\n systemName: 'generator',\n systemIndex: 0,\n prop: 'power',\n value: Number(power),\n });\n await this.$nextTick();\n this.validate();\n }\n\n get generatorsLimit() {\n return {\n min: 0,\n max: 1,\n minPower: 0,\n maxPower: 100000,\n };\n }\n\n get chpLimit() {\n return {\n min: 0,\n max: this.emsLimits.chp,\n };\n }\n\n created() {\n this.localGeneratorsOnGeneratorConnection = this.generatorsOnGeneratorConnection;\n this.localACPV = this.ACPV;\n this.localCHP = this.includedSystemsTypes.chp;\n\n const controllerMappingsCopy = this.wizardState.emsDevice.data.meta.controllerMappings;\n if (this.isSolarmax) {\n this.selectedSystem = 'ac_pv';\n } else {\n this.selectedSystem = getSelectedSystem(controllerMappingsCopy, ['generator', 'ac_pv', 'chp'], 'ac_pv');\n this.selectedSystem = this.producerOptionsEnabled ? getSelectedSystem(controllerMappingsCopy, ['generator', 'ac_pv', 'chp'], 'ac_pv') : '';\n }\n this.previousSystem = this.selectedSystem;\n\n this.optionsEnabled = (this.producerOptionsEnabled || (!this.isSolarmax && this.selectedSystem !== 'generator')) && this.selectedSystem !== '';\n this.handleGeneratorOptionsEnabled(this.optionsEnabled, true);\n }\n\n async mounted() {\n switch (this.selectedSystem) {\n case ('generator'):\n this.defineGenerators();\n if (this.wasInstallationWizardCompleted) {\n const value = this.measurements['prgEnergy.fbI.dwPowerOfGen'];\n this.generatorPower = typeof value === 'string' ? parseInt(value, 10) : value;\n }\n break;\n case ('chp'):\n this.defineCHP();\n break;\n case ('ac_pv'):\n this.setACPVSystemCount(1);\n this.setACPVSystemSelection(true);\n }\n\n await this.$nextTick();\n this.validate();\n }\n\n defineCHP() {\n this.localCHP.isSelected = true;\n this.setEMSSystemCount({\n system: 'chp',\n count: this.includedSystemsTypes.chp.definition.length ?? 1,\n });\n this.setEnergyViewSystemCount({\n system: 'chp',\n count: this.includedSystemsTypes.chp.definition.length ?? 1,\n });\n }\n\n defineGenerators() {\n if (this.localGeneratorsOnGeneratorConnection.definition.length > 0) {\n this.localGeneratorsOnGeneratorConnection.isSelected = true;\n this.generatorPower = this.localGeneratorsOnGeneratorConnection.definition[0].power;\n this.setEMSSystemCount({ system: 'generator', count: 1 });\n this.setEnergyViewSystemCount({ system: 'generator', count: 1 });\n } else {\n this.localGeneratorsOnGeneratorConnection = this.includedSystemsTypes.generator;\n this.setEMSSystemCount({ system: 'generator', count: 1 });\n this.setEnergyViewSystemCount({ system: 'generator', count: 1 });\n }\n }\n\n selectSystem(system: string, value: any, hasDefinitions = true) {\n if (system === '') return;\n let count = value ? 1 : 0;\n if (system === 'chp' && value && this.includedSystemsTypes.chp.definition.length !== 0) count = this.includedSystemsTypes.chp.definition.length;\n if (system !== 'ac_pv') {\n if (hasDefinitions) {\n this.handleIncludedSystemsTypesSystem({\n system: system as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: value ? [\n { ...this.DEFINITIONS[system] },\n ] : [],\n });\n }\n this.handleIncludedSystemsTypesSystem({\n system: system as keyof IIncludedSystemsTypes,\n key: 'isSelected',\n data: value,\n });\n this.handleIncludedSystemsTypesSystem({\n system: system as keyof IIncludedSystemsTypes,\n key: 'count',\n data: count,\n });\n this.setEMSSystemCount({ system, count });\n this.setEnergyViewSystemCount({ system, count });\n } else {\n this.setACPVSystemSelection(value);\n this.setACPVSystemCount(count);\n }\n }\n\n selectProducer() {\n const selectedSystemHasDefinitions = this.selectedSystem !== 'ac_pv';\n const previousSystemHasDefinitions = this.previousSystem !== 'ac_pv';\n this.selectSystem(this.selectedSystem, true, selectedSystemHasDefinitions);\n if (this.selectedSystem !== this.previousSystem) this.selectSystem(this.previousSystem, false, previousSystemHasDefinitions);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeyeProducerComponentSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeyeProducerComponentSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeyeProducerComponentSettings.vue?vue&type=template&id=79792490&\"\nimport script from \"./DeyeProducerComponentSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeyeProducerComponentSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport {\n availableExternalMeasurementDeyeTypes,\n availableExternalMeasurementTypes,\n BatteryType,\n deyeTypes,\n electricHeatingTypes,\n getChargeStationPower,\n getChargeStationTypeInformationBySystemType,\n getRawValueBySystemTypeElectricHeating,\n webastoChargeStationTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { getSelectedSystem } from '@/utils/installationWizardUtilsFunctions';\nimport _, { cloneDeep } from 'lodash';\nimport BatteryComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue';\nimport ElectricHeatingSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ElectricHeatingSettings.vue';\nimport ChargeStationComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/ChargeStationComponentSettings.vue';\nimport { ChargeStationType, IProject } from '@/types/project.types';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { convertBitToArray, convertDecimalNumberToBinary } from '@/utils/utilsFunctions';\nimport {\n shouldSendVariableForType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/mqttVariables';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { IDevice } from '@/types/devices.types';\nimport SystemComponent\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/components/SystemComponent.vue';\nimport {\n DEFINITIONS,\n Definitions,\n IHandleStatusChangeParams,\n IIncludedSystemsBigConsumerDefinition,\n IIncludedSystemsChargeStationDefinition,\n IIncludedSystemsElectricHeatingDefinition,\n IIncludedSystemsHeatingPumpConsumerDefinition,\n IIncludedSystemsHeatingPumpDefinition,\n IIncludedSystemsLoadSheddingDefinition,\n IIncludedSystemsTypes, IMQTTVariable,\n NavigationDirection,\n WizardPath,\n} from '@/types/wizards/installationWizard.types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport {\n emsLimitsByType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/wizardLimits';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport {\n chargingStationV2Feature,\n hybridVersionDate,\n legionellaProtectionDate, mennekesEnerchargeDate,\n newChargeStationLimitDate,\n plcVersionDate,\n tenantUpdateWagoCounters,\n} from '@/utils/versionManagementUtils';\n\nimport InverterComponentSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/InverterComponentSettings.vue';\nimport StringInverterComponentSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/StringInverterComponentSettings.vue';\nimport {\n CHECKS_DISABLED,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/developmentConfig';\nimport DeyeConsumerComponentSettings from './singleSystems/DeyeConsumerComponentSettings.vue';\nimport DeyeProducerComponentSettings from './singleSystems/DeyeProducerComponentSettings.vue';\nimport installationWizardVariables from '../../installationWizardVariables';\nimport {\n chargeStationMapTypes,\n defineSystemMap,\n heatingPumpMapTypes,\n IWizardComponentMap,\n} from '../../../loggerWizard/wizardSettings/systemTypes';\n\n@Component({\n computed: {\n WizardPath() {\n return WizardPath;\n },\n deyeTypes() {\n return deyeTypes;\n },\n },\n components: {\n StringInverterComponentSettings,\n InverterComponentSettings,\n BaseChartWrapper,\n ModalWindow,\n SystemComponent,\n CircleSpinner,\n InfoTooltip,\n EnergyVisualisationPreview,\n WizardContentView,\n BatteryComponentsSettings,\n ElectricHeatingSettings,\n ChargeStationComponentsSettings,\n DeyeConsumerComponentSettings,\n DeyeProducerComponentSettings,\n },\n})\nexport default class ComponentsPage extends WizardComponent {\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Mutation('installationWizard/setEMSSystemCount') setEMSSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setEnergyViewSystemCount') setEnergyViewSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystem') handleIncludedSystemsTypesSystem!: (\n { system, key, data }: { system: keyof IIncludedSystemsTypes; key: string; data: any }\n ) => void;\n @Mutation('installationWizard/removeExternallyOccupiedPilotLine') removeExternallyOccupiedPilotLine!: (data: number) => void;\n @Mutation('installationWizard/setExternallyOccupiedPilotLine') setExternallyUsedPilotLine!: (data: number) => void;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/producerOptionsEnabled') producerOptionsEnabled!: boolean;\n @Getter('installationWizard/consumerOptionsEnabled') consumerOptionsEnabled!: boolean;\n @Getter('installationWizard/pilotSystemCount') pilotSystemCount!: number;\n @Getter('installationWizard/externalVisualisation') externalVisualisation!: {\n isSelected: boolean;\n count: number;\n definition: [];\n };\n @Getter('installationWizard/emsLimits') emsLimits!: Record;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('installationWizard/isHybrid') isHybrid!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('installationWizard/connectedLines') connectedLines!: number[];\n @Getter('installationWizard/wasComponentsPageDone') wasComponentsPageDone!: boolean;\n @Getter('installationWizard/getDisablePilotDevices') getDisablePilotDevices!: boolean;\n @Mutation('installationWizard/setPilotSystemCount') setPilotSystemCount!: (payload: number) => void;\n @Mutation('installationWizard/setExternalVisualisation') setExternalVisualisation!: (payload: any) => void;\n @Mutation('installationWizard/setIsPilotPageNotDone') setIsPilotPageNotDone!: () => void;\n @Mutation('installationWizard/setIsPilotPageDone') setIsPilotPageDone!: (payload: {}) => void;\n @Mutation('installationWizard/setWasComponentsPageDone') setWasComponentsPageDone!: () => void;\n @Getter('installationWizard/navigationDirection') navigationDirection!: NavigationDirection;\n\n // Confirmation that is needed for Weco Systems\n confirmed = false;\n doesHover = false;\n valid = false;\n\n // process started for charge station and heating pump\n chargeStationProcessWasStarted = false;\n heatingPumpProcessWasStarted = false;\n intervalCS: any = null;\n intervalHP: any = null;\n\n rerenderKey = 0;\n // is currently a fixed value because there can only be one pilot system\n emptyPilotLines = 4;\n systems: any = {};\n // variables are needed to use those types inside template\n localExternalVisualisaton: any = {\n isSelected: false,\n count: 0,\n };\n validationStatusSingleSystems = {\n battery: false,\n charge_station: true,\n electric_heating: true,\n deyeProducer: true,\n deyeConsumer: true,\n }\n chargeStationTypeCurrentIndex = {\n webasto: 0,\n weidmüller: 2,\n };\n connectedLinesConfig: any = {\n 1: { device: { text: '', value: '' }, name: '', disabled: false },\n 2: { device: { text: '', value: '' }, name: '', disabled: false },\n 3: { device: { text: '', value: '' }, name: '', disabled: false },\n 4: { device: { text: '', value: '' }, name: '', disabled: false },\n };\n bitBySystem: { [key: string]: { [key: string]: boolean } } = {\n 'charge_station': {\n setWebastoNext: false,\n setWebastoUnite: false,\n setWeidmüller: false,\n setSchneider: false,\n },\n 'heating_pump': {\n setLambda: false,\n setSoltop: false,\n },\n };\n\n dataLoaded = false;\n\n /**\n * returns the ems device based on the selected systems inside the wizard\n * for pv systems it will also add the ac pv system if its selected and add it to the pv count\n */\n get emsDeviceForPreview() {\n const deviceObject = cloneDeep(this.emsDevice);\n const isAcPV = this.wizardState.ACPV.isSelected;\n // if ac pv is selected we add one pv to show correct count in preview\n deviceObject.data.meta.controllerMappings.pv.count = isAcPV ?\n deviceObject.data.meta.controllerMappings.pv.count + 1 :\n deviceObject.data.meta.controllerMappings.pv.count;\n\n if (this.isHybridVersion) {\n const { stringInverterCount } = this.wizardState;\n // add string inverters to preview if some are selected\n deviceObject.data.meta.controllerMappings.pv.count = this.includedSystemsTypes.pv.count + stringInverterCount;\n\n if (isAcPV) {\n deviceObject.data.meta.controllerMappings.pv.count += 1; // add 1 if ac pv is selected\n }\n const amountOfInverters = this.wizardState.inverterCount;\n // if we have multiple inverters we need to multiply the amount of batteries to show the correct amount in preview\n if (this.wizardState.isHybrid && amountOfInverters > 1) {\n const batteryIncludesSystems = this.includedSystemsTypes.battery;\n deviceObject.data.meta.controllerMappings.battery.count = batteryIncludesSystems.count * amountOfInverters;\n }\n }\n\n // if project meta contains logger information we add pv to show the correct count in preview\n if (this.project.meta?.loggerInformation) {\n deviceObject.data.meta.controllerMappings.pv.count += this.project.meta.loggerInformation.length;\n }\n return deviceObject;\n }\n\n get includedSystemsTypes() {\n return this.wizardState.includedSystemsTypes;\n }\n\n get projectBatteryType() {\n // contains type of system that's selected inside the project settings\n const { batterySystemType } = this.project?.meta?.controller;\n return batterySystemType === undefined ? '' : batterySystemType;\n }\n\n get showChargeStationV2Feature() {\n return plcVersionDate(this.project).getTime() > chargingStationV2Feature.getTime();\n }\n\n get hasLynusInverter() {\n return this.project.meta.hasLynusInverter ?? true;\n }\n\n get hasOnlyStringInverter() {\n return (this.wizardState.wizardPath === WizardPath.STRING_INVERTER) || (this.wizardState.wizardPath === WizardPath.TENANT_STRING_INVERTER);\n }\n\n handleRerender() {\n this.rerenderKey++;\n }\n\n countDummies(system: string) {\n return Object.values(this.emsDevice.data.meta.controllerMappings[system].components).filter((element: any) => element.external_energy_measurement && element.error === undefined).length;\n }\n\n countComponentsFromTenantWizard(system: string) {\n return Object.values(this.emsDevice.data.meta.controllerMappings[system].components).filter((element: any) => element.power.includes('prgEM.lrPower_E_')).length;\n }\n\n filterDummies(system: string) {\n const definitionArray = this.includedSystemsTypes[system as keyof IIncludedSystemsTypes].definition;\n return definitionArray.filter((element: any) => !element.external_energy_measurement);\n }\n\n handleInverterQuantityChange(event: any, stringInverter: boolean) {\n if (stringInverter) {\n this.wizardState.stringInverterCount = event;\n } else {\n this.wizardState.inverterCount = event;\n }\n this.wizardState.serialNumberCheckDone = false;\n }\n\n handleStatusChange(value: IHandleStatusChangeParams) {\n this.rerenderKey++;\n this.validationStatusSingleSystems[value.system] = value.status;\n this.validate();\n }\n\n filterConnectWithLine(systemType: any[]): any[] {\n return systemType.map((element: any) => {\n return typeof element.connectWithLine !== 'string' ? element.connectWithLine : undefined;\n }).filter(element => element !== undefined);\n }\n\n // returns count of how many pilot lines are allready occupied\n get countHasLineConnected() {\n if (this.wizardState !== undefined) {\n const chargeStationArray = this.includedSystemsTypes.charge_station.definition.filter((def: any) => {\n const info = getChargeStationTypeInformationBySystemType(def.systemType);\n return def?.connectWithLine !== '' && info !== undefined && info?.isExternal === true && def?.connectWithLine !== 'noLine';\n });\n const heatingPumpArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.heating_pump.definition);\n const bigConsumerArray: any[] = this.filterConnectWithLine(this.includedSystemsTypes.big_consumer.definition);\n const array = [heatingPumpArray, chargeStationArray, bigConsumerArray].flat();\n return array.length;\n } else {\n return 0;\n }\n }\n\n get externalVisualisatonLimit() {\n return {\n min: 0,\n max: this.emptyPilotLines - this.countHasLineConnected,\n };\n }\n\n /**\n * Handles checkbox click events for pilot checkbox only\n */\n handleCheckboxPilot(event: boolean) {\n if (event) {\n this.localExternalVisualisaton.count = 1;\n this.localExternalVisualisaton.isSelected = true;\n } else {\n this.removeExternalVisualisation(4);\n this.localExternalVisualisaton.count = 0;\n this.localExternalVisualisaton.isSelected = false;\n }\n }\n\n handleAcpvChange(event: boolean) {\n if (event) {\n this.wizardState.acpvOnLoadAvailable = false;\n }\n }\n\n handleAcpvOnLoadChange(event: boolean) {\n if (event) {\n this.wizardState.acpvAvailable = false;\n }\n }\n\n /**\n * Handles quantity change for pilot system\n */\n handleSelectPilot(newCount: number) {\n const oldCount = this.localExternalVisualisaton.count;\n this.localExternalVisualisaton.count = newCount;\n this.localExternalVisualisaton.isSelected = !!newCount;\n this.updatePilotCount(oldCount);\n }\n\n updatePilotCount(oldCount: number) {\n if (oldCount > this.localExternalVisualisaton.count) {\n const difference = oldCount - this.localExternalVisualisaton.count;\n this.removeExternalVisualisation(difference);\n }\n this.setExternalVisualisation(this.localExternalVisualisaton);\n }\n\n removeExternalVisualisation(difference: number) {\n for (let i = 0; i < difference; i++) {\n const lastItem = Object.entries(this.connectedLinesConfig).filter((element: any) => element[1].name !== '' && !element[1].disabled).pop();\n if (!lastItem) return;\n this.connectedLinesConfig[lastItem[0]] = {\n device: { text: '', value: '' },\n name: '',\n disabled: false,\n };\n this.removeExternallyOccupiedPilotLine(parseInt(lastItem[0], 10));\n }\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0) {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, 'componentsPage', value, systemIndex));\n }\n\n getFaqLink(batteryType: string) {\n if (batteryType === deyeTypes.WecoBatteryStack) {\n return 'https://lynus.zammad.com/help/de-de/163-weco-batterien-stack';\n }\n return 'https://lynus.zammad.com/help/de-de/164-weco-batterie-slim';\n }\n\n async checkConfiguration(processStarted: boolean, processVariableNotOk: string) {\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n const processSucceded = this.measurements[processVariableNotOk] === 0;\n return processSucceded && processStarted;\n }\n\n noSystemMapped(systemType: string) {\n return this.includedSystemsTypes[systemType as keyof IIncludedSystemsTypes].definition.length === 0;\n }\n\n allBitsIdentical(systemType: string) {\n return Object.values(this.bitBySystem[systemType]).every((element: boolean) => element);\n }\n\n // After everything has been sent we check if configuration has been successful\n async checkProcessStatus() {\n if (CHECKS_DISABLED) return true;\n if (this.allBitsIdentical('charge_station')) this.chargeStationProcessWasStarted = true;\n if (this.allBitsIdentical('heating_pump')) this.heatingPumpProcessWasStarted = true;\n\n const chargeStationProcessSucceeded = await this.checkConfiguration(this.chargeStationProcessWasStarted, 'prgCS.bConfigIsNotOK');\n const heatingPumpProcessSucceeded = await this.checkConfiguration(this.heatingPumpProcessWasStarted, 'prgHP.bConfigIsNotOK');\n if ((chargeStationProcessSucceeded || this.noSystemMapped('charge_station')) && (heatingPumpProcessSucceeded || this.noSystemMapped('heating_pump'))) {\n return true;\n }\n\n // clear intervals\n clearInterval(this.intervalCS);\n clearInterval(this.intervalHP);\n\n // Define what system failed or if both failed\n if ((!chargeStationProcessSucceeded && !this.noSystemMapped('charge_station')) && (!heatingPumpProcessSucceeded && !this.noSystemMapped('heating_pump'))) {\n this.processFailedMessage = this.$t('installationWizard.configurationFailedMessage').toString();\n } else if (!chargeStationProcessSucceeded) {\n this.processFailedMessage = this.$t('installationWizard.configurationFailedMessageChargeStation').toString();\n } else {\n this.processFailedMessage = this.$t('installationWizard.configurationFailedMessageHeatingPump').toString();\n }\n return false;\n }\n\n // function that checks in a one second interval if the process has been started\n checkIfProcessGetsStarted() {\n // reset variables when prepareVariablesToSend is called again\n this.chargeStationProcessWasStarted = false;\n this.heatingPumpProcessWasStarted = false;\n\n // Separate intervals for each process\n if (this.includedSystems.charge_station.definition.length) {\n this.intervalCS = setInterval(async () => {\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n if (this.measurements['prgCS.bConfigIsInProgress'] === 1) this.chargeStationProcessWasStarted = true;\n if (this.chargeStationProcessWasStarted) {\n clearInterval(this.intervalCS);\n }\n }, 1000);\n }\n if (this.includedSystems.heating_pump.definition.length) {\n this.intervalHP = setInterval(async () => {\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n if (this.measurements['prgHP.bConfigIsInProgress'] === 1) this.heatingPumpProcessWasStarted = true;\n if (this.heatingPumpProcessWasStarted) {\n clearInterval(this.intervalHP);\n }\n }, 1000);\n }\n }\n\n async prepareStringInverterOnlyVariablesToSend() {\n this.prepareStringInverterVariables();\n this.setVariablesToSend('enableStringInverter', this.wizardState.stringInverterCount > 0 ? 1 : 0);\n\n this.disableAllSystemsStringInverterOnly();\n\n // Last variable that loads data for some seconds\n const lastVariable = installationWizardVariables('lastVariable', 'componentsPage');\n this.variablesToSend.set('lastVaribale0', lastVariable);\n }\n\n async prepareVariablesToSend() {\n // disable EMS\n // this is needed so ems will detect that systems have been added or removed\n this.setVariablesToSend('disableEMS');\n\n if (this.hasOnlyStringInverter) {\n await this.prepareStringInverterOnlyVariablesToSend();\n return;\n }\n\n if (!this.isSolarmax) this.prepareBatteryVariables();\n this.prepareElectricHeatingVariables();\n if (this.isNewChargeStationPlcVersion) this.checkIfProcessGetsStarted();\n this.prepareChargeStationVariables();\n if (this.isNewChargeStationPlcVersion) this.prepareHeatingPumpVariables();\n if (this.isDeye || this.isSolarmax) {\n this.prepareHeatingPumpConsumerVariables();\n this.prepareBigConsumerVariables();\n this.prepareLoadSheddingVariables();\n }\n if (this.isDeye || this.isSolarmax) {\n this.prepareProducerVariables();\n }\n const localProject: IProject = this.prepareAdditionalEnergyVariables();\n\n await this.updateProject(localProject);\n }\n\n prepareStringInverterVariables() {\n this.setVariablesToSend('stringInverterCount', this.wizardState.stringInverterCount);\n }\n\n prepareBatteryVariables() {\n const { inverterPower } = this.includedSystemsTypes.battery.definition.length === 0 ? { inverterPower: '0 kW' } : this.includedSystemsTypes.battery.definition[0];\n const power = parseFloat(inverterPower.replace(/[^\\d.]+/g, ''));\n if (shouldSendVariableForType(this.projectBatteryType as BatteryType, 'prgEnergy.fbI.rMaxPowerInverter') || (this.isDeye && power === 0)) {\n this.setVariablesToSend('maxPowerInverter', power * 1000);\n }\n\n if (!this.isDeye && !this.isHybrid && !this.isSolarmax || !this.isHybridVersion) {\n // for azzurro systems we can only have one battery so we only need to set the capacity once\n // also if the date is too old we can also only set one battery\n const batteryCapacity = this.includedSystemsTypes.battery.definition.length === 0 ? '0' : this.includedSystemsTypes.battery.definition[0].batteryCapacity.replace(/[^\\d.]+/g, '');\n this.setVariablesToSend('batteryCapacity', batteryCapacity, 0);\n return;\n }\n const batteryCapacity = this.includedSystemsTypes.battery.definition.length === 0 ? 0 : this.includedSystemsTypes.battery.definition[0].batteryCapacity.replace(/[^\\d.]+/g, '');\n // for the amount of batteries selected multiplied by the amount of inverters selected use the value of the first battery to set the capacity of the batteries\n for (let i = 0; i < this.wizardState.inverterCount * this.includedSystemsTypes.battery.definition.length; i++) {\n this.setVariablesToSend('batteryCapacity', batteryCapacity, i);\n }\n\n // and disable the rest, max index is the amount of batteries * inverters\n for (let i = this.wizardState.inverterCount * this.includedSystemsTypes.battery.definition.length; i < 10; i++) {\n this.setVariablesToSend('batteryCapacity', '0', i);\n }\n\n if (!this.isDeye) {\n this.setVariablesToSend('batteryInput', 0, 0);\n this.setVariablesToSend('oneBatteryInput', 0, 0);\n }\n }\n\n prepareElectricHeatingVariables() {\n const maximumElectricHeatingIndices = Array.from(\n {\n length:\n emsLimitsByType(this.project.meta.controller.batterySystemType, this.project).electric_heating || 4,\n },\n (_, i) => i + 1,\n );\n\n // electric heating part\n this.includedSystemsTypes.electric_heating.definition.forEach((value: IIncludedSystemsElectricHeatingDefinition, index: number) => {\n this.setVariablesToSend('electricHeatingPower', getRawValueBySystemTypeElectricHeating(value.systemType), index);\n // Splice the array to get only non-selected systems\n maximumElectricHeatingIndices.splice(maximumElectricHeatingIndices.indexOf(index + 1), 1);\n });\n\n // disable all electric heating elements that are not used\n maximumElectricHeatingIndices.forEach((index) => {\n const variableToSend = `prgEHE.fbEHE${index}.bEnable`;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: 0,\n feedbackVariable: `prgEHE.fbEHE${index}.stDataEHE.bEnabled`,\n isBoolean: true,\n });\n const { created_at }: any = this.project!.created_at;\n if ((this.isDeye || this.isSolarmax) && (new Date(created_at).getTime() > legionellaProtectionDate.getTime())) {\n this.setVariablesToSend('disableLegionellaProtection', 0, index);\n }\n });\n }\n\n prepareOutdatedChargeStationVariables() {\n this.chargeStationTypeCurrentIndex = {\n webasto: 0,\n weidmüller: 2,\n };\n const maximumChargeStationIndices = Array.from({ length: emsLimitsByType(this.project.meta.controller.batterySystemType, this.project).charge_station || 4 }, (_, i) => i + 1);\n // charge station part\n this.includedSystemsTypes.charge_station.definition.forEach((chargeStation: IIncludedSystemsChargeStationDefinition, index: number) => {\n const chargeStationPower = getChargeStationPower(chargeStation.systemType);\n const chargeStationInformations = getChargeStationTypeInformationBySystemType(chargeStation.systemType);\n let indexCurrentChargeStation = 0;\n\n switch (chargeStationInformations.type) {\n case 'Webasto': {\n indexCurrentChargeStation = this.chargeStationTypeCurrentIndex.webasto + 1;\n this.setVariablesToSend('chargeStationPower', chargeStationPower, indexCurrentChargeStation);\n this.chargeStationTypeCurrentIndex.webasto++;\n\n if (this.showChargeStationV2Feature) {\n // send webastoType\n this.setVariablesToSend('webastoType', chargeStation.webastoType, index);\n }\n break;\n }\n case 'Weidmüller': {\n indexCurrentChargeStation = this.chargeStationTypeCurrentIndex.weidmüller + 1;\n this.setVariablesToSend('chargeStationPower', chargeStationPower, indexCurrentChargeStation);\n this.chargeStationTypeCurrentIndex.weidmüller++;\n\n if (this.showChargeStationV2Feature) {\n // set webastoType to default value\n this.setVariablesToSend('webastoType', 0, index);\n }\n break;\n }\n }\n // Splice the array to get only non-selected systems\n maximumChargeStationIndices.splice(maximumChargeStationIndices.indexOf(indexCurrentChargeStation), 1);\n\n // only send those states for the first devices because dummy charge stations can not be controlled\n if (index < this.emsLimits.charge_station) {\n if (!chargeStation.systemType.includes('Enercharge')) this.setVariablesToSend('useNotFreeCharge', chargeStation.noFreeLoading ? 1 : 0, indexCurrentChargeStation);\n }\n });\n\n // Disable all not used charge stations\n maximumChargeStationIndices.forEach((ind: number) => {\n const variableToSend = `prgCS.fbCS${ind}.bEnable`;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: 0,\n feedbackVariable: `prgCS.fbCS${ind}.stDataECS.bEnabled`,\n isBoolean: true,\n });\n });\n }\n\n configureSystemVariables(systemMap: IWizardComponentMap, system: string) {\n const activeIndices: number[] = [];\n const paramsToSendToChargeStation: any[] = [];\n const activeDoubleChargePointIndices: number[] = [];\n Object.entries(systemMap).forEach(([key, value]) => {\n const activeSystemSpecificIndices: number[] = [];\n const isMennekesDoubleChargePoint = ['Amedio', 'AmtronTC'].includes(key);\n value.forEach((element: number | number[], index: number) => {\n const ind = system === 'heating_pump' ? index + 1 : index;\n if (element) {\n if (isMennekesDoubleChargePoint) activeDoubleChargePointIndices.push(index + 1);\n else activeSystemSpecificIndices.push(index + 1);\n activeIndices.push(ind);\n } else return;\n const component = this.includedSystemsTypes[system as keyof IIncludedSystemsTypes].definition[index];\n if (system === 'charge_station') {\n paramsToSendToChargeStation.push({ index: ind, element, component });\n }\n });\n\n const calculatedBit = activeSystemSpecificIndices.length === 0 ? '0' : this.convertArrayToBit(activeSystemSpecificIndices);\n\n if (!isMennekesDoubleChargePoint) {\n const bitAsDecimal = parseInt(calculatedBit, 2);\n const isMennekessChargeStation = key === 'Amedio' || key === 'AmtronTC' || key === 'Amtron';\n this.checkBitIdentical(system, key, bitAsDecimal, isMennekessChargeStation);\n this.setSystemActive(key, bitAsDecimal);\n }\n });\n\n if (this.isMennekesEnerchargeVersion && system === 'charge_station') {\n const calculatedBit = activeDoubleChargePointIndices.length === 0 ? '0' : this.convertArrayToBit(activeDoubleChargePointIndices);\n const bitAsDecimal = parseInt(calculatedBit, 2);\n this.checkBitIdentical(system, 'Amedio', bitAsDecimal, true);\n this.setSystemActive('Amedio', bitAsDecimal);\n }\n\n paramsToSendToChargeStation.forEach((element) => {\n this.sendChargeStationVariables(element.index, element.element, element.component.noFreeLoading);\n });\n\n // disable inactive indices\n const typeLimit = emsLimitsByType(this.project.meta.controller.batterySystemType, this.project)[system];\n for (let i = activeIndices.length; i < typeLimit; i++) {\n const enableVariable = system === 'heating_pump' ? 'heatingPumpEnable' : 'chargeStationEnable';\n const ind = system === 'heating_pump' ? i + 1 : i;\n this.setVariablesToSend(enableVariable, 0, ind);\n }\n }\n\n async checkBitIdentical(system: string, key: string, bit: number, isMennekessChargeStation: boolean) {\n const systemKey = key.split(' ')[0];\n let variable: IMQTTVariable;\n if (!isMennekessChargeStation) {\n variable = installationWizardVariables(`set${systemKey}`, 'componentsPage', bit);\n } else {\n if (systemKey === 'Amedio' || systemKey === 'AmtronTC') {\n variable = installationWizardVariables('setMennekesDoubleChargePoint', 'componentsPage', bit);\n const currentBit = this.measurements[variable.variable];\n if (currentBit === bit) {\n this.bitBySystem[system].setAmtronTC = true;\n this.bitBySystem[system].setAmedio = true;\n }\n return;\n } else {\n const variableSingleChargePoint = installationWizardVariables('setMennekesSingleChargePoint', 'componentsPage', bit);\n const currentBitSingleChargePoint = this.measurements[variableSingleChargePoint.variable];\n if (currentBitSingleChargePoint === bit) this.bitBySystem[system].setAmtron = true;\n return;\n }\n }\n const currentBit = this.measurements[variable.variable];\n if (currentBit === bit) this.bitBySystem[system][`set${systemKey}`] = true;\n }\n\n setSystemActive(systemType: string, bit: number) {\n let system = systemType.split(' ')[0];\n const isMennekesDoubleChargePoint = ['Amedio', 'AmtronTC'].includes(system);\n const isMennekesSingleChargePoint = system === 'Amtron';\n if (isMennekesDoubleChargePoint) system = 'MennekesDoubleChargePoint';\n if (isMennekesSingleChargePoint) system = 'MennekesSingleChargePoint';\n this.setVariablesToSend(`set${system}`, bit);\n }\n\n convertArrayToBit(array: number[]) {\n // Find the maximum number in the array to determine the size of the bit string\n const maxNum = Math.max(...array);\n // Create a bit string filled with 0s of length maxNum\n const bitString = Array(maxNum).fill('0');\n\n // Iterate through the array and set the corresponding bit position to 1\n array.forEach(num => {\n bitString[maxNum - num] = '1';\n });\n\n // Join the bit string array back into a single string\n return bitString.join('');\n }\n\n sendChargeStationVariables(systemIndex: number, power: number, freeCharge: boolean) {\n if (!this.includedSystemsTypes.charge_station.definition[systemIndex].systemType.includes('Enercharge')) {\n this.setVariablesToSend('chargeStationFreeCharge', freeCharge ? 1 : 0, systemIndex);\n }\n this.setVariablesToSend('chargeStationMaxPower', power, systemIndex);\n }\n\n prepareNewChargeStationVariables() {\n const chargeStationMap = defineSystemMap(chargeStationMapTypes, this.emsLimits.charge_station);\n let lastChargeStation: IIncludedSystemsChargeStationDefinition = this.includedSystemsTypes.charge_station.definition[0];\n this.includedSystemsTypes.charge_station.definition.forEach((chargeStation: IIncludedSystemsChargeStationDefinition, index: number) => {\n const currentChargeStation = chargeStation.occupiedByTwinPoint ? lastChargeStation : chargeStation;\n const chargeStationPower = getChargeStationPower(currentChargeStation.systemType);\n lastChargeStation = chargeStation;\n const chargeStationInformations = getChargeStationTypeInformationBySystemType(currentChargeStation.systemType);\n if (chargeStationInformations.type === 'Webasto') {\n const webastoType = webastoChargeStationTypes.find((element) => element.value === currentChargeStation.webastoType)?.name;\n const key = `${chargeStationInformations.type}${webastoType}`;\n chargeStationMap[key][index] = chargeStationPower;\n } else {\n chargeStationMap[chargeStationInformations.type][index] = chargeStationPower;\n }\n });\n this.configureSystemVariables(chargeStationMap, 'charge_station');\n }\n\n prepareChargeStationVariables() {\n if (this.isNewChargeStationPlcVersion) {\n this.prepareNewChargeStationVariables();\n return;\n }\n this.prepareOutdatedChargeStationVariables();\n }\n\n prepareHeatingPumpVariables() {\n // heating pump part\n const heatingPumpMap = defineSystemMap(heatingPumpMapTypes, this.emsLimits.heating_pump);\n this.includedSystemsTypes.heating_pump.definition.forEach((heatingPump: IIncludedSystemsHeatingPumpDefinition, index: number) => {\n heatingPumpMap[heatingPump.systemType][index] = [1, 1];\n });\n this.configureSystemVariables(heatingPumpMap, 'heating_pump');\n }\n\n prepareHeatingPumpConsumerVariables() {\n // heating pump part\n (this.includedSystems.heating_pump_consumer.definition.filter((value: IIncludedSystemsHeatingPumpConsumerDefinition) => !!value.powerSGR1)).forEach((value: IIncludedSystemsHeatingPumpConsumerDefinition, index: number) => {\n this.setVariablesToSend('heatingPump', value.powerSGR1, 0);\n this.setVariablesToSend('heatingPump', value.powerSGR2, 1);\n });\n }\n\n prepareBigConsumerVariables() {\n // big consumer part\n this.includedSystems.big_consumer.definition.forEach((value: IIncludedSystemsBigConsumerDefinition, index: number) => {\n this.setVariablesToSend('bigConsumerPower', value.power, index);\n });\n }\n\n prepareLoadSheddingVariables() {\n if (!this.consumerOptionsEnabled) {\n // if load shedding is enabled we need to manualy disable all big consumer and heating pump devices\n this.disableNotSelectedSystems();\n return;\n }\n // load shedding part\n this.includedSystems.load_shedding.definition.forEach((value: IIncludedSystemsLoadSheddingDefinition) => {\n this.setVariablesToSend('loadShedding', value.maxBatteryPower);\n this.setVariablesToSend('maxPowerDrop', value.powerConsumer1, 1);\n this.setVariablesToSend('maxPowerDrop', value.powerConsumer2, 2);\n\n // if load shedding is enabled we need to manualy disable all big consumer and heating pump devices\n this.disableNotSelectedSystems();\n });\n }\n\n disableNotSelectedSystems() {\n // if load shedding is enabled we need to manualy disable all big consumer and heating pump devices\n this.setVariablesToSend('disableBigConsumer', 0, 1);\n this.setVariablesToSend('disableBigConsumer', 0, 2);\n this.setVariablesToSend('disableHeatingPump');\n }\n\n prepareProducerVariables() {\n if (this.isSolarmax) {\n this.setVariablesToSend('isACPV', this.producerOptionsEnabled ? 1 : 0);\n return;\n }\n // generator part\n if (!this.producerOptionsEnabled) {\n this.setVariablesToSend('useAsGenerator');\n return;\n }\n if (this.includedSystems.generator.count > 0) {\n this.setVariablesToSend('powerOfGenerator', this.includedSystems.generator.definition[0].power);\n this.setVariablesToSend('useAsGenerator');\n } else if (this.includedSystems.chp.count > 0) {\n // CHP Part\n this.setVariablesToSend('numberOfBHKW', this.includedSystems.chp.definition.length);\n this.setVariablesToSend('allBHKWOnOneBattery', (this.includedSystems.chp.definition.length > this.wizardState.inverterCount) ? 1 : 0);\n this.setVariablesToSend('useAsBHKW');\n } else {\n // AC PV part\n this.setVariablesToSend('useAsACPV');\n }\n }\n\n prepareAdditionalEnergyVariables() {\n if (this.isSolarmax || (this.isDeye && this.isHybridVersion)) this.setVariablesToSend('numberOfInverters', this.wizardState.inverterCount);\n if (this.isDeye && this.isHybridVersion) this.prepareStringInverterVariables();\n\n if (!this.isSolarmax) {\n // additional energy values\n if (shouldSendVariableForType(this.projectBatteryType as BatteryType, 'prgEnergy.fbI.bPVPowerExt')) {\n this.setVariablesToSend('pvPowerExt');\n }\n\n this.setVariablesToSend('internalPV');\n }\n\n this.setVariablesToSend('parallelControl', this.wizardState.inverterCount > 1 ? 1 : 0);\n\n // Enable Battery\n if (this.hasLynusInverter) {\n this.setVariablesToSend('enableBattery', 1);\n }\n\n if (this.isDeye && this.isHybridVersion) this.setVariablesToSend('enableStringInverter', this.wizardState.stringInverterCount > 0 ? 1 : 0);\n\n // Last variable that loads data for some seconds\n const lastVariable = installationWizardVariables('lastVariable', 'componentsPage');\n this.variablesToSend.set('lastVariable0', lastVariable);\n\n if (!this.wasInstallationWizardCompleted) {\n this.setIsPilotPageNotDone();\n }\n this.setWasComponentsPageDone();\n this.setExternalVisualisation(this.localExternalVisualisaton);\n // Update pilot system count depending on if systems are connected\n this.setPilotSystemCount(this.connectedLines.length > 0 ? 1 : 0);\n\n // Write Deye Type to Project Meta if Deye is selected\n if (this.projectBatteryType === BatteryType.DEYE) {\n this.project.meta.controller.deyeType = this.includedSystemsTypes.battery.definition.length !== 0 ? this.includedSystems.battery.definition[0].batteryType as deyeTypes ?? null : null;\n }\n\n // update selected heating pumps in project meta\n const selectedHeatingPumps: string[] = [];\n this.includedSystemsTypes.heating_pump.definition.forEach((value: IIncludedSystemsHeatingPumpDefinition, index: number) => {\n selectedHeatingPumps.push(value.systemType);\n });\n\n // Save selection for producer and consumer options in project meta\n this.project.meta.wizardSettings = {\n isHybrid: this.wizardState.isHybrid,\n hybridSettings: {\n useBothBatteryInputs: this.wizardState.hybridSettings.useBothBatteryInputs,\n },\n pvPerInverter: this.project.meta.wizardSettings?.pvPerInverter ?? {},\n wizardPath: this.wizardState.wizardPath,\n consumerOptionsEnabled: this.consumerOptionsEnabled,\n producerOptionsEnabled: this.producerOptionsEnabled,\n selectedHeatingPumps,\n chargeStationSettings: this.project.meta.wizardSettings?.chargeStationSettings ?? [],\n };\n\n return JSON.parse(JSON.stringify(this.project));\n }\n\n validate() {\n // checks if every single component setting is valid based on the valid status from each component\n this.valid = Object.values(this.validationStatusSingleSystems).every((element: boolean) => element);\n }\n\n countStringInverters() {\n if (!this.isHybridVersion) {\n // for older versions the string inverter count is not relevant\n return 0;\n }\n // get count previously set for string inverters from measurements else set it to 0\n return this.measurements['prgACPV.byNumberOfInverters'] ?? 0;\n }\n\n initIncludedSystems() {\n // updates includedSystemsTypes object based on the current state of ems inside the project\n Object.keys(this.includedSystemsTypes).forEach((systemKey: string) => {\n const key = (systemKey as 'pv' | 'battery' | 'charge_station' | 'electric_heating' | 'heating_pump' | 'heating_pump_consumer' | 'load_shedding' | 'chp' | 'generator');\n const heatingPumpComponents = this.emsDevice.data.meta.controllerMappings.heating_pump.components;\n const onlyDummies = Object.values(heatingPumpComponents).every((element: any) => element.external_energy_measurement && element.error === undefined);\n const hasAdditionalHeatingPump = heatingPumpComponents.heating_pump1 && !onlyDummies && Object.values(heatingPumpComponents.heating_pump1.max_power)[0] === 'prgHP.fbHP.stSetupHP.rMaxPower1';\n if (key === 'heating_pump_consumer') {\n const count = hasAdditionalHeatingPump ? 1 : 0;\n const initialDefinitions = JSON.parse(JSON.stringify(\n Array(count).fill({ ...DEFINITIONS[key as keyof Definitions] }),\n ));\n // update included system types with count, isSelected and definitions\n this.selectSystem(count, key as keyof IIncludedSystemsTypes, hasAdditionalHeatingPump, initialDefinitions);\n return;\n }\n const mappedEmsDeviceMappings: any = {\n components: {},\n count: 0,\n };\n if (key === 'heating_pump' && hasAdditionalHeatingPump) {\n Object.entries(this.emsDevice.data.meta.controllerMappings[key].components).forEach(([componentKey, componentValue]) => {\n if ((componentValue as any).power.includes('prgHP.lrPowerHP_')) {\n mappedEmsDeviceMappings.components[componentKey] = { ...(componentValue as any) };\n mappedEmsDeviceMappings.count++;\n }\n });\n }\n const currentStateEMS = (key === 'heating_pump' && hasAdditionalHeatingPump) ? mappedEmsDeviceMappings : this.emsDevice.data.meta.controllerMappings[key];\n if (key === 'load_shedding') {\n return;\n }\n const numberOfDummies = this.countDummies(key);\n // get string inverter count from measurements\n const numberOfStringInverters = systemKey === 'pv' ? this.countStringInverters() : 0;\n const numberOfAcpv = systemKey === 'pv' ? Object.values(this.emsDevice.data.meta.controllerMappings[systemKey].components).filter((element: any) => element.power.includes('lrACPVPower')).length : 0;\n const numberOfFullSystems = Object.values(this.emsDevice.data.meta.controllerMappings[key].components ?? {}).length - numberOfDummies;\n const emsLimit = this.emsLimits[key] * (key === 'pv' ? this.wizardState.inverterCount : 1);\n let countForSystem = 0;\n if (systemKey === 'pv' && this.wasInstallationWizardCompleted && this.isHybridVersion) {\n // calculate remaining pv's that are not string inverters or acpv and set it as count\n const normalPVs = currentStateEMS.count - (this.isDeye ? numberOfStringInverters : 0) - numberOfAcpv;\n countForSystem = normalPVs + numberOfStringInverters + numberOfAcpv;\n } else {\n // default case\n countForSystem = (currentStateEMS.count >= emsLimit ? emsLimit : currentStateEMS.count);\n }\n\n if (numberOfDummies > 0) {\n if (numberOfFullSystems !== (countForSystem + ((key === 'heating_pump' && hasAdditionalHeatingPump) ? 1 : 0))) {\n countForSystem -= numberOfDummies;\n }\n }\n countForSystem -= numberOfAcpv;\n countForSystem -= numberOfStringInverters;\n\n // if path does not have a battery we need to remove the full system again after all other pv types have been counted\n if (this.isNoBatteryPath && systemKey === 'pv') {\n countForSystem -= numberOfFullSystems;\n }\n if (systemKey === 'pv' && !this.wasInstallationWizardCompleted && (this.isDeye || this.isSolarmax)) {\n countForSystem = this.systems.pv.max;\n }\n\n if (this.wasInstallationWizardCompleted && this.hasLynusInverter && plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n // pv can contain additional components from tenant wizard if in the tenant hybrid system was selected\n // therefore we need to subtract the amount of components from the tenant wizard for the components page to work correctly\n if (systemKey === 'pv') {\n const amount = this.countComponentsFromTenantWizard(systemKey);\n countForSystem -= amount;\n }\n }\n\n if (countForSystem + ((key === 'heating_pump' && hasAdditionalHeatingPump) ? 1 : 0) < 0) return;\n // contains new array of device definitions\n let initialDefinitions = JSON.parse(JSON.stringify(\n Array(countForSystem).fill({ ...DEFINITIONS[systemKey as keyof Definitions] }),\n ));\n\n if (key === 'battery' && this.wizardState.inverterCount > 1 && this.isHybridVersion) {\n const customLimit = this.emsLimits.battery * this.wizardState.inverterCount;\n countForSystem = (currentStateEMS.count >= customLimit ? customLimit : currentStateEMS.count); // get overall count of batteries\n countForSystem /= this.wizardState.inverterCount; // set systemcount per inverter\n initialDefinitions = initialDefinitions.slice(0, countForSystem);\n }\n\n // update included system types with count, isSelected and definitions\n this.selectSystem(countForSystem, systemKey as keyof IIncludedSystemsTypes, countForSystem > 0, initialDefinitions);\n });\n\n // will set the correct Consumer and Producer for Deye Systems\n if (this.isDeye || this.isSolarmax) {\n this.defineProducerAndConsumer();\n\n if (this.isHybridVersion && !this.isNoBatteryPath) {\n this.definePvPerInverter();\n }\n }\n }\n\n definePvPerInverter() {\n const localProject = _.cloneDeep(this.project);\n const pvPerInverter = localProject.meta.wizardSettings?.pvPerInverter;\n const definitionLength = this.wizardState.includedSystemsTypes.pv.definition.length;\n if (pvPerInverter) {\n // pvPerInverter is an object with the key as the system type and the value as the amount of pv per inverter\n // for the amount per inverter we need to add the inverter number to the pv.inverter property\n let j = 0;\n Object.entries(pvPerInverter).forEach(([inverterIndexString, pvPerInverterValue]) => {\n for (let i = 0; i < pvPerInverterValue; i++) {\n if (j >= definitionLength) break;\n this.wizardState.includedSystemsTypes.pv.definition[j].inverter = parseInt(inverterIndexString, 10);\n j++;\n }\n });\n } else {\n this.wizardState.includedSystemsTypes.pv.definition = [{ inverter: 0 }];\n }\n }\n\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.wizardState.wizardPath);\n }\n\n defineProducerAndConsumer() {\n const allProducers = ['ac_pv', 'chp', 'generator'];\n const selectedProducer = this.isNoBatteryPath ? 'generator' : getSelectedSystem(this.emsDevice.data.meta.controllerMappings, allProducers, 'ac_pv');\n if (selectedProducer !== 'ac_pv' && !this.isNoBatteryPath) {\n let count = 1;\n if (selectedProducer === 'chp') {\n count = this.includedSystemsTypes.chp.definition.length;\n if (count > 0) this.selectSystem(count, selectedProducer, true);\n this.wizardState.producerOptionsEnabled = !!count;\n } else {\n this.selectSystem(count, selectedProducer, true);\n }\n }\n if (this.wasInstallationWizardCompleted) {\n this.getDeyeConsumerInformation();\n }\n }\n\n selectSystem(count: number, selectedSystem: string, select = true, initialDefinitions?: any) {\n this.handleIncludedSystemsTypesSystem({\n system: selectedSystem as keyof IIncludedSystemsTypes,\n key: 'count',\n data: count,\n });\n this.handleIncludedSystemsTypesSystem({\n system: selectedSystem as keyof IIncludedSystemsTypes,\n key: 'isSelected',\n data: select,\n });\n this.handleIncludedSystemsTypesSystem({\n system: selectedSystem as keyof IIncludedSystemsTypes,\n key: 'definition',\n data: initialDefinitions ?? Array.from({ length: count }, (_, index) => index + 1).map((index) => ({ ...DEFINITIONS[selectedSystem as keyof Definitions] })),\n });\n }\n\n defineBatterySystem() {\n // contains type of system thats selected inside the project settings\n const { batterySystemType, deyeType } = this.project.meta.controller;\n DEFINITIONS.battery.systemType = batterySystemType;\n\n // Load battery system type from project meta\n if (this.wasInstallationWizardCompleted) {\n if (deyeType) {\n DEFINITIONS.battery.batteryType = deyeType;\n }\n // Get Capacity\n const capacity = this.measurements['prgEnergy.lrMaxCapacityBattery1'];\n DEFINITIONS.battery.batteryCapacity = `${capacity} kWh`;\n\n // Get Inverter Power\n const inverterPower = this.measurements['prgEnergy.fbI.rMaxPowerInverter'];\n DEFINITIONS.battery.inverterPower = `${inverterPower} kW`;\n }\n }\n\n defineElectricHeatingElements() {\n // Get Heating Element by sent MQTT Value\n this.includedSystems.electric_heating.definition.forEach((element: IIncludedSystemsElectricHeatingDefinition, index: number) => {\n const heatingElement = this.measurements[`prgEHE.fbEHE${index + 1}.stSetupEHE.rMaxPower1`];\n element.systemType = electricHeatingTypes.find((type: any) => type.rawValue === heatingElement)?.name ?? '';\n element.title = (this.emsDevice.data.meta.controllerMappings.electric_heating.components[`electric_heating${index + 1}`] as any).title ?? element.systemType + (index + 1);\n });\n }\n\n defineHeatingPumpElements() {\n const systemTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.heating_pump').toString();\n this.includedSystems.heating_pump_consumer.definition.forEach((element: IIncludedSystemsHeatingPumpConsumerDefinition, index: number) => {\n element.title = (Object.values(this.emsDevice.data.meta.controllerMappings.heating_pump.components).filter((value) => {\n return !(value as any).power.includes('prgHP.lrPowerHP_');\n })[index] as any)?.title ?? `${systemTranslation} (SG Ready) ${index + 1}`;\n });\n // Get Heating Pump by sent MQTT Value\n this.includedSystems.heating_pump.definition.forEach((element: IIncludedSystemsHeatingPumpDefinition, index: number) => {\n element.systemType = this.project.meta.wizardSettings?.selectedHeatingPumps[index] ?? '';\n element.title = (Object.values(this.emsDevice.data.meta.controllerMappings.heating_pump.components).filter((value) => {\n return (value as any).power.includes('prgHP.lrPowerHP_');\n })[index] as any)?.title ?? `${element.systemType} ${index + 1}`;\n });\n }\n\n // gets information on what deye consumer is inside the device object and sets the variable values for the component\n getDeyeConsumerInformation() {\n const allConsumers = ['heating_pump', 'big_consumer', 'load_shedding'];\n const selectedConsumer = getSelectedSystem(this.emsDevice.data.meta.controllerMappings, allConsumers, 'load_shedding');\n\n // Count actual consumers\n let count = this.emsDevice.data.meta.controllerMappings[selectedConsumer]?.count ?? 1;\n const key = selectedConsumer === 'heating_pump' ? 'heating_pump_consumer' : selectedConsumer;\n if (this.wasInstallationWizardCompleted && selectedConsumer !== 'load_shedding') {\n count = this.filterDummies(key as keyof IIncludedSystemsTypes).length;\n }\n\n // created definitions for selected consumer with empty values\n const initialConsumerDefinition = JSON.parse(JSON.stringify(\n Array(count).fill({ ...DEFINITIONS[key as keyof Definitions] }),\n ));\n\n // set values for the selected consumer and if its a external measurement it gets added to the connectedLines object\n switch (selectedConsumer) {\n case 'heating_pump': {\n this.updateConsumerDefinition(initialConsumerDefinition, 'heating_pump', (element: any, component: any, index: number, isExternal: boolean) => {\n element.powerSGR1 = this.measurements['prgHP.fbHP.stSetupHP.rMaxPower1'] ?? 0;\n element.powerSGR2 = this.measurements['prgHP.fbHP.stSetupHP.rMaxPower2'] ?? 0;\n });\n break;\n }\n case 'big_consumer': {\n this.updateConsumerDefinition(initialConsumerDefinition, 'big_consumer', (element: any, component: any, index: number, isExternal: boolean) => {\n element.power = this.measurements[`prgOBC.fbBC${index + 1}.stSetupOBC.rMaxPower`] ?? 0;\n });\n break;\n }\n case 'load_shedding': {\n initialConsumerDefinition.forEach((element: any) => {\n element.maxBatteryPower = this.measurements['prgIO.rPowerLDrop'] ?? 0;\n element.powerConsumer1 = this.measurements['prgIO.rMaxPowerLDrop_C1'] ?? 0;\n element.powerConsumer2 = this.measurements['prgIO.rMaxPowerLDrop_C2'] ?? 0;\n });\n break;\n }\n }\n\n this.selectSystem(count, key as keyof IIncludedSystemsTypes, true, initialConsumerDefinition);\n }\n\n updateConsumerDefinition(initialConsumerDefinition: any, consumerKey: string, mappingCallback: Function) {\n initialConsumerDefinition.forEach((element: any, index: number) => {\n const componentKey = `${consumerKey}${index + 1}`;\n const component = this.emsDevice.data.meta.controllerMappings[consumerKey].components[componentKey];\n const { title } = component;\n const powerMapping = component.power;\n const isExternal = powerMapping.includes('prgPilot');\n\n mappingCallback(element, component, index, isExternal);\n\n if (isExternal) {\n element.connectWithLine = parseInt(powerMapping.slice(-1), 10);\n this.connectedLinesConfig[element.connectWithLine] = this.createLineConfigEntry(title, consumerKey, true);\n }\n });\n }\n\n checkTypeIndexInMeasurements(index: number): [string, number] {\n let chargeStationSystemType = 'Webasto';\n let webastoType = 0;\n const setVariables = {\n WebastoNext: 'prgCS.wWebasto_Next',\n WebastoUnite: 'prgCS.wWebasto_Unite',\n Weidmüller: 'prgCS.wWeidmueller',\n Schneider: 'prgCS.wSchneider',\n MennekesSingleChargePoint: 'prgCS.wMennekes1CP',\n MennekesDoubleChargePoint: 'prgCS.wMennekes2CP',\n Enercharge: 'prgCS.wEnercharge',\n };\n const bitMap = {\n WebastoNext: this.measurements[setVariables.WebastoNext],\n WebastoUnite: this.measurements[setVariables.WebastoUnite],\n Weidmüller: this.measurements[setVariables.Weidmüller],\n Schneider: this.measurements[setVariables.Schneider],\n MennekesSingleChargePoint: this.measurements[setVariables.MennekesSingleChargePoint],\n MennekesDoubleChargePoint: this.measurements[setVariables.MennekesDoubleChargePoint] ?? this.convertArrayToBit([0, 1, 3, 4]),\n Enercharge: this.measurements[setVariables.Enercharge] ?? this.convertArrayToBit([2]),\n };\n const chargeStationPositionArray: any = {\n WebastoNext: convertBitToArray(convertDecimalNumberToBinary(bitMap.WebastoNext).toString()),\n WebastoUnite: convertBitToArray(convertDecimalNumberToBinary(bitMap.WebastoUnite).toString()),\n Weidmüller: convertBitToArray(convertDecimalNumberToBinary(bitMap.Weidmüller).toString()),\n Schneider: convertBitToArray(convertDecimalNumberToBinary(bitMap.Schneider).toString()),\n MennekesSingleChargePoint: convertBitToArray(convertDecimalNumberToBinary(bitMap.MennekesSingleChargePoint ?? 0).toString()),\n MennekesDoubleChargePoint: convertBitToArray(convertDecimalNumberToBinary(bitMap.MennekesDoubleChargePoint ?? 0).toString()),\n Enercharge: convertBitToArray(convertDecimalNumberToBinary(bitMap.Enercharge ?? 0).toString()),\n };\n Object.entries(setVariables).forEach(([key, value]) => {\n if (chargeStationPositionArray[key].includes(index + 1)) {\n chargeStationSystemType = key.includes('Webasto') ? 'Webasto' : key;\n if (key === 'WebastoNext') {\n webastoType = 0;\n }\n if (key === 'WebastoUnite') {\n webastoType = 1;\n }\n }\n });\n return [chargeStationSystemType, webastoType];\n }\n\n getChargeStationType(index: number, isPilot: boolean, componentsIndex: number): [string, boolean, string, number] {\n let external = false;\n let chargeStationSystemType = '';\n let additionalInformation = '';\n let webastoType = 0;\n\n if (this.isNewChargeStationPlcVersion) {\n [chargeStationSystemType, webastoType] = this.checkTypeIndexInMeasurements(componentsIndex);\n } else {\n if (index > 2) {\n chargeStationSystemType = 'Weidmüller';\n } else {\n chargeStationSystemType = 'Webasto';\n }\n }\n if (chargeStationSystemType === 'Weidmüller') {\n external = isPilot;\n additionalInformation = external ? 'external' : 'internal';\n }\n return [chargeStationSystemType, external, additionalInformation, webastoType];\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n get hasStringInverter() {\n const stringInverterPaths = [\n WizardPath.STRING_INVERTER,\n WizardPath.INSTALLATION,\n WizardPath.TENANT_STRING_INVERTER,\n WizardPath.INSTALLATION_TENANT,\n WizardPath.TENANT_INSTALLATION_NO_BATTERY,\n ];\n return stringInverterPaths.includes(this.wizardState.wizardPath);\n }\n\n loadVariablesForChargeStation(index: number) {\n const powerVariable = this.isNewChargeStationPlcVersion ? `prgCS.rMaxPower_${index}` : `prgCS.fbCS${index}.stSetupECS.rMaxPower`;\n const noFreeLoadingVariable = this.isNewChargeStationPlcVersion ? `prgCS.bUseNotFreeCharge_${index}` : `prgCS.bUseNotFreeCharge_${index}`;\n return {\n chargeStationPower: this.measurements[powerVariable],\n noFreeLoading: this.measurements[noFreeLoadingVariable],\n };\n }\n\n defineInverterCount() {\n if (this.hasLynusInverter) {\n if (!this.isHybrid) this.wizardState.inverterCount = 1;\n else {\n const valueFromMeasurements = this.measurements[installationWizardVariables('numberOfInverters', 'componentsPage').variable];\n this.wizardState.inverterCount = valueFromMeasurements === 0 ? 1 : valueFromMeasurements ?? 1;\n }\n } else {\n this.wizardState.inverterCount = 0;\n }\n }\n\n defineStringInverterCount() {\n this.wizardState.stringInverterCount = this.measurements[installationWizardVariables('stringInverterCount', 'componentsPage').variable] ?? 0;\n }\n\n get isMennekesEnerchargeVersion() {\n return plcVersionDate(this.project).getTime() > mennekesEnerchargeDate.getTime() && (this.isDeye || this.isSolarmax);\n }\n\n defineChargeStationElements() {\n const { components } = this.wizardState.emsDevice.data.meta.controllerMappings.charge_station;\n let occupyNextChargeStation = false;\n Object.entries(components).forEach(([key, value]: [string, any], index) => {\n const componentDefinition = this.includedSystemsTypes.charge_station.definition[index];\n\n if (!componentDefinition) return;\n if (!value.error) return;\n\n const { title } = components[`charge_station${index + 1}`];\n const chargeStationIndex = parseInt(value.error.split('_')[1], 10);\n const isPilot = value.power.includes('prgPilot');\n\n if (this.isMennekesEnerchargeVersion) {\n const chargeStationType = this.project.meta?.wizardSettings?.chargeStationSettings?.length ? this.project.meta.wizardSettings.chargeStationSettings[index].type : ChargeStationType.WebastoNext11;\n if (occupyNextChargeStation) {\n const previousChargeStation = this.includedSystems.charge_station.definition[index - 1];\n this.includedSystems.charge_station.definition[index].systemType = previousChargeStation.systemType;\n this.includedSystems.charge_station.definition[index].connectWithLine = previousChargeStation.connectWithLine;\n this.includedSystems.charge_station.definition[index].noFreeLoading = previousChargeStation.noFreeLoading;\n this.includedSystems.charge_station.definition[index].occupiedByTwinPoint = true;\n occupyNextChargeStation = false;\n return;\n }\n occupyNextChargeStation = [ChargeStationType.AmtronTC22, ChargeStationType.AmedioPro22].includes(chargeStationType);\n\n const loadedChargeStation = this.loadVariablesForChargeStation(this.isNewChargeStationPlcVersion ? index + 1 : chargeStationIndex);\n const { noFreeLoading } = loadedChargeStation;\n\n componentDefinition.systemType = chargeStationType;\n componentDefinition.noFreeLoading = noFreeLoading;\n\n if ([ChargeStationType.WebastoNext11, ChargeStationType.WebastoNext22].includes(chargeStationType)) componentDefinition.webastoType = 0;\n else if ([ChargeStationType.WebastoUnite11, ChargeStationType.WebastoUnite22].includes(chargeStationType)) componentDefinition.webastoType = 1;\n\n if ([ChargeStationType.WebastoNext11, ChargeStationType.WebastoUnite11].includes(chargeStationType)) componentDefinition.systemType = 'Webasto11';\n if ([ChargeStationType.WebastoNext22, ChargeStationType.WebastoUnite22].includes(chargeStationType)) componentDefinition.systemType = 'Webasto22';\n\n const isPilot = value.power.includes('prgPilot');\n if ([ChargeStationType.externalWeidmüller11, ChargeStationType.externalWeidmüller22, ChargeStationType.internalWeidmüller11, ChargeStationType.internalWeidmüller22, ChargeStationType.internalWeidmüllerMS11, ChargeStationType.internalWeidmüllerMS22].includes(chargeStationType)) {\n // Get connected pilot line from power mapping\n if (!isPilot && [ChargeStationType.externalWeidmüller11, ChargeStationType.externalWeidmüller22].includes(chargeStationType)) {\n this.includedSystems.charge_station.definition[index].connectWithLine = 'noLine';\n } else if (isPilot) {\n const connectWithLine = parseInt(value.power[value.power.length - 1], 10);\n this.includedSystems.charge_station.definition[index].connectWithLine = connectWithLine;\n this.connectedLinesConfig[connectWithLine] = this.createLineConfigEntry(title, 'charge_station', true);\n }\n }\n } else {\n const [chargeStationSystemType, external, additionalInformation, webastoType] = this.getChargeStationType(chargeStationIndex, isPilot, index);\n const {\n chargeStationPower,\n noFreeLoading,\n } = this.loadVariablesForChargeStation(this.isNewChargeStationPlcVersion ? index + 1 : chargeStationIndex);\n\n componentDefinition.systemType = `${additionalInformation}${chargeStationSystemType}${chargeStationPower}`;\n componentDefinition.noFreeLoading = noFreeLoading;\n // if charge station type is set we add it to the charge station definition\n if (this.measurements[`prgCS.byTypeECS_${index + 1}`]) {\n componentDefinition.webastoType = this.measurements[`prgCS.byTypeECS_${index + 1}`] ?? 0;\n } else if (chargeStationSystemType === 'Webasto') {\n componentDefinition.webastoType = webastoType;\n }\n\n if (external) {\n // Get connected pilot line from power mapping\n const connectWithLine = parseInt(value.power[value.power.length - 1], 10);\n this.includedSystems.charge_station.definition[index].connectWithLine = connectWithLine;\n this.connectedLinesConfig[connectWithLine] = this.createLineConfigEntry(title, 'charge_station', true);\n }\n }\n\n componentDefinition.title = value.title ?? '';\n });\n }\n\n // checks all Systems that can be a external visualisation and sets the count correctly\n defineExternalMeasurementDevices() {\n const keyArray = [...availableExternalMeasurementTypes, ...(this.isDeye || this.isSolarmax ? availableExternalMeasurementDeyeTypes : []), 'heating_pump_consumer'];\n const currentEmsControllerMappings = this.allDevices.find((device: IDevice) => device.data.type === 'EMSV2')?.data.meta.controllerMappings;\n let measurementsCounter = 0;\n keyArray.forEach((systemType: string) => {\n let system = systemType;\n let filterFunction = (component: any) => true;\n if (systemType === 'heating_pump') {\n filterFunction = (component: any) => component.power.includes('prgHP.lrPowerHP_');\n }\n if (systemType === 'heating_pump_consumer') {\n system = 'heating_pump';\n filterFunction = (component: any) => !component.power.includes('prgHP.lrPowerHP_');\n }\n\n Object.values(currentEmsControllerMappings[system].components)\n .filter(filterFunction)\n .forEach((component: any) => {\n // check if component is external measurement and its a dummy component becasue all ohter external measurement devices allready get addded to lines\n if (component.external_energy_measurement && !component.error) {\n // count for dummy components\n measurementsCounter++;\n this.connectedLinesConfig[parseInt(component.power.slice(-1), 10)] = this.createLineConfigEntry(component.title, system, false);\n this.setExternallyUsedPilotLine(parseInt(component.power.slice(-1), 10));\n }\n });\n });\n if (measurementsCounter > 0) {\n this.localExternalVisualisaton.isSelected = true;\n this.localExternalVisualisaton.count = measurementsCounter;\n\n // if user goes back to components page we check if the count was changed from the base device and if yes we set the new value\n if (this.externalVisualisation.count !== measurementsCounter && this.wasComponentsPageDone) {\n this.localExternalVisualisaton.count = this.externalVisualisation.count;\n this.localExternalVisualisaton.isSelected = this.localExternalVisualisaton.count > 0;\n }\n }\n this.setPilotConfig();\n }\n\n // adds a device to the pilot lines config\n createLineConfigEntry(name: string, type: string, disableLine: boolean) {\n return {\n name,\n device: {\n text: this.$t(`installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.${type}`),\n value: type,\n },\n disabled: disableLine,\n };\n }\n\n initSystemRows() {\n this.systems = {\n ...this.systems,\n electric_heating: {\n min: 0,\n max: this.emsLimits.electric_heating,\n },\n charge_station: {\n min: 0,\n max: this.emsLimits.charge_station,\n },\n };\n if (this.isDeye || this.isSolarmax) {\n this.systems = { pv: { min: 0, max: this.emsLimits.pv - 1 }, ...this.systems };\n }\n if ((this.isDeye || this.isSolarmax) && this.isNewChargeStationPlcVersion) {\n this.systems = { ...this.systems, heating_pump: { min: 0, max: this.emsLimits.heating_pump } };\n }\n if (!this.isSolarmax) {\n this.systems = {\n battery: {\n min: 1,\n max: this.emsLimits.battery,\n },\n ...this.systems,\n };\n }\n }\n\n initEmsSystems() {\n const isFilled = Object.values(this.includedSystemsTypes).some((element: any) => element.count > 0);\n if (!isFilled) {\n // Check and load battery system if available in meta\n this.defineBatterySystem();\n\n // Initialize included systems in store\n this.initIncludedSystems();\n }\n\n if (this.isNoBatteryPath) this.clearBatteryIncludedSystems();\n }\n\n clearBatteryIncludedSystems() {\n this.handleIncludedSystemsTypesSystem({\n system: 'battery',\n key: 'count',\n data: 0,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'battery',\n key: 'isSelected',\n data: false,\n });\n this.handleIncludedSystemsTypesSystem({\n system: 'battery',\n key: 'definition',\n data: [],\n });\n this.setEMSSystemCount({ system: 'battery', count: 0 });\n this.setEnergyViewSystemCount({ system: 'battery', count: 0 });\n }\n\n disableAllSystemsStringInverterOnly() {\n this.prepareBatteryVariables();\n this.prepareElectricHeatingVariables();\n this.prepareChargeStationVariables();\n this.prepareHeatingPumpVariables();\n this.disableNotSelectedSystems();\n\n this.prepareProducerVariables();\n this.prepareAdditionalEnergyVariables();\n }\n\n // to not have to add a lot of if statements in the created function\n async onlyStringInverterCreated() {\n this.defineStringInverterCount();\n }\n\n async created() {\n this.confirmed = false;\n\n if (this.hasOnlyStringInverter) {\n await this.onlyStringInverterCreated();\n this.validationStatusSingleSystems.battery = true;\n this.dataLoaded = true;\n return;\n }\n\n if (this.isMennekesEnerchargeVersion) {\n this.bitBySystem.charge_station = {\n ...this.bitBySystem.charge_station,\n setAmedio: false,\n setAmtronTC: false,\n setAmtron: false,\n setEnercharge: false,\n };\n }\n\n // if the system can have a battery but is deselected we need to set the validation status to true\n if (!this.isNoBatteryPath && this.wizardState.includedSystemsTypes.battery.count === 0) {\n this.validationStatusSingleSystems.battery = true;\n }\n // As Battery Component is not available in the wizard for solarmax we need to set its validation status to true\n if (this.isSolarmax) this.validationStatusSingleSystems.battery = true;\n\n this.localExternalVisualisaton = cloneDeep(this.externalVisualisation);\n if (this.project.id) {\n await this.fetchMeasurements(this.project.id);\n }\n\n // First get inverter count in case if the wizard was already completed\n if (this.wasInstallationWizardCompleted) {\n if (this.isSolarmax || (this.isDeye && this.isHybridVersion)) this.defineInverterCount();\n else {\n this.wizardState.inverterCount = 1;\n }\n\n // same for string inverter count\n if (this.isDeye && this.isHybridVersion && this.includedSystemsTypes.chp.definition.length === 0) this.defineStringInverterCount();\n }\n\n this.initSystemRows();\n this.initEmsSystems();\n\n if (!this.hasLynusInverter && plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n delete this.systems.pv;\n delete this.systems.battery;\n this.validationStatusSingleSystems.battery = true;\n }\n\n // load acpv available from measurements if its already set\n const acpvValueFromMeasurements = this.measurements[installationWizardVariables('acpvOnGrid', 'componentsPage', 0).variable];\n const acpvOnLoadValueFromMeasurements = this.measurements[installationWizardVariables('acpvOnLoad', 'componentsPage', 0).variable];\n const onBatteryValueFromMeasurements = this.measurements[installationWizardVariables('oneBatteryInput', 'componentsPage', 0).variable];\n if (acpvValueFromMeasurements !== undefined) {\n this.wizardState.acpvAvailable = acpvValueFromMeasurements === 1;\n }\n if (acpvOnLoadValueFromMeasurements !== undefined) {\n this.wizardState.acpvOnLoadAvailable = acpvOnLoadValueFromMeasurements === 1;\n }\n if (onBatteryValueFromMeasurements !== undefined) {\n this.wizardState.hybridSettings.useBothBatteryInputs = onBatteryValueFromMeasurements === 1;\n }\n\n if (this.wasInstallationWizardCompleted) {\n this.defineElectricHeatingElements();\n if (this.navigationDirection !== 0) {\n if (this.isNewChargeStationPlcVersion) this.defineHeatingPumpElements();\n this.defineChargeStationElements();\n }\n this.defineExternalMeasurementDevices();\n }\n\n // All needed data available\n this.dataLoaded = true;\n }\n\n addPilotVariables() {\n this.setVariablesToSend('numberOfMeters', this.pilotSystemCount);\n this.setVariablesToSend('disablePilot');\n }\n\n async confirmedNext() {\n this.confirmed = true;\n (this.$refs.confirmationModal as any).dialog = false;\n await this.onNext();\n }\n\n async onNext() {\n if (this.isDeye && this.includedSystemsTypes.battery.definition.length > 0 && [deyeTypes.WecoBatteryStack, deyeTypes.WecoSlimStack].includes(this.includedSystemsTypes.battery.definition[0].batteryType as deyeTypes) && !this.confirmed) {\n // Open the modal window\n (this.$refs.confirmationModal as any).dialog = true;\n } else {\n if (this.isDeye) {\n if (this.doesMeasurementExist(installationWizardVariables('acpvOnGrid', 'componentsPage').variable)) {\n this.setVariablesToSend('acpvOnGrid', this.wizardState.acpvAvailable ? 1 : 0);\n }\n if (this.isHybridVersion && this.doesMeasurementExist(installationWizardVariables('acpvOnLoad', 'componentsPage').variable)) {\n this.setVariablesToSend('acpvOnLoad', this.wizardState.acpvOnLoadAvailable ? 1 : 0);\n }\n }\n this.definePilotConfig();\n if (this.pilotSystemCount === 0 && this.localExternalVisualisaton.count === 0) {\n this.addPilotVariables();\n }\n\n // Save selected heating pumps in project meta\n await this.handleNext();\n }\n }\n\n doesMeasurementExist(variableName: string) {\n // check measurements\n return this.measurements[variableName] != null;\n }\n\n definePilotConfig() {\n const pilotLines = Object.keys(this.connectedLinesConfig).filter((element: any) => !this.connectedLines.includes(parseInt(element, 10)));\n pilotLines.forEach((line: string) => {\n this.connectedLinesConfig[line] = { device: { text: '', value: '' }, name: '', disabled: false };\n });\n this.setPilotConfig();\n }\n\n setPilotConfig() {\n const pilotConfig = {\n ctRelationship: 100,\n lineConfig: Object.values(this.connectedLinesConfig),\n };\n // sets pilot config to show it correctly on the pilot page\n this.setIsPilotPageDone(pilotConfig);\n }\n\n async mounted() {\n // trigger inital validation\n await this.$nextTick();\n this.validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComponentsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComponentsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComponentsPage.vue?vue&type=template&id=310b893c&scoped=true&\"\nimport script from \"./ComponentsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComponentsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ComponentsPage.vue?vue&type=style&index=0&id=310b893c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"310b893c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.batteryGridSettings.title`)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.batteryIncludedSystemsVariables)?_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.visibleVariables),function(variableKey,index){return _c('v-row',{key:index},[(_vm.visibleVariablesOptions[variableKey].component === 'TextField')?[_c('v-col',{attrs:{\"sm\":\"11\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"value\":_vm.batteryIncludedSystemsVariables[variableKey].value,\"label\":_vm.$t(`installationWizard.defineEmsSettings.batteryGridSettings.${variableKey}.title`),\"color\":\"accent\",\"type\":\"number\",\"outlined\":\"\",\"rules\":[\n ..._vm.visibleVariablesOptions[variableKey].rules,\n ..._vm.minMaxValidation(\n _vm.batteryIncludedSystemsVariables[variableKey].value,\n _vm.visibleVariablesOptions[variableKey].min,\n _vm.visibleVariablesOptions[variableKey].max,\n )\n ]},on:{\"input\":function($event){return _vm.handleBatteryField({ value: $event, key: variableKey })}}})],1),_c('v-col',{staticClass:\"pt-7 pl-0 d-flex\",attrs:{\"sm\":\"1\"}},[_c('div',{staticStyle:{\"width\":\"50px\"}},[_vm._v(_vm._s(_vm.visibleVariablesOptions[variableKey].unit))]),(_vm.$t(`installationWizard.defineEmsSettings.batteryGridSettings.${variableKey}.tooltip`))?_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineEmsSettings.batteryGridSettings.${variableKey}.tooltip`))+\" \")]},proxy:true}],null,true)}):_vm._e()],1)]:_vm._e(),(_vm.visibleVariablesOptions[variableKey].component === 'Checkbox')?[_c('v-col',[_c('v-checkbox',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.batteryGridSettings.${variableKey}.title`),\"true-value\":1,\"false-value\":0,\"color\":\"accent\"},on:{\"change\":function($event){return _vm.handleBatteryField({ value: $event, key: variableKey })}},model:{value:(_vm.batteryIncludedSystemsVariables[variableKey].value),callback:function ($$v) {_vm.$set(_vm.batteryIncludedSystemsVariables[variableKey], \"value\", $$v)},expression:\"batteryIncludedSystemsVariables[variableKey].value\"}})],1)]:_vm._e(),(_vm.visibleVariablesOptions[variableKey].component === 'ComboBox')?[_c('v-col',[(variableKey !== 'smartMeterType' || (variableKey === 'smartMeterType' && _vm.batteryIncludedSystemsVariables['gridMeasurementViaCHINT']?.value === 1))?_c('v-select',{attrs:{\"items\":_vm.visibleVariablesOptions[variableKey].data,\"label\":_vm.$t('installationWizard.defineEmsSettings.batteryGridSettings.smartMeterType.title'),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString]},model:{value:(_vm.batteryIncludedSystemsVariables[variableKey].value),callback:function ($$v) {_vm.$set(_vm.batteryIncludedSystemsVariables[variableKey], \"value\", $$v)},expression:\"batteryIncludedSystemsVariables[variableKey].value\"}}):_vm._e()],1)]:_vm._e()],2)}),1):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { overWriteVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\nimport { IDevice } from '@/types/devices.types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { IBatterySystem, WizardPath } from '@/types/wizards/installationWizard.types';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class BatteryGridSettings extends WizardComponent {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Mutation('installationWizard/addSystemPropertyValues') addSystemPropertyValues!: (data: { systemType: string; data: any }) => void;\n @Mutation('installationWizard/updateSystemPropertyValues') updateSystemPropertyValues!: (data: { systemType: string; data: any; systemIndex: number }) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemSystemsProps') handleIncludedSystemsTypesSystemSystemsProps!: (\n { systemName, systemIndex, prop, value }: { systemName: string; systemIndex: number; prop: string; value: any }\n ) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => Promise;\n\n doesHover = false;\n valid = false;\n saved = false;\n\n localExternalMeasurementsTypes = [\n {\n name: 'CHINT',\n value: 0,\n },\n {\n name: 'EASTRON',\n value: 1,\n },\n ];\n\n // Container of all possible variables with init value and variable name\n allVariablesMap: IBatterySystem = {\n size: { value: 0 },\n priority: { value: 1 },\n reserve: { value: 15 },\n switchBackTimeFromEmergencyPower: { value: 300 },\n gridMeasurementViaCHINT: { value: 0 },\n smartMeterType: { value: 1 },\n maximumCharge: { value: 85 },\n updateTime: { value: 15 },\n chargeFromGrid: { value: 0 },\n prioritizedCharging: { value: 25 },\n minimumChargeState: { value: 10 },\n };\n\n variablesList: string[] = []; // Full list of variables which will be sent\n visibleVariables: string[] = []; // Variables that shown in form\n\n // Field options for form variables\n get visibleVariablesOptions() {\n return {\n size: { unit: 'A', min: 1, max: 2800, component: 'TextField', rules: [this.rules.required] },\n priority: { unit: '', min: 1, max: 255, component: 'TextField', rules: [this.rules.required, this.rules.noCommas] },\n reserve: { unit: '%', min: 11, max: 100, component: 'TextField', rules: [this.rules.required, this.rules.noCommas] },\n switchBackTimeFromEmergencyPower: { unit: 's', min: 60, max: 300, component: 'TextField', rules: [this.rules.required, this.rules.noCommas] },\n gridMeasurementViaCHINT: { component: 'Checkbox', rules: [] },\n smartMeterType: { component: 'ComboBox', rules: [this.rules.required, this.rules.noCommas], data: this.localExternalMeasurementsTypes },\n };\n }\n\n get isBatteryDefinitionEmpty() {\n return this.includedSystems.battery.definition.length === 0;\n }\n\n get batteryIncludedSystemsVariables(): IBatterySystem {\n return this.includedSystems.battery.systems[0];\n }\n\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.wizardState.wizardPath);\n }\n\n // initialize the list of variables relative to the selected battery type system\n async initVariables() {\n await this.fetchMeasurements(this.$route.params.id);\n const alwaysLoadVariables = ['switchBackTimeFromEmergencyPower'];\n if (this.isDeye) {\n this.variablesList = [\n 'size', 'priority', 'reserve', 'switchBackTimeFromEmergencyPower', 'gridMeasurementViaCHINT', 'smartMeterType',\n 'maximumCharge', 'updateTime', 'chargeFromGrid', 'prioritizedCharging', 'minimumChargeState',\n ];\n const batteryVariables = ['priority', 'reserve', 'switchBackTimeFromEmergencyPower', 'gridMeasurementViaCHINT', 'smartMeterType'];\n this.visibleVariables = ['size'];\n if (!this.isNoBatteryPath) {\n this.visibleVariables = [...this.visibleVariables, ...batteryVariables];\n }\n } else {\n this.variablesList = [\n 'size', 'priority', 'reserve', 'maximumCharge', 'updateTime',\n 'chargeFromGrid', 'prioritizedCharging', 'minimumChargeState',\n ];\n let batteryVariables: string[] = [];\n if (this.isSolarmax) {\n batteryVariables = ['priority'];\n } else {\n if (!this.isBatteryDefinitionEmpty) batteryVariables = ['priority', 'reserve'];\n if (this.isBatteryDefinitionEmpty) this.allVariablesMap.priority.value = 0;\n }\n\n this.visibleVariables = ['size', ...batteryVariables];\n }\n\n // if wizard was done once. values will be taken from measurements if they are different from default values\n if (this.wasInstallationWizardCompleted) {\n this.loadVariablesFromMeasurements(this.visibleVariables);\n // if grid size was set once by the user we take it from the emsObject\n if (this.emsDevice.data.meta.controllerMappings.grid.components.grid1?.size_in_amps !== undefined) {\n const valueInAmps = this.emsDevice.data.meta.controllerMappings.grid.components.grid1.size_in_amps;\n this.allVariablesMap.size.value = typeof (valueInAmps) === 'string' ? parseFloat(valueInAmps).toFixed(1) : valueInAmps;\n if (this.batteryIncludedSystemsVariables?.size !== undefined && this.batteryIncludedSystemsVariables?.size?.value !== undefined) {\n this.batteryIncludedSystemsVariables.size.value = this.allVariablesMap.size.value;\n }\n }\n if (this.isNoBatteryPath) {\n this.allVariablesMap.priority.value = 0;\n if (this.batteryIncludedSystemsVariables) this.batteryIncludedSystemsVariables.priority.value = 0;\n }\n } else {\n // Load variables from measurements that are in the list of alwaysLoadVariables\n this.loadVariablesFromMeasurements(alwaysLoadVariables);\n }\n }\n loadVariablesFromMeasurements(variables: string[]) {\n let variablesToSend: any = {};\n Object.entries(this.allVariablesMap).forEach(([key, value]) => {\n if (variables.includes(key)) {\n return variablesToSend[key] = value;\n }\n });\n variablesToSend = overWriteVariableValuesWithMeasurements(variablesToSend, this.measurements, 'batteryGridPage');\n Object.keys(variablesToSend).forEach((key) => {\n this.allVariablesMap[key as keyof IBatterySystem]!.value = variablesToSend[key as keyof IBatterySystem].value;\n });\n }\n convertVariablesListToObject(list: string[], container: IBatterySystem) {\n const arr = list.map((variableKey: string) => [\n variableKey,\n container[variableKey as keyof IBatterySystem] || this.allVariablesMap[variableKey as keyof IBatterySystem],\n ]);\n return arr.reduce((acc: any, [key, data]: any) => {\n return { ...acc, [key]: data };\n }, {});\n }\n saveVariablesInStore() {\n const system = this.includedSystems.battery.systems[0];\n const uiUpdateTime = (this.isDeye || this.isSolarmax) ? 30 : 15;\n this.allVariablesMap.updateTime.value = uiUpdateTime;\n // if the variables have been in store,\n // update them with respect to the selected battery system\n if (system) {\n system.updateTime.value = uiUpdateTime;\n this.updateSystemPropertyValues({\n systemType: 'battery',\n data: this.convertVariablesListToObject(this.variablesList, system),\n systemIndex: 0,\n });\n } else {\n this.addSystemPropertyValues({\n systemType: 'battery',\n data: this.convertVariablesListToObject(this.variablesList, this.allVariablesMap),\n });\n }\n }\n\n async handleBatteryField({ key, value }: { key: string; value: any }) {\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'battery', systemIndex: 0, prop: key, value,\n });\n this.saved = false;\n\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0) {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, 'batteryGridPage', value, systemIndex));\n }\n\n async prepareVariablesToSend(): Promise {\n // Enable House\n this.setVariablesToSend('enableHouse');\n\n // will contain the original user input in amps\n const gridSizeInAmps = this.batteryIncludedSystemsVariables.size.value as number;\n\n Object.entries(this.batteryIncludedSystemsVariables).forEach(([key, value]) => {\n this.setVariablesToSend(key, key === 'size' ? this.convertAmpsToKiloWatt(value.value) : value.value);\n });\n if (!this.isNoBatteryPath) await this.saveAmpsValueInEMS(gridSizeInAmps);\n }\n\n /**\n * Saves the user input in the project meta inside the wizard settings\n */\n async saveAmpsValueInEMS(amps: number) {\n const emsCopy = { ...this.emsDevice };\n emsCopy.data.meta.controllerMappings.grid.components.grid1.size_in_amps = amps;\n if (this.emsDevice.id) await this.updateDevice({ device: emsCopy, skipReport: false });\n }\n\n /**\n * Converts the user input in amps to kW to send the value to the backend\n */\n convertAmpsToKiloWatt(amps: number | string) {\n const value = typeof (amps) === 'string' ? parseInt(amps, 10) : amps;\n const kW = (value * 692) / 1000;\n return parseFloat(kW.toFixed(1));\n }\n\n async created() {\n await this.initVariables();\n this.saveVariablesInStore();\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryGridSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryGridSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryGridSettings.vue?vue&type=template&id=195cef73&\"\nimport script from \"./BatteryGridSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryGridSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.title`)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.includedSystemsChargeStationDefinitions),function(element,key){return _c('v-row',{key:key},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('h3',[_c('span',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.systemName`)))]),_c('span',{staticClass:\"ml-1\"},[_vm._v(_vm._s(key + 1)+\": \"+_vm._s(_vm.$t(`installationWizard.chargeStations.${element.systemType}`)))])])]),_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('v-col',{attrs:{\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.labels.title`),\"type\":\"text\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required]},model:{value:(element.title),callback:function ($$v) {_vm.$set(element, \"title\", $$v)},expression:\"element.title\"}})],1)],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"sm\":\"12\",\"md\":\"9\",\"lg\":\"6\",\"align-self\":\"start\"}},[_c('v-select',{attrs:{\"value\":_vm.minimumCharge[key].minimum_power_selection,\"items\":_vm.selectOptions,\"item-value\":\"key\",\"item-text\":\"text\",\"return-object\":\"\",\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"label\":_vm.$t('installationWizard.defineEmsSettings.chargeStationSettings.charge_mode.title')},on:{\"change\":function($event){return _vm.handleChargeModeSelection({ option: $event, key: 'min_power', index: key }, true)}}}),_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"width\":\"50px\"}},[_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.minPower.tooltip.${_vm.minimumCharge[key].minimum_power_selection}`))+\" \")]},proxy:true}],null,true)})],1)],1),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"sm\":\"12\",\"md\":\"9\",\"lg\":\"6\",\"align-self\":\"start\"}},[(_vm.minimumCharge[key].minimum_power_selection === _vm.ChargeModeOptionsKeys.minimum)?_c('div',{staticClass:\"mt-2 d-flex\"},[_c('v-text-field',{staticClass:\"drop-down-text-field\",attrs:{\"color\":\"accent\",\"rules\":[..._vm.inputRules, _vm.rules.onlyNumbersRule(_vm.minimumCharge[key].current)],\"dense\":\"\",\"solo\":\"\"},on:{\"change\":function($event){_vm.handleChargeModeSelection({ option: _vm.currentOption(key), key: 'min_power', index: key }, false)}},model:{value:(_vm.minimumCharge[key].current),callback:function ($$v) {_vm.$set(_vm.minimumCharge[key], \"current\", _vm._n($$v))},expression:\"minimumCharge[key].current\"}}),_c('div',{staticClass:\"px-4 pt-1\"},[_vm._v(\"A\")])],1):_vm._e()]),_c('v-col',{staticClass:\"d-flex align-center\",attrs:{\"sm\":\"12\",\"md\":\"9\",\"lg\":\"6\"}},[_c('v-text-field',{staticClass:\"pt-1\",attrs:{\"value\":_vm.includedSystemsChargeStationSystems[key].priority.value,\"label\":_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.priority.title`),\"color\":\"accent\",\"type\":\"number\",\"min\":_vm.batteryDefinitionEmpty ? 1 : 2,\"outlined\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noCommas, ..._vm.minMaxValidation(_vm.includedSystemsChargeStationSystems[key].priority.value, _vm.batteryDefinitionEmpty ? 1 : 2, 255)]},on:{\"input\":function($event){return _vm.handleChargeStationField({ value: $event, key: 'priority', index: key })}}}),_c('div',{staticClass:\"d-flex justify-center pb-6\",staticStyle:{\"width\":\"50px\"}},[_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.priority.tooltip`))+\" \")]},proxy:true}],null,true)})],1)],1),(_vm.getFreeChargeStateByIndex(key) === true && _vm.showChargeStationV2Feature)?_c('v-col',{staticClass:\"d-flex align-center pt-0\",attrs:{\"sm\":\"12\",\"md\":\"6\",\"lg\":\"6\"}},[_c('v-combobox',{staticClass:\"mt-4\",attrs:{\"items\":_vm.selectableMembers,\"small-chips\":\"\",\"label\":_vm.$t(`devices.ElectricChargingStationV2.mainView.selectUsers`),\"multiple\":\"\",\"outlined\":\"\",\"color\":\"blue\",\"hide-selected\":\"\",\"menu-props\":{ maxHeight: '300' }},on:{\"change\":function($event){return _vm.assignedUsersChange($event, key)}},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, select, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click\":select,\"click:close\":function($event){return _vm.handleDeleteUser(item, key)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(_vm.memberNameById(item)))])])]}}],null,true),model:{value:(_vm.assignedUsers[key].users),callback:function ($$v) {_vm.$set(_vm.assignedUsers[key], \"users\", $$v)},expression:\"assignedUsers[key].users\"}})],1):_vm._e()],1)}),1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// This File will contain all default Mappings for every Device Type (EMS, EnergyView)\n\n// EMS Functions\nimport i18n from '@/ui/plugins/i18n';\n\nexport function pvMappingEMS(systemIndex: number) {\n return {\n power: 'prgEnergy.lrPVPower',\n error: '',\n title: 'PV Total',\n energy_counter: 'prgEnergy.lrCounterProdPV',\n };\n}\n\nexport function additionalRegelenergieConsumerMappings(systemName: string, systemIndex: number) {\n const prefixes: { [key: string]: string } = {\n battery: 'prgEnergy',\n charge_station: 'prgCS',\n electric_heating_element: 'prgEHE',\n heating_pump: 'prgHP',\n other_big_consumer: 'prgOBC',\n };\n const extension = systemName !== 'battery' ? `_${systemIndex + 1}` : '';\n return {\n switch_p14a: `${prefixes[systemName]}.bUse14A${extension}`,\n state_p14a: `${prefixes[systemName]}.bSUse14A${extension}`,\n };\n}\n\nexport function pvMappingEMSDeye(systemIndex: number, isAcPv: boolean, inverterIndex = 1) {\n return {\n power: !isAcPv ? `prgPVOutData.rPower_${inverterIndex}_${systemIndex}` : 'prgEnergy.lrACPVPower',\n error: '',\n title: !isAcPv ? `MPPT${systemIndex} Inverter ${inverterIndex}` : 'PV AC Total',\n energy_counter: !isAcPv ? `prgPVOutData.lrCounterE_Prod_${inverterIndex}_${systemIndex}` : 'prgEnergy.lrCounterProdACPV',\n };\n}\n\nexport function stringInverterMappingEMS(systemIndex: number) {\n return {\n power: `prgACPV.rPower_${systemIndex + 1}`,\n error: 'prgACPV.byErrorWarningInv',\n title: `String Inverter ${systemIndex + 1}`,\n energy_counter: `prgACPV.lrCounter_E_P_${systemIndex + 1}`,\n };\n}\n\nexport function batteryMappingEMS(systemIndex: number, isP14Version: boolean) {\n let mappings = {\n power: 'prgEnergy.fbI.stDataBattery.lrPower',\n target_power: 'prgEnergy.fbI.stDataBattInverter.rTargetPower',\n state_enable: 'prgEnergy.fbI.stDataBattInverter.bEnabled',\n state_reset: '',\n error: 'prgEnergy.byErrorWarningB1',\n title: i18n.t('installationWizard.defaultMappings.systemNames.battery').toString(),\n soc: 'prgEnergy.fbI.stDataBattery.dwSOC',\n size_capacity: `prgEnergy.lrMaxCapacityBattery${systemIndex + 1}`,\n capacity: 'prgEnergy.fbI.stDataBattery.lrCapacity',\n priority: 'prgEnergy.fbI.byPriority',\n switch_enable: 'prgEnergy.fbI.bEnable',\n switch_reset: '',\n energy_counter: 'prgEnergy.lrCounterProdBatt',\n reverse_energy_counter: 'prgEnergy.lrCounterConsBatt',\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('battery', systemIndex),\n };\n }\n return mappings;\n}\n\nexport function defineSystemIndex(systemIndex: number, systemCount: number) {\n let componentIndex = 0;\n let inverterIndex = 0;\n if (systemCount === 2) {\n componentIndex = systemIndex % 2 === 0 ? 1 : 2;\n inverterIndex = Math.floor(systemIndex / 2) + 1;\n } else {\n componentIndex = 1;\n inverterIndex = systemIndex + 1;\n }\n return {\n componentIndex,\n inverterIndex,\n };\n}\n\nexport function multiBatteryMappingEMS(systemIndex: number, batteryCount: number, isP14Version: boolean) {\n const { componentIndex, inverterIndex } = defineSystemIndex(systemIndex, batteryCount);\n\n let mappings = {\n power: `prgBattOutData.rPower_${inverterIndex}_${componentIndex}`,\n target_power: 'prgEnergy.fbI.stDataBattInverter.rTargetPower',\n state_enable: 'prgEnergy.fbI.stDataBattInverter.bEnabled',\n state_reset: '',\n error: 'prgEnergy.byErrorWarningB1',\n title: `${i18n.t('installationWizard.defaultMappings.systemNames.battery')} ${componentIndex} Inverter ${inverterIndex}`,\n soc: `prgBattOutData.wSOC_${inverterIndex}_${componentIndex}`,\n size_capacity: `prgEnergy.lrMaxCapacityBattery${systemIndex + 1}`,\n capacity: 'prgEnergy.fbI.stDataBattery.lrCapacity',\n priority: 'prgEnergy.fbI.byPriority',\n switch_enable: 'prgEnergy.fbI.bEnable',\n switch_reset: '',\n energy_counter: `prgBattOutData.lrCounterE_Prod_${inverterIndex}_${componentIndex}`,\n reverse_energy_counter: `prgBattOutData.lrCounterE_Cons_${inverterIndex}_${componentIndex}`,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('battery', systemIndex),\n };\n }\n return mappings;\n}\n\nexport function gridMappingEMS() {\n return {\n power: 'prgEnergy.fbGrid.stDataGrid.lrPower',\n error: '',\n title: i18n.t('installationWizard.defaultMappings.systemNames.grid').toString(),\n size: 'prgEnergy.fbGrid.rSizeGridConn',\n energy_counter: 'prgEnergy.lrCounterProdGrid',\n reverse_energy_counter: 'prgEnergy.lrCounterConsGrid',\n size_in_amps: 0,\n is_on_grid: 'prgEnergy.fbI.bOffGridModeActive',\n };\n}\n\nexport function houseMappingEMS(systemIndex: number) {\n return {\n power: 'prgEnergy.lrHousePower',\n state_enable: 'prgEnergy.fbHouse.stDataHouseC.bEnabled',\n switch_enable: 'prgEnergy.fbHouse.bEnable',\n error: '',\n title: `${i18n.t('installationWizard.defaultMappings.systemNames.house')} ${systemIndex}`,\n energy_counter: 'prgEnergy.lrCounterConsHouse',\n };\n}\n\nexport function chargeStationMappingEMS(systemIndex: number, systemType = 'Webasto', isP14Version: boolean) {\n let mappings = {\n power: `prgCS.lrPowerCS_${systemIndex + 1}`,\n error: `prgCS.byErrorWarning_${systemIndex + 1}`,\n title: `${systemType}`,\n car_connected: `prgCS.bCarConected_${systemIndex + 1}`,\n charging_time: '',\n state_charging_station: '',\n state_emergency: `prgCS.bSOnEmergPowerOff_${systemIndex + 1}`,\n state_manual: '',\n current: '',\n min_power: `prgCS.fbCS${systemIndex + 1}.stDataECS.bySCSMinPower`,\n switch_emergency: `prgCS.bOnEmergPowerOff_${systemIndex + 1}`,\n priority: `prgCS.fbCS${systemIndex + 1}.stSetupECS.byPriority`,\n enable_soc: `prgCS.fbCS${systemIndex + 1}.stSetupECS.byEnableSOC`,\n disable_soc: `prgCS.fbCS${systemIndex + 1}.stSetupECS.byDisableSOC`,\n max_power: `prgCS.fbCS${systemIndex + 1}.stSetupECS.rMaxPower`,\n slider_manual: '',\n slider_target_power: '',\n slider_min_power: `prgCS.fbCS${systemIndex + 1}.stSetupECS.byCSMinPower`,\n target_power: `prgCS.fbCS${systemIndex + 1}.stDataECS.rTargetPower`,\n state_enable: `prgCS.fbCS${systemIndex + 1}.stDataECS.bEnabled`,\n switch_enable: `prgCS.fbCS${systemIndex + 1}.bEnable`,\n switch_manual: '',\n energy_counter: `prgCS.lrCounterCS_${systemIndex + 1}`,\n external_energy_measurement: false,\n calculate_as_external_device: false,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('charge_station', systemIndex),\n };\n }\n\n return mappings;\n}\n\nexport function newChargeStationMappingsEMS(systemIndex: number, systemType = 'Webasto', isP14Version: boolean) {\n let mappings = {\n power: `prgCS.lrPowerCS_${systemIndex + 1}`,\n error: `prgCS.byErrorWarning_${systemIndex + 1}`,\n title: `${i18n.t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.charge_station')} ${systemIndex + 1}: ${systemType}`,\n car_connected: `prgCS.bCarConected_${systemIndex + 1}`,\n charging_time: '',\n state_charging_station: '',\n state_emergency: `prgCS.bSOnEmergPowerOff_${systemIndex + 1}`,\n state_manual: '',\n current: '',\n min_power: `prgCS.bySMinPower_${systemIndex + 1}`,\n switch_emergency: `prgCS.bOnEmergPowerOff_${systemIndex + 1}`,\n priority: `prgCS.byPrio_${systemIndex + 1}`,\n enable_soc: `prgCS.byEnaSOC_${systemIndex + 1}`,\n disable_soc: `prgCS.byDisabSOC_${systemIndex + 1}`,\n max_power: `prgCS.rMaxPower_${systemIndex + 1}`,\n slider_manual: '',\n slider_target_power: '',\n slider_min_power: `prgCS.byMinPower_${systemIndex + 1}`,\n target_power: `prgCS.rTargetPower_${systemIndex + 1}`,\n state_enable: `prgCS.bSEnabled_${systemIndex + 1}`,\n switch_enable: `prgCS.bEnable_${systemIndex + 1}`,\n switch_manual: '',\n energy_counter: `prgCS.lrCounterCS_${systemIndex + 1}`,\n external_energy_measurement: false,\n calculate_as_external_device: false,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('charge_station', systemIndex),\n };\n }\n return mappings;\n}\n\nexport function electricHeatingMappingEMS(systemIndex: number, systemType = 'Askoma', isP14Version: boolean) {\n const max_power: any = {};\n const max_power_key = `mp-${Date.now()}`;\n max_power[max_power_key] = `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.rMaxPower1`;\n\n let mappings = {\n power: `prgEHE.lrPower_${systemIndex + 1}`,\n error: `prgEHE.byErrorWarning_${systemIndex + 1}`,\n title: `${systemType} ${systemIndex + 1}`,\n temperature: `prgEHE.fbEHE${systemIndex + 1}.stDataEHE.rTempInBoiler`,\n state_electric_heating: '',\n state_emergency: `prgEHE.bSOnEmergPowerOff_${systemIndex + 1}`,\n state_manual: '',\n state_time: `prgEHE.fbEHE${systemIndex + 1}.stDataEHE.bSTimeEnabled`,\n state_disable_protection: `prgEHE.bSDisableLegionellaPr_${systemIndex + 1}`,\n switch_emergency: `prgEHE.bOnEmergPowerOff_${systemIndex + 1}`,\n priority: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byPriority`,\n enable_soc: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byEnableSOC`,\n disable_soc: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byDisableSOC`,\n switch_disable_protection: `prgEHE.bDisableLegionellaPr_${systemIndex + 1}`,\n switch_manual: '',\n slider_target_power: '',\n switch_time: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.bTimeEnabled`,\n hour_on: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byHourOn`,\n minute_on: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byMinutesOn`,\n hour_off: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byHourOff`,\n minute_off: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.byMinutesOff`,\n target_temp_on: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.uiTargetTempOn`,\n target_temp_off: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.uiTargetTempOff`,\n target_temp_max: `prgEHE.fbEHE${systemIndex + 1}.stSetupEHE.uiTargetTempMax`,\n max_power,\n target_power: `prgEHE.fbEHE${systemIndex + 1}.stDataEHE.rTargetPower`,\n state_enable: `prgEHE.fbEHE${systemIndex + 1}.stDataEHE.bEnabled`,\n switch_enable: `prgEHE.fbEHE${systemIndex + 1}.bEnable`,\n slider_manual: '',\n energy_counter: `prgEHE.lrCounterCons_${systemIndex + 1}`,\n external_energy_measurement: false,\n };\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('electric_heating_element', systemIndex),\n };\n return mappings;\n}\n\nexport function heatingPumpMappingEMS(systemName: string, isP14Version: boolean) {\n const max_power: Record = {\n [`mp-${Date.now()}`]: 'prgHP.fbHP.stSetupHP.rMaxPower1',\n [`mp-${Date.now() + 1}`]: 'prgHP.fbHP.stSetupHP.rMaxPower2',\n };\n\n let mappings = {\n boiler_temperature: '',\n boiler_water_temperature: '',\n disable_soc: 'prgHP.fbHP.stSetupHP.byDisableSOC',\n enable_soc: 'prgHP.fbHP.stSetupHP.byEnableSOC',\n energy_counter: '',\n error: '',\n flow_temperature: '',\n hour_off: 'prgHP.fbHP.stSetupHP.byHourOff',\n hour_on: 'prgHP.fbHP.stSetupHP.byHourOn',\n inlet_temperature: '',\n manual_power: '',\n max_power,\n minute_off: 'prgHP.fbHP.stSetupHP.byMinutesOff',\n minute_on: 'prgHP.fbHP.stSetupHP.byMinutesOn',\n outlet_temperature: '',\n power: '',\n priority: 'prgHP.fbHP.stSetupHP.byPriority',\n return_temperature: '',\n slider_manual: '',\n slider_power: 'prgHP.fbHP.stSetupHP.byTimeEnabledTargetPower',\n state_emergency: 'prgHP.bSOnEmergPowerOff_1',\n state_enable: 'prgHP.fbHP.stDataHP.bEnabled',\n state_heating_pump: '',\n state_manual: '',\n state_reset: 'prgHP.fbHP.stDataHP.bSReset',\n state_time: 'prgHP.fbHP.stDataHP.bSTimeEnabled',\n state_time_power: 'prgHP.fbHP.stDataHP.bySTimeEnabledTargetPower',\n switch_emergency: 'prgHP.bOnEmergPowerOff_1',\n switch_enable: 'prgHP.fbHP.bEnable',\n switch_manual: '',\n switch_reset: 'prgHP.fbHP.stSetupHP.bReset',\n switch_time: 'prgHP.fbHP.stSetupHP.bTimeEnabled',\n target_power: 'prgHP.fbHP.stDataHP.rTargetPower',\n title: systemName,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('heating_pump', 0),\n };\n }\n return mappings;\n}\n\nexport function newHeatingPumpMappingsEMS(systemIndex: number, systemName: string, isP14Version: boolean) {\n const max_power: Record = {\n [`mp-${Date.now()}`]: `prgHP.rMaxPower_${systemIndex + 1}_1`,\n [`mp-${Date.now() + 1}`]: `prgHP.rMaxPower_${systemIndex + 1}_2`,\n };\n let mappings = {\n boiler_temperature: `prgHP.rBoilerTempHeatingSys_${systemIndex + 1}`,\n boiler_water_temperature: `prgHP.rBoilerTempServiceWater_${systemIndex + 1}`,\n disable_soc: `prgHP.byDisabSOC_${systemIndex + 1}`,\n enable_soc: `prgHP.byEnaSOC_${systemIndex + 1}`,\n energy_counter: `prgHP.lrCounterEl_HP_${systemIndex + 1}`,\n error: `prgHP.byErrorWarning_${systemIndex + 1}`,\n flow_temperature: `prgHP.rFlowTemp_${systemIndex + 1}`,\n hour_off: `prgHP.byHourOff_${systemIndex + 1}`,\n hour_on: `prgHP.byHourOn_${systemIndex + 1}`,\n inlet_temperature: `prgHP.rFlowTempEnergySource_${systemIndex + 1}`,\n manual_power: '',\n max_power,\n minute_off: `prgHP.byMinuteOff_${systemIndex + 1}`,\n minute_on: `prgHP.byMinuteOn_${systemIndex + 1}`,\n outlet_temperature: `prgHP.rReturnTempEnergySource_${systemIndex + 1}`,\n power: `prgHP.lrPowerHP_${systemIndex + 1}`,\n priority: `prgHP.byPrio_${systemIndex + 1}`,\n return_temperature: `prgHP.rReturnTemp_${systemIndex + 1}`,\n slider_manual: '',\n slider_power: `prgHP.byTimeEnabledPwr_${systemIndex + 1}`,\n state_emergency: `prgHP.bSOnEmergPowerOff_${systemIndex + 1}`,\n state_enable: `prgHP.bSEnabled_${systemIndex + 1}`,\n state_heating_pump: '',\n state_manual: '',\n state_reset: `prgHP.bSReset_${systemIndex + 1}`,\n state_time: `prgHP.bSTimeEnabled_${systemIndex + 1}`,\n state_time_power: `prgHP.bySTimeEnabledPwr_${systemIndex + 1}`,\n switch_emergency: `prgHP.bOnEmergPowerOff_${systemIndex + 1}`,\n switch_enable: `prgHP.bEnable_${systemIndex + 1}`,\n switch_manual: '',\n switch_reset: `prgHP.bReset_${systemIndex + 1}`,\n switch_time: `prgHP.bTimeEnabled_${systemIndex + 1}`,\n target_power: `prgHP.rTargetPower_${systemIndex + 1}`,\n title: systemName,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('heating_pump', systemIndex),\n };\n }\n return mappings;\n}\n\nexport function otherBigConsumerMappingsEMS(systemIndex: number, systemName: string, isP14Version: boolean) {\n let mappings = {\n disable_soc: `prgOBC.fbBC${systemIndex + 1}.stSetupOBC.byDisableSOC`,\n enable_soc: `prgOBC.fbBC${systemIndex + 1}.stSetupOBC.byEnableSOC`,\n energy_counter: '',\n error: '',\n max_power: `prgOBC.fbBC${systemIndex + 1}.stSetupOBC.rMaxPower`,\n power: '',\n priority: `prgOBC.fbBC${systemIndex + 1}.stSetupOBC.byPriority`,\n slider_manual: '',\n slider_target_power: '',\n state_consumer: '',\n state_emergency: `prgOBC.bSOnEmergPowerOff_${systemIndex + 1}`,\n state_enable: `prgOBC.fbBC${systemIndex + 1}.stDataOBC.bEnabled`,\n state_manual: '',\n switch_emergency: `prgOBC.bOnEmergPowerOff_${systemIndex + 1}`,\n switch_enable: `prgOBC.fbBC${systemIndex + 1}.bEnable`,\n switch_manual: '',\n target_power: `prgOBC.fbBC${systemIndex + 1}.stDataOBC.rTargetPower`,\n title: `${systemName} ${systemIndex + 1}`,\n };\n if (isP14Version) {\n mappings = {\n ...mappings,\n ...additionalRegelenergieConsumerMappings('other_big_consumer', systemIndex),\n };\n }\n return mappings;\n}\n\nexport function generatorMappingsEMS(systemName: string) {\n return {\n disable_soc: 'prgGEN.fbGen.stSetupGenerator.byDisableSOC',\n enable_soc: 'prgGEN.fbGen.stSetupGenerator.byEnableSOC',\n energy_counter: 'prgGEN.lrCounterE_Prod_Gen',\n error: '',\n power: 'prgGEN.lrPowerGen',\n state_enable: 'prgGEN.fbGen.stDataGenerator.bEnabled',\n state_generator: '',\n state_reset: 'prgGEN.fbGen.stDataGenerator.bSReset',\n switch_enable: 'prgGEN.fbGen.bEnable',\n switch_reset: 'prgGEN.fbGen.stSetupGenerator.bReset',\n hour_on: 'prgGEN.fbGen.stSetupGenerator.byHourOn',\n minute_on: 'prgGEN.fbGen.stSetupGenerator.byMinutesOn',\n hour_off: 'prgGEN.fbGen.stSetupGenerator.byHourOff',\n minute_off: 'prgGEN.fbGen.stSetupGenerator.byMinutesOff',\n enable_timelock: 'prgGEN.fbGen.stSetupGenerator.bLockTime',\n state_timelock: 'prgGEN.fbGen.stDataGenerator.bSLockTime',\n title: systemName,\n };\n}\n\n// CHP EMS Mappings\nexport function chpMappingsEMS(systemIndex: number) {\n return {\n buffer_storage_capacity: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.rMaxCapHeatStorage`,\n buffer_temperature_bottom: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rStorageTempBottom`,\n buffer_temperature_top: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rStorageTempTop`,\n disable_soc: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.byDisableSOC`,\n enable_soc: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.byEnableSOC`,\n energy_counter: `prgBHKW.lrCounterE_Prod_${systemIndex + 1}_BHKW`,\n energy_counter_thermal: `prgBHKW.lrCounterT_Prod_${systemIndex + 1}_BHKW`,\n error: `prgBHKW.byErrorBHKW${systemIndex + 1}`,\n flow_temperature: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rFlowTemp`,\n operation: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.bBHKWIsRunning`,\n parallel_grid_mode: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.byWorkModeOn`,\n parallel_grid_target_power: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.byTargetPowerOn`,\n power: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.lrElPower`,\n return_temperature: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rReturnTemp`,\n state_activate_cooling: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.bSActEmergencyC`,\n state_activate_heating: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.bSActHeatingSys`,\n state_enable: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.bEnabled`,\n status: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.bOutput`,\n switch_activate_cooling: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.bEmergencyCooler`,\n switch_activate_heating: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.bEnHeatingSystem`,\n switch_enable: 'prgBHKW.fbBHKW.bEnable',\n target_power: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rTargetPower`,\n thermal_power_input: `prgBHKW.fbBHKW.stSetupBHKW_${systemIndex + 1}.rThermalPowerBHKW`,\n thermal_power_output: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.lrThermalPower`,\n title: `${i18n.t('installationWizard.defineComponents.componentsPage.systems.chp.title')} ${systemIndex + 1}`,\n };\n}\n\n// EnergyView Functions\nexport function pvMappingEnergyView(systemIndex: number) {\n return {\n energy_counter: 'prgEnergy.lrCounterProdPV',\n error: '',\n power: 'prgEnergy.lrPVPower',\n title: 'PV Total',\n };\n}\n\nexport function pvMappingEnergyViewDeye(systemIndex: number, isAcPv: boolean, inverterIndex = 1) {\n return {\n power: !isAcPv ? `prgPVOutData.rPower_${inverterIndex}_${systemIndex}` : 'prgEnergy.lrACPVPower',\n error: '',\n title: !isAcPv ? `MPPT${systemIndex} Inverter ${inverterIndex}` : 'PV AC Total',\n energy_counter: !isAcPv ? `prgPVOutData.lrCounterE_Prod_${inverterIndex}_${systemIndex}` : 'prgEnergy.lrCounterProdACPV',\n };\n}\n\nexport function generatorMappingEnergyView(systemIndex: number) {\n return {\n energy_counter: 'prgGEN.lrCounterE_Prod_Gen',\n error: '',\n power: 'prgGEN.lrPowerGen',\n title: 'Generator',\n };\n}\n\nexport function batteryMappingEnergyView(systemIndex: number) {\n return {\n energy_counter: 'prgEnergy.lrCounterProdBatt',\n reverse_energy_counter: 'prgEnergy.lrCounterConsBatt',\n error: '',\n power: 'prgEnergy.fbI.stDataBattery.lrPower',\n soc: 'prgEnergy.fbI.stDataBattery.dwSOC',\n title: i18n.t('installationWizard.defaultMappings.systemNames.battery').toString(),\n };\n}\n\nexport function multiBatteryMappingEnergyView(systemIndex: number, batteryCount: number) {\n const { componentIndex, inverterIndex } = defineSystemIndex(systemIndex, batteryCount);\n return {\n energy_counter: `prgBattOutData.lrCounterE_Prod_${inverterIndex}_${componentIndex}`,\n reverse_energy_counter: `prgBattOutData.lrCounterE_Cons_${inverterIndex}_${componentIndex}`,\n error: '',\n power: `prgBattOutData.rPower_${inverterIndex}_${componentIndex}`,\n soc: `prgBattOutData.wSOC_${inverterIndex}_${componentIndex}`,\n title: `${i18n.t('installationWizard.defaultMappings.systemNames.battery')} ${componentIndex} Inverter ${inverterIndex}`,\n };\n}\n\nexport function newHeatingPumpMappingsEnergyView(systemIndex: number, systemName: string) {\n return {\n title: `${systemName}`,\n power: `prgHP.lrPowerHP_${systemIndex + 1}`,\n energy_counter: `prgHP.lrCounterEl_HP_${systemIndex + 1}`,\n external_energy_measurement: false,\n };\n}\n\nexport function newChargeStationMappingEnergyView(systemIndex: number, systemType = 'Webasto') {\n return {\n energy_counter: `prgCS.lrCounterCS_${systemIndex + 1}`,\n error: '',\n power: `prgCS.lrPowerCS_${systemIndex + 1}`,\n title: `${i18n.t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.charge_station')} ${systemIndex + 1}: ${systemType}`,\n external_energy_measurement: false,\n calculate_as_external_device: false,\n };\n}\n\nexport function gridMappingEnergyView() {\n return {\n energy_counter: 'prgEnergy.lrCounterProdGrid',\n reverse_energy_counter: 'prgEnergy.lrCounterConsGrid',\n error: '',\n power: 'prgEnergy.fbGrid.stDataGrid.lrPower',\n title: i18n.t('installationWizard.defaultMappings.systemNames.grid').toString(),\n is_on_grid: 'prgEnergy.fbI.bOffGridModeActive',\n };\n}\n\nexport function houseMappingEnergyView(systemIndex: number) {\n return {\n energy_counter: 'prgEnergy.lrCounterConsHouse',\n error: '',\n power: 'prgEnergy.lrHousePower',\n title: i18n.t('installationWizard.defaultMappings.systemNames.house').toString(),\n };\n}\n\nexport function chargeStationMappingEnergyView(systemIndex: number, systemType = 'Webasto') {\n return {\n energy_counter: `prgCS.lrCounterCS_${systemIndex + 1}`,\n error: '',\n power: `prgCS.lrPowerCS_${systemIndex + 1}`,\n title: `${systemType}`,\n external_energy_measurement: false,\n calculate_as_external_device: false,\n };\n}\n\nexport function electricHeatingMappingEnergyView(systemIndex: number, systemType = 'Askoma') {\n return {\n energy_counter: `prgEHE.lrCounterCons_${systemIndex + 1}`,\n error: '',\n power: `prgEHE.lrPower_${systemIndex + 1}`,\n title: `${systemType} ${systemIndex + 1}`,\n external_energy_measurement: false,\n };\n}\n\nexport function otherBigConsumersEnergyView(systemIndex: number, systemName: string, pilotLine: number) {\n return {\n title: `${systemName} ${systemIndex + 1}`,\n power: `prgPilot.lrPower_${systemIndex + 1}_${pilotLine + 1}`,\n energy_counter: `prgPilot.lrCounter_Cons_${systemIndex + 1}_${pilotLine + 1}`,\n external_energy_measurement: true,\n };\n}\n\n// CHP EnergyView Functions\nexport function chpMappingsEnergyView(systemIndex: number) {\n return {\n energy_counter: `prgBHKW.lrCounterE_Prod_${systemIndex + 1}_BHKW`,\n error: `prgBHKW.byErrorBHKW${systemIndex + 1}`,\n power: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.lrElPower`,\n thermal_power_output: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.lrThermalPower`,\n flow_temperature: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rFlowTemp`,\n return_temperature: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rReturnTemp`,\n buffer_temperature_bottom: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rStorageTempBottom`,\n buffer_temperature_top: `prgBHKW.fbBHKW.stDataBHKWOut${systemIndex + 1}.rStorageTempTop`,\n energy_counter_thermal: `prgBHKW.lrCounterT_Prod_${systemIndex + 1}_BHKW`,\n title: `${i18n.t('installationWizard.defineComponents.componentsPage.systems.chp.title')} ${systemIndex + 1}`,\n };\n}\n\n// function for Dummy Components mapping (External Energy Visualisation)\n\nexport function dummyComponent(systemName: string, pilotLineIndex: number, pilotSystemIndex: number) {\n // prgPilot.wCT_1 for charge station\n return {\n title: `${systemName}`,\n power: `prgPilot.lrPower_${pilotSystemIndex}_${pilotLineIndex}`,\n energy_counter: `prgPilot.lrCounter_Cons_${pilotSystemIndex}_${pilotLineIndex}`,\n external_energy_measurement: true,\n };\n}\n\n// Charging Station Device V2\n\nexport function chargeStationV2Mapping(systemIndex: number, selectedUsers: string[], powerMapping: string, systemType: string) {\n return {\n 'mappings': {\n 'OutputField_actualValue': powerMapping,\n 'ShowEventDot_errorWarningState': `prgCS.bCarConected_${systemIndex + 1}`,\n 'ShowEvent_errorWarningState': '',\n 'Switch2V_onOff': `prgCS.bUseNotFreeCharge_${systemIndex + 1}`,\n 'Switch2V_state': `prgCS.bSUseNotFreeCharge_${systemIndex + 1}`,\n },\n 'meta': {\n 'chargeID': `prgCS.byStartSession_${systemIndex + 1}`,\n 'deviceSchema': {\n 'additionalBasicDevices': [\n 'Switch',\n ],\n 'basicDevices': [\n 'OutputField',\n 'ShowEventDot',\n ],\n },\n 'minMaxBorders': {\n 'OutputField_actualValue': {\n 'max': 100,\n 'min': 0,\n },\n },\n 'selectedUsers': selectedUsers,\n 'systemType': systemType,\n },\n };\n}\n","\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { calculateMinPowerPercent, checkUnsortedArrayEqual, minMaxValidation } from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { IProject } from '@/types/project.types';\nimport {\n getChargeStationPower,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { ChargeModeOptionsKeys } from '@/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue';\nimport { chargeStationV2Mapping } from '@/ui/components/wizards/installationWizard/wizardSettings/defaultMappings';\nimport _ from 'lodash';\nimport { IDevice } from '@/types/devices.types';\nimport {\n IChargeStationSystem,\n IIncludedSystemsChargeStationDefinition,\n IMQTTVariable,\n ISystemsDefinitionsProps,\n NavigationDirection,\n} from '@/types/wizards/installationWizard.types';\nimport { IMember } from '@/types/members.types';\nimport {\n plcVersionDate,\n chargingStationV2Feature,\n newChargeStationLimitDate, hybridVersionDate,\n} from '@/utils/versionManagementUtils';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { UserRoleCode } from '@/utils/userRoles';\n\n@Component({\n computed: {\n ChargeModeOptionsKeys() {\n return ChargeModeOptionsKeys;\n },\n },\n methods: { minMaxValidation },\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class ChargingStationGridSettings extends WizardComponent {\n @Getter('members/members') members!: IMember[];\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Mutation('installationWizard/resetSystemsPropInIncludedSystemTypes') resetSystemsPropInIncludedSystemTypes!: (systemType: 'battery' | 'electric_heating' | 'charge_station' | 'heating_pump') => void;\n @Mutation('installationWizard/addSystemPropertyValues') addSystemPropertyValues!: (data: {\n systemType: string;\n data: any;\n }) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemSystemsProps') handleIncludedSystemsTypesSystemSystemsProps!: (\n { systemName, systemIndex, prop, value }: {\n systemName: string;\n systemIndex: number;\n prop: string;\n value: any;\n }\n ) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('devices/createDevice') createDevice!: (control: IDevice) => Promise;\n @Action('devices/deleteDevice') deleteDevice!: (device: IDevice) => void;\n @Action('members/updateMemberCollections') updateMemberCollections!: (\n { project_id, member, collectionsList }: { project_id: string; member: IMember; collectionsList: string[] }\n ) => Promise;\n\n doesHover = false;\n valid = false;\n settings: any = {};\n chargeStationIndices: any[] = [];\n minimumCharge: any[] = [];\n\n /* Charging Station V2 changes */\n assignedUsers: {id: string; users: string[]}[] = [];\n\n get showChargeStationV2Feature() {\n return plcVersionDate(this.project).getTime() > chargingStationV2Feature.getTime();\n }\n\n /**\n * Handle assigned users change\n */\n assignedUsersChange(event: any, key: number) {\n event.forEach((element: string | {value: string; text: string}, index: number) => {\n if (typeof element !== 'string') {\n // replace object with value\n this.assignedUsers[key].users[index] = element.value;\n }\n });\n }\n\n /**\n * Handle delete user\n */\n handleDeleteUser(item: string, index: number) {\n this.assignedUsers[index].users = this.assignedUsers[index].users.filter((user: string) => user !== item) ?? [];\n }\n\n /**\n * Returns array of electric charging station devices from all devices\n */\n get electricChargingStationV2Devices() {\n return this.allDevices.filter((device: IDevice) => device.data.type === 'ElectricChargingStationV2');\n }\n\n /**\n * Get charge station by index if it exists inside the project\n */\n chargeStationByIndex(index: number) {\n const chargingStations = this.electricChargingStationV2Devices;\n return chargingStations.find((device: IDevice) => device.data.mappings.OutputField_actualValue.includes(`prgCS.lrPowerCS_${index + 1}`) || device.data.mappings.OutputField_actualValue.includes(`prgPilot.lrPower_${index + 1}`));\n }\n\n /**\n * Get charge station by id\n */\n chargeStationById(id: string) {\n return this.electricChargingStationV2Devices.find((device: IDevice) => device.id === id);\n }\n\n /**\n * List of members for user selection\n */\n get selectableMembers() {\n return this.members.map((member: IMember) => ({\n value: member.id,\n text: `${member.first_name} ${member.last_name}`,\n }));\n }\n\n /**\n * Get member name by id\n */\n memberNameById(id: string) {\n const member = this.members.find((m: IMember) => m.id === id);\n return member ? `${member.first_name} ${member.last_name}` : '';\n }\n\n /**\n * Creates or updates electric charging station devices V2 inside the project\n */\n async updateProjectChargeStations() {\n const chargeStationComponents = this.emsDevice.data.meta.controllerMappings.charge_station.components;\n this.assignedUsers.forEach((element: {id: string; users: string[]}, index: number) => {\n const chargeStationType = this.includedSystemsChargeStationDefinitions[index].systemType;\n if (element.id?.length === 0 || element.id === undefined) {\n // create charge station device\n const newChargeStationMapping = chargeStationV2Mapping(\n index,\n element.users,\n chargeStationComponents[`charge_station${index + 1}`].power,\n chargeStationType,\n );\n const collectionId = this.chargeStationByIndex(0)?.collection_id ?? this.emsDevice.collection_id;\n const newDeviceObject: any = {\n data: {\n ...newChargeStationMapping,\n type: 'ElectricChargingStationV2',\n },\n name: `Ladestation ${index + 1}`,\n collection_id: collectionId,\n favorite: false,\n };\n this.createDevice(newDeviceObject);\n } else {\n // get chargeStation by id\n const chargeStation = this.chargeStationById(element.id);\n if (chargeStation) {\n chargeStation.data.meta.systemType = chargeStationType;\n chargeStation.data.meta.selectedUsers = element.users;\n // if chargeStation exists, update the selected users\n this.updateDevice({ device: chargeStation, skipReport: false });\n }\n }\n });\n }\n\n /**\n * Returns array of all selected users for charging stations\n */\n get allSelectedUsers() {\n const getAllSelectedUsers: any = [];\n this.electricChargingStationV2Devices.forEach((device: IDevice) => {\n device.data.meta.selectedUsers.forEach((user: any) => {\n if (getAllSelectedUsers.indexOf(user) === -1) {\n getAllSelectedUsers.push(user);\n }\n });\n });\n return getAllSelectedUsers ?? [];\n }\n\n async updateUserAccess() {\n if (this.electricChargingStationV2Devices.length === 0) return;\n const collectionIdToCheck = this.electricChargingStationV2Devices[0].collection_id;\n // check if all users that are selected for the charging station have access to the area or are admin users\n await this.allSelectedUsers.forEach(async (selectedUserForChargeStation: string) => {\n const memberById = this.members.find((member: IMember) => member.id === selectedUserForChargeStation);\n if (!memberById) return;\n if (memberById.role !== UserRoleCode.admin) {\n const collectionsForUser = memberById.collections;\n if (!collectionsForUser) return;\n if (!collectionsForUser.includes(collectionIdToCheck)) {\n // if user does not have access to the collection we add the collection to the user\n collectionsForUser.push(collectionIdToCheck);\n if (!this.project.id) return;\n await this.updateMemberCollections({\n project_id: this.project.id,\n member: memberById,\n collectionsList: collectionsForUser,\n });\n }\n }\n });\n }\n\n /*\n * Delete charge station devices V2 (if there are any that are not needed anymore)\n */\n async deleteChargeStationDevices() {\n const amountOfChargeStationsEMS = this.chargeStationIndices.length;\n const amountOfChargeStationsInProject = this.electricChargingStationV2Devices.length;\n\n // if there are more charge stations inside the project than in the EMS, delete the ones that are not needed\n if (amountOfChargeStationsInProject > amountOfChargeStationsEMS) {\n for (let index = amountOfChargeStationsEMS; index < amountOfChargeStationsInProject; index++) {\n // delete charge station device by index of mappings\n const chargeStation = this.chargeStationByIndex(index);\n if (chargeStation && index !== 0) {\n // delete charge station device if index is not 0 because one is needed for reference\n this.deleteDevice(chargeStation);\n }\n }\n }\n }\n\n /**\n * Checks if free charge is disabled\n */\n getFreeChargeStateByIndex(index: number) {\n const state: any = this.includedSystems.charge_station.definition[index].noFreeLoading;\n return !!state;\n }\n\n // end of Charging Station V2 changes\n\n currentOption(systemIndex: number) {\n const option = _.cloneDeep(this.selectOptions.find((opt: any) => opt.key === this.minimumCharge[systemIndex].minimum_power_selection));\n if (option) option.value = this.minimumCharge[systemIndex].current;\n return option;\n }\n\n get selectOptions() {\n return [\n {\n key: ChargeModeOptionsKeys.full,\n value: 100,\n text: this.$t('mlModel.EMS.systems.charge_station.settings.fullCharge'),\n },\n {\n key: ChargeModeOptionsKeys.sun,\n value: 0,\n text: this.$t('mlModel.EMS.systems.charge_station.settings.sunCharge'),\n },\n {\n key: ChargeModeOptionsKeys.minimum,\n value: 0,\n text: this.$t('mlModel.EMS.systems.charge_station.settings.minimumCharge'),\n component: 'VTextField',\n },\n ];\n }\n\n get includedSystemsChargeStationSystems(): IChargeStationSystem[] {\n return this.includedSystems.charge_station.systems;\n }\n\n get includedSystemsChargeStationDefinitions(): IIncludedSystemsChargeStationDefinition[] {\n return this.includedSystems.charge_station.definition;\n }\n\n get inputRules() {\n const min = 6;\n const max = 32;\n return [this.fieldMoreThan(min), this.fieldLessThan(max)];\n }\n\n async handleChargeStationField({ key, value, index }: { key: string; value: any; index: any }) {\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'charge_station', systemIndex: index, prop: key, value,\n });\n\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n\n async handleChargeModeSelection({ key, option, index }: { key: string; option: any; index: any }, replaceValue = false) {\n const chargeStationMapping = this.emsDevice.data.meta.controllerMappings.charge_station.components[`charge_station${index + 1}`];\n const maxPower = getChargeStationPower(this.includedSystems.charge_station.definition[index].systemType);\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'charge_station', systemIndex: index, prop: key, value: calculateMinPowerPercent(option.value, maxPower),\n });\n this.minimumCharge[index].minimum_power_selection = option.key;\n if (option.key === 'minimum' && replaceValue) {\n // if min power selected, set input value to current value saved in the EMS object or set to 0\n this.minimumCharge[index].current = chargeStationMapping.current ?? option.value;\n }\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0, page = '') {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, 'componentsPage', value, systemIndex));\n }\n\n async prepareVariablesToSend() {\n const emsCopy = { ...this.emsDevice };\n const chargeStations: ISystemsDefinitionsProps[] = this.includedSystemsChargeStationSystems\n .flatMap((system: IChargeStationSystem, inx: number) => {\n const maxPower = getChargeStationPower(this.includedSystems.charge_station.definition[inx].systemType);\n const { current, minimum_power_selection } = this.minimumCharge[inx];\n const systemVariablesList: [string, IMQTTVariable][] = Object.entries(system);\n\n // Update charge station power selection in ems\n const option = this.selectOptions.find((opt: any) => opt.key === minimum_power_selection)!;\n emsCopy.data.meta.controllerMappings.charge_station.components[`charge_station${inx + 1}`].minimum_power_selection = minimum_power_selection;\n emsCopy.data.meta.controllerMappings.charge_station.components[`charge_station${inx + 1}`].current = minimum_power_selection === ChargeModeOptionsKeys.minimum ? current : maxPower * (option.value) / 100;\n if (minimum_power_selection !== ChargeModeOptionsKeys.minimum) {\n system.min_power.value = maxPower * (option.value) / 100;\n }\n\n // Update charge station name in ems from included systems\n emsCopy.data.meta.controllerMappings.charge_station.components[`charge_station${inx + 1}`].title = this.includedSystemsChargeStationDefinitions[inx].title;\n return systemVariablesList\n .map(([key, el]: [string, IMQTTVariable]) => ({ ...el, systemsIndex: inx, key }));\n });\n\n // eslint-disable-next-line no-restricted-syntax\n for (const ind of this.chargeStationIndices) {\n if (this.isNewChargeStationPlcVersion) {\n const index = typeof ind !== 'number' ? parseInt(ind, 10) - 1 : ind - 1;\n this.setVariablesToSend('chargeStationEnable', 1, index);\n } else {\n const variableToSend = `prgCS.fbCS${ind}.bEnable`;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: 1,\n feedbackVariable: `prgCS.fbCS${ind}.stDataECS.bEnabled`,\n isBoolean: true,\n });\n }\n }\n\n // call send function for every this.settings property in for loop in typescript\n // eslint-disable-next-line no-restricted-syntax\n for (const element of chargeStations) {\n let valueToSend = typeof element?.value === 'string' ? parseFloat(element.value) : element?.value;\n if (element?.key === 'min_power' && this.minimumCharge[element.systemsIndex].minimum_power_selection !== 'minimum') {\n valueToSend = this.selectOptions.find((opt: any) => opt.key === this.minimumCharge[element.systemsIndex].minimum_power_selection)!.value;\n }\n const variableNames: any = {\n min_power: 'chargeStationMinPower',\n priority: 'chargeStationPriority',\n enable_soc: 'chargeStationEnableSOC',\n disable_soc: 'chargeStationDisableSOC',\n };\n\n if (this.isNewChargeStationPlcVersion) {\n this.setVariablesToSend(variableNames[element.key as any], valueToSend, element.systemsIndex);\n } else {\n const variableToSend = element?.variable as string;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: valueToSend,\n feedbackVariable: element.feedbackVariable,\n });\n }\n }\n\n if (this.emsDevice.id) await this.updateDevice({ device: emsCopy, skipReport: false });\n\n if (this.showChargeStationV2Feature) {\n await this.updateProjectChargeStations();\n await this.deleteChargeStationDevices();\n await this.updateUserAccess();\n }\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n get batteryDefinitionEmpty() {\n return this.emsDevice.data.meta.controllerMappings.battery.components.count === 0;\n }\n\n getVariableValuesFromMeasurements() {\n this.includedSystems.charge_station.systems.forEach((value: IChargeStationSystem, index: number) => {\n this.minimumCharge[index].minimum_power_selection = this.emsDevice.data.meta.controllerMappings.charge_station.components[`charge_station${index + 1}`].minimum_power_selection ?? ChargeModeOptionsKeys.minimum;\n const currentValue = this.emsDevice.data.meta.controllerMappings.charge_station.components[`charge_station${index + 1}`].current ?? 0;\n const option = _.cloneDeep(this.selectOptions.find((opt: any) => opt.key === this.minimumCharge[index].minimum_power_selection)!);\n if (this.minimumCharge[index].minimum_power_selection === ChargeModeOptionsKeys.minimum) option.value = currentValue;\n this.handleChargeModeSelection({ key: 'min_power', option, index });\n const variableFromMeasurements = this.measurements[value.priority.variable];\n const notDefaultValue = value.priority.value !== variableFromMeasurements;\n this.handleChargeStationField({\n key: 'priority',\n value: notDefaultValue && variableFromMeasurements !== 0 ? variableFromMeasurements : value.priority.value,\n index,\n });\n this.minimumCharge[index].current = currentValue ?? 0;\n });\n }\n\n async created() {\n this.resetSystemsPropInIncludedSystemTypes('charge_station');\n this.chargeStationIndices = Object.values(this.emsDevice.data.meta.controllerMappings.charge_station.components)\n // eslint-disable-next-line no-nested-ternary,radix\n .map((value: any, index: number) => (value.error ? (index >= 9 ? (parseInt(value.error[value.error.length - 1]) + 10).toString() : value.error[value.error.length - 1]) : undefined))\n .filter((value: number | undefined) => value);\n\n this.chargeStationIndices.forEach((ind: number, index: number) => {\n const defaultValues = {\n min_power: {\n value: 0,\n variable: this.isNewChargeStationPlcVersion ? `prgCS.rMinPower_${ind}` : `prgCS.fbCS${ind}.stSetupECS.byCSMinPower`,\n feedbackVariable: this.isNewChargeStationPlcVersion ? `prgCS.bySMinPower_${ind}` : `prgCS.fbCS${ind}.stDataECS.bySCSMinPower`,\n },\n priority: {\n value: this.batteryDefinitionEmpty ? 1 : 2,\n variable: this.isNewChargeStationPlcVersion ? `prgCS.byPrio_${ind}` : `prgCS.fbCS${ind}.stSetupECS.byPriority`,\n },\n enable_soc: {\n value: 1,\n variable: this.isNewChargeStationPlcVersion ? `prgCS.byEnaSOC_${ind}` : `prgCS.fbCS${ind}.stSetupECS.byEnableSOC`,\n },\n disable_soc: {\n value: 0,\n variable: this.isNewChargeStationPlcVersion ? `prgCS.byDisabSOC_${ind}` : `prgCS.fbCS${ind}.stSetupECS.byDisableSOC`,\n },\n };\n if (!this.includedSystems.charge_station.systems[index]) {\n this.addSystemPropertyValues({ systemType: 'charge_station', data: defaultValues });\n }\n this.minimumCharge.push({\n minimum_power_selection: ChargeModeOptionsKeys.minimum,\n current: 0,\n });\n this.handleChargeModeSelection({ key: 'min_power', option: this.selectOptions[2], index });\n\n if (this.showChargeStationV2Feature) {\n const id = this.chargeStationByIndex(index)?.id!;\n this.assignedUsers.push({ id, users: this.chargeStationByIndex(index)?.data.meta.selectedUsers ?? [] });\n } else {\n this.assignedUsers.push({ id: '', users: [] });\n }\n });\n\n if (this.wasInstallationWizardCompleted || this.navigationDirection === 0) {\n this.getVariableValuesFromMeasurements();\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargingStationSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargingStationSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChargingStationSettings.vue?vue&type=template&id=7b547db0&\"\nimport script from \"./ChargingStationSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChargingStationSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.heatingElementSettings.title`)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.includedSystemsElectricHeatingDefinitions),function(element,key){return _c('v-row',{key:key},[_c('v-col',{attrs:{\"sm\":\"12\",\"md\":\"7\",\"lg\":\"6\"}},[_c('h3',[_c('span',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.heatingElementSettings.systemName`)))]),_c('span',{staticClass:\"ml-1\"},[_vm._v(_vm._s(key + 1)+\":\")]),_c('span',{staticClass:\"ml-1\"},[_vm._v(_vm._s(element.systemType))])]),_c('div',{staticClass:\"pt-4\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.labels.title`),\"type\":\"text\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required]},model:{value:(element.title),callback:function ($$v) {_vm.$set(element, \"title\", $$v)},expression:\"element.title\"}}),_vm._l((_vm.editableSettings),function(entry,inx){return _c('div',{key:inx,staticClass:\"d-flex\"},[(entry.property !== 'legionella_protection')?_c('v-text-field',{attrs:{\"value\":_vm.includedSystemsElectricHeatingSystems[key][entry.property].value,\"label\":_vm.$t(\n `installationWizard.defineEmsSettings.heatingElementSettings.${entry.property}.title`,\n ),\"color\":\"accent\",\"type\":\"number\",\"outlined\":\"\",\"rules\":[\n ..._vm.fieldRules[entry.property],\n ..._vm.minMaxValidation(\n _vm.includedSystemsElectricHeatingSystems[key][entry.property].value,\n entry.min,\n entry.max,\n ),\n ]},on:{\"input\":function($event){return _vm.handleElectricHeatingField({ value: $event, key: entry.property, index: key })}}}):_c('v-select',{attrs:{\"label\":_vm.$t(\n `installationWizard.defineEmsSettings.heatingElementSettings.${entry.property}.title`,\n ),\"color\":\"accent\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":entry.selection,\"item-text\":\"text\",\"item-value\":\"value\",\"rules\":_vm.fieldRules[entry.property]},on:{\"input\":function($event){return _vm.handleElectricHeatingField({ value: $event, key: entry.property, index: key })}},model:{value:(_vm.includedSystemsElectricHeatingSystems[key][entry.property].value),callback:function ($$v) {_vm.$set(_vm.includedSystemsElectricHeatingSystems[key][entry.property], \"value\", $$v)},expression:\"includedSystemsElectricHeatingSystems[key][entry.property].value\"}}),_c('div',{staticClass:\"d-flex justify-center pt-4 pl-2\"},[_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t( `installationWizard.defineEmsSettings.heatingElementSettings.${entry.property}.tooltip`, ))+\" \")]},proxy:true}],null,true)})],1)],1)})],2)])],1)}),1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Mutation, Getter, Action } from 'vuex-class';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport {\n emsLimitsByType,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/wizardLimits';\nimport { IProject } from '@/types/project.types';\nimport {\n IElectricHeatingElementSystem,\n IIncludedSystemsElectricHeatingDefinition,\n ISystemsDefinitionsProps,\n IMQTTVariable,\n} from '@/types/wizards/installationWizard.types';\nimport VueI18n, { TranslateResult } from 'vue-i18n';\nimport { IDevice } from '@/types/devices.types';\nimport {\n legionellaProtectionDate,\n newChargeStationLimitDate,\n plcVersionDate\n} from '@/utils/versionManagementUtils';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class HeatingElementSettings extends WizardComponent {\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Mutation('installationWizard/resetSystemsPropInIncludedSystemTypes')\n resetSystemsPropInIncludedSystemTypes!: (\n systemType: 'battery' | 'electric_heating' | 'charge_station' | 'heating_pump',\n ) => void;\n @Mutation('installationWizard/addSystemPropertyValues') addSystemPropertyValues!: (data: {\n systemType: string;\n data: any;\n }) => void;\n\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemSystemsProps')\n handleIncludedSystemsTypesSystemSystemsProps!: ({\n systemName,\n systemIndex,\n prop,\n value,\n }: {\n systemName: string;\n systemIndex: number;\n prop: string;\n value: any;\n }) => void;\n\n doesHover = false;\n valid = false;\n fieldRules: any = null;\n editableSettings: {\n property: keyof IElectricHeatingElementSystem;\n unit: string;\n min: number | null;\n max: number | null;\n selection?: {\n value: number;\n text: string | TranslateResult;\n }[];\n }[] = [\n { property: 'priority', unit: '', min: 1, max: 255 },\n { property: 'temperature_on', unit: '°C', min: 0, max: 120 },\n { property: 'temperature_off', unit: '°C', min: 0, max: 120 },\n { property: 'temperature_max', unit: '°C', min: 0, max: 120 },\n ];\n\n get batteryDefinitionEmpty() {\n return this.emsDevice.data.meta.controllerMappings.battery.components.count === 0;\n }\n\n get legionellaSelection() {\n return [\n {\n value: 0,\n text: this.$t('installationWizard.defineEmsSettings.heatingElementSettings.legionella_protection.warmWaterStorage'),\n },\n {\n value: 1,\n text: this.$t('installationWizard.defineEmsSettings.heatingElementSettings.legionella_protection.heatingBuffer'),\n },\n ];\n }\n\n get isLegionellaProtectionEnabled() {\n return (this.isDeye || this.isSolarmax) && (plcVersionDate(this.project).getTime() > legionellaProtectionDate.getTime());\n }\n\n get includedSystemsElectricHeatingSystems(): IElectricHeatingElementSystem[] {\n return this.includedSystems.electric_heating.systems;\n }\n\n get includedSystemsElectricHeatingDefinitions(): IIncludedSystemsElectricHeatingDefinition[] {\n return this.includedSystems.electric_heating.definition;\n }\n\n async handleElectricHeatingField({ key, value, index }: { key: string; value: any; index: any }) {\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'electric_heating',\n systemIndex: index,\n prop: key,\n value,\n });\n\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n\n // rest is handled automatically\n async prepareVariablesToSend() {\n const emsCopy = { ...this.emsDevice };\n const electricHeatings: ISystemsDefinitionsProps[] =\n this.includedSystemsElectricHeatingSystems.flatMap(\n (system: IElectricHeatingElementSystem, inx: number) => {\n const systemVariablesList: [string, IMQTTVariable][] = Object.entries(system);\n\n // Update charge station name in ems from included systems\n emsCopy.data.meta.controllerMappings.electric_heating.components[`electric_heating${inx + 1}`].title = this.includedSystemsElectricHeatingDefinitions[inx].title;\n return systemVariablesList.map(([key, el]: [string, IMQTTVariable]) => ({\n ...el,\n systemsIndex: inx,\n key,\n }));\n },\n );\n\n for (let i = 0; i < this.includedSystemsElectricHeatingDefinitions.length; i++) {\n const variableToSend = `prgEHE.fbEHE${i + 1}.bEnable`;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: 1,\n feedbackVariable: `prgEHE.fbEHE${i + 1}.stDataEHE.bEnabled`,\n isBoolean: true,\n });\n }\n\n // Update ems to override title of system\n if (this.emsDevice.id) await this.updateDevice({ device: emsCopy, skipReport: false });\n\n // call send function for every this.settings property in for loop in typescript\n // eslint-disable-next-line no-restricted-syntax\n for (const element of electricHeatings) {\n if (element.key === 'legionella_protection' && (!this.isLegionellaProtectionEnabled)) {\n return;\n }\n const valueToSend =\n typeof element?.value === 'string' ? parseFloat(element.value) : element?.value;\n const variableToSend = element?.variable as string;\n this.variablesToSend.set(variableToSend, {\n variable: variableToSend,\n value: valueToSend,\n feedbackVariable: element.feedbackVariable,\n });\n }\n }\n\n async created() {\n if (!this.batteryDefinitionEmpty) this.editableSettings[this.editableSettings.findIndex((element) => element.property === 'priority')].min = 2;\n // Only after date on which legionella protection was added\n if (this.isLegionellaProtectionEnabled) {\n this.editableSettings.push({\n property: 'legionella_protection',\n unit: '',\n selection: this.legionellaSelection,\n min: 0,\n max: 1,\n });\n }\n this.resetSystemsPropInIncludedSystemTypes('electric_heating');\n Object.keys(this.includedSystemsElectricHeatingDefinitions).forEach(\n (element: string, index: number) => {\n const defaultValues = {\n priority: {\n value: 3,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.byPriority`,\n },\n temperature_on: {\n value: 35,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.uiTargetTempOn`,\n },\n temperature_off: {\n value: 50,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.uiTargetTempOff`,\n },\n temperature_max: {\n value: 65,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.uiTargetTempMax`,\n },\n legionella_protection: {\n value: 1,\n variable: `prgEHE.bDisableLegionellaPr_${index + 1}`,\n feedbackVariable: `prgEHE.bSDisableLegionellaPr_${index + 1}`,\n isBoolean: true,\n },\n timeEnabled: {\n value: 0,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.bTimeEnabled`,\n feedbackVariable: `prgEHE.fbEHE${index + 1}.stDataEHE.bSTimeEnabled`,\n isBoolean: true,\n },\n enableSOC: {\n value: 1,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.byEnableSOC`,\n },\n disableSOC: {\n value: 0,\n variable: `prgEHE.fbEHE${index + 1}.stSetupEHE.byDisableSOC`,\n },\n };\n if (!this.includedSystems.electric_heating.systems[index]) {\n this.addSystemPropertyValues({ systemType: 'electric_heating', data: { ...defaultValues } });\n }\n },\n );\n this.fieldRules = {\n priority: [this.rules.required, this.rules.noCommas],\n temperature_on: [this.rules.required, this.rules.noCommas],\n temperature_off: [this.rules.required, this.rules.noCommas],\n temperature_max: [this.rules.required, this.rules.noCommas],\n legionella_protection: [this.rules.required],\n };\n if (this.wasInstallationWizardCompleted) {\n this.getVariableValuesFromMeasurements();\n }\n }\n\n getVariableValuesFromMeasurements() {\n const keyArray = this.editableSettings.map((el) => el.property);\n // loop over existing heating elements\n this.includedSystems.electric_heating.systems.forEach((system: IElectricHeatingElementSystem, index) => {\n // loop over all variables in heating element that the user can edit inside the ui\n Object.entries(system).forEach(([key, entry]: any) => {\n // get variable default value\n const defaultValue = entry.value;\n const currentMeasurentValue = this.measurements[entry.variable];\n if (currentMeasurentValue !== defaultValue && keyArray.includes(key) && currentMeasurentValue !== undefined) {\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'electric_heating',\n systemIndex: index,\n prop: key,\n value: (key === 'priority' && currentMeasurentValue === 0 ) ? defaultValue : currentMeasurentValue,\n });\n }\n });\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingElementSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingElementSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingElementSettings.vue?vue&type=template&id=540ede71&\"\nimport script from \"./HeatingElementSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingElementSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.selectedIndex === 1,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.generalEmsSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"system-part\"},[_c('div',{staticClass:\"d-flex\"},[_c('div',{staticStyle:{\"width\":\"30vw !important\"}},[_c('v-select',{attrs:{\"items\":_vm.emsModes,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineEmsSettings.generalEmsSettings.mode.title'),\"color\":\"accent\"},on:{\"change\":_vm.handleSelection},model:{value:(_vm.selectedMode),callback:function ($$v) {_vm.selectedMode=$$v},expression:\"selectedMode\"}})],1),(_vm.selectedIndex === 1)?_c('div',{staticClass:\"mt-4 ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineEmsSettings.generalEmsSettings.modes.${_vm.selectedIndex}.tooltip`))+\" \")]},proxy:true}],null,false,2065420142)})],1):_vm._e()]),(_vm.selectedIndex !== 1)?_c('div',{staticClass:\"mt-4 ml-2 selectionWarning\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineEmsSettings.generalEmsSettings.mode.warning'))+\" \")]):_vm._e()])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { IIncludedSystemsTypes, WizardPath } from '@/types/wizards/installationWizard.types';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\n\n@Component({\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class HardwareSpecification extends WizardComponent {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('installationWizard/includedSystemsTypes') includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/considerProjectStatus') considerProjectStatus!: boolean;\n\n doesHover = false;\n get emsModes() {\n return [\n this.$t('installationWizard.defineEmsSettings.generalEmsSettings.modes.0.title'),\n this.$t('installationWizard.defineEmsSettings.generalEmsSettings.modes.1.title'),\n this.$t('installationWizard.defineEmsSettings.generalEmsSettings.modes.2.title'),\n this.$t('installationWizard.defineEmsSettings.generalEmsSettings.modes.3.title'),\n ];\n }\n\n get tenantInstallationNoBattery() {\n return this.project.meta.wizardSettings?.wizardPath === WizardPath.TENANT_INSTALLATION_NO_BATTERY;\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0, page = 'pilotPage') {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, page, value, systemIndex));\n }\n\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.wizardState.wizardPath);\n }\n\n get power(): number {\n return (this.measurements[installationWizardVariables('maxPowerInverter', 'componentsPage').variable] as number ?? 0) / this.wizardState.inverterCount;\n }\n\n sendBatteryVariables() {\n this.setVariablesToSend('isBattery', (this.includedSystemsTypes.battery.definition.length > 0 && !this.isNoBatteryPath) ? 1 : 0, 0, 'componentsPage');\n if (this.power >= 30000) {\n const separateBatteryInput = this.includedSystems.battery.definition.length > 1 ? 1 : 0;\n const oneBatteryInput = this.wizardState.hybridSettings.useBothBatteryInputs ? 1 : 0;\n this.setVariablesToSend('oneBatteryInput', separateBatteryInput === 1 ? 0 : oneBatteryInput, 0, 'componentsPage');\n } else {\n this.setVariablesToSend('oneBatteryInput', 0, 0, 'componentsPage');\n }\n }\n\n selectedMode: any = this.$t('installationWizard.defineEmsSettings.generalEmsSettings.modes.1.title');\n selectedIndex: any = 1;\n async prepareVariablesToSend(): Promise {\n // Send operation mode\n this.variablesToSend.set('OperationMode', {\n variable: 'prgEMS.fbEMS.eOperationMode',\n value: this.selectedIndex,\n });\n\n // Enable EMS\n if (!this.tenantInstallationNoBattery) {\n this.variablesToSend.set('EnableEMS', {\n variable: 'prgEMS.fbEMS.bEnable',\n value: 1,\n feedbackVariable: 'prgEMS.fbEMS.bStateEnable',\n isBoolean: true,\n });\n }\n\n if (!this.isSolarmax) this.sendBatteryVariables();\n }\n\n handleSelection() {\n this.selectedIndex = this.emsModes.indexOf(this.selectedMode); // Set selected mode before save.\n }\n\n async created() {\n if (this.wasInstallationWizardCompleted) {\n await this.getVariableValuesFromMeasurements();\n }\n }\n\n async getVariableValuesFromMeasurements() {\n const mqttOperationMode = await this.measurements['prgEMS.fbEMS.eOperationMode'];\n if (mqttOperationMode) {\n this.selectedIndex = mqttOperationMode;\n }\n }\n}\n","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { cloneDeep } from 'lodash';\nimport {\n convertBitToArray,\n convertDecimalNumberToBinary,\n minMaxValidation,\n} from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { allEnergyCircleTypes } from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n ChargeModeOptionsKeys,\n} from '@/ui/components/devices/devices/base/ChargeStationMinPowerSelection.vue';\nimport { IDevice } from '@/types/devices.types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport {\n IIncludedSystemsChargeStationDefinition,\n IIncludedSystemsTypes,\n ILineConfig, IMQTTVariable,\n IPilotMappings,\n NavigationDirection, WizardPath,\n} from '@/types/wizards/installationWizard.types';\nimport {\n hybridVersionDate,\n newChargeStationLimitDate, paragraph14Date,\n mennekesEnerchargeDate,\n plcVersionDate,\n tenantUpdateWagoCounters,\n} from '@/utils/versionManagementUtils';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport {\n batteryMappingEMSTenant,\n batteryMappingEnergyViewTenant,\n} from '@/ui/components/wizards/tenantWizard/wizardSettings/defaultMappings';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { IInverter, SerialNumberType } from '@/types/serialNumber.types';\nimport { ChargeStationType, IChargeStationSetting, IProject } from '@/types/project.types';\nimport {\n availableExternalMeasurementDeyeTypes,\n availableExternalMeasurementTypes,\n getChargeStationNameByValue,\n getChargeStationTypeInformationBySystemType,\n} from '../../wizardSettings/systemTypes';\nimport {\n batteryMappingEMS,\n batteryMappingEnergyView,\n chargeStationMappingEMS,\n chargeStationMappingEnergyView,\n chpMappingsEMS,\n chpMappingsEnergyView,\n dummyComponent,\n electricHeatingMappingEMS,\n electricHeatingMappingEnergyView,\n generatorMappingEnergyView,\n generatorMappingsEMS,\n gridMappingEMS,\n gridMappingEnergyView,\n heatingPumpMappingEMS,\n houseMappingEMS,\n houseMappingEnergyView,\n multiBatteryMappingEMS,\n multiBatteryMappingEnergyView,\n newChargeStationMappingEnergyView,\n newChargeStationMappingsEMS,\n newHeatingPumpMappingsEMS,\n newHeatingPumpMappingsEnergyView,\n otherBigConsumerMappingsEMS,\n pvMappingEMS,\n pvMappingEMSDeye,\n pvMappingEnergyView,\n pvMappingEnergyViewDeye, stringInverterMappingEMS,\n} from '../../wizardSettings/defaultMappings';\n\nenum InitiationMode {\n skip,\n default,\n alreadyDone,\n}\n\n@Component({\n methods: { minMaxValidation },\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class PilotSpecification extends WizardComponent {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @State('installationWizard') installationWizardState!: IInstallationWizardState;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('serialNumber/serialNumbersFromMqtt') serialNumbersFromMqtt!: { [key: string]: string };\n @Getter('installationWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Getter('installationWizard/pilotSystemCount') pilotSystemCount!: number;\n @Getter('installationWizard/isPilotPageDone') isPilotPageDone!: IIncludedSystemsTypes;\n @Getter('installationWizard/savedPilotMapping') savedPilotMapping!: IPilotMappings;\n @Getter('installationWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Getter('installationWizard/ACPV') ACPV!: any;\n @Getter('installationWizard/isHybrid') isHybrid!: boolean;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('projects/project') project!: any;\n @Getter('installationWizard/pilot') pilot!: {\n isSelected: boolean;\n definition: [];\n count: number;\n };\n @Getter('installationWizard/serialNumberCheckDone') serialNumberCheckDone!: boolean;\n @Getter('tenantWizard/overallProductionMeasurement') overallProductionMeasurement!: string;\n @Getter('installationWizard/externalVisualisation') externalVisualisation!: {\n count: number;\n definition: [];\n };\n @Getter('installationWizard/getDisablePilotDevices') getDisablePilotDevices!: boolean;\n @Getter('serialNumber/inverters') inverters!: IInverter[];\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise\n @Action('serialNumber/fetchInverters') fetchInverters!: (projectId: string) => Promise;\n @Action('serialNumber/activateSerialNumbers') activateSerialNumbers!: (payload: {\n projectId: string;\n inverters: { id: string; type: SerialNumberType }[];\n }) => Promise;\n @Action('devices/updateDevice') updateDevice!: (data: {\n device: IDevice;\n skipReport: boolean;\n }) => Promise;\n @Action('installationWizard/initDevices') initDevices!: () => void;\n @Action('tenantWizard/loadTenant') loadTenant!: (project_id: string) => Promise;\n @Mutation('installationWizard/setIsPilotPageDone') setIsPilotPageDone!: (payload: {}) => void;\n @Mutation('installationWizard/updateEMSDeviceData') updateEMSDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/setWizardBlocked') setWizardBlocked!: (payload: boolean) => void;\n @Mutation('installationWizard/setSerialNumberCheckDone') setSerialNumberCheckDone!: () => void;\n @Mutation('serialNumber/setInverters') setInverters!: (inverters: {\n id: string;\n type: SerialNumberType;\n }[]) => void;\n\n pilotMapping: IPilotMappings[] = [];\n availableDeviceItems: string[] = [];\n selectedItems: { text: string; value: string }[] = [];\n valid = false;\n loading = false;\n // contains the amount of lines that must be filled\n amountOfFilledPilotLines = 0;\n chargeStationTypeCurrentIndex = {\n webasto: 0,\n weidmüller: 2,\n };\n\n /**\n * creates an array of all Pilot lines that have a device connected in order to create 'dummy devices'\n */\n get pilotLineConfigs(): {\n element: { device: { text: string; value: string }; name: string; disabled: boolean };\n pilotIndex: number;\n lineIndex: number;\n }[] {\n const pilotLines: any = this.pilotMapping.map((value: IPilotMappings, pilotIndex: number) => {\n return value.lineConfig\n .map((element: {\n device: { text: string; value: string };\n name: string;\n disabled: boolean;\n }, lineIndex: number) => {\n if (element.device.value !== '') {\n return { element, pilotIndex: pilotIndex + 1, lineIndex: lineIndex + 1 };\n }\n return undefined;\n }).filter(element => element !== undefined);\n });\n return [].concat(...pilotLines);\n }\n\n get disableEmptyLineConfigFields() {\n if (this.pilotMapping[0]) {\n const selectedFields = this.pilotMapping[0].lineConfig.filter((element: ILineConfig) => {\n return element.device.text !== '';\n });\n return selectedFields.length >= this.amountOfFilledPilotLines;\n }\n return false;\n }\n\n get lineDeviceItems() {\n return this.availableDeviceItems\n .filter((item1: any) => !this.selectedItems.some(item2 => item2.text === item1.text));\n }\n\n get hasLynusInverter(): boolean {\n return this.project.meta.hasLynusInverter ?? true;\n }\n\n /**\n * Contains paths where it is required to clear all none acpv components\n * Only String_Inverter Path is missing because this is handled in a different case\n */\n get filterNoneAcPvSystems() {\n return this.installationWizardState.wizardPath === WizardPath.TENANT_INSTALLATION_NO_BATTERY;\n }\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.installationWizardState.wizardPath);\n }\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n get tenantPaths() {\n const tenantPaths = [WizardPath.INSTALLATION_TENANT, WizardPath.TENANT, WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER];\n return tenantPaths.includes(this.installationWizardState.wizardPath);\n }\n\n initPilotMappings() {\n this.pilotMapping = Array(this.pilotSystemCount).fill({\n ctRelationship: 100,\n lineConfig: [\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n { device: { text: '', value: '' }, name: '', disabled: false },\n ],\n });\n }\n\n /**\n * Prefills pilotMapping (lineConfig) and selectedItem based on the given input from the user inside Components Page\n * currently its only working for charge_stations because its the only device that can be connected to a external measurement\n * inside the Components Page\n */\n initAlreadySelectedItems() {\n Object.entries(this.includedSystems).forEach(([systemName, systemOptions]) => {\n let mappings = [];\n if (systemName === 'charge_station') {\n mappings = systemOptions.definition.map((systemInfo: any, index: number) => {\n if (typeof systemInfo?.connectWithLine === 'number') {\n // given charge station is an external visualisation\n const text = getChargeStationNameByValue(systemInfo.systemType) ?? '';\n const value = `${systemName}--${index}`;\n\n // prefill pilotMapping and selectedItem array\n this.fillPilotMapping(text, systemInfo, value);\n this.addSelectedItem(text, systemInfo, value);\n\n return { text, value };\n } else return undefined;\n }).filter((value: any) => value !== undefined);\n }\n if (systemName === 'heating_pump' || systemName === 'big_consumer') {\n systemOptions.definition.forEach((systemInfo: any, index: number) => {\n // eslint-disable-next-line no-restricted-globals\n if (typeof systemInfo?.connectWithLine === 'number' && !isNaN(systemInfo?.connectWithLine)) {\n // given charge station is an external visualisation\n const hpTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.heating_pump').toString();\n const bcTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.big_consumer').toString();\n\n const text = systemName === 'heating_pump' ? hpTranslation : bcTranslation;\n const value = `${systemName}--${index}`;\n\n // prefill pilotMapping and selectedItem array\n this.fillPilotMapping(text, systemInfo, value);\n this.addSelectedItem(text, systemInfo, value);\n mappings.push({ text, value });\n }\n });\n }\n if (systemName === 'heating_pump_consumer') {\n systemOptions.definition.forEach((systemInfo: any, index: number) => {\n // eslint-disable-next-line no-restricted-globals\n if (typeof systemInfo?.connectWithLine === 'number' && !isNaN(systemInfo?.connectWithLine)) {\n const text = `${this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.heating_pump')} (SG Ready)`;\n const value = `${systemName}--${index}`;\n this.fillPilotMapping(text, systemInfo, value);\n this.addSelectedItem(text, systemInfo, value);\n mappings.push({ text, value });\n }\n });\n }\n\n this.availableDeviceItems = this.availableDeviceItems.concat(mappings);\n });\n }\n\n fillPilotMapping(text: string, systemInfo: {\n connectWithLine: number;\n systemType: string;\n }, value: string) {\n // fill pilotMapping device, disabled\n const lineConfigInstance = this.pilotMapping[0].lineConfig[systemInfo?.connectWithLine - 1];\n lineConfigInstance.device = { text: text ?? systemInfo.systemType, value };\n lineConfigInstance.name = text ?? systemInfo.systemType;\n lineConfigInstance.disabled = true;\n }\n\n addSelectedItem(text: string, systemInfo: {\n connectWithLine: number;\n systemType: string;\n }, value: string) {\n // fill selectedItems\n this.selectedItems.push({ text: text ?? systemInfo.systemType, value });\n }\n\n initOtherSelectionOptions() {\n const otherMappings: any = [...availableExternalMeasurementTypes, ...((this.isDeye || this.isSolarmax) ? availableExternalMeasurementDeyeTypes : [])].map(((value: string) => {\n const optionText = this.$t(`installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.${value}`);\n return { text: optionText, value: `${value}` };\n }));\n this.availableDeviceItems = this.availableDeviceItems.concat(otherMappings);\n }\n\n /**\n * Clears all counts and components of the EMS/ EnergyView mappings so we can fill them with the user selected systems\n */\n clearEnergyDevices(mappings: any) {\n let elementsToSkip: any = [];\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n if (!this.hasLynusInverter) {\n // all items from the following list are set by the tenant therefor we skip them\n elementsToSkip = ['grid', 'house', 'pv', 'battery'];\n } else if (this.hasLynusInverter) {\n elementsToSkip = ['house']; // house is set by tenant therefor we skip it\n }\n }\n allEnergyCircleTypes.forEach((systemType: string) => {\n if (elementsToSkip.includes(systemType)) {\n // because those systems are allready set from tenant they should not be cleared\n return;\n }\n if (mappings[systemType] === undefined) {\n return;\n }\n mappings[systemType].components = {};\n });\n return mappings;\n }\n\n async savePvPerInverter(pvPerInverter: { [key: number]: number[] }) {\n const localProject = JSON.parse(JSON.stringify(this.project));\n const pvPerInverterAsNumbers: { [key: string]: number } = {};\n Object.entries(pvPerInverter).forEach(([key, value]) => {\n pvPerInverterAsNumbers[key.toString()] = value.length;\n });\n localProject.meta.wizardSettings.pvPerInverter = pvPerInverterAsNumbers;\n\n await this.updateProject(localProject);\n }\n\n get isP14Version() {\n return plcVersionDate(this.project).getTime() > paragraph14Date.getTime();\n }\n\n fillPvMappings(emsMappings: any, energyViewMappings: any) {\n if (!this.hasLynusInverter) return; // skip pv if tenant only\n if (this.isDeye || this.isSolarmax) {\n // deye has 4 normal pv mappings and can have one acpv mapping\n // loop fills in the pv's\n\n // pvIndices should be the selected amount multiplied by the number of inverters selected\n let maxIndex = 0;\n const pvPerInverter: { [key: number]: number[] } = {};\n for (let i = 0; i < this.installationWizardState.inverterCount; i++) {\n pvPerInverter[i] = Array.from({ length: this.includedSystems.pv.definition.filter((element: any) => element.inverter === i).length }, (_, i) => i);\n }\n Object.entries(pvPerInverter).forEach(([inverterIndexStr, pvIndices]) => {\n const inverterIndex = Number(inverterIndexStr);\n pvIndices.forEach((_, index: number) => {\n emsMappings.pv.components[`pv${maxIndex + 1}`] = pvMappingEMSDeye(index + 1, false, inverterIndex + 1);\n energyViewMappings.pv.components[`pv${maxIndex + 1}`] = pvMappingEnergyViewDeye(index + 1, false, inverterIndex + 1);\n maxIndex++;\n });\n });\n this.savePvPerInverter(pvPerInverter);\n\n if (this.ACPV.isSelected) {\n const index = Object.keys(emsMappings.pv.components).length + 1;\n // if ac pv is selected we set the acpv mapping and set the count\n emsMappings.pv.components[`pv${index}`] = pvMappingEMSDeye(maxIndex + 1, true);\n energyViewMappings.pv.components[`pv${index}`] = pvMappingEnergyViewDeye(maxIndex + 1, true);\n energyViewMappings.pv.count = index;\n }\n } else {\n // azzurro can only have one pv\n emsMappings.pv.components.pv1 = pvMappingEMS(0);\n energyViewMappings.pv.components.pv1 = pvMappingEnergyView(0);\n }\n }\n\n get isMennekesEnerchargeVersion() {\n return plcVersionDate(this.project).getTime() > mennekesEnerchargeDate.getTime() && (this.isDeye || this.isSolarmax);\n }\n\n getChargeStationType(chargeStations: IIncludedSystemsChargeStationDefinition[], index: number) {\n let { systemType } = chargeStations[index];\n const { webastoType } = chargeStations[index];\n\n if (chargeStations[index].occupiedByTwinPoint) {\n systemType = this.includedSystems.charge_station.definition[index - 1].systemType;\n }\n\n let chargeStationType: ChargeStationType;\n switch (systemType) {\n case 'Webasto11':\n chargeStationType = webastoType === 0 ? ChargeStationType.WebastoNext11 : ChargeStationType.WebastoUnite11;\n break;\n case 'Webasto22':\n chargeStationType = webastoType === 0 ? ChargeStationType.WebastoNext22 : ChargeStationType.WebastoUnite22;\n break;\n default:\n chargeStationType = systemType as ChargeStationType;\n break;\n }\n return chargeStationType;\n }\n\n /** adds all components to EnergyView and EMS objects, that are not dummy components */\n async fillEnergyDevicesControllerMappings() {\n let emsMappings = cloneDeep(this.emsDevice.data.meta.controllerMappings);\n let energyViewMappings = cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n // clear all energy devices\n emsMappings = this.clearEnergyDevices(emsMappings);\n energyViewMappings = this.clearEnergyDevices(energyViewMappings);\n\n if (this.hasOnlyStringInverter) {\n // clear all pv mappings and add the correct amount of pv's selected by the user\n emsMappings.pv = {\n components: {},\n count: 0,\n };\n energyViewMappings.pv = {\n components: {},\n count: 0,\n };\n for (let i = 0; i < this.installationWizardState.stringInverterCount; i++) {\n emsMappings.pv.components[`pv${i + 1}`] = stringInverterMappingEMS(i);\n energyViewMappings.pv.components[`pv${i + 1}`] = stringInverterMappingEMS(i);\n emsMappings.pv.count++;\n energyViewMappings.pv.count++;\n }\n\n // remove battery and grid in case of string inverter only as there will only be acpv and house\n emsMappings.battery = {\n components: {},\n count: 0,\n };\n energyViewMappings.battery = {\n components: {},\n count: 0,\n };\n\n // for string wizard only systems remove grid as it cant display any values\n emsMappings.grid.components = {};\n energyViewMappings.grid.components = {};\n emsMappings.grid.count = 0;\n energyViewMappings.grid.count = 0;\n } else {\n // check if date is newer and a value is set by hasLynusInverter\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime() && this.project.meta.hasLynusInverter !== undefined) {\n // skip grid if we dont have a lynus inverter, because it is set by tenant\n if (this.hasLynusInverter) {\n // Grid and House is default 1\n const gridMappingsEMS = gridMappingEMS();\n // add the size in amps to the grid mapping\n gridMappingsEMS.size_in_amps = this.emsDevice.data.meta.controllerMappings.grid.components.grid1?.size_in_amps ?? 0;\n emsMappings.grid.components.grid1 = gridMappingsEMS;\n energyViewMappings.grid.components.grid1 = gridMappingEnergyView();\n emsMappings.grid.count = 1;\n energyViewMappings.grid.count = 1;\n\n if (emsMappings.house.mappings === 0 && energyViewMappings.house.mappings === 0) {\n // add check to not add the wrong count if the houses are set inside the tenant\n emsMappings.house.count = 1;\n energyViewMappings.house.count = 1;\n }\n } else {\n if (this.installationWizardState.wizardPath === WizardPath.TENANT_INSTALLATION_NO_BATTERY) {\n // if no battery is selected we add the grid mapping\n emsMappings.grid.components.grid1 = gridMappingEMS();\n energyViewMappings.grid.components.grid1 = gridMappingEnergyView();\n emsMappings.grid.count = 1;\n energyViewMappings.grid.count = 1;\n }\n }\n } else {\n // Grid and House is default 1\n emsMappings.house.components.house1 = houseMappingEMS(1);\n energyViewMappings.house.components.house1 = houseMappingEnergyView(1);\n emsMappings.house.count = 1;\n energyViewMappings.house.count = 1;\n\n const gridMappingsEMS = gridMappingEMS();\n // add the size in amps to the grid mapping\n gridMappingsEMS.size_in_amps = this.emsDevice.data.meta.controllerMappings.grid.components.grid1?.size_in_amps ?? 0;\n emsMappings.grid.components.grid1 = gridMappingsEMS;\n energyViewMappings.grid.components.grid1 = gridMappingEnergyView();\n emsMappings.grid.count = 1;\n energyViewMappings.grid.count = 1;\n }\n\n this.chargeStationTypeCurrentIndex = {\n webasto: 0,\n weidmüller: 2,\n };\n let amountOfOtherHeatingPumps = 0;\n const chargeStationTypes: IChargeStationSetting[] = [];\n\n Object.entries(this.includedSystems).forEach(([type, system]) => {\n if (system.definition.length === 0 && type === 'battery') this.fillPvMappings(emsMappings, energyViewMappings);\n system.definition.forEach((device: any, deviceIndex: number) => {\n const systemName = `${type}${deviceIndex + 1}`;\n const pilotMappingKey = `${type}--${deviceIndex}`;\n\n if (this.isNoBatteryPath) {\n emsMappings.battery.components = {};\n energyViewMappings.battery.components = {};\n }\n\n switch (type) {\n case 'battery': {\n // skip because components are set by tenant\n if (!this.hasLynusInverter && plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) break;\n\n if (this.isSolarmax || (this.isDeye && this.isHybridVersion)) {\n // battery amount is dependent on amount of inverters -> selected amount of batteries multiplied by the number of inverters selected\n // create array to loop over\n const batteries = Array.from({ length: this.includedSystems.battery.definition.length * this.installationWizardState.inverterCount }, (_, i) => i + 1);\n batteries.forEach((_, index) => {\n emsMappings.battery.components[`battery${index + 1}`] = multiBatteryMappingEMS(index, this.includedSystems.battery.definition.length, this.isP14Version);\n energyViewMappings.battery.components[`battery${index + 1}`] = multiBatteryMappingEnergyView(index, this.includedSystems.battery.definition.length);\n });\n } else {\n // adds all the \"battery\" Mappings to Device controller mappings\n emsMappings[type].components[systemName] = batteryMappingEMS(deviceIndex, this.isP14Version);\n energyViewMappings[type].components[systemName] = batteryMappingEnergyView(deviceIndex);\n }\n // if one battery is selected there must be one PV System\n if (deviceIndex === 0) {\n this.fillPvMappings(emsMappings, energyViewMappings);\n }\n break;\n }\n case 'charge_station': {\n // will contain Charge Station Type and is External information for later mapping\n let chargeStationInformations = getChargeStationTypeInformationBySystemType(device.systemType);\n\n // there is the posibility that Weidmüller Charge Stations with external energy measurement are not connected to a line\n // solution if charge station needs to have internal mappings for power and counter\n if (device.connectWithLine === 'noLine' && !device.systemType.includes('external')) {\n chargeStationInformations.isExternal = false;\n }\n\n // adds all the \"charge station\" Mappings to Device controller mappings\n // search line config to get name\n const systemObject = this.pilotLineConfigs.find((object: any) => {\n return object.element.device.value === pilotMappingKey;\n });\n\n const pilotPowerMapping = `prgPilot.lrPower_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n const pilotCounterMapping = `prgPilot.lrCounter_Cons_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n\n const isSecondPointChargeStation = device.occupiedByTwinPoint;\n if (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime() && (this.isDeye || this.isSolarmax)) {\n let deviceName = getChargeStationNameByValue(device.systemType) ?? '';\n\n if (isSecondPointChargeStation) {\n // use system type from previous index to get device name\n const previousIndex = deviceIndex - 1;\n deviceName = `${getChargeStationNameByValue(this.includedSystems.charge_station.definition[previousIndex].systemType)} (2)` ?? '';\n }\n let chargeStationType: ChargeStationType;\n if (this.isMennekesEnerchargeVersion) {\n // if its a webasto we need to check if its a Next or a Unite\n chargeStationType = this.getChargeStationType(this.includedSystems.charge_station.definition, deviceIndex);\n chargeStationInformations = { type: chargeStationType, isExternal: false };\n chargeStationTypes.push({ type: chargeStationType });\n }\n // adds all the \"battery\" Mappings to Device controller mappings\n const defaultChargeStationEMSMappings = newChargeStationMappingsEMS(deviceIndex, deviceName, this.isP14Version);\n const defaultChargeStationEnergyViewMappings = newChargeStationMappingEnergyView(deviceIndex, deviceName);\n\n if (chargeStationInformations.isExternal && chargeStationInformations.type === 'Weidmüller' && device.connectWithLine !== 'noLine') {\n defaultChargeStationEMSMappings.power = pilotPowerMapping;\n defaultChargeStationEMSMappings.energy_counter = pilotCounterMapping;\n\n defaultChargeStationEnergyViewMappings.power = pilotPowerMapping;\n defaultChargeStationEnergyViewMappings.energy_counter = pilotCounterMapping;\n\n defaultChargeStationEMSMappings.calculate_as_external_device = true;\n defaultChargeStationEnergyViewMappings.calculate_as_external_device = true;\n }\n\n const chargeStationComponents = this.emsDevice.data.meta.controllerMappings.charge_station.components;\n const onlyDummies = Object.values(chargeStationComponents).every((element: any) => element.external_energy_measurement && element.error === undefined);\n const componentName = `charge_station${onlyDummies ? Object.keys(chargeStationComponents).length + deviceIndex + 1 : deviceIndex + 1}`;\n\n const title = this.emsDevice.data.meta.controllerMappings[type].components[componentName]?.title ?? defaultChargeStationEMSMappings.title;\n this.includedSystems.charge_station.definition[deviceIndex].title = title;\n emsMappings[type].components[systemName] = defaultChargeStationEMSMappings;\n energyViewMappings[type].components[systemName] = defaultChargeStationEnergyViewMappings;\n emsMappings[type].components[systemName].title = title;\n energyViewMappings[type].components[systemName].title = title;\n\n emsMappings[type].components[systemName].minimum_power_selection = this.emsDevice.data.meta.controllerMappings[type].components[systemName]?.minimum_power_selection ?? ChargeModeOptionsKeys.minimum;\n emsMappings[type].components[systemName].current = this.emsDevice.data.meta.controllerMappings[type].components[systemName]?.current ?? 0;\n break;\n }\n\n const deviceName = getChargeStationNameByValue(device.systemType) ?? '';\n\n switch (chargeStationInformations.type) {\n case 'Webasto': {\n // adds a new charge station of type webasto to charge_station mappings at the usual device index.\n emsMappings = this.addDefaultMappingChargeStationEMS(this.chargeStationTypeCurrentIndex.webasto, deviceIndex, type, deviceName, emsMappings);\n energyViewMappings = this.addDefaultMappingChargeStationEV(this.chargeStationTypeCurrentIndex.webasto, deviceIndex, type, deviceName, energyViewMappings);\n this.chargeStationTypeCurrentIndex.webasto++;\n break;\n }\n case 'Weidmüller': {\n if (chargeStationInformations.isExternal && device.connectWithLine !== 'noLine') {\n // adds a new charge station of type waidmüller to charge_station mappings with the needed varibale changes that it needs to be a external measurement device\n const name = systemObject?.element.name;\n // external_energy_measurement needs to be set to true in this case\n const defaultStationMappingEMS = chargeStationMappingEMS(this.chargeStationTypeCurrentIndex.weidmüller, name, this.isP14Version);\n defaultStationMappingEMS.power = pilotPowerMapping;\n defaultStationMappingEMS.energy_counter = pilotCounterMapping;\n defaultStationMappingEMS.calculate_as_external_device = true;\n\n emsMappings[type].components[systemName] = defaultStationMappingEMS;\n\n const defaultStationMappingEnergyView = chargeStationMappingEnergyView(this.chargeStationTypeCurrentIndex.weidmüller, name);\n defaultStationMappingEnergyView.power = pilotPowerMapping;\n defaultStationMappingEnergyView.energy_counter = pilotCounterMapping;\n defaultStationMappingEnergyView.calculate_as_external_device = true;\n\n energyViewMappings[type].components[systemName] = defaultStationMappingEnergyView;\n } else {\n emsMappings = this.addDefaultMappingChargeStationEMS(this.chargeStationTypeCurrentIndex.weidmüller, deviceIndex, type, deviceName, emsMappings);\n if (device.connectWithLine !== 'noLine') {\n energyViewMappings = this.addDefaultMappingChargeStationEV(this.chargeStationTypeCurrentIndex.weidmüller, deviceIndex, type, deviceName, energyViewMappings);\n }\n }\n this.chargeStationTypeCurrentIndex.weidmüller++;\n break;\n }\n }\n emsMappings[type].components[systemName].minimum_power_selection = this.emsDevice.data.meta.controllerMappings[type].components[systemName]?.minimum_power_selection ?? ChargeModeOptionsKeys.minimum;\n emsMappings[type].components[systemName].current = this.emsDevice.data.meta.controllerMappings[type].components[systemName]?.current ?? 0;\n\n const title = this.emsDevice.data.meta.controllerMappings[type].components[systemName]?.title ?? emsMappings[type].components[systemName].title;\n emsMappings[type].components[systemName].title = title;\n if (energyViewMappings[type].components[systemName]) energyViewMappings[type].components[systemName].title = title;\n this.includedSystems.charge_station.definition[deviceIndex].title = title;\n break;\n }\n case 'electric_heating': {\n // adds all the \"electric heating\" Mappings to Device controller mappings\n emsMappings[type].components[systemName] = electricHeatingMappingEMS(deviceIndex, 'Askoma', this.isP14Version);\n energyViewMappings[type].components[systemName] = electricHeatingMappingEnergyView(deviceIndex);\n\n const systemTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.electric_heating');\n const electricHeatingComponents = this.emsDevice.data.meta.controllerMappings.electric_heating.components;\n const onlyDummies = Object.values(electricHeatingComponents).every((element: any) => element.external_energy_measurement && element.error === undefined);\n const componentName = `electric_heating${onlyDummies ? Object.keys(electricHeatingComponents).length + deviceIndex + 1 : deviceIndex + 1}`;\n const title = this.emsDevice.data.meta.controllerMappings[type].components[componentName]?.title ?? `${systemTranslation} ${deviceIndex + 1}: ${device.systemType}`;\n emsMappings[type].components[systemName].title = title;\n energyViewMappings[type].components[systemName].title = title;\n this.includedSystems.electric_heating.definition[deviceIndex].title = title;\n break;\n }\n case 'heating_pump_consumer': {\n const systemObject = this.pilotLineConfigs.find((object: any) => {\n return object.element.device.value === pilotMappingKey;\n });\n const name = systemObject?.element.name ?? this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.heating_pump');\n const hpSystemName = `heating_pump${deviceIndex + 1 + amountOfOtherHeatingPumps}`;\n // update included systems type name\n const heatingPumpComponents = this.emsDevice.data.meta.controllerMappings.heating_pump.components;\n const onlyDummies = Object.values(heatingPumpComponents).every((element: any) => element.external_energy_measurement && element.error === undefined);\n const componentName = `heating_pump${onlyDummies ? Object.keys(heatingPumpComponents).length + deviceIndex + 1 : deviceIndex + 1}`;\n const title = this.emsDevice.data.meta.controllerMappings.heating_pump.components[componentName]?.title ?? `${name} (SG Ready)`;\n\n if (typeof device.connectWithLine === 'number') {\n const emsObject = heatingPumpMappingEMS(title, this.isP14Version);\n emsObject.power = `prgPilot.lrPower_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n emsObject.energy_counter = `prgPilot.lrCounter_Cons_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n emsMappings.heating_pump.components[hpSystemName] = emsObject;\n // for energyView it is only needed when its a external visualisation\n energyViewMappings.heating_pump.components[hpSystemName] = {\n title,\n power: `prgPilot.lrPower_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`,\n energy_counter: `prgPilot.lrCounter_Cons_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`,\n external_energy_measurement: true,\n };\n } else {\n // creates ems entry for heating pump\n emsMappings.heating_pump.components[hpSystemName] = heatingPumpMappingEMS(title, this.isP14Version);\n }\n this.includedSystems.heating_pump_consumer.definition[deviceIndex].title = title;\n break;\n }\n case 'heating_pump': {\n const amountOfConsumerHeatingPumps = Object.values(this.emsDevice.data.meta.controllerMappings.heating_pump.components).filter((element: any) => {\n return (!element.power.includes('prgHP.lrPowerHP_') && !(element.external_energy_measurement && element.error === undefined));\n }).length;\n const hpSystemName = `heating_pump${deviceIndex + 1 + amountOfOtherHeatingPumps}`;\n // adds all the \"electric heating\" Mappings to Device controller mappings\n const systemTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.heating_pump');\n const heatingPumpComponents = this.emsDevice.data.meta.controllerMappings.heating_pump.components;\n\n // components index starts at either 0 or 1 depending on consumers selected\n let componentIndex = amountOfConsumerHeatingPumps;\n let startIndexOfNormalHeatingPumps: number | null = Object.values(heatingPumpComponents).findIndex((element: any) => element.power.includes('prgHP.lrPowerHP_'));\n if (startIndexOfNormalHeatingPumps === -1) startIndexOfNormalHeatingPumps = null;\n const countDummies = Object.values(heatingPumpComponents).filter((element: any) => element.external_energy_measurement && element.error === undefined).length;\n const countNormalHeatingPumps = Object.values(heatingPumpComponents).filter((element: any) => element.power.includes('prgHP.lrPowerHP_')).length;\n\n // Normal heating pumps already exist\n if (startIndexOfNormalHeatingPumps !== null) {\n if ((deviceIndex + 1 + amountOfConsumerHeatingPumps) <= (countNormalHeatingPumps + amountOfConsumerHeatingPumps)) {\n componentIndex = deviceIndex + 1 + amountOfConsumerHeatingPumps;\n } else {\n componentIndex = Object.keys(heatingPumpComponents).length + deviceIndex + 1;\n }\n } else {\n componentIndex = countDummies + deviceIndex + 1 + amountOfConsumerHeatingPumps;\n }\n\n const componentName = `heating_pump${componentIndex}`;\n const title = this.emsDevice.data.meta.controllerMappings.heating_pump.components[componentName]?.title ?? `${systemTranslation} ${deviceIndex + 1}: ${device.systemType}`;\n emsMappings[type].components[hpSystemName] = newHeatingPumpMappingsEMS(deviceIndex + 1, title, this.isP14Version);\n energyViewMappings[type].components[hpSystemName] = newHeatingPumpMappingsEnergyView(deviceIndex + 1, title);\n this.includedSystems.heating_pump.definition[deviceIndex].title = title;\n break;\n }\n case 'big_consumer': {\n const systemObject = this.pilotLineConfigs.find((object: any) => {\n return object.element.device.value === pilotMappingKey;\n });\n const systemTranslation = this.$t('installationWizard.defineHardware.pilotSpecificationPage.deviceSelectionOption.big_consumer');\n const name = systemObject?.element.name ?? systemTranslation.toString();\n\n const bigConsumerComponents = this.emsDevice.data.meta.controllerMappings.big_consumer.components;\n const onlyDummies = Object.values(bigConsumerComponents).every((element: any) => element.external_energy_measurement && element.error === undefined);\n const componentName = `big_consumer${onlyDummies ? Object.keys(bigConsumerComponents).length + deviceIndex + 1 : deviceIndex + 1}`;\n const title = this.emsDevice.data.meta.controllerMappings.heating_pump.components[componentName]?.title ?? `${name} ${deviceIndex + 1}`;\n\n if (typeof device.connectWithLine === 'number') {\n const emsObject = otherBigConsumerMappingsEMS(deviceIndex, name, this.isP14Version);\n emsObject.power = `prgPilot.lrPower_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n emsObject.energy_counter = `prgPilot.lrCounter_Cons_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`;\n emsMappings[type].components[systemName] = emsObject;\n // for energyView it is only needed when its a external visualisation\n energyViewMappings[type].components[systemName] = {\n title: `${name} ${deviceIndex + 1}`,\n power: `prgPilot.lrPower_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`,\n energy_counter: `prgPilot.lrCounter_Cons_${systemObject?.pilotIndex}_${systemObject?.lineIndex}`,\n external_energy_measurement: true,\n };\n } else {\n // creates ems entry for big consumer\n emsMappings[type].components[systemName] = otherBigConsumerMappingsEMS(deviceIndex, name, this.isP14Version);\n }\n this.includedSystems.big_consumer.definition[deviceIndex].title = title;\n break;\n }\n case 'generator': {\n if (!this.isNoBatteryPath) {\n emsMappings[type].components[systemName] = generatorMappingsEMS('Generator');\n energyViewMappings[type].components[systemName] = generatorMappingEnergyView(1);\n } else {\n emsMappings[type].components = {};\n energyViewMappings[type].components = {};\n }\n break;\n }\n case 'chp':\n emsMappings[type].components[systemName] = chpMappingsEMS(deviceIndex);\n energyViewMappings[type].components[systemName] = chpMappingsEnergyView(deviceIndex);\n break;\n }\n });\n amountOfOtherHeatingPumps = Object.keys(emsMappings.heating_pump.components).length;\n });\n if (this.filterNoneAcPvSystems) {\n // clear mappings for pv as only acpv's are allowed in mappings\n emsMappings.pv = {\n components: {},\n count: 0,\n };\n energyViewMappings.pv = {\n components: {},\n count: 0,\n };\n }\n\n if (this.isMennekesEnerchargeVersion) {\n const projectCopy: IProject = JSON.parse(JSON.stringify(this.project));\n if (projectCopy.meta?.wizardSettings) projectCopy.meta!.wizardSettings!.chargeStationSettings = chargeStationTypes;\n await this.updateProject(projectCopy);\n }\n\n // add string inverters just like acpv\n const pvCount = Object.keys(emsMappings.pv.components).length;\n for (let i = 0; i < this.installationWizardState.stringInverterCount; i++) {\n emsMappings.pv.components[`pv${pvCount + i + 1}`] = stringInverterMappingEMS(i);\n energyViewMappings.pv.components[`pv${pvCount + i + 1}`] = stringInverterMappingEMS(i);\n }\n const newPvCount = Object.keys(emsMappings.pv.components).length;\n emsMappings.pv.count = newPvCount;\n energyViewMappings.pv.count = newPvCount;\n }\n\n // if no battery is defined but a inverter is defined we the errorWarning variable from the battery to the grid instead\n const inverterWizardPaths = [WizardPath.INSTALLATION, WizardPath.INSTALLATION_TENANT];\n if (emsMappings.battery.count === 0 && inverterWizardPaths.includes(this.installationWizardState.wizardPath)) {\n emsMappings.grid.components.grid1.error = batteryMappingEMS(0, this.isP14Version).error;\n energyViewMappings.grid.components.grid1.error = batteryMappingEMS(0, this.isP14Version).error;\n }\n\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n }\n\n addDefaultMappingChargeStationEMS(chargeStationTypeIndex: number, deviceIndex: number, type: string, deviceName: string, emsMappings: any) {\n emsMappings[type].components[`${type}${deviceIndex + 1}`] = plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime() && (this.isDeye || this.isSolarmax)\n ? newChargeStationMappingsEMS(deviceIndex, deviceName, this.isP14Version)\n : chargeStationMappingEMS(chargeStationTypeIndex, deviceName, this.isP14Version);\n return emsMappings;\n }\n\n addDefaultMappingChargeStationEV(chargeStationTypeIndex: number, deviceIndex: number, type: string, deviceName: string, energyViewMappings: any) {\n energyViewMappings[type].components[`${type}${deviceIndex + 1}`] = plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime() && (this.isDeye || this.isSolarmax)\n ? newChargeStationMappingEnergyView(deviceIndex, deviceName)\n : chargeStationMappingEnergyView(chargeStationTypeIndex, deviceName);\n return energyViewMappings;\n }\n\n /** Add all dummy components to EnergyView and EMS objects */\n async addExternalVisualisationSystems() {\n const emsMappings = cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n this.pilotLineConfigs.forEach((pilotConfig: any) => {\n // creates all pilot devices that are not already created (because they are not preset from components page)\n if (!pilotConfig.element.device.value.includes('--')) {\n const currentIndex = Object.keys(emsMappings[pilotConfig.element.device.value].components).length + 1;\n const deviceType = pilotConfig.element.device.value;\n const deviceName = pilotConfig.element.name;\n emsMappings[deviceType].components[`${deviceType}${currentIndex}`] = dummyComponent(deviceName, pilotConfig.lineIndex, 1);\n energyViewMappings[deviceType].components[`${deviceType}${currentIndex}`] = dummyComponent(deviceName, pilotConfig.lineIndex, 1);\n }\n });\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n }\n\n // add components that where added with the tenant wizard\n reAddTenantComponents() {\n const emsMappings = cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n // check if overall production measurement is set\n if (this.project.meta.overallProductionMeasurement === '') {\n // add the production mappings from the tenant to the pv mappings\n let productionMappings = this.tenantState.tenant.general.productionCounters ?? [];\n const variablesToFilter = [\n 'prgEnergy.lrCounterProdTotal',\n 'prgEM.lrCounterProdTotal_2',\n ];\n const containsInternalCounter = productionMappings.filter((counter: string) => variablesToFilter.includes(counter)).length > 0;\n // remove the counters that are not needed for the pv mappings\n productionMappings = productionMappings.filter((counter: string) => !variablesToFilter.includes(counter));\n if (!containsInternalCounter) {\n // if digital counters are not present we do not need to add any pv's\n productionMappings = [];\n }\n productionMappings.forEach((counter: string) => {\n // get the number from the counter string\n const number = parseInt(filterNumberFromString(counter), 10) ?? 0;\n // check if the component is already set\n // if not set add it to the mappings in EMS and EnergyView\n emsMappings.pv.count++;\n const element = pvMappingEMS(emsMappings.pv.count);\n element.title = `PV ${emsMappings.pv.count}`;\n element.energy_counter = counter;\n element.power = `prgEM.lrPower_E_${filterNumberFromString(counter)}`;\n emsMappings.pv.components[`pv${emsMappings.pv.count}`] = element;\n\n energyViewMappings.pv.count++;\n const elementEnergyView = pvMappingEnergyView(energyViewMappings.pv.count);\n elementEnergyView.title = `PV ${energyViewMappings.pv.count}`;\n elementEnergyView.energy_counter = counter;\n elementEnergyView.power = `prgEM.lrPower_E_${filterNumberFromString(counter)}`;\n energyViewMappings.pv.components[`pv${energyViewMappings.pv.count}`] = elementEnergyView;\n });\n }\n\n // will contain the ac battery numbers if present\n const acBatteryIds = this.getAcBatteryNumbers();\n // add ac batteries if they are present. but only if we have a lynus inverter\n if (acBatteryIds) {\n acBatteryIds.forEach((id: number, acBatteryIndex: number) => {\n // check if the battery is already set\n // if battery is not set add it to the mappings in EMS and EnergyView\n emsMappings.battery.count++;\n const currentIndex = emsMappings.battery.count;\n const element = batteryMappingEMSTenant();\n element.power = `prgEM.lrPower_E_${id}`;\n element.title = `AC Batterie ${acBatteryIndex + 1}`;\n element.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n element.reverse_energy_counter = `prgEM.lrCounter_E_C_${id}`;\n emsMappings.battery.components[`battery${currentIndex}`] = element;\n\n energyViewMappings.battery.count++;\n const elementEnergyView = batteryMappingEnergyViewTenant(currentIndex);\n elementEnergyView.power = `prgEM.lrPower_E_${id}`;\n elementEnergyView.title = `AC Batterie ${acBatteryIndex + 1}`;\n elementEnergyView.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n elementEnergyView.reverse_energy_counter = `prgEM.lrCounter_E_C_${id}`;\n energyViewMappings.battery.components[`battery${currentIndex}`] = elementEnergyView;\n });\n }\n\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n }\n\n /**\n * Get the ac battery numbers from the saved value\n */\n getAcBatteryNumbers() {\n // if set saved value will be the decimal equivalent of the bit set with the ac battery numbers\n let savedValue = this.measurements['prgEM.lwPosOfACBattery'];\n\n // if saved value is undefined we do not need to do anything\n if (!savedValue) return;\n\n if (typeof savedValue === 'string') {\n savedValue = parseInt(savedValue, 10);\n }\n // if saved value is 0 we do not need to do anything\n if (savedValue === 0) return;\n\n // convert the decimal number to binary and then to an array of numbers used for the ac battery mapping\n const binaryNumber = convertDecimalNumberToBinary(savedValue).toString();\n return convertBitToArray(binaryNumber) ?? [];\n }\n\n deleteInput(index: number) {\n this.$set(this.pilotMapping[0].lineConfig, index, {\n device: { text: '', value: '' },\n name: '',\n disabled: false,\n });\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0, page = 'pilotPage') {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, page, value, systemIndex));\n }\n\n get hasOnlyStringInverter() {\n return (this.installationWizardState.wizardPath === WizardPath.STRING_INVERTER) || (this.installationWizardState.wizardPath === WizardPath.TENANT_STRING_INVERTER);\n }\n\n async prepareVariablesToSend() {\n if (this.pilotSystemCount > 0) {\n this.setVariablesToSend('numberOfMeters', this.pilotSystemCount);\n this.setVariablesToSend('enablePilot');\n this.pilotMapping.forEach((value: IPilotMappings, index: number) => {\n this.setVariablesToSend('ctRelationship', this.pilotMapping[0].ctRelationship, index);\n });\n }\n\n // sends all the needed mqtt values\n await this.fillEnergyDevicesControllerMappings();\n await this.addExternalVisualisationSystems();\n if (this.hasLynusInverter && this.project.meta.wasTenantWizardCompleted && plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n // components only need to be readded if a lynus inverter is present because they get cleared in the fillEnergyDevicesControllerMappings function\n // if there is no lynus inverter all the components are set by the tenant and clearing those is disabled in the fillEnergyDevicesControllerMappings function\n if (this.isHybridVersion) {\n if (this.tenantPaths) {\n // only readd the components if there is a path selected that includes a tenant wizard\n await this.reAddTenantComponents();\n }\n } else {\n // for older version paths are not needed to be checked\n await this.reAddTenantComponents();\n }\n }\n console.log(JSON.parse(JSON.stringify(this.emsDevice)));\n if (this.emsDevice.id) await this.updateDevice({ device: this.emsDevice, skipReport: false });\n if (this.energyViewDevice.id) {\n await this.updateDevice({\n device: this.energyViewDevice,\n skipReport: false,\n });\n }\n this.setIsPilotPageDone(this.pilotMapping[0]);\n }\n\n async validate() {\n await this.$nextTick();\n\n (this.$refs.form as any).validate();\n }\n\n skipPilotPage(direction: 0 | 1) {\n if (direction) {\n this.handleNext();\n } else {\n this.handleDecrement();\n }\n }\n\n defineInitiation(): InitiationMode {\n if (this.pilotSystemCount === 0) {\n return InitiationMode.skip;\n }\n if (!this.isPilotPageDone) {\n return InitiationMode.default;\n } else {\n if (this.savedPilotMapping === undefined) {\n // case when no external measurement system is selected\n return InitiationMode.default;\n } else {\n // case when external measurement system is selected\n return InitiationMode.alreadyDone;\n }\n }\n }\n\n handleModeInitiation(mode: InitiationMode) {\n switch (mode) {\n case InitiationMode.skip:\n this.skipPilotPage(this.navigationDirection);\n break;\n case InitiationMode.default:\n this.initPilotMappings();\n break;\n case InitiationMode.alreadyDone:\n this.handleAlreadyDone();\n break;\n }\n this.initAlreadySelectedItems();\n this.amountOfFilledPilotLines = this.availableDeviceItems.length + this.externalVisualisation.count;\n this.initOtherSelectionOptions();\n }\n\n handleAlreadyDone() {\n this.initDevices();\n if (this.savedPilotMapping.lineConfig.filter((element: any) => element.name !== '').length && this.externalVisualisation.count !== 0) {\n this.$set(this.pilotMapping, 0, cloneDeep(this.savedPilotMapping));\n } else {\n this.initPilotMappings();\n }\n }\n\n async created() {\n if (this.hasLynusInverter && this.project.meta.wasTenantWizardCompleted && plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n // if tenant was done and hybrid selected we need to load the tenant to readd the components that where added with the tenant wizard\n await this.loadTenant(this.project.id);\n }\n\n this.handleMode();\n }\n\n handleMode() {\n const mode = this.defineInitiation();\n this.handleModeInitiation(mode);\n }\n\n mounted() {\n if (this.pilotSystemCount > 0) {\n this.validate();\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralSettingsEMS.vue?vue&type=template&id=55ccf3ec&scoped=true&\"\nimport script from \"./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralSettingsEMS.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralSettingsEMS.vue?vue&type=style&index=0&id=55ccf3ec&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55ccf3ec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":(_vm.valid && _vm.pilotLineConfigs.length === _vm.amountOfFilledPilotLines || _vm.externalVisualisation.count === 0 || _vm.getDisablePilotDevices) && !_vm.loading,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('span',{staticClass:\"text-h4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [(_vm.loading)?_c('v-overlay',{attrs:{\"opacity\":0.8,\"absolute\":\"\",\"color\":\"primary\"}},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1):_vm._e(),_c('v-form',{ref:\"form\",staticClass:\"general-form pt-4\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.amountOfFilledPilotLines)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_vm._l((_vm.pilotMapping),function(pilotDevice,index){return _c('v-row',{key:'pilotDevice' + index},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"2\"}},[_c('div',{staticClass:\"pt-4\"},[_c('span',[_vm._v(_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.texts.ctRelation')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(index + 1))])])]),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"9\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"step\":1,\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required, _vm.rules.noCommas, ..._vm.minMaxValidation(pilotDevice.ctRelationship, 0, 1000)]},on:{\"change\":_vm.validate},model:{value:(pilotDevice.ctRelationship),callback:function ($$v) {_vm.$set(pilotDevice, \"ctRelationship\", $$v)},expression:\"pilotDevice.ctRelationship\"}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"1\"}},[_c('div',{staticClass:\"pt-4\"},[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.toolTips.ctRelationShip'))+\" \")]},proxy:true}],null,true)})],1)]),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},_vm._l((pilotDevice.lineConfig),function(line,lineIndex){return _c('v-row',{key:'lineConfig' + lineIndex},[_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"2\"}},[_c('div',{staticClass:\"pt-4\"},[_c('span',[_vm._v(\"Pilot\")]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(index + 1))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.texts.line')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(lineIndex + 1))])])]),(!line.disabled)?_c('v-col',{staticClass:\"d-flex py-0\"},[_c('v-select',{attrs:{\"items\":_vm.lineDeviceItems,\"item-value\":\"value\",\"item-text\":\"text\",\"hide-selected\":\"\",\"flat\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.label.withSystem'),\"color\":\"accent\",\"disabled\":_vm.disableEmptyLineConfigFields && line.device.text === '',\"return-object\":\"\"},on:{\"change\":_vm.validate},model:{value:(line.device),callback:function ($$v) {_vm.$set(line, \"device\", $$v)},expression:\"line.device\"}}),(line.device.value !== '' && !line.disabled)?_c('v-btn',{staticClass:\"mt-3 ml-8\",attrs:{\"color\":\"red\"},on:{\"click\":function($event){return _vm.deleteInput(lineIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()],1):_vm._e(),(line.disabled)?_c('v-col',{staticClass:\"d-flex py-0\"},[_c('v-text-field',{attrs:{\"value\":line.device.text,\"hide-selected\":\"\",\"flat\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.label.withSystem'),\"color\":\"accent\",\"disabled\":line.disabled}})],1):_vm._e(),(line.device.value !== '')?_c('v-col',{staticClass:\"d-flex py-0\"},[_c('div',{staticClass:\"pt-4 mr-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.texts.name'))+\": \")]),_c('v-text-field',{attrs:{\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString]},on:{\"change\":_vm.validate},model:{value:(line.name),callback:function ($$v) {_vm.$set(line, \"name\", $$v)},expression:\"line.name\"}})],1):_vm._e(),_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"1\"}},[_c('div',{staticClass:\"pt-4\"},[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.toolTips.lineConfig'))+\" \")]},proxy:true}],null,true)})],1)])],1)}),1)],1)}),_c('div',{staticStyle:{\"padding\":\"10px\",\"position\":\"fixed\",\"bottom\":\"60px\",\"right\":\"0\"}},[(_vm.amountOfFilledPilotLines < _vm.pilotLineConfigs.length)?_c('h4',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.removeDevices'))+\" \"+_vm._s(_vm.pilotLineConfigs.length - _vm.amountOfFilledPilotLines)+\" \")]):_vm._e()])],2):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.pilotSpecificationPage.noDevices'))+\" \")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IFlatsConfig } from '@/types/wizards/tenant.types';\nimport store from '@/store';\nimport i18n from '@/ui/plugins/i18n';\nimport { cloneDeep } from 'lodash';\n\n/**\n * adds address street and city information together to show in address field\n * @param flatsConfigList Array of type IFlatsConfig\n * @returns object of addresses\n */\nexport function initFlatsAddresses(flatsConfigList: IFlatsConfig[]) {\n const addressList: Record = {};\n flatsConfigList.forEach((element: IFlatsConfig) => {\n addressList[element.name] = `${element.address.street}, ${element.address.city}`;\n });\n return addressList;\n}\n\nexport async function downloadDocument(downloadTimes: { start: string; end: string }, project_id: string) {\n const downloadStartTime = new Date(downloadTimes.start).getTime() / 1000;\n const donwloadEndTime = new Date(downloadTimes.end).getTime() / 1000;\n const file = await store.dispatch('tenantWizard/downLoadTenant', { project_id, start: downloadStartTime, end: donwloadEndTime });\n // is needed so no empty file is downloaded\n if (!file) {\n return;\n }\n // creates link to download report\n const downloadAnchorNode = document.createElement('a');\n\n const zipBlob = new Blob([file], { type: 'application/zip' });\n // add attributes for download link\n downloadAnchorNode.setAttribute('href', URL.createObjectURL(zipBlob));\n downloadAnchorNode.setAttribute('download', 'report.zip');\n document.body.appendChild(downloadAnchorNode);\n downloadAnchorNode.click();\n downloadAnchorNode.remove();\n}\n\n/**\n * Checks if given array has duplicate values\n * @param array array to check for duplicates ex. [1,2,3...] or ['a','b','c'...]\n * @param langPath path to get the translation for the error message\n * @returns string if duplicate value is found, true if no duplicate value is found\n */\nexport function hasArrayDuplicateValue(array: any[], langPath: string) {\n // Create an object to store the count of each value\n const count: any = {};\n\n // Iterate over each element in the array\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n // If the value is already in the count object, it's a duplicate\n if (count[value]) {\n return i18n.t(langPath, { value }).toString();\n }\n\n // Otherwise, add the value to the count object\n if (value !== '') {\n count[value] = 1;\n }\n }\n\n return true;\n}\n\n/**\n * Filters number from string for tenant wizard counter mappings\n */\nexport function filterNumberFromString(text: string) {\n const lastChars = text.slice(-3); // get last 3 characters\n return lastChars.replace(/[^0-9]/g, ''); // returns only numbers\n}\n\n/**\n * Combines the house number and the street name and deletes the house number for backend compatibility\n */\nexport function combineHouseNumberAndStreet(flatConfigList: IFlatsConfig[]) {\n const copy = cloneDeep(flatConfigList);\n copy.forEach((flat: any) => {\n flat.address.street = `${flat.address.street}, ${flat.address.houseNumber}`;\n delete flat.address.houseNumber;\n });\n return copy;\n}\n","export function batteryMappingEnergyViewTenant(systemIndex: number) {\n return {\n energy_counter: 'prgEnergy.lrCounterProdBatt',\n reverse_energy_counter: 'prgEnergy.lrCounterConsBatt',\n error: '',\n power: 'prgEnergy.fbI.stDataBattery.lrPower',\n soc: '',\n title: 'Batterie Total',\n external_energy_measurement: true,\n };\n}\n\nexport function gridMappingEnergyViewTenant() {\n return {\n energy_counter: 'prgEnergy.lrCounterProdGrid',\n reverse_energy_counter: 'prgEnergy.lrCounterConsGrid',\n error: '',\n power: 'prgEnergy.fbGrid.stDataGrid.lrPower',\n title: 'Netz',\n is_on_grid: 'prgEnergy.fbI.bOffGridModeActive',\n };\n}\n\nexport function houseMappingEnergyViewTenant(systemIndex: number) {\n return {\n energy_counter: 'prgEnergy.lrCounterConsHouse',\n error: '',\n power: 'prgEnergy.lrHousePower',\n title: 'Haus',\n };\n}\n\nexport function gridMappingEMSTenant() {\n return {\n power: 'prgEnergy.fbGrid.stDataGrid.lrPower',\n error: '',\n title: 'Netz',\n size: 'prgEnergy.fbGrid.rSizeGridConn',\n energy_counter: 'prgEnergy.lrCounterProdGrid',\n reverse_energy_counter: 'prgEnergy.lrCounterConsGrid',\n size_in_amps: 0,\n is_on_grid: 'prgEnergy.fbI.bOffGridModeActive',\n };\n}\n\nexport function houseMappingEMSTenant(systemIndex: number) {\n return {\n power: 'prgEnergy.lrHousePower',\n state_enable: 'prgEnergy.fbHouse.stDataHouseC.bEnabled',\n switch_enable: 'prgEnergy.fbHouse.bEnable',\n error: '',\n title: `Haus ${systemIndex}`,\n energy_counter: 'prgEnergy.lrCounterConsHouse',\n };\n}\n\nexport function batteryMappingEMSTenant() {\n return {\n power: 'prgEnergy.fbI.stDataBattery.lrPower',\n target_power: '',\n state_enable: '',\n state_reset: '',\n error: '',\n title: 'Batterie Total',\n soc: '',\n size_capacity: '',\n capacity: '',\n priority: '',\n switch_enable: '',\n switch_reset: '',\n energy_counter: 'prgEnergy.lrCounterProdBatt',\n reverse_energy_counter: 'prgEnergy.lrCounterConsBatt',\n external_energy_measurement: true,\n };\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PilotSpecification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PilotSpecification.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PilotSpecification.vue?vue&type=template&id=084c2efe&scoped=true&\"\nimport script from \"./PilotSpecification.vue?vue&type=script&lang=ts&\"\nexport * from \"./PilotSpecification.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PilotSpecification.vue?vue&type=style&index=0&id=084c2efe&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"084c2efe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-icon',{staticClass:\"mb-8\",attrs:{\"color\":\"accent\",\"size\":\"128\"}},[_vm._v(\"mdi-check-circle\")]),_c('h1',[_vm._v(_vm._s(_vm.text))]),_c('v-btn',{staticClass:\"mt-16\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.handleNext()}}},[_vm._v(_vm._s(_vm.buttonText))])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { IProject } from '@/types/project.types';\nimport { Getter, Action, State } from 'vuex-class';\nimport { cloneDeep } from 'lodash';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport { WizardPath } from '@/types/wizards/installationWizard.types';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class FinalPageInstallationWizard extends Vue {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('projects/project') project!: IProject;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n localProject: any = null;\n async handleNext() {\n this.localProject = cloneDeep(this.project);\n await this.updateProject({\n ...this.localProject,\n meta: {\n ...this.localProject.meta,\n wizard_completed_at: new Date().toISOString(),\n wasInstallationWizardCompleted: true,\n },\n });\n\n const pathsThatRequireTenant = [WizardPath.INSTALLATION_TENANT, WizardPath.TENANT_STRING_INVERTER, WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT];\n if (pathsThatRequireTenant.includes(this.wizardState.wizardPath)) {\n this.$router.push(`/projects/${this.$route.params.id}/tenant-wizard`);\n } else {\n this.$router.push(`/projects/${this.$route.params.id}/favorites`);\n }\n }\n\n get text() {\n const pathsThatRequireTenant = [WizardPath.INSTALLATION_TENANT, WizardPath.TENANT_STRING_INVERTER, WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT];\n if (!pathsThatRequireTenant.includes(this.wizardState.wizardPath)) {\n return this.$t('installationWizard.finalPage.text');\n } else {\n return this.$t('installationWizard.finalPage.textContinue');\n }\n }\n\n get buttonText() {\n const pathsThatRequireTenant = [WizardPath.INSTALLATION_TENANT, WizardPath.TENANT_STRING_INVERTER, WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT];\n if (!pathsThatRequireTenant.includes(this.wizardState.wizardPath)) {\n return this.$t('installationWizard.finalPage.finish');\n } else {\n return this.$t('installationWizard.finalPage.finishAndContinue');\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinalPage.vue?vue&type=template&id=53060794&\"\nimport script from \"./FinalPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinalPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid && _vm.uploadButtonClicked,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.generalInformationsPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-settings-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.generalSettings.generalInformationsPage.labels.projectName'),\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.counter, _vm.forceProjectNameChange]},model:{value:(_vm.generalInformations.name),callback:function ($$v) {_vm.$set(_vm.generalInformations, \"name\", $$v)},expression:\"generalInformations.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.generalSettings.generalInformationsPage.labels.projectDescription'),\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\"},model:{value:(_vm.generalInformations.projectDescription),callback:function ($$v) {_vm.$set(_vm.generalInformations, \"projectDescription\", $$v)},expression:\"generalInformations.projectDescription\"}}),_c('div',[_c('v-autocomplete',{attrs:{\"items\":_vm.placesArr,\"search-input\":_vm.searchPlaces,\"clearable\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"hide-no-data\":\"\",\"no-filter\":\"\",\"hide-selected\":\"\",\"hide-details\":\"\",\"item-text\":\"display_name\",\"item-value\":\"coordinates\",\"return-object\":\"\",\"label\":_vm.$t('uiComponents.settings.general.form.city'),\"placeholder\":\"Start typing to Search Places\"},on:{\"update:searchInput\":function($event){_vm.searchPlaces=$event},\"update:search-input\":function($event){_vm.searchPlaces=$event}},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1)],1),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper-wizard\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field-wizard\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.general.select'),\"hide-details\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\"},on:{\"change\":_vm.resetButtonClickedVariable},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.handleFileUpload}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.upload')))])]),_c('div',{staticClass:\"ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.generalSettings.generalInformationsPage.tooltipTexts.imageField'))+\" \")]},proxy:true}])})],1)],1),(!_vm.uploadButtonClicked)?_c('div',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadReminder'))+\" \")]):_vm._e(),_c('div',{staticClass:\"upload-description\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadDescription'))+\" \")])])],1),_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.specialistInformation.title')))]),_c('v-row',[_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.companyName'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.name),callback:function ($$v) {_vm.$set(_vm.expert, \"name\", $$v)},expression:\"expert.name\"}})],1),_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.phone'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.phone),callback:function ($$v) {_vm.$set(_vm.expert, \"phone\", $$v)},expression:\"expert.phone\"}})],1),_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.email'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.email),callback:function ($$v) {_vm.$set(_vm.expert, \"email\", $$v)},expression:\"expert.email\"}})],1),_c('v-col',{staticStyle:{\"padding-top\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.street'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.street),callback:function ($$v) {_vm.$set(_vm.expert, \"street\", $$v)},expression:\"expert.street\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.city'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.city),callback:function ($$v) {_vm.$set(_vm.expert, \"city\", $$v)},expression:\"expert.city\"}})],1),_c('v-col',{staticStyle:{\"padding-top\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.zipCode'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.zip),callback:function ($$v) {_vm.$set(_vm.expert, \"zip\", $$v)},expression:\"expert.zip\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.country'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.country),callback:function ($$v) {_vm.$set(_vm.expert, \"country\", $$v)},expression:\"expert.country\"}})],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport _ from 'lodash';\nimport { IProject, IProjectExpert } from '@/types/project.types';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport LocationService from '@/services/LocationService';\nimport { IWizardLoadingState } from '@/types/wizards/wizard.general.types';\n\n@Component({\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class GeneralInformations extends WizardComponent {\n @Getter('projects/project') project!: IProject;\n @Action('app/postAsset') postAsset!: (asset: any) => Promise;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n @Mutation('installationWizard/incrementLoadingSentCount') incrementLoadingSentCount!: () => void;\n @Mutation('installationWizard/setLoadingState') setLoadingState!: (payload: IWizardLoadingState) => void;\n\n generalInformations = {\n name: '',\n projectDescription: '',\n }\n expert: IProjectExpert = {\n name: '',\n street: '',\n city: '',\n zip: '',\n country: '',\n email: '',\n phone: '',\n }\n fileObject = { name: '' };\n placesArr: any = [];\n getLocationWithDelay: any = null;\n searchPlaces: any = null;\n model: any = null;\n valid = false;\n initialProjectName = '';\n uploadButtonClicked = true;\n\n get forceProjectNameChange() {\n // if installation wizard was completed, it is not required to change the project name anymore\n if (this.wasInstallationWizardCompleted) return true;\n\n // if the installation wizard is done for the first time, the project name has to be changed\n if (this.generalInformations.name === this.initialProjectName) {\n return this.$t('installationWizard.generalSettings.generalInformationsPage.forceProjectNameChange');\n }\n return true;\n }\n\n @Watch('searchPlaces')\n async onSearchPlaces(val: any) {\n const isEqualToSaved = this.project.meta?.location?.display_name === val;\n if (val && val.length > 2 && !isEqualToSaved) {\n this.getLocationWithDelay(val);\n }\n }\n\n created() {\n // fetch location with 1sec delay\n this.getLocationWithDelay = _.debounce(async (place) => {\n this.placesArr = await LocationService.fetchLocations(place);\n }, 1000);\n\n this.fillProjectObject();\n if (this.project?.meta?.expert) this.fillExpertProperties();\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n fillExpertProperties() {\n this.expert = { ...(this.project?.meta as any)?.expert };\n }\n\n fillProjectObject() {\n this.generalInformations.name = this.project.name;\n this.generalInformations.projectDescription = this.project.meta.description;\n if (this.project.meta?.location) this.setLocation(this.project.meta?.location);\n this.initialProjectName = this.generalInformations.name;\n }\n\n setLocation(location: any) {\n this.model = { ...location };\n this.placesArr.push({ ...location });\n }\n\n resetButtonClickedVariable() {\n this.uploadButtonClicked = false;\n }\n\n async handleFileUpload() {\n this.uploadButtonClicked = true;\n if (this.fileObject) {\n if (this.fileObject.name.lastIndexOf('.') <= 0) {\n return;\n }\n const result = await this.postAsset(this.fileObject);\n if (!result) return;\n await this.updateProject({\n ...this.project,\n ...(result && {\n meta: { ...this.project.meta,\n imageId: result,\n },\n }),\n });\n }\n }\n\n\n async handleNext() {\n // start loading\n this.setLoadingState({\n isLoading: true,\n loadingCount: 0,\n loadingTotal: 1,\n });\n await this.updateProject({\n ...this.project,\n ...{ name: this.generalInformations.name },\n meta: {\n ...this.project.meta,\n location: this.model,\n description: this.generalInformations.projectDescription,\n expert: this.expert,\n },\n });\n\n this.incrementLoadingSentCount();\n this.resetLoadingState();\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralInformations.vue?vue&type=template&id=19c6039b&\"\nimport script from \"./GeneralInformations.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralInformations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralInformations.vue?vue&type=style&index=0&id=19c6039b&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":true,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"wrapper\"},[_c('Permissions',{attrs:{\"isInWizard\":true},on:{\"updateRules\":_vm.handleUpdateRules}}),_c('LynusPopup',{attrs:{\"showPopup\":_vm.showPopup},on:{\"closeLynusPopup\":_vm.handleClose},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column justify-center align-center pa-6\",staticStyle:{\"height\":\"200px\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.text'))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.question'))+\" \")]),_c('div',{staticClass:\"pt-4\"},[_c('v-btn',{staticClass:\"mr-2 accent\",on:{\"click\":_vm.handleClose}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")]),_c('v-btn',{staticClass:\"ml-2 accent\",on:{\"click\":_vm.handleContinue}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")])],1)])]},proxy:true}])})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Permissions from '@/ui/views/Project/Settings/Permissions.vue';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport LynusPopup from '@/ui/components/components/LynusPopup.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { cloneDeep } from 'lodash';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { getIsMemberInRulesAsRecipient } from '@/utils/membersUtils';\nimport { IMember } from '@/types/members.types';\n\n@Component({\n components: {\n Permissions,\n WizardContentView,\n LynusPopup,\n },\n})\nexport default class InviteUsersToProject extends Vue {\n @State('rules') rulesState!: IRulesState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('members/members') members!: IMember[];\n @Action('installationWizard/handleIncrement') handleIncrement!: () => void;\n @Action('installationWizard/handleDecrement') handleDecrement!: () => void;\n\n showPopup = false;\n conModel: any = {\n actions: [],\n enabled: false,\n };\n isNotificationForSomeMembersEnabled = false\n\n get rulesList() {\n return this.rulesState.rulesList;\n }\n\n get project() {\n return this.projectsState.project;\n }\n\n handleUpdateRules(value: { someUserSelected: boolean}) {\n this.isNotificationForSomeMembersEnabled = value.someUserSelected;\n }\n\n handleContinue() {\n this.showPopup = false;\n this.handleIncrement();\n }\n\n handleNext() {\n if (this.isNotificationForSomeMembersEnabled) {\n this.handleIncrement();\n } else {\n this.showPopup = true;\n }\n }\n\n handleClose() {\n this.showPopup = false;\n }\n\n created() {\n this.conModel = cloneDeep(this.project.connectivity);\n }\n\n mounted() {\n this.isNotificationForSomeMembersEnabled = this.members.some((m) => getIsMemberInRulesAsRecipient(m, this.rulesList, this.conModel));\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InviteUserToProject.vue?vue&type=template&id=df139980&scoped=true&\"\nimport script from \"./InviteUserToProject.vue?vue&type=script&lang=ts&\"\nexport * from \"./InviteUserToProject.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InviteUserToProject.vue?vue&type=style&index=0&id=df139980&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"df139980\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.sent,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleIncrement},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.inviteUsers.installationPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column justify-space-between align-center\",staticStyle:{\"height\":\"80%\"}},[(_vm.isHybridVersion && _vm.isDeye && _vm.power >= 30000)?_c('div',{staticClass:\"warning-text\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.installationPage.warningInitialCharging'))+\" \")]):_vm._e(),_c('div',{staticClass:\"wrapper\"},[_c('LightPushButton',{attrs:{\"device-data\":_vm.deviceData,\"disable-button\":_vm.disableButton},on:{\"sent\":_vm.handleSent}})],1)]),_c('div',{staticClass:\"d-flex justify-end\"},[(_vm.wasInstallationWizardCompleted)?_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":_vm.handleIncrement}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.installationPage.skip'))+\" \")]):_vm._e()],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport LightPushButton from '@/ui/components/devices/devices/LightPushButton.vue';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { IDevice } from '@/types/devices.types';\nimport { Getter, State } from 'vuex-class';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\n\n@Component({\n components: {\n LightPushButton,\n WizardContentView,\n },\n})\nexport default class InstallationPage extends WizardComponent {\n @State('installationWizard') installationWizardState!: IInstallationWizardState;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/project') project!: IProject;\n @Getter('mqttClient/isProjectOnline') isProjectOnline !: boolean;\n @Getter('installationWizard/disabledWhileOffline') disabledWhileOffline!: boolean;\n\n sent = false;\n\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n deviceData: IDevice = {\n id: '',\n name: this.$t('installationWizard.inviteUsers.installationPage.initialLoadDevice.name').toString(),\n data: {\n type: 'LightPushButton',\n meta: {\n deviceSchema: {\n additionalBasicDevices: [],\n basicDevices: ['PushButton'],\n },\n minMaxBorders: {},\n },\n mappings: {\n PushButton_onOff: 'prgEnergy.fbI.bStartInitCharge',\n PushButton_state: 'prgEnergy.fbI.bStartInitCharge',\n ShowEvent_errorWarningState: '',\n },\n },\n favorite: false,\n collection_id: '',\n created_at: new Date(Date.now()),\n }\n\n handleSent(event: any) {\n this.sent = event === SendingState.Success;\n }\n\n get disableButton() {\n if (this.isDeye && this.isHybridVersion) {\n return (!this.isProjectOnline || this.disabledWhileOffline) && this.power >= 30000;\n }\n return false;\n }\n\n get power(): number {\n return (this.measurements[installationWizardVariables('maxPowerInverter', 'componentsPage').variable] as number ?? 0) / this.installationWizardState.inverterCount;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationPage.vue?vue&type=template&id=7ab2df32&scoped=true&\"\nimport script from \"./InstallationPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstallationPage.vue?vue&type=style&index=0&id=7ab2df32&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ab2df32\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.gridDrmSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"system-part\"},[_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_vm._l((_vm.drmVariables),function([variableKey, variableData],index){return _c('v-row',{key:variableKey},[_c('v-col',{staticClass:\"py-1 d-flex\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineEmsSettings.gridDrmSettings.labels.drm', { variable: index + 1 }),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"min\":\"0\",\"max\":\"100\",\"suffix\":\"%\",\"step\":1,\"rules\":[\n _vm.rules.required,\n _vm.rules.noCommas,\n ..._vm.minMaxValidation(variableData.value, 0, 100)\n ]},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineEmsSettings.gridDrmSettings.drmStageTooltip'))+\" \")]},proxy:true}],null,true)})],1)],1)],1)}),_vm._l((_vm.otherVariables),function([variableKey, variableData]){return _c('v-row',{key:variableKey},[(!_vm.isNoBatteryPath)?_c('v-col',{staticClass:\"py-1 d-flex\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineEmsSettings.gridDrmSettings.labels.maxSellPowerToGrid'),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"min\":\"10\",\"max\":\"50000\",\"suffix\":\"W\",\"step\":1,\"rules\":[\n _vm.rules.required,\n _vm.rules.noCommas,\n ..._vm.minMaxValidation(variableData.value, 10, 50000),\n ]},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineEmsSettings.gridDrmSettings.maxFeedInTooltip'))+\" \")]},proxy:true}],null,true)})],1)],1):_vm._e()],1)})],2)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport { setVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport {\n IMQTTVariable,\n WaitForMQTTFeedbackAction, WizardPath,\n} from '@/types/wizards/installationWizard.types';\nimport { IWizardLoadingState } from '@/types/wizards/wizard.general.types';\nimport WizardComponent from '../../../baseComponents/WizardComponent';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class GridDrmSettings extends WizardComponent {\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Mutation('installationWizard/incrementLoadingSentCount') incrementLoadingSentCount!: () => void;\n @Mutation('installationWizard/setLoadingState') setLoadingState!: (payload: IWizardLoadingState) => void;\n @Action('installationWizard/waitForMQTTFeedback') waitForMQTTFeedback!: WaitForMQTTFeedbackAction;\n\n doesHover = false;\n\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.wizardState.wizardPath);\n }\n\n drmVariables: Map = new Map([\n [\n 'drm1',\n {\n variable: 'prgEnergy.fbI.byDRMStep1',\n value: 75,\n },\n ],\n [\n 'drm2',\n {\n variable: 'prgEnergy.fbI.byDRMStep2',\n value: 50,\n },\n ],\n [\n 'drm3',\n {\n variable: 'prgEnergy.fbI.byDRMStep3',\n value: 25,\n },\n ],\n [\n 'drm4',\n {\n variable: 'prgEnergy.fbI.byDRMStep4',\n value: 0,\n },\n ],\n ]);\n otherVariables: Map = new Map([\n [\n 'maxSellPowerToGrid',\n {\n variable: 'prgEnergy.fbI.wMaxSellPowerToGrid',\n value: 5000,\n },\n ],\n ]);\n valid = false;\n\n prepareVariablesToSend() {\n this.variablesToSend = new Map([...this.drmVariables, ...this.otherVariables]);\n }\n\n getVariableValuesFromMeasurements() {\n // sets all drm varibles\n this.drmVariables = setVariableValuesWithMeasurements(this.drmVariables, this.measurements);\n\n // sets maxSellPowerToGrid variable\n this.setMaxSellPowerToGrid();\n }\n\n setMaxSellPowerToGrid() {\n // sets maxSellPowerToGrid variable\n const defaultMaxPowerValue = this.otherVariables.get('maxSellPowerToGrid')?.value;\n const variableName: any = this.otherVariables.get('maxSellPowerToGrid')?.variable;\n const currentMaxPowerValue = this.measurements[variableName];\n if (defaultMaxPowerValue !== currentMaxPowerValue) {\n this.otherVariables.set('maxSellPowerToGrid', {\n variable: variableName,\n value: currentMaxPowerValue,\n });\n }\n }\n\n async created() {\n if (this.isSolarmax) {\n this.otherVariables.set('maxSellPowerToGrid', {\n variable: 'prgEnergy.fb.I.rMaxSellPowerToGrid',\n value: 5000,\n });\n }\n if (this.wasInstallationWizardCompleted) {\n this.getVariableValuesFromMeasurements();\n } else {\n this.setMaxSellPowerToGrid();\n }\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridDrmSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridDrmSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GridDrmSettings.vue?vue&type=template&id=4a013d80&scoped=true&\"\nimport script from \"./GridDrmSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./GridDrmSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GridDrmSettings.vue?vue&type=style&index=0&id=4a013d80&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4a013d80\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.generatorSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"system-part\"},[_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"pt-0 mt-0\"},[_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.generatorSettings.socSettings')))]),_c('div',{staticClass:\"pl-2\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineEmsSettings.generatorSettings.socTooltip'))+\" \")]},proxy:true}])})],1)])])],1),_vm._l((_vm.socVariables),function([variableKey, variableData]){return _c('v-row',{key:variableKey},[_c('v-col',{staticClass:\"py-1\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.generatorSettings.labels.${variableKey}`),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"min\":\"0\",\"max\":\"100\",\"suffix\":\"%\",\"step\":1,\"rules\":[\n _vm.socValidation,\n _vm.rules.noCommas,\n _vm.rules.required,\n ..._vm.minMaxValidation(variableData.value, _vm.socFieldsLimits[variableKey].min, _vm.socFieldsLimits[variableKey].max),\n ]},on:{\"input\":function($event){return _vm.handleSocChange()}},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}})],1)])],1)}),_c('v-row',[_c('v-col',{staticClass:\"py-1 d-flex\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('installationWizard.defineEmsSettings.generatorSettings.labels.LockTime'),\"color\":\"accent\",\"true-value\":1,\"false-value\":0},on:{\"change\":function($event){return _vm.handleLockTimeChange($event)}},model:{value:(_vm.lockTime.value),callback:function ($$v) {_vm.$set(_vm.lockTime, \"value\", $$v)},expression:\"lockTime.value\"}}),_c('div',{staticClass:\"ml-2 mt-5\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineEmsSettings.generatorSettings.timeSettingsTooltip'))+\" \")]},proxy:true}])})],1)],1)],1),_vm._l((_vm.timeVariables),function([variableKey, variableData]){return _c('v-row',{key:variableKey},[_c('v-col',{staticClass:\"py-1\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{key:_vm.lockTime.value,attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.generatorSettings.labels.${variableKey}`),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"disabled\":_vm.disableTimeLockSettings,\"min\":_vm.variablesOptions[variableKey].min,\"max\":_vm.variablesOptions[variableKey].max,\"step\":1,\"rules\":[\n _vm.rules.noCommas,\n _vm.rules.required,\n ..._vm.minMaxValidation(\n variableData.value,\n _vm.variablesOptions[variableKey].min,\n _vm.variablesOptions[variableKey].max,\n ),\n ]},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}})],1)],1)})],2)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { setVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IMQTTVariable } from '@/types/wizards/installationWizard.types';\n\nconst hourOptions = { min: 0, max: 23 };\nconst minutesOptions = { min: 0, max: 59 };\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class GeneratorSettings extends WizardComponent {\n valid = false;\n disableTimeLockSettings = true;\n doesHover = false;\n\n variablesOptions: any = {\n 'HourOn': hourOptions,\n 'MinutesOn': minutesOptions,\n 'HourOff': hourOptions,\n 'MinutesOff': minutesOptions,\n };\n\n socVariables: Map = new Map([\n [\n 'EnableSOC',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byEnableSOC',\n value: 10,\n },\n ],\n [\n 'DisableSOC',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byDisableSOC',\n value: 90,\n },\n ],\n ]);\n socFieldsLimits = {\n 'EnableSOC': {\n min: 0,\n max: 100,\n },\n 'DisableSOC': {\n min: 0,\n max: 95,\n },\n }\n lockTimeVariables: Map = new Map([\n [\n 'LockTime',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.bLockTime',\n value: 0,\n feedbackVariable: 'prgGEN.fbGen.stDataGenerator.bSLockTime',\n isBoolean: true,\n },\n ],\n ]);\n timeVariables: Map = new Map([\n [\n 'HourOn',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byHourOn',\n value: 0,\n },\n ],\n [\n 'MinutesOn',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byMinutesOn',\n value: 0,\n },\n ],\n [\n 'HourOff',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byHourOff',\n value: 0,\n },\n ],\n [\n 'MinutesOff',\n {\n variable: 'prgGEN.fbGen.stSetupGenerator.byMinutesOff',\n value: 0,\n },\n ],\n ]);\n\n get socValidation(): boolean | string {\n const enableSocValue = this.socVariables.get('EnableSOC')?.value ?? 0;\n const disableSocValue = this.socVariables.get('DisableSOC')?.value ?? 1;\n // SOC is not correct\n if (enableSocValue >= disableSocValue) {\n return this.$t('installationWizard.defineEmsSettings.generatorSettings.socValidation').toString();\n }\n // SOC is correct\n return true;\n }\n\n handleSocChange() {\n this.socVariables = cloneDeep(this.socVariables);\n }\n\n handleLockTimeChange(value: any) {\n this.disableTimeLockSettings = !value;\n }\n\n get lockTime() {\n return this.lockTimeVariables.get('LockTime') as IMQTTVariable;\n }\n\n prepareVariablesToSend(): void {\n this.variablesToSend = new Map([...this.socVariables, ...this.lockTimeVariables, ...this.timeVariables]);\n }\n\n getVariableValuesFromMeasurements() {\n // sets all soc & time varibles\n this.socVariables = setVariableValuesWithMeasurements(this.socVariables, this.measurements);\n this.timeVariables = setVariableValuesWithMeasurements(this.timeVariables, this.measurements);\n\n const defaultMaxPowerValue = this.lockTimeVariables.get('LockTime')?.value;\n const variableName: any = this.lockTimeVariables.get('LockTime')?.variable;\n const currentMaxPowerValue = this.measurements[variableName];\n if (defaultMaxPowerValue !== currentMaxPowerValue) {\n this.lockTimeVariables.set('LockTime', {\n variable: variableName,\n value: currentMaxPowerValue,\n });\n }\n }\n\n async created() {\n if (this.wasInstallationWizardCompleted) {\n this.getVariableValuesFromMeasurements();\n }\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneratorSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneratorSettings.vue?vue&type=template&id=ce3cf040&scoped=true&\"\nimport script from \"./GeneratorSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneratorSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneratorSettings.vue?vue&type=style&index=0&id=ce3cf040&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ce3cf040\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.heatingPumpSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"system-part\"},[_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.includedSystems.heating_pump_consumer.count > 0)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticClass:\"py-1\"},[_c('h3',[_c('span',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.systemName`))+\" (SG Ready)\")])])]),_c('v-row',[_c('v-col',{staticClass:\"py-3\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.labels.title`),\"type\":\"text\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.includedSystems.heating_pump_consumer.definition[0].title),callback:function ($$v) {_vm.$set(_vm.includedSystems.heating_pump_consumer.definition[0], \"title\", $$v)},expression:\"includedSystems.heating_pump_consumer.definition[0].title\"}})],1)],1),_vm._l((_vm.formVariables),function([variableKey, variableData]){return _c('v-row',{key:variableKey},[_c('v-col',{staticClass:\"py-3\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.labels.${variableKey}`),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"min\":\"0\",\"max\":\"100\",\"step\":1,\"rules\":[_vm.rules.noCommas, _vm.fieldMoreThan(0)]},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}})],1)],1)})],2):_vm._e(),(_vm.includedSystems.heating_pump.count > 0)?_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.includedSystems.heating_pump.definition),function(heating_pump,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"sm\":\"12\"}},[_c('h3',[_c('span',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.systemName`)))]),_c('span',{staticClass:\"ml-1\"},[_vm._v(_vm._s(index + 1)+\": \"+_vm._s(heating_pump.systemType))])])]),_c('v-col',{staticClass:\"py-1\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.heatingPumpSettings.labels.title`),\"type\":\"text\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required]},model:{value:(heating_pump.title),callback:function ($$v) {_vm.$set(heating_pump, \"title\", $$v)},expression:\"heating_pump.title\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.heating_pump.labels.powerHeatingpump'),\"type\":\"number\",\"color\":\"accent\",\"max\":_vm.maxPowerByHeatingPumpType[heating_pump.systemType],\"min\":0.1,\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required, _vm.rules.oneComma, _vm.fieldMoreThan(0.1), ..._vm.minMaxValidation(heating_pump.power, 0.1, _vm.maxPowerByHeatingPumpType[heating_pump.systemType])],\"suffix\":\"kW\"},on:{\"change\":function($event){return _vm.handleChange(index, $event, 'power')}},model:{value:(_vm.includedSystemsHeatingPumpSystems[index].power.value),callback:function ($$v) {_vm.$set(_vm.includedSystemsHeatingPumpSystems[index].power, \"value\", $$v)},expression:\"includedSystemsHeatingPumpSystems[index].power.value\"}}),_c('v-text-field',{staticClass:\"pt-1\",attrs:{\"value\":_vm.includedSystemsHeatingPumpSystems[index].priority.value,\"label\":_vm.$t(`installationWizard.defineEmsSettings.chargeStationSettings.priority.title`),\"color\":\"accent\",\"type\":\"number\",\"min\":_vm.batteryDefinitionEmpty ? 1 : 2,\"outlined\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noCommas, ..._vm.minMaxValidation(heating_pump.priority, _vm.batteryDefinitionEmpty ? 1 : 2, 255)]},on:{\"change\":function($event){return _vm.handleChange(index, $event, 'priority')}}})],1)])],1)}),1):_vm._e()],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { setVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\nimport {\n IChargeStationSystem, IElectricHeatingElementSystem,\n IHeatingPumpSystem, IIncludedSystemsHeatingPumpDefinition,\n IMQTTVariable, NavigationDirection,\n} from '@/types/wizards/installationWizard.types';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\nimport { TranslateResult } from 'vue-i18n';\nimport {\n hybridVersionDate,\n newChargeStationLimitDate,\n plcVersionDate\n} from '@/utils/versionManagementUtils';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { IDevice } from '@/types/devices.types';\nimport _ from 'lodash';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n },\n})\nexport default class HeatingPumpSettings extends WizardComponent {\n @Getter('projects/project') project!: IProject;\n @Mutation('installationWizard/updateEMSDeviceData') updateEMSDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('installationWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('installationWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Mutation('installationWizard/resetSystemsPropInIncludedSystemTypes')\n resetSystemsPropInIncludedSystemTypes!: (\n systemType: 'battery' | 'electric_heating' | 'charge_station' | 'heating_pump',\n ) => void;\n @Mutation('installationWizard/addSystemPropertyValues') addSystemPropertyValues!: (data: {\n systemType: string;\n data: any;\n }) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => Promise;\n\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemSystemsProps')\n handleIncludedSystemsTypesSystemSystemsProps!: ({\n systemName,\n systemIndex,\n prop,\n value,\n }: {\n systemName: string;\n systemIndex: number;\n prop: string;\n value: any;\n }) => void;\n\n doesHover = false;\n valid = false;\n\n maxPowerByHeatingPumpType: Record = {\n 'Soltop M-Tech': 20,\n 'Lambda Eureka': 20,\n };\n\n formVariables: Map = new Map([\n [\n 'priority',\n {\n variable: 'prgHP.fbHP.stSetupHP.byPriority',\n value: 4,\n },\n ],\n ]);\n backgroundVariables: Map = new Map([\n [\n 'enableSOC',\n {\n variable: 'prgHP.fbHP.stSetupHP.byEnableSOC',\n value: 1,\n },\n ],\n [\n 'minutesOn',\n {\n variable: 'prgHP.fbHP.stSetupHP.byMinutesOn',\n value: 0,\n },\n ],\n [\n 'hourOff',\n {\n variable: 'prgHP.fbHP.stSetupHP.byHourOff',\n value: 0,\n },\n ],\n [\n 'minutesOff',\n {\n variable: 'prgHP.fbHP.stSetupHP.byMinutesOff',\n value: 0,\n },\n ],\n [\n 'disableSOC',\n {\n variable: 'prgHP.fbHP.stSetupHP.byDisableSOC',\n value: 0,\n },\n ],\n [\n 'hourOn',\n {\n variable: 'prgHP.fbHP.stSetupHP.byHourOn',\n value: 0,\n },\n ],\n [\n 'enable',\n {\n variable: 'prgHP.fbHP.bEnable',\n value: 1,\n feedbackVariable: 'prgHP.fbHP.stDataHP.bEnabled',\n isBoolean: true,\n customTimeout: 30,\n },\n ],\n [\n 'timeEnabledTargetPower',\n {\n variable: 'prgHP.fbHP.stSetupHP.byTimeEnabledTargetPower',\n value: 0,\n feedbackVariable: 'prgHP.fbHP.stDataHP.bySTimeEnabledTargetPower',\n },\n ],\n [\n 'timeEnabled',\n {\n variable: 'prgHP.fbHP.stSetupHP.bTimeEnabled',\n value: 0,\n feedbackVariable: 'prgHP.fbHP.stDataHP.bSTimeEnabled',\n isBoolean: true,\n },\n ],\n [\n 'reset',\n {\n variable: 'prgHP.fbHP.stSetupHP.bReset',\n value: 0,\n feedbackVariable: 'prgHP.fbHP.stDataHP.bSReset',\n isBoolean: true,\n },\n ],\n ]);\n\n handleChange(elementIndex: number, event: any, prop: string) {\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'heating_pump',\n systemIndex: elementIndex,\n prop,\n value: event,\n });\n }\n\n async prepareVariablesToSend() {\n if (this.includedSystems.heating_pump_consumer.definition.length) this.variablesToSend = new Map([...this.formVariables, ...this.backgroundVariables]);\n\n this.prepareHeatingPumpVariables();\n\n // Update the names given initially in the ems mappings\n await this.updateEMSNaming();\n }\n\n async updateEMSNaming() {\n const emsMappings = _.cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = _.cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n // Update ems mappings\n Object.values(emsMappings.heating_pump.components)\n .filter((component: any, index) => {\n const notConsumer = component.power.includes('prgHP.lrPowerHP_');\n const notDummy = !(component.external_energy_measurement && component.error === undefined);\n if (!notConsumer && notDummy) {\n component.title = this.includedSystems.heating_pump_consumer.definition[0]?.title || component.title;\n }\n return notConsumer && notDummy;\n })\n .forEach((component: any, index: number) => {\n component.title = this.includedSystems.heating_pump.definition[index]?.title || component.title;\n });\n\n // Update energy view mappings\n Object.values(energyViewMappings.heating_pump.components)\n .filter((component: any) => component.power.includes('prgHP.lrPowerHP_'))\n .forEach((component: any, index: number) => {\n component.title = this.includedSystems.heating_pump.definition[index].title;\n });\n\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n if (this.emsDevice.id) await this.updateDevice({ device: this.emsDevice, skipReport: false });\n if (this.energyViewDevice.id) await this.updateDevice({ device: this.energyViewDevice, skipReport: false });\n }\n\n prepareHeatingPumpVariables() {\n this.includedSystems.heating_pump.systems.forEach((heating_pump: IHeatingPumpSystem, index: number) => {\n Object.entries(heating_pump).forEach(([key, value]) => {\n if (key === 'title') return;\n this.variablesToSend.set(\n heating_pump[key as keyof IHeatingPumpSystem].variable,\n heating_pump[key as keyof IHeatingPumpSystem] as IMQTTVariable,\n );\n });\n });\n }\n\n getVariableValuesFromMeasurements() {\n this.formVariables = setVariableValuesWithMeasurements(this.formVariables, this.measurements);\n\n // loop over existing heating elements\n this.includedSystems.heating_pump.systems.forEach((system: IHeatingPumpSystem, index) => {\n const maxPower = this.measurements[system.power.variable];\n const priority = this.measurements[system.priority.variable] !== 0 ? this.measurements[system.priority.variable] : system.priority.value;\n\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'heating_pump',\n systemIndex: index,\n prop: 'power',\n value: maxPower,\n });\n this.handleIncludedSystemsTypesSystemSystemsProps({\n systemName: 'heating_pump',\n systemIndex: index,\n prop: 'priority',\n value: priority,\n });\n });\n }\n\n get batteryDefinitionEmpty() {\n return this.emsDevice.data.meta.controllerMappings.battery.components.count === 0;\n }\n\n get isNewChargeStationPlcVersion() {\n return (plcVersionDate(this.project).getTime() > newChargeStationLimitDate.getTime()) && (this.isDeye || this.isSolarmax);\n }\n\n get includedSystemsHeatingPumpSystems(): IHeatingPumpSystem[] {\n return this.includedSystems.heating_pump.systems;\n }\n\n validate() {\n this.valid = (this.$refs.form as any).validate();\n }\n\n mounted() {\n this.validate();\n }\n\n getInstallationWizardVariable(variable: string, value: number, systemIndex: number) {\n return installationWizardVariables(variable, 'componentsPage', value, systemIndex);\n }\n\n async created() {\n this.resetSystemsPropInIncludedSystemTypes('heating_pump');\n if (this.isNewChargeStationPlcVersion) {\n Object.values(this.emsDevice.data.meta.controllerMappings.heating_pump.components).filter(\n (component: any) => {\n return component.power.includes('prgHP.lrPowerHP_') && !(component.external_energy_measurement && component.error === undefined)\n },\n ).forEach((component: any, index) => {\n const ind = index + 1;\n const defaultValues = {\n power: this.getInstallationWizardVariable('heatingPumpMaxPower1', 0, ind),\n priority: this.getInstallationWizardVariable('heatingPumpPriority', 2, ind),\n max_power_2: this.getInstallationWizardVariable('heatingPumpMaxPower2', 0, ind),\n enableSOC: this.getInstallationWizardVariable('heatingPumpEnableSOC', 1, ind),\n minutesOn: this.getInstallationWizardVariable('heatingPumpMinuteOn', 0, ind),\n hourOff: this.getInstallationWizardVariable('heatingPumpHourOff', 0, ind),\n minutesOff: this.getInstallationWizardVariable('heatingPumpMinuteOff', 0, ind),\n disableSOC: this.getInstallationWizardVariable('heatingPumpDisableSOC', 0, ind),\n hourOn: this.getInstallationWizardVariable('heatingPumpHourOn', 0, ind),\n enable: this.getInstallationWizardVariable('heatingPumpEnable', 1, ind),\n timeEnabledTargetPower: this.getInstallationWizardVariable('heatingPumpTimeEnabledPower', 0, ind),\n timeEnabled: this.getInstallationWizardVariable('heatingPumpTimeEnabled', 0, ind),\n reset: this.getInstallationWizardVariable('heatingPumpReset', 0, ind),\n title: component.title,\n };\n if (!this.includedSystems.heating_pump.systems[index]) {\n this.addSystemPropertyValues({ systemType: 'heating_pump', data: defaultValues });\n }\n });\n }\n\n if (this.wasInstallationWizardCompleted || this.navigationDirection === 0) {\n this.getVariableValuesFromMeasurements();\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingPumpSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingPumpSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HeatingPumpSettings.vue?vue&type=template&id=31f760b1&scoped=true&\"\nimport script from \"./HeatingPumpSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./HeatingPumpSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./HeatingPumpSettings.vue?vue&type=style&index=0&id=31f760b1&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31f760b1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.defineEmsSettings.bigConsumerSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"system-part\"},[_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.formVariables),function([variableKey, variableData],index){return _c('v-row',{key:variableKey},[_c('v-col',{staticClass:\"py-1\",attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"mb-4\"},[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.bigConsumerSettings.systemTitle`, { number: index + 1 })))]),_c('h3',{staticClass:\"pl-4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.systems.big_consumer.labels.power'))+\": \"+_vm._s(_vm.includedSystems.big_consumer.definition[index].power)+\" kW\")])]),_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.bigConsumerSettings.labels.title`),\"type\":\"text\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.includedSystems.big_consumer.definition[index].title),callback:function ($$v) {_vm.$set(_vm.includedSystems.big_consumer.definition[index], \"title\", _vm._n($$v))},expression:\"includedSystems.big_consumer.definition[index].title\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.bigConsumerSettings.labels.priority`),\"type\":\"number\",\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"step\":1,\"min\":_vm.batteryDefinitionEmpty ? 1 : 2,\"rules\":[_vm.rules.required, _vm.rules.noCommas, _vm.rules.onlyNumbersRule, _vm.fieldMoreThan(_vm.batteryDefinitionEmpty ? 1 : 2)]},model:{value:(variableData.value),callback:function ($$v) {_vm.$set(variableData, \"value\", _vm._n($$v))},expression:\"variableData.value\"}})],1)],1)}),1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport _, { range } from 'lodash';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { setVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\nimport { IMQTTVariable } from '@/types/wizards/installationWizard.types';\nimport { IDevice } from '@/types/devices.types';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class BigConsumerSettings extends WizardComponent {\n @Getter('installationWizard/emsLimits') emsLimits!: Record;\n @Mutation('installationWizard/updateEMSDeviceData') updateEMSDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => Promise;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('installationWizard/energyViewDevice') energyViewDevice!: IDevice;\n\n valid = false;\n formVariables: Map = new Map();\n backgroundVariables: Map = new Map();\n\n get includedSystemBigConsumer() {\n return this.includedSystems.big_consumer;\n }\n\n get batteryDefinitionEmpty() {\n return this.emsDevice.data.meta.controllerMappings.battery.components.count === 0;\n }\n\n /**\n * Generates the foreground variables for the given count of systems.\n */\n formVariablesForCount(count: number): Map {\n // fill empty object with index-dependent variables\n return range(1, count + 1).reduce((acc, i) => {\n acc.set(\n `priority${i}`,\n {\n variable: `prgOBC.fbBC${i}.stSetupOBC.byPriority`,\n value: 5,\n },\n );\n return acc;\n }, new Map());\n }\n\n /**\n * Generates the background variables for the given count of systems.\n */\n backgroundVariablesForCount(count: number): Map {\n // fill empty object with index-dependent variables\n return range(1, count + 1).reduce((acc, i) => {\n acc.set(\n `enableSOC${i}`,\n {\n variable: `prgOBC.fbBC${i}.stSetupOBC.byEnableSOC`,\n value: 1,\n },\n );\n acc.set(\n `disableSOC${i}`,\n {\n variable: `prgOBC.fbBC${i}.stSetupOBC.byDisableSOC`,\n value: 0,\n },\n );\n acc.set(\n `enable${i}`,\n {\n variable: `prgOBC.fbBC${i}.bEnable`,\n // if this system is not included, set enable flag to 0\n value: i > this.includedSystemBigConsumer.count ? 0 : 1,\n feedbackVariable: `prgOBC.fbBC${i}.stDataOBC.bEnabled`,\n isBoolean: true,\n },\n );\n return acc;\n }, new Map());\n }\n getVariableValuesFromMeasurements() {\n this.formVariables = setVariableValuesWithMeasurements(this.formVariables, this.measurements);\n }\n\n async created() {\n // form variables are dependent on the chosen count of systems\n this.formVariables = this.formVariablesForCount(this.includedSystemBigConsumer.count);\n // background variables are always sent for all systems, but with the respective enable flag on/off\n this.backgroundVariables = this.backgroundVariablesForCount(this.emsLimits.big_consumer);\n if (this.wasInstallationWizardCompleted) {\n this.getVariableValuesFromMeasurements();\n }\n }\n\n prepareVariablesToSend(): void {\n this.variablesToSend = new Map([...this.formVariables, ...this.backgroundVariables]);\n this.updateEMSNaming();\n }\n\n async updateEMSNaming() {\n const emsMappings = _.cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = _.cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n // Update ems mappings\n Object.values(emsMappings.big_consumer.components)\n .forEach((component: any, index: number) => {\n component.title = this.includedSystems.big_consumer.definition[index]?.title || component.title;\n });\n\n // Update energy view mappings\n Object.values(energyViewMappings.big_consumer.components)\n .forEach((component: any, index: number) => {\n component.title = this.includedSystems.big_consumer.definition[index].title;\n });\n\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n if (this.emsDevice.id) await this.updateDevice({ device: this.emsDevice, skipReport: false });\n if (this.energyViewDevice.id) await this.updateDevice({ device: this.energyViewDevice, skipReport: false });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BigConsumerSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BigConsumerSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BigConsumerSettings.vue?vue&type=template&id=94d8c08a&scoped=true&\"\nimport script from \"./BigConsumerSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./BigConsumerSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BigConsumerSettings.vue?vue&type=style&index=0&id=94d8c08a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"94d8c08a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chp.title`)))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.visibleVariables),function(chpElement,index){return _c('v-row',{key:index},[_c('h3',{staticClass:\"py-3 px-3\"},[_vm._v(_vm._s(_vm.$t(`installationWizard.defineEmsSettings.chp.device`))+\" \"+_vm._s(index + 1)+\" \")]),_vm._l((Object.entries(chpElement)),function(variable,variableIndex){return _c('v-col',{key:'var'+index+variableIndex,attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[(variable[1].fieldInfo.type === 'textField')?_c('div',{staticStyle:{\"width\":\"50%\"}},[_c('v-text-field',{attrs:{\"value\":variable[1].mqttVariableInfo.value,\"label\":_vm.$t(`installationWizard.defineEmsSettings.chp.fieldLabel.${variable[0]}`),\"color\":\"accent\",\"type\":\"number\",\"outlined\":\"\",\"suffix\":variable[1].fieldInfo.unit,\"rules\":[\n ...variable[1].fieldInfo.rules,\n ..._vm.minMaxValidation(\n variable[1].mqttVariableInfo.value,\n variable[1].fieldInfo.min,\n variable[1].fieldInfo.max,\n )\n ]},on:{\"change\":function($event){return _vm.updateVariables($event, index, variable[0])}}})],1):_vm._e(),(variable[1].fieldInfo.type === 'checkbox')?_c('div',[_c('v-checkbox',{attrs:{\"label\":_vm.$t(`installationWizard.defineEmsSettings.chp.fieldLabel.${variable[0]}`),\"true-value\":1,\"false-value\":0,\"color\":\"accent\"},model:{value:(variable[1].mqttVariableInfo.value),callback:function ($$v) {_vm.$set(variable[1].mqttVariableInfo, \"value\", $$v)},expression:\"variable[1].mqttVariableInfo.value\"}})],1):_vm._e()])})],2)}),1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Component } from 'vue-property-decorator';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Getter, Mutation } from 'vuex-class';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { overWriteVariableValuesWithMeasurements } from '@/utils/installationWizardUtilsFunctions';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class ChpSettings extends WizardComponent {\n @Getter('projects/isDeye') isDeye!: boolean;\n @Mutation('installationWizard/addSystemPropertyValues') addSystemPropertyValues!: (data: { systemType: string; data: any }) => void;\n @Mutation('installationWizard/updateSystemPropertyValues') updateSystemPropertyValues!: (data: { systemType: string; data: any; systemIndex: number }) => void;\n @Mutation('installationWizard/handleIncludedSystemsTypesSystemSystemsProps') handleIncludedSystemsTypesSystemSystemsProps!: (\n { systemName, systemIndex, prop, value }: { systemName: string; systemIndex: number; prop: string; value: any }\n ) => void;\n doesHover = false;\n valid = false;\n\n visibleVariables: any = [];\n backgroundVariable: any = {}\n\n updateVariables(event: any, chpIndex: number, variableName: string) {\n this.visibleVariables[chpIndex][variableName].mqttVariableInfo.value = event;\n }\n\n prepareVariablesToSend() {\n this.visibleVariables.forEach((element: any) => {\n return Object.values(element).forEach((variable: any) => {\n this.variablesToSend.set(variable.mqttVariableInfo.variable, variable.mqttVariableInfo);\n });\n });\n Object.entries(this.backgroundVariable).forEach((element: any, index: number) => {\n Object.entries(element[1]).forEach((variable: any) => {\n this.variablesToSend.set(`chp${index + 1}${variable[0]}`, variable[1]);\n });\n });\n }\n\n initMappings() {\n for (let ind = 1; ind <= this.includedSystems.chp.count; ind++) {\n this.visibleVariables.push({\n 'socForEnable': {\n mqttVariableInfo: { value: 3, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.byEnableSOC` },\n fieldInfo: { min: 0, max: 89, type: 'textField', unit: '%', rules: [this.rules.noCommas] },\n },\n 'socForDisable': {\n mqttVariableInfo: { value: 35, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.byDisableSOC` },\n fieldInfo: { min: 0, max: 90, type: 'textField', unit: '%', rules: [this.rules.noCommas] },\n },\n 'storageCap': {\n mqttVariableInfo: { value: 50, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.rMaxCapHeatStorage` },\n fieldInfo: { min: 1, max: 100000, type: 'textField', unit: 'l', rules: [this.rules.oneComma] },\n },\n 'thermalPower': {\n mqttVariableInfo: { value: 62, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.rThermalPowerBHKW` },\n fieldInfo: { min: 1, max: 10000, type: 'textField', unit: 'kWth', rules: [this.rules.oneComma] },\n },\n 'emergencyCooler': {\n mqttVariableInfo: { value: 0, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.bEmergencyCooler`, feedbackVariable: `prgBHKW.fbBHKW.stDataBHKWOut${ind}.bSActEmergencyC`, isBoolean: true },\n fieldInfo: { type: 'checkbox' },\n },\n 'heatingSystem': {\n mqttVariableInfo: { value: 0, variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.bEnHeatingSystem`, feedbackVariable: `prgBHKW.fbBHKW.stDataBHKWOut${ind}.bSActHeatingSys`, isBoolean: true },\n fieldInfo: { type: 'checkbox' },\n },\n });\n this.backgroundVariable[`chp${ind}`] = {\n 'byWorkModeOn': { variable: `rgBHKW.fbBHKW.stSetupBHKW_${ind}.byWorkModeOn`, value: 6 },\n 'byTargetPowerOn': { variable: `prgBHKW.fbBHKW.stSetupBHKW_${ind}.byTargetPowerOn`, value: 100, feedbackVariable: `prgBHKW.fbBHKW.stDataBHKWOut${ind}.rTargetPower` },\n };\n }\n\n // if wizard was done once. overwrite the values with the current measurements\n if (this.wasInstallationWizardCompleted) {\n this.visibleVariables.forEach((element: any) => {\n return Object.values(element).forEach((variable: any) => {\n const varibaleName = variable.mqttVariableInfo.variable;\n const currentMeasurentValue = this.measurements[varibaleName];\n\n if (currentMeasurentValue !== undefined) {\n variable.mqttVariableInfo.value = currentMeasurentValue;\n }\n });\n });\n }\n }\n\n async created() {\n await this.fetchMeasurements(this.$route.params.id);\n this.initMappings();\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChpSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChpSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChpSettings.vue?vue&type=template&id=0e979152&\"\nimport script from \"./ChpSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChpSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"title d-flex\"},[_c('div',[_c('h1',{staticClass:\"pr-6\"},[_vm._v(_vm._s(_vm.$t('installationWizard.systemTestPage.title')))]),(!_vm.activateTests)?_c('h3',[_vm._v(\"(\"+_vm._s(_vm.$t('installationWizard.systemTestPage.recommended'))+\")\")]):_vm._e()]),_c('v-btn-toggle',{attrs:{\"color\":\"accent\"},on:{\"change\":_vm.validate},model:{value:(_vm.activateTests),callback:function ($$v) {_vm.activateTests=$$v},expression:\"activateTests\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},attrs:{\"disabled\":(!_vm.isProjectOnline || _vm.disabledWhileOffline) && (_vm.power >= 30000),\"value\":true}},[_vm._v(_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},attrs:{\"disabled\":(!_vm.isProjectOnline || _vm.disabledWhileOffline) && (_vm.power >= 30000),\"value\":false}},[_vm._v(_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1)],1),(_vm.isHybridVersion && _vm.isDeye && _vm.power >= 30000)?_c('div',{staticClass:\"warning-text mx-5\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.installationPage.warningSystemTest'))+\" \")]):_vm._e()]},proxy:true},{key:\"content\",fn:function(){return [(_vm.activateTests)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"tests\"},[_c('div',{staticClass:\"line pb-5\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.systemTestPage.tests.title')))]),_c('InfoTooltip',{attrs:{\"position\":\"right\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.systemTestPage.testInfoText'))+\" \")]},proxy:true}],null,false,2111318342)})],1),_vm._l((Object.keys(_vm.tests)),function(key,index){return _c('div',{key:index,staticClass:\"line\"},[_c('h4',{staticStyle:{\"width\":\"60%\"}},[_vm._v(_vm._s(_vm.$t(`installationWizard.systemTestPage.tests.${key}`)))]),_c('v-switch',{attrs:{\"color\":\"accent\",\"disabled\":_vm.obligatoryTests.includes(key)},model:{value:(_vm.tests[key]),callback:function ($$v) {_vm.$set(_vm.tests, key, $$v)},expression:\"tests[key]\"}}),((_vm.finished) && _vm.tests[key])?_c('div',[(_vm.errorWarnings[key]?.thrown)?_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-alert-circle\")]):_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"mdi-check-circle\")])],1):_vm._e()],1)}),_c('div',{staticClass:\"d-flex mt-5\",style:((_vm.disable) ? 'pointer-events: none' : '')},[_c('h3',{staticClass:\"mt-1 pr-3\"},[_vm._v(_vm._s(_vm.$t('installationWizard.systemTestPage.tests.runTests')))]),_c('PushButtonBase',{attrs:{\"variable-data\":{\n PushButton_onOff: 'prgEnergy.fbI.bStartChrgDischrgTest',\n PushButton_state: 'prgEnergy.fbI.bS_StartChrgDischrgTest',\n ShowEvent_errorWarningState: '',\n },\"instance\":\"PushButton\"},on:{\"sent\":_vm.startTests}})],1),_c('div',{staticClass:\"infobox pa-3 rounded mt-4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.systemTestPage.info'))+\" \")]),_c('div',{staticClass:\"infobox pa-3 rounded mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.systemTestPage.additionalInfo'))+\" \")])],2),_c('div',{staticClass:\"wrapper\"},[_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex\"},[_c('ActualView',{staticStyle:{\"pointer-events\":\"none\"},attrs:{\"device-data\":_vm.emsDevice,\"enableMinWidth\":true}}),(_vm.testsStarted)?_c('div',{staticStyle:{\"align-self\":\"center\",\"max-width\":\"20% !important\",\"width\":\"20% !important\"}},[_vm._l((_vm.gridConverterMappings),function(mappings,index){return _c('div',{key:'converter'+ index,staticClass:\"py-1\"},[(_vm.areAllGirdConverterMappingsAvailable)?_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\" CT L\"+_vm._s(index + 1)+\": \")]),_c('div',{staticClass:\"pl-1\",style:(`color: ${_vm.getColorMappings(_vm.measurements[mappings])}`)},[_vm._v(\" \"+_vm._s(_vm.measurements[mappings].toFixed(2))+\" \")]),_c('div',{staticClass:\"pl-1\"},[_vm._v(\" kW \")])]):_vm._e()])}),_c('div',{staticClass:\"mt-4\"},[(_vm.currentState === 1)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.systemTestPage.batteryPositiveText'))+\" \")]):_vm._e(),(_vm.currentState === 2)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.systemTestPage.batteryNegativeText'))+\" \")]):_vm._e()])],2):_vm._e()],1),_c('BatteryStatusBar',{attrs:{\"duration\":_vm.duration,\"duration-per-state\":_vm.stateLimit,\"hasError\":Object.values(_vm.errorWarnings).some((ew) => ew.thrown),\"state\":_vm.currentState,\"started\":_vm.testsStarted,\"finished\":_vm.testsComplete}})],1)])]):_vm._e(),_c('v-dialog',{attrs:{\"width\":\"500\",\"height\":\"500\",\"persistent\":\"\",\"overlay-opacity\":\"0.8\"},model:{value:(_vm.openDialog),callback:function ($$v) {_vm.openDialog=$$v},expression:\"openDialog\"}},[_c('v-card',{staticClass:\"dialog-view-design pt-4\",attrs:{\"flat\":\"\"}},[_c('v-card-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.installationWizardPopup.title')))])]),_c('v-card-text',[_c('h3',[_vm._v(_vm._s(_vm.$t('installationWizard.systemTestPage.functionality')))])]),_c('v-card-actions',{staticClass:\"pa-4\"},[_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){_vm.openDialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.close'))+\" \")])],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"progress\"},[((_vm.started || _vm.state) && !_vm.finished)?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}}):_vm._e(),(_vm.finished && _vm.hasError)?_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"mdi-alert-circle\")]):_vm._e(),(_vm.finished && !_vm.hasError)?_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"mdi-check-circle\")]):_vm._e(),_c('div',{staticClass:\"d-flex flex-column align-center ml-2\",staticStyle:{\"width\":\"30%\"}},[_c('div',{staticClass:\"statusbar\",style:(`backgroundColor: ${_vm.colors[_vm.state]}; color: ${_vm.textColor}; ${_vm.finishedStyle}`)},[_vm._v(\" \"+_vm._s(_vm.translations[_vm.finished ? 3 : _vm.state])+\" \")]),(!_vm.finished)?_c('v-progress-linear',{key:_vm.duration,staticClass:\"progress-bar\",attrs:{\"value\":_vm.progress,\"color\":\"accent\",\"title\":_vm.translations[_vm.finished ? 3 : _vm.state]}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\n\n@Component({\n components: {\n EnergyVisualisationPreview,\n WizardContentView,\n },\n})\nexport default class BatteryStatusBar extends WizardComponent {\n @Prop({ default: 0 }) state!: number;\n @Prop({ default: 0 }) duration!: number;\n @Prop({ default: false }) started!: boolean;\n @Prop({ default: false }) finished!: boolean;\n @Prop({ default: false }) hasError!: boolean;\n @Prop({ default: { 0: 90, 1: 250, 2: 250 } }) durationPerState!: { [key: number]: number };\n colors = {\n 0: '#414141',\n 1: '#218608',\n 2: '#d70827',\n }\n progress = 0;\n percent = 0;\n\n @Watch('state')\n onStateChange(val: number, oldVal: number) {\n if (val > oldVal) {\n this.percent = this.calculatePercentage(val);\n }\n }\n\n calculatePercentage(val: number) {\n let percentage = 0;\n switch (val) {\n case 0:\n percentage = 0;\n break;\n case 1:\n percentage = (30 / 210) * 100;\n break;\n case 2:\n percentage = (120 / 210) * 100;\n break;\n }\n return percentage;\n }\n\n @Watch('duration')\n handleDurationChange(val: number) {\n this.progress = this.calculateProgress();\n }\n\n calculateProgress() {\n if (this.finished) {\n return 100;\n } else {\n const value = this.state === 0 ? 1 : 2;\n const durationPercentage = ((100 / this.durationPerState[this.state]) * this.duration) * (this.calculatePercentage(value) / 100);\n return this.percent + (durationPercentage);\n }\n }\n\n textColors = {\n true: '#30bf54',\n false: 'white',\n }\n get textColor() {\n if (this.finished) {\n return this.hasError ? '#d70827' : '#30bf54';\n } else {\n return 'white';\n }\n }\n get finishedStyle() {\n const color = !this.hasError ? '#30bf54' : '#d70827';\n return !this.finished ? '' : `border: 2px solid ${color};`;\n }\n get translations() {\n return {\n 0: this.$t('installationWizard.systemTestPage.states.notStarted'),\n 1: this.$t('installationWizard.systemTestPage.states.charging'),\n 2: this.$t('installationWizard.systemTestPage.states.discharging'),\n 3: !this.hasError ? this.$t('installationWizard.systemTestPage.states.finished') : this.$t('installationWizard.systemTestPage.states.error'),\n };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryStatusBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryStatusBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BatteryStatusBar.vue?vue&type=template&id=4bf7462f&scoped=true&\"\nimport script from \"./BatteryStatusBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./BatteryStatusBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BatteryStatusBar.vue?vue&type=style&index=0&id=4bf7462f&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4bf7462f\",\n null\n \n)\n\nexport default component.exports","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\nimport {\n EnergyDevicesCircleTypes,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport BatteryStatusBar\n from '@/ui/components/wizards/installationWizard/steps/inviteUsers/components/BatteryStatusBar.vue';\nimport ActualView\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/index.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport PushButtonBase from '@/ui/components/devices/devices/base/PushButtonBase/index.vue';\nimport { IDevice } from '@/types/devices.types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport {\n energyGreen,\n energyRed\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\nimport { IIncludedSystemsTypes, WizardPath } from '@/types/wizards/installationWizard.types';\nimport { defaultTimeoutRepotMessages } from '@/utils/constants';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\n\n@Component({\n components: {\n ModalWindow,\n BatteryStatusBar,\n WizardContentView,\n ActualView,\n InfoTooltip,\n PushButtonBase,\n },\n})\nexport default class SystemTestPage extends WizardComponent {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('installationWizard/includedSystemsTypes') includedSystemsTypes!: IIncludedSystemsTypes;\n @Getter('installationWizard/considerProjectStatus') considerProjectStatus!: boolean;\n @Getter('installationWizard/pilotSystemCount') pilotSystemCount!: number;\n @Getter('mqttClient/isProjectOnline') isProjectOnline !: boolean;\n @Getter('installationWizard/disabledWhileOffline') disabledWhileOffline!: boolean;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Mutation('installationWizard/setRestartSent') setRestartSent!: (payload: boolean) => void;\n @Mutation('installationWizard/setDisabledWhileOffline') setDisabledWhileOffline!: (payload: boolean) => void;\n\n tests: any = {};\n activateTests = false;\n testsStarted = false;\n modeChanged = false;\n finished = false;\n disable = false;\n hasBeenOpened = false;\n\n valid = true;\n errorWarning = {\n thrown: false,\n message: {},\n };\n\n doesHover = false;\n openDialog = false;\n\n currentState = 0;\n duration = 0;\n testableSystems = ['charge_station', 'electric_heating', 'chp', 'pilot'];\n obligatoryTests = ['battery', 'ioModulesTest'];\n\n getColorMappings(value: number) {\n if (value === 0) return 'lynusText';\n if (value > 0) return energyRed;\n if (value < 0) return energyGreen;\n }\n\n gridConverterMappings = [\n 'prgEnergy.lrPowerL1Grid',\n 'prgEnergy.lrPowerL2Grid',\n 'prgEnergy.lrPowerL3Grid',\n ];\n\n batteryVariables = {\n start: 'prgEnergy.fbI.bStartChrgDischrgTest',\n feedback: 'prgEnergy.fbI.bS_StartChrgDischrgTest',\n state: 'prgEnergy.fbI.byModeChrgDischrgTest', // State of the battery test. 0 = not started, 1 = charging, 2 = discharging\n }\n\n errorWarnings: any = {\n battery: {\n name: this.$t('installationWizard.systemTestPage.tests.battery'),\n variables: ['prgEnergy.byErrorWarningB1'],\n errorValue: 2,\n thrown: false,\n },\n ioModulesTest: {\n name: this.$t('installationWizard.systemTestPage.tests.ioModulesTest'),\n variables: ['prgIO.bErrorIO'],\n errorValue: 1,\n thrown: false,\n },\n pilot: {\n name: this.$t('installationWizard.systemTestPage.tests.pilot'),\n variables: ['prgPilot.bErrorPilot'],\n errorValue: 1,\n thrown: false,\n },\n }\n\n stateLimit: { [key: number]: number } = {\n 0: 90,\n 1: 250,\n 2: 250,\n }\n\n get areAllGirdConverterMappingsAvailable() {\n return this.gridConverterMappings.every((mapping) => this.measurements[mapping] !== undefined);\n }\n\n get power(): number {\n return (this.measurements[installationWizardVariables('maxPowerInverter', 'componentsPage').variable] as number ?? 0) / this.wizardState.inverterCount;\n }\n\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n get tenantInstallationNoBattery() {\n return this.project.meta.wizardSettings?.wizardPath === WizardPath.TENANT_INSTALLATION_NO_BATTERY;\n }\n\n async prepareVariablesToSend() {\n // check if EMS is disabled and enable it if necessary\n if (this.measurements['prgEMS.fbEMS.bEnable'] === 0 && !this.tenantInstallationNoBattery) {\n await this.sendVariables([{\n variable: 'prgEMS.fbEMS.bEnable',\n value: 1,\n feedbackVariable: 'prgEMS.fbEMS.bStateEnable',\n isBoolean: true,\n }]);\n }\n }\n\n resetTests() {\n this.errorWarning = {\n thrown: false,\n message: {},\n };\n this.currentState = 0;\n this.duration = 0;\n\n this.modeChanged = false;\n this.testsStarted = false;\n this.finished = false;\n this.validate();\n }\n\n // Get error warnings that need to be observed for selected tests\n selectedErrorWarnings(): [string, string, number][] {\n Object.keys(this.tests).filter((test) => !this.obligatoryTests.includes(test) && this.testableSystems.includes(test)).forEach((test) => {\n if (this.tests[test] && !['pilot', 'string_inverter'].includes(test)) {\n this.errorWarnings[test] = {\n name: this.$t(`installationWizard.systemTestPage.tests.${test}`),\n variables: this.getErrorWarnings(test),\n errorValue: 2,\n };\n }\n });\n // First, filter out the keys of interest from the errorWarnings object\n const filteredKeys = Object.keys(this.errorWarnings)\n .filter(test => !this.obligatoryTests.includes(test) &&\n this.testableSystems.includes(test) &&\n this.tests[test]);\n\n const obligatoryErrorWarnings: [string, string, number][] = [];\n this.obligatoryTests.forEach((test) => {\n obligatoryErrorWarnings.push(...this.errorWarnings[test].variables.map((variable: string) => [test, variable, this.errorWarnings[test].errorValue]));\n });\n // Now, transform these keys into the desired array structure using reduce\n const optionalErrorWarnings = filteredKeys.reduce((acc, test) => {\n const {variables, errorValue} = this.errorWarnings[test];\n const newEntries = variables.map((variable: string) => [test, variable, errorValue]);\n return acc.concat(newEntries);\n }, []) as [string, string, number][];\n return [...obligatoryErrorWarnings, ...optionalErrorWarnings];\n }\n\n getErrorWarnings(system: string) {\n return Object.values(this.emsDevice.data?.meta?.controllerMappings[system].components).filter((component: any) => component.error).map((component: any) => component.error);\n }\n\n get testsComplete() {\n return this.testsStarted && this.finished;\n }\n\n validate() {\n // If activateTests is false, the tests are not activated and the page is valid\n if (!this.activateTests) {\n this.valid = true;\n } else {\n if (!this.hasBeenOpened) {\n this.openDialog = true;\n this.hasBeenOpened = true;\n }\n this.valid = this.testsComplete;\n }\n }\n\n observeBatteryState() {\n // Observe battery state\n const stateVariable = this.measurements[this.batteryVariables.state];\n const stateFeedbackVariable = this.measurements[this.batteryVariables.feedback];\n if (this.testsStarted && stateFeedbackVariable === 0 && stateVariable === 0 && this.modeChanged) {\n this.finished = true;\n }\n this.currentState = stateVariable;\n }\n\n observeErrorWarnings() {\n // Observe error warnings\n this.selectedErrorWarnings().forEach((errorWarning) => {\n if (errorWarning) {\n if (this.measurements[errorWarning[1]] === errorWarning[2]) {\n this.setErrorWarning(errorWarning[0], errorWarning[1], true);\n }\n }\n });\n }\n\n setTestsStarted() {\n // Set testsStarted to true if the battery test has started\n if (this.measurements[this.batteryVariables.feedback] === 1) {\n this.testsStarted = true;\n this.setErrorWarning('battery', this.batteryVariables.start, false);\n }\n }\n\n setErrorWarning(errorWarning: any, variable: string, state: boolean) {\n this.errorWarning.thrown = state;\n this.errorWarnings[errorWarning].thrown = state;\n this.errorWarning.message = state ? this.$t('installationWizard.systemTestPage.error.errorWarning', {\n variable,\n errorWarning\n }) : '';\n }\n\n setTimeoutError() {\n this.errorWarning.thrown = true;\n this.errorWarning.message = this.$t('installationWizard.systemTestPage.error.timeout');\n this.disable = false;\n }\n\n async setEMSState(state: 0 | 1) {\n try {\n await this.sendVariables([{\n variable: 'prgEMS.fbEMS.bEnable',\n value: state,\n feedbackVariable: 'prgEMS.fbEMS.bStateEnable',\n isBoolean: true,\n }]);\n return true;\n } catch (e) {\n this.setReport({\n type: 'error',\n message: `Could not ${state ? 'enable' : 'disable'} EMS`,\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n return false;\n }\n }\n\n // Start testing process\n async startTests() {\n this.disable = true;\n await this.setEMSState(0);\n this.resetTests();\n this.errorWarnings = {\n battery: {\n name: this.$t('installationWizard.systemTestPage.tests.battery'),\n variables: ['prgEnergy.byErrorWarningB1'],\n errorValue: 2,\n thrown: false,\n },\n ioModulesTest: {\n name: this.$t('installationWizard.systemTestPage.tests.ioModulesTest'),\n variables: ['prgIO.bErrorIO'],\n errorValue: 1,\n thrown: false,\n },\n pilot: {\n name: this.$t('installationWizard.systemTestPage.tests.pilot'),\n variables: ['prgPilot.bErrorPilot'],\n errorValue: 1,\n thrown: false,\n },\n };\n if (this.wizardState.stringInverterCount > 0) {\n this.errorWarnings = {\n ...this.errorWarnings,\n string_inverter: {\n name: this.$t('installationWizard.systemTestPage.tests.string_inverter'),\n variables: ['prgACPV.byErrorWarningInv'],\n errorValue: 1,\n thrown: false,\n },\n };\n }\n // Start battery test\n this.duration = 0;\n let previousState = this.currentState;\n\n // Check in a 1s interval the state variable of the battery test in measurement and stop if it has reached 0\n const interval = setInterval(async () => {\n if (this.project.id) {\n // Newly fetch measurements\n await this.fetchMeasurements(this.project.id);\n }\n if (!this.testsStarted) this.setTestsStarted();\n\n // Observe and handle changes in measurements\n this.observeBatteryState();\n this.observeErrorWarnings();\n\n // Clear interval if tests are completed successfully\n if (this.testsComplete) {\n clearInterval(interval);\n this.validate();\n await this.setEMSState(1);\n this.disable = false;\n }\n\n // Check duration for current state\n if (this.currentState === previousState) {\n if (this.duration >= this.stateLimit[this.currentState]) {\n this.setTimeoutError();\n this.handleError();\n clearInterval(interval);\n await this.setEMSState(1);\n }\n } else {\n this.modeChanged = true;\n this.duration = 0;\n }\n previousState = this.currentState;\n this.duration++;\n }, 1000);\n }\n\n handleError() {\n // Display error message\n this.throwError();\n this.resetTests();\n this.disable = false;\n }\n\n throwError() {\n const error = this.errorWarning.message;\n this.setReport({\n type: 'error',\n message: error,\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n this.currentState = 0;\n }\n\n // Check available systems\n defineTests() {\n if (plcVersionDate(this.project).getTime() > hybridVersionDate.getTime()) {\n this.testableSystems = [...this.testableSystems, 'heating_pump', 'string_inverter', 'chp'];\n }\n // Define obligatory tests\n this.tests = {\n battery: true,\n ioModulesTest: true,\n };\n\n if (this.wizardState.stringInverterCount > 0) {\n this.tests.string_inverter = true;\n this.errorWarnings = {\n ...this.errorWarnings,\n string_inverter: {\n name: this.$t('installationWizard.systemTestPage.tests.string_inverter'),\n variables: ['prgACPV.byErrorWarningInv'],\n errorValue: 1,\n thrown: false,\n },\n };\n }\n\n if (this.pilotSystemCount) {\n this.tests.pilot = true;\n }\n\n // Define optional tests\n Object.values(EnergyDevicesCircleTypes).forEach((energyCircleType: EnergyDevicesCircleTypes) => {\n if (this.isSystemPresent(energyCircleType) && this.testableSystems.includes(energyCircleType)) {\n this.tests[energyCircleType] = true;\n }\n });\n\n }\n\n isSystemPresent(systemType: EnergyDevicesCircleTypes) {\n return this.getSystemCount(systemType) > 0;\n }\n\n getSystemCount(systemType: EnergyDevicesCircleTypes) {\n return Object.entries(this.emsDevice.data?.meta?.controllerMappings[systemType]?.components)\n .filter((component: any) => component[1].error).length ?? 0;\n }\n\n created() {\n if (!this.wizardState.restartSent && (this.power >= 30000) && this.isHybridVersion && this.isDeye) {\n this.setRestartSent(true);\n this.setDisabledWhileOffline(false);\n setTimeout(() => {\n this.setDisabledWhileOffline(true);\n }, 120000);\n }\n this.defineTests();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTestPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTestPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemTestPage.vue?vue&type=template&id=18717cf6&scoped=true&\"\nimport script from \"./SystemTestPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemTestPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemTestPage.vue?vue&type=style&index=0&id=18717cf6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18717cf6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_c('v-card',{staticStyle:{\"max-width\":\"80%\"},attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-auto-fix\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.manualsPage.title')))])])],1),_c('v-card-text',[_vm._l((Object.keys(_vm.questionsAwnsers)),function(key,index){return _c('div',{key:index,staticClass:\"d-flex flex-column justify-center align-center\"},[_vm._v(\" \"+_vm._s(_vm.getTypeDependentTranslation(key))+\" \"),(!_vm.isSolarmax)?_c('span',[_vm._v(\"(\"+_vm._s(_vm.pageCount[key])+\")\")]):_vm._e(),_c('v-btn-toggle',{staticClass:\"py-4 pl-3\",attrs:{\"color\":\"accent\"},model:{value:(_vm.questionsAwnsers[key].answer),callback:function ($$v) {_vm.$set(_vm.questionsAwnsers[key], \"answer\", $$v)},expression:\"questionsAwnsers[key].answer\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(_vm.questionsAwnsers[key].answer ? 'pointer-events: none;':''),attrs:{\"value\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(!_vm.questionsAwnsers[key].answer ? 'pointer-events: none;':''),attrs:{\"value\":false}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1),(!_vm.questionsAwnsers[key].answer && _vm.questionsAwnsers[key]?.subQuestions !== undefined)?_c('div',_vm._l((Object.keys(_vm.questionsAwnsers[key].subQuestions)),function(subQuestionsKey,subQuestionsIndex){return _c('div',{key:'sub'+subQuestionsIndex,staticClass:\"d-flex flex-column justify-center align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.manualsPage.${subQuestionsKey}`))+\" (\"+_vm._s(_vm.pageCount[key])+\") \"),_c('v-btn-toggle',{staticClass:\"py-4 pl-3\",attrs:{\"color\":\"accent\"},model:{value:(_vm.questionsAwnsers[key].subQuestions[subQuestionsKey].answer),callback:function ($$v) {_vm.$set(_vm.questionsAwnsers[key].subQuestions[subQuestionsKey], \"answer\", $$v)},expression:\"questionsAwnsers[key].subQuestions[subQuestionsKey].answer\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(_vm.questionsAwnsers[key].subQuestions[subQuestionsKey].answer ? 'pointer-events: none;':''),attrs:{\"value\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(!_vm.questionsAwnsers[key].subQuestions[subQuestionsKey].answer ? 'pointer-events: none;':''),attrs:{\"value\":false}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1)],1)}),0):_vm._e()],1)}),_c('v-divider',{staticClass:\"my-4\"}),(!_vm.isSolarmax)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.manualsPage.documentationText`))+\" \"),_c('v-btn',{staticClass:\"pl-5 mt-2\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.openTab()}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(`installationWizard.defineComponents.manualsPage.openLynusDocumentation`))+\" \")])])],1):_vm._e(),(!_vm.isSolarmax)?_c('v-divider',{staticClass:\"mt-4\"}):_vm._e()],2),_c('v-card-actions',{staticClass:\"d-flex justify-center mt-0 pt-0\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"disabled\":_vm.disableNextButton,\"color\":\"accent\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.handleNext()}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { IProject } from '@/types/project.types';\nimport { Getter } from 'vuex-class';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class ManualsPage extends WizardComponent {\n @Getter('projects/project') project!: IProject;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n\n systemType = '';\n questionsAwnsers: any = {\n inverterQuestion: { answer: false },\n constructionQuestion: { answer: false },\n startupQuestion: { answer: false },\n }\n\n /**\n * @description Returns true if the user has answered all questions with yes\n */\n get disableNextButton() {\n const finalQuestionCheck: any = {};\n Object.entries(this.questionsAwnsers).forEach((question: any) => {\n if (question[1].subQuestions === undefined) {\n finalQuestionCheck[question[0]] = question[1].answer;\n } else {\n if (question[1].answer) {\n finalQuestionCheck[question[0]] = question[1].answer;\n } else {\n const subQuestions = Object.values(question[1].subQuestions).every((subQuestion: any) => subQuestion.answer);\n finalQuestionCheck[question[0]] = subQuestions;\n }\n }\n });\n if (Object.values(finalQuestionCheck).every((value: any) => value)) {\n return false;\n }\n return true;\n }\n\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n getTypeDependentTranslation(key: string) {\n if (this.isSolarmax && key === 'inverterQuestion') return this.$t('installationWizard.defineComponents.manualsPage.solarmaxInverterQuestion');\n return this.$t(`installationWizard.defineComponents.manualsPage.${key}`);\n }\n\n /**\n * @description Returns the page numbers for the PDF file. Where the user can find the information\n */\n get pageCount() {\n if (this.systemType === 'aios') {\n return {\n inverterQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.3.9`,\n constructionQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')} 4`,\n startupQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.8`,\n powerConverterQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.3.3`,\n arePowerConvertersDismantled: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.3.3.5`,\n };\n } else {\n return {\n inverterQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.3.2`,\n constructionQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')} 4`,\n startupQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.8`,\n powerConverterQuestion: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.5.3`,\n arePowerConvertersDismantled: `${this.$t('installationWizard.defineComponents.manualsPage.chapter')}: 4.5.3.4`,\n };\n }\n }\n\n /**\n * @description Returns the URL for the Lynus documentation\n */\n get redirectURL() {\n if (this.systemType === 'aios') {\n return 'https://lynus.zammad.com/help/de-de/10-all-in-one-batteriespeichersysteme';\n }\n return 'https://lynus.zammad.com/help/de-de/7-standalone-batteriespeicher';\n }\n\n /**\n * @description Opens the Lynus documentation in a new tab\n */\n openTab() {\n const url = this.redirectURL;\n window.open(url, '_blank');\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0, page = 'componentsPage') {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, page, value, systemIndex));\n }\n\n setInitialState() {\n const variablesToSetZero = [\n { name: 'enableBattery', page: 'componentsPage' },\n { name: 'enableEM', page: 'componentsPage' },\n { name: 'enableStringInverter', page: 'componentsPage' },\n { name: 'priority', page: 'batteryGridPage' },\n { name: 'disableEMS', page: 'componentsPage' },\n { name: 'setGridMeasurement', page: 'componentsPage' },\n { name: 'disablePilot', page: 'componentsPage' },\n ];\n variablesToSetZero.forEach((variable) => {\n this.setVariablesToSend(variable.name, 0, 0, variable.page);\n });\n }\n\n created() {\n if (this.isHybridVersion && this.isDeye) this.setInitialState();\n\n if (!this.isSolarmax) this.questionsAwnsers.powerConverterQuestion = { answer: true, showSubQuestion: false, subQuestions: { arePowerConvertersDismantled: { answer: false } } };\n if (this.project.meta.controller.batterySystemType.includes('AIOS')) {\n this.systemType = 'aios';\n } else {\n this.systemType = 'standalone';\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManualsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManualsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManualsPage.vue?vue&type=template&id=cc78cd8c&\"\nimport script from \"./ManualsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManualsPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":_vm.currentStoreName,\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.energyPrice.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('EnergyPrice',{attrs:{\"isWizard\":true},on:{\"validationChange\":_vm.handleChange}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport EnergyPrice from '@/ui/views/Project/Settings/EnergyPrice.vue';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n EnergyPrice,\n WizardContentView,\n },\n})\nexport default class CommonEnergyPriceSettings extends Vue {\n @Prop({ default: 'installationWizard' }) currentStoreName!: string;\n @Getter('projects/project') project!: IProject;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n valid = false;\n\n energyPrice: any = {\n buyPrice: 0,\n sellPrice: 0,\n }\n\n handleChange(value: {isValid: boolean; energyPrice: { buyPrice: number; sellPrice: number }}) {\n this.valid = value.isValid;\n this.energyPrice = value.energyPrice;\n }\n\n created() {\n if (this.project.meta?.energyPrice !== undefined) {\n this.energyPrice = this.project.meta?.energyPrice;\n }\n }\n\n handleBack() {\n this.$store.dispatch(`${this.currentStoreName}/handleDecrement`);\n }\n\n async handleNext() {\n await this.updateProject({\n ...this.project,\n meta: {\n ...this.project.meta,\n energyPrice: {\n buyPrice: parseFloat(this.energyPrice.buyPrice),\n sellPrice: parseFloat(this.energyPrice.sellPrice),\n },\n },\n });\n this.$store.dispatch(`${this.currentStoreName}/handleIncrement`);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonEnergyPriceSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CommonEnergyPriceSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CommonEnergyPriceSettings.vue?vue&type=template&id=64c0d242&scoped=true&\"\nimport script from \"./CommonEnergyPriceSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./CommonEnergyPriceSettings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CommonEnergyPriceSettings.vue?vue&type=style&index=0&id=64c0d242&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64c0d242\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.isValid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('h1',{staticClass:\"mr-4\"},[_vm._v(_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.title')))]),_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"max-width\":\"900px\",\"border-radius\":\"10px\"},attrs:{\"src\":_vm.imageSrc,\"alt\":_vm.image}})])]},proxy:true}])})],1)]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticStyle:{\"overflow\":\"hidden\"},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[(!_vm.showLoggerOptions)?_c('div',{staticClass:\"mt-4 mb-6 d-flex flex-column align-center\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.question')))]),_c('h2',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.additionalDescription'))+\" \")]),_c('v-btn-toggle',{staticClass:\"mt-2\",attrs:{\"color\":\"accent\"},model:{value:(_vm.showLoggerOptions),callback:function ($$v) {_vm.showLoggerOptions=$$v},expression:\"showLoggerOptions\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(_vm.showLoggerOptions ? 'pointer-events: none;':''),attrs:{\"value\":true},on:{\"click\":function($event){return _vm.handleYesButtonClicked()}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(!_vm.showLoggerOptions ? 'pointer-events: none;':''),attrs:{\"value\":false}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1)],1):_c('div',{staticClass:\"mt-4 mb-6\"},[_c('v-row',{staticClass:\"my-0 py-0 px-3 d-flex justify-end\"},[_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.handleNoLoggersClicked()}}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.connectNoLoggers'))+\" \")])],1),_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.userInformation'))+\" \")])],1),_vm._l((_vm.loggerInformation),function(logger,index){return _c('v-row',{key:index,staticClass:\"d-flex my-0 py-0 px-3 justify-center\"},[_c('v-col',{staticClass:\"pb-0 mb-0 mt-0 pt-0\",attrs:{\"cols\":\"12\"}},[_c('h2',[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.stringInverter'))+\" \"+_vm._s(index + 1))])]),_c('v-col',{staticClass:\"pb-0 mb-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pt-4\"},[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.logger'))+\" \"+_vm._s(index + 1))]),_c('v-text-field',{staticClass:\"ml-4 mr-2\",staticStyle:{\"max-width\":\"40%\"},attrs:{\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.loggerId'),\"rules\":[_vm.rules.required, _vm.duplicateLoggerIds],\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.loggerInformation[index].id),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"id\", $$v)},expression:\"loggerInformation[index].id\"}}),_c('v-select',{staticStyle:{\"max-width\":\"40%\"},attrs:{\"items\":_vm.selectableLoggerTypes,\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.selectInverterType'),\"outlined\":\"\",\"hide-selected\":\"\",\"clearable\":\"\",\"rules\":[_vm.rules.required],\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"disabled\":true},on:{\"input\":function($event){return _vm.handleLoggerTypeChange(index)},\"click:clear\":function($event){_vm.loggerInformation[index].type = ''}},model:{value:(_vm.loggerInformation[index].type),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"type\", $$v)},expression:\"loggerInformation[index].type\"}}),_c('v-btn',{staticClass:\"mt-2 ml-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]),_c('v-col',{staticClass:\"pb-0 mb-5\",attrs:{\"cols\":\"12\"}},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"disabled\":_vm.loggerInformation.length >= 20,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addLogger()}}},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.addLogger'))+\" \")])],2)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport {\n pvStringLoggerLimit\n} from '@/ui/components/wizards/installationWizard/wizardSettings/wizardLimits';\nimport { IDevice } from '@/types/devices.types';\nimport { cloneDeep } from 'lodash';\nimport { IProject } from '@/types/project.types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n@Component({\n computed: {\n pvStringLoggerLimit: () => pvStringLoggerLimit,\n },\n components: {\n ModalWindow,\n WizardContentView,\n },\n})\nexport default class AddStringLoggersPage extends WizardComponent {\n @State('projects') projectsState!: IProjectsState;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('installationWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Mutation('installationWizard/updateEMSDeviceData') updateEMSDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Action('devices/updateDevice') updateDevice!: (data: {\n device: IDevice;\n skipReport: boolean\n }) => Promise;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n isValid = false;\n doesHover = false;\n loggerInformation: { id: string; type: string }[] = [];\n showLoggerOptions = false;\n\n get imageSrc() {\n return require('../../../../../assets/images/installation wizard/logger.png');\n }\n\n /**\n * Checks if there are duplicate logger ids\n */\n get duplicateLoggerIds() {\n const array = this.loggerInformation.map((logger: { id: string; type: string }) => logger.id);\n const count: Record = {};\n // Iterate over each element in the array\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n // If the value is already in the count object, it's a duplicate\n if (count[value] && value !== '') {\n return this.$t('loggerWizard.pages.DefineLoggerIds.duplicateLoggerIdNotAllowed', {value});\n }\n\n // Otherwise, add the value to the count object\n count[value] = 1;\n }\n return true;\n }\n\n /**\n * Returns the selectable logger types\n * currently it is only possible to add string inverters\n */\n get selectableLoggerTypes() {\n return [\n {\n state: this.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.stringInverter'),\n abbr: 'string',\n disabled: this.loggerInformation.length >= pvStringLoggerLimit,\n },\n ];\n }\n\n get project() {\n return this.projectsState.project;\n }\n\n updateEnergyDeviceMappings() {\n const emsMappings = cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n // for each logger add a new PV mapping to EMS and EnergyView\n // mappings will contain variables similar to the once inside the logger wizard\n this.loggerInformation.forEach((logger: { id: string; type: string }, loggerIndex: number) => {\n emsMappings.pv.count++;\n energyViewMappings.pv.count++;\n\n const loggerMappings = {\n power: `solarman.${logger.id}.PV.power`,\n error: '',\n title: `PV String Inverter ${loggerIndex + 1} (Logger)`,\n energy_counter: `solarman.${logger.id}.PV.counter`,\n };\n if (!this.allreadyCreatedCheck(loggerMappings.power, emsMappings)) {\n // add the logger mappings to the ems and energy view mappings if it is not allready created\n emsMappings.pv.components[`pv${emsMappings.pv.count}`] = loggerMappings;\n energyViewMappings.pv.components[`pv${energyViewMappings.pv.count}`] = loggerMappings;\n }\n });\n\n this.updateEMSDeviceData({data: {meta: {controllerMappings: emsMappings}}});\n this.updateEnergyViewDeviceData({data: {meta: {controllerMappings: energyViewMappings}}});\n }\n\n /**\n * Checks if the variable is already created in the mappings\n * @param powerVariable\n * @param emsMappings\n * @returns boolean true if allready mapped, if not false\n */\n allreadyCreatedCheck(powerVariable: string, emsMappings: any) {\n const mappingsWithThisVarible = Object.values(emsMappings.pv.components).filter((component: any) => component.power === powerVariable);\n return mappingsWithThisVarible.length > 0;\n }\n\n /**\n * Updates the project meta information for the loggers\n * loggerInformation will contain a list of all loggers with their id and type\n */\n async updateProjectMeta() {\n const localProject = cloneDeep(this.project);\n\n await this.updateProject({\n ...localProject,\n meta: {\n ...localProject.meta,\n loggerInformation: this.loggerInformation,\n },\n });\n }\n\n async prepareVariablesToSend() {\n this.updateEnergyDeviceMappings();\n await this.updateProjectMeta();\n // update the devices after the PV mappings were updated\n if (this.emsDevice.id) await this.updateDevice({device: this.emsDevice, skipReport: false});\n if (this.energyViewDevice.id) await this.updateDevice({\n device: this.energyViewDevice,\n skipReport: false\n });\n }\n\n /**\n * Add one logger and validate the form\n */\n handleYesButtonClicked() {\n this.loggerInformation = [{id: '', type: 'string'}];\n setTimeout(() => {\n (this.$refs.form as any).validate();\n }, 100);\n }\n\n /**\n * Remove all loggers and validate the form\n */\n handleNoLoggersClicked() {\n this.loggerInformation = [];\n this.showLoggerOptions = false;\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addLogger() {\n // add new logger object to array\n this.loggerInformation.push({id: '', type: 'string'});\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeItem(index: number) {\n this.loggerInformation.splice(index, 1);\n }\n\n created() {\n if (this.wasInstallationWizardCompleted) {\n // if the installation wizard was already completed, we check the logger options\n if (this.project.meta?.loggerInformation && this.project.meta.loggerInformation.length > 0) {\n // if there are already loggers defined, set them in the loggerInformation array\n this.loggerInformation = this.project.meta.loggerInformation;\n this.showLoggerOptions = true;\n }\n }\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddStringLoggersPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddStringLoggersPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddStringLoggersPage.vue?vue&type=template&id=b58a5868&scoped=true&\"\nimport script from \"./AddStringLoggersPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddStringLoggersPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddStringLoggersPage.vue?vue&type=style&index=0&id=b58a5868&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b58a5868\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.isOneSelected,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.onNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.questionnairePage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"d-flex\",staticStyle:{\"height\":\"100%\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex flex-column px-6\"},_vm._l((_vm.questionnaireItems),function(item,index){return _c('v-checkbox',{key:item.label + index,staticClass:\"py-4 pl-3\",attrs:{\"label\":item.label,\"color\":\"accent\"},on:{\"change\":function($event){return _vm.handleCheckboxChange(item, index)}},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('span',{staticClass:\"mr-2\",class:{'disabled': _vm.getGreyedOut(index)}},[_vm._v(_vm._s(item.label))])])]},proxy:true}],null,true),model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})}),1),(_vm.showError)?_c('v-alert',{staticClass:\"mx-4\",attrs:{\"type\":\"error\",\"outlined\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.generalSettings.generalInformationsPage.validations.oneMustBeSelected'))+\" \")]):_vm._e(),_c('div',{staticClass:\"d-flex align-center\"},[_c('v-checkbox',{staticClass:\"py-4 px-3\",attrs:{\"disabled\":_vm.noInverter,\"color\":\"accent\"},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_c('div',{staticClass:\"d-flex align-center\"},[_c('strong',{staticClass:\"mr-2\"},[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.questionnairePage.hybridSystem')))])])]},proxy:true}]),model:{value:(_vm.isHybrid),callback:function ($$v) {_vm.isHybrid=$$v},expression:\"isHybrid\"}}),_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"60%\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\"}})]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.generalSettings.questionnairePage.singleOrMasterSlave'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",staticStyle:{\"width\":\"100%\",\"border-radius\":\"10px\"},attrs:{\"src\":require(\"./../../../../../assets/images/installation wizard/master_slave.png\"),\"alt\":\"acpv\"}})])]},proxy:true}])})],1)],1),_c('div',{staticClass:\"d-flex flex-column justify-center align-center\",staticStyle:{\"width\":\"40%\"}},_vm._l((_vm.imageItems),function(item,index){return _c('div',{key:index,staticClass:\"d-flex justify-center\"},[_c('img',{staticClass:\"my-2\",class:[item.active ? 'active-image' : 'disabled-image'],staticStyle:{\"max-width\":\"350px\",\"border-radius\":\"24px\"},attrs:{\"src\":item.path,\"alt\":\"image\"}})])}),0)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport { IProject } from '@/types/project.types';\nimport { NavigationDirection, WizardPath } from '@/types/wizards/installationWizard.types';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport _ from 'lodash';\nimport { IDevice } from '@/types/devices.types';\nimport {\n gridMappingEMS,\n gridMappingEnergyView,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/defaultMappings';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\n\n@Component({\n components: {\n ModalWindow,\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class Questionnaire extends WizardComponent {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Action('projects/updateProject') updateProject!: (project: IProject) => void;\n @Getter('projects/project') project!: IProject;\n @Getter('installationWizard/emsDevice') emsDevice!: IDevice;\n @Getter('installationWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Mutation('installationWizard/setInverterCount') setInverterCount!: (data: number) => void;\n @Mutation('installationWizard/setProducerOptionsEnabled') setProducerOptionsEnabled!: (data: boolean) => void;\n @Mutation('installationWizard/updateEMSDeviceData') updateEMSDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Mutation('installationWizard/setEMSSystemCount') setEMSSystemCount!: ({\n system,\n count,\n }: any) => void;\n @Mutation('installationWizard/setEnergyViewSystemCount') setEnergyViewSystemCount!: ({\n system,\n count,\n }: any) => void;\n\n valid = false;\n isHybrid = false;\n showError = false;\n activeIndex = -1;\n\n questionnaireItems = [\n {\n label: this.$t('installationWizard.generalSettings.questionnairePage.questionnaireItems.batterySystemNoTenant'),\n value: false,\n },\n {\n label: this.$t('installationWizard.generalSettings.questionnairePage.questionnaireItems.batterySystemWithTenant'),\n value: false,\n },\n ];\n\n get imageItems(): { path: string; active: boolean }[] {\n const activeItems = this.questionnaireItems.filter(item => item.value);\n return [\n {\n path: require('../../../../../assets/images/installation wizard/Inverter.png'),\n active: [0, 1].includes(this.activeIndex),\n },\n {\n path: require('../../../../../assets/images/installation wizard/Mieterstrom.png'),\n active: [1, 2, 3].includes(this.activeIndex) || activeItems.length === 2,\n },\n {\n path: require('../../../../../assets/images/installation wizard/Regelung.png'),\n active: [0, 1, 2].includes(this.activeIndex),\n },\n {\n path: require('../../../../../assets/images/installation wizard/StringInverter.png'),\n active: [0, 1, 2, 4].includes(this.activeIndex) || activeItems.length === 2,\n },\n ];\n }\n\n getGreyedOut(index: number) {\n if (this.activeIndex === -1 || this.activeIndex === index) return false;\n if (index < 3) return true;\n return !(this.activeIndex >= 3 && index >= 3);\n }\n\n @Watch('questionnaireItems', { deep: true, immediate: true })\n onQuestionnaireItemsChanged() {\n this.validateSelection();\n }\n\n validateSelection() {\n this.showError = !this.questionnaireItems.some(item => item.value);\n }\n\n handleCheckboxChange(selectedItem: { value: boolean }, index: number) {\n const activeIndex = this.questionnaireItems.findIndex(item => item.value);\n this.activeIndex = (selectedItem.value) ? index : -1;\n if (!selectedItem.value && activeIndex !== -1) this.activeIndex = activeIndex;\n this.questionnaireItems = this.questionnaireItems.map((item, inx) => {\n if (index < 3) {\n // If any of the first three checkboxes is selected, unselect all other\n return { ...item, value: inx === index };\n } else {\n // If any of the last two checkboxes is selected, unselect the first three\n if (inx < 3) {\n return { ...item, value: false };\n }\n return item;\n }\n });\n\n this.questionnaireItems[index].value = selectedItem.value;\n\n if ([2, 3, 4].includes(index)) this.isHybrid = false;\n this.validateSelection();\n }\n\n defineWizardPath() {\n const activeItems = this.questionnaireItems.filter(item => item.value);\n if (activeItems.length === 2) return WizardPath.TENANT_STRING_INVERTER;\n switch (this.activeIndex) {\n case 0:\n return WizardPath.INSTALLATION;\n case 1:\n return WizardPath.INSTALLATION_TENANT;\n case 2:\n return WizardPath.TENANT_INSTALLATION_NO_BATTERY;\n case 3:\n return WizardPath.TENANT;\n case 4:\n return WizardPath.STRING_INVERTER;\n default:\n return WizardPath.INSTALLATION;\n }\n }\n\n get isNoBatteryPath(): boolean {\n const noBatteryPaths = [WizardPath.TENANT_INSTALLATION_NO_BATTERY, WizardPath.TENANT_STRING_INVERTER, WizardPath.STRING_INVERTER];\n return noBatteryPaths.includes(this.wizardState.wizardPath);\n }\n\n setWizardSettings() {\n const localProject = { ...this.project };\n if (localProject.meta.wizardSettings === undefined) {\n localProject.meta.wizardSettings = {\n consumerOptionsEnabled: false,\n producerOptionsEnabled: false,\n selectedHeatingPumps: [],\n isHybrid: this.isHybrid,\n pvPerInverter: {},\n hybridSettings: {\n useBothBatteryInputs: false,\n },\n wizardPath: this.defineWizardPath(),\n chargeStationSettings: [],\n };\n } else {\n this.wizardState.isHybrid = this.isHybrid;\n this.wizardState.wizardPath = this.defineWizardPath();\n if (this.isNoBatteryPath) {\n this.wizardState.producerOptionsEnabled = false;\n localProject.meta.wizardSettings.producerOptionsEnabled = false;\n }\n localProject.meta.wizardSettings.isHybrid = this.wizardState.isHybrid;\n localProject.meta.wizardSettings.wizardPath = this.wizardState.wizardPath;\n localProject.meta.hasLynusInverter = this.hasLynusInverter(this.wizardState.wizardPath);\n }\n this.updateProject(localProject);\n }\n\n hasLynusInverter(index: number) {\n const withInverterIndices = [0, 1];\n return withInverterIndices.includes(index);\n }\n\n loadWizardSettings() {\n this.isHybrid = this.project?.meta.wizardSettings?.isHybrid ?? false;\n if (this.wasInstallationWizardCompleted) {\n this.activeIndex = this.project?.meta.wizardSettings?.wizardPath ?? WizardPath.INSTALLATION;\n } else if (this.wizardState.navigationDirection === NavigationDirection.backward) {\n this.activeIndex = this.wizardState.wizardPath ?? WizardPath.INSTALLATION;\n } else {\n this.activeIndex = this.project?.meta.wizardSettings?.wizardPath ?? -1;\n }\n\n if (this.activeIndex !== -1) {\n if (this.activeIndex === 5) {\n this.questionnaireItems[3].value = true;\n this.questionnaireItems[4].value = true;\n } else {\n this.questionnaireItems[this.activeIndex].value = true;\n }\n }\n }\n\n get isOneSelected() {\n return this.questionnaireItems.some((item: any) => item.value);\n }\n\n get noInverter() {\n return this.activeIndex === 3 || this.activeIndex === 4 || this.activeIndex === 5 || this.activeIndex === 2;\n }\n\n created() {\n if (!this.isSolarmax) {\n this.questionnaireItems = [\n ...this.questionnaireItems,\n {\n label: this.$t('installationWizard.generalSettings.questionnairePage.questionnaireItems.lynusSystemNoBatteryWithTenant'),\n value: false,\n },\n {\n label: this.$t('installationWizard.generalSettings.questionnairePage.questionnaireItems.onlyTenant'),\n value: false,\n },\n {\n label: this.$t('installationWizard.generalSettings.questionnairePage.questionnaireItems.onlyStringInverter'),\n value: false,\n },\n ];\n }\n this.loadWizardSettings();\n }\n\n get neededSystemsControllerMappings(): any {\n return {\n grid: {\n ems: gridMappingEMS,\n energyView: gridMappingEnergyView,\n },\n };\n }\n\n // some paths included grid and a generator port and some dont\n // reset the controller mappings to the default ones available for the path\n resetPathSpecificControllerMappings() {\n let neededSystems: string[] = [];\n let nonAvailableSystems: string[] = [];\n let hasGeneratorPort = true;\n const emsMappings = _.cloneDeep(this.emsDevice.data.meta.controllerMappings);\n const energyViewMappings = _.cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n switch (this.wizardState.wizardPath) {\n case WizardPath.STRING_INVERTER:\n case WizardPath.TENANT_STRING_INVERTER:\n neededSystems = [];\n hasGeneratorPort = false;\n nonAvailableSystems = ['grid', 'generator', 'chp'];\n break;\n case WizardPath.TENANT_INSTALLATION_NO_BATTERY:\n neededSystems = ['grid'];\n hasGeneratorPort = false;\n nonAvailableSystems = ['generator', 'chp'];\n break;\n default:\n neededSystems = ['grid'];\n nonAvailableSystems = [];\n break;\n }\n\n neededSystems.forEach((system: any) => {\n if (this.emsDevice.data.meta.controllerMappings[system].count === 0) {\n emsMappings[system].components[`${system}1`] = this.neededSystemsControllerMappings[system].ems;\n emsMappings[system].count = 1;\n energyViewMappings[system].components[`${system}1`] = this.neededSystemsControllerMappings[system].energyView;\n energyViewMappings[system].count = 1;\n\n this.setEMSSystemCount({ system, count: 1 });\n this.setEnergyViewSystemCount({ system, count: 1 });\n }\n });\n\n nonAvailableSystems.forEach((system: string) => {\n if (this.emsDevice.data.meta.controllerMappings[system].count !== 0) {\n emsMappings[system].components = {};\n emsMappings[system].count = 0;\n energyViewMappings[system].components = {};\n energyViewMappings[system].count = 0;\n\n this.setEMSSystemCount({ system, count: 0 });\n this.setEnergyViewSystemCount({ system, count: 0 });\n }\n });\n\n this.updateEMSDeviceData({ data: { meta: { controllerMappings: emsMappings } } });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n\n const savedProducerOptionsEnabled = this.project.meta.wizardSettings?.producerOptionsEnabled ?? false;\n this.setProducerOptionsEnabled(hasGeneratorPort ? savedProducerOptionsEnabled : false);\n }\n\n onNext() {\n const inverterCount = this.isHybrid ? 2 : 1;\n this.setWizardSettings();\n\n const isNoBatteryPath = ![WizardPath.INSTALLATION, WizardPath.INSTALLATION_TENANT].includes(this.wizardState.wizardPath);\n this.setInverterCount(isNoBatteryPath ? 0 : inverterCount);\n\n this.resetPathSpecificControllerMappings();\n this.handleNext();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questionnaire.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questionnaire.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Questionnaire.vue?vue&type=template&id=67a549b8&\"\nimport script from \"./Questionnaire.vue?vue&type=script&lang=ts&\"\nexport * from \"./Questionnaire.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Questionnaire.vue?vue&type=style&index=0&id=67a549b8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.onNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.title')))])]},proxy:true},{key:\"content\",fn:function(){return [(!_vm.loading)?_c('div',{staticClass:\"d-flex flex-column justify-center align-items-center pa-6\",staticStyle:{\"width\":\"100%\"}},[(_vm.numberOfInverters === 1)?_c('div',{staticClass:\"text-center text-xl-h5\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.foundInvertersSingle', {count: _vm.numberOfInverters})))]):(_vm.numberOfInverters > 1)?_c('div',{staticClass:\"text-center text-xl-h5\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.foundInvertersPlural', {count: _vm.numberOfInverters})))]):_vm._e(),(_vm.numberOfInverters)?_c('div',{staticClass:\"d-flex justify-center mb-10\"},_vm._l((_vm.numberOfInverters),function(i){return _c('div',{key:i,staticClass:\"d-flex justify-center align-center inverter-container\"},[_c('div',{staticClass:\"pr-2 text-xl-h6\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.inverter'))+\":\")]),_vm._v(_vm._s((_vm.inverterPower / _vm.numberOfInverters) / 1000)+\" kW \")])}),0):_vm._e(),(_vm.numberOfStringInverters === 1)?_c('div',{staticClass:\"text-center text-xl-h5\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.foundStringInvertersSingle', {count: _vm.numberOfStringInverters})))]):(_vm.numberOfStringInverters > 1)?_c('div',{staticClass:\"text-center text-xl-h5\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.foundStringInvertersPlural', {count: _vm.numberOfStringInverters})))]):_vm._e(),(_vm.numberOfStringInverters)?_c('div',{staticClass:\"d-flex justify-center mb-10\"},_vm._l((_vm.numberOfStringInverters),function(i){return _c('div',{key:i,staticClass:\"d-flex justify-center align-center inverter-container\"},[_c('div',{staticClass:\"pr-2 text-xl-h6\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.stringInverter'))+\" \"+_vm._s(i))])])}),0):_vm._e(),_c('div',{staticClass:\"text-xl-h6 text-center mt-10\"},[_vm._v(_vm._s(_vm.$t('modals.inverterConfiguration.checkCorrectness')))])]):_c('div',{staticClass:\"d-flex justify-center pa-6\"},[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"accent\"}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport {\n IIncludedSystemsTypes,\n NavigationDirection, WizardPath,\n} from '@/types/wizards/installationWizard.types';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { IInstallationWizardState } from '@/store/modules/installationWizard/types';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { IProject } from '@/types/project.types';\nimport WizardComponent from '@/ui/components/wizards/baseComponents/WizardComponent';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { IInverter, SerialNumberType } from '@/types/serialNumber.types';\nimport {\n gridMappingEMS, gridMappingEnergyView,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/defaultMappings';\nimport { IDevice } from '@/types/devices.types';\nimport _ from 'lodash';\nimport {\n CHECKS_DISABLED, IGNORE_INVERTER_CHECK\n} from '@/ui/components/wizards/installationWizard/wizardSettings/developmentConfig';\n\n@Component({\n computed: {},\n components: { WizardContentView, ModalWindow },\n})\nexport default class InverterConfiguration extends WizardComponent {\n @State('installationWizard') installationWizardState!: IInstallationWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('serialNumber/serialNumbersFromMqtt') serialNumbersFromMqtt!: { [key: string]: string };\n @Getter('installationWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Getter('installationWizard/serialNumberCheckDone') serialNumberCheckDone!: boolean;\n @Getter('serialNumber/inverters') inverters!: IInverter[];\n @Getter('installationWizard/includedSystemsTypes') includedSystems!: IIncludedSystemsTypes;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('serialNumber/fetchInverters') fetchInverters!: (projectId: string) => Promise;\n @Action('serialNumber/activateSerialNumbers') activateSerialNumbers!: (payload: { projectId: string; inverters: { id: string; type: SerialNumberType }[] }) => Promise;\n @Mutation('installationWizard/setWizardBlocked') setWizardBlocked!: (payload: boolean) => void;\n @Mutation('installationWizard/setSerialNumberCheckDone') setSerialNumberCheckDone!: () => void;\n @Mutation('serialNumber/setInverters') setInverters!: (inverters: { id: string; type: SerialNumberType }[]) => void;\n\n loading = false;\n checkWasSuccessful = false;\n\n get valid() {\n const noInverters = !this.installationWizardState.inverterCount && !this.installationWizardState.stringInverterCount;\n return this.serialNumberCheckDone || this.checkWasSuccessful || noInverters || IGNORE_INVERTER_CHECK;\n }\n\n get inverterPower() {\n return this.measurements['prgEnergy.fbI.rMaxPowerInverter'] ?? 0;\n }\n\n get numberOfInverters() {\n const amountFromMqtt = Object.keys(this.serialNumbersFromMqtt).filter((key) => !key.includes('prgACPV')).length;\n const amountInStore = this.installationWizardState.inverterCount;\n if (amountInStore < amountFromMqtt) return amountInStore;\n return amountFromMqtt;\n }\n\n get numberOfStringInverters() {\n const amountFromMqtt = Object.keys(this.serialNumbersFromMqtt).filter((key) => key.includes('prgACPV')).length;\n const amountInStore = this.installationWizardState.stringInverterCount;\n if (amountInStore === 0 || amountFromMqtt === 0) return 0;\n if (amountInStore < amountFromMqtt) return amountInStore;\n return amountFromMqtt;\n }\n\n onNext() {\n this.setSerialNumberCheckDone();\n this.handleNext();\n }\n\n async checkSerialNumbers() {\n this.loading = true;\n if (this.project.id) await this.fetchMeasurements(this.project.id);\n let allUploaded = false;\n // wait for measurements to have all selected inverters set to a value that is not -1\n let serialNumberVariables: { variable: string; value: string }[] = [];\n\n // both loops to define which inverters are to be checked\n for (let i = 0; i < this.installationWizardState.inverterCount; i++) {\n const variable = installationWizardVariables('deyeInverterSerialNumber', 'pilotPage', -1, i);\n serialNumberVariables.push({ variable: variable.variable, value: '-1' });\n }\n for (let i = 0; i < this.installationWizardState.stringInverterCount; i++) {\n const variable = installationWizardVariables('stringInverterSerialNumber', 'pilotPage', -1, i);\n serialNumberVariables.push({ variable: variable.variable, value: '-1' });\n }\n\n serialNumberVariables = serialNumberVariables.map((entry: any) => {\n entry.value = this.serialNumbersFromMqtt[entry.variable] ?? '-1';\n return entry;\n });\n\n allUploaded = IGNORE_INVERTER_CHECK;\n if (serialNumberVariables.every((variable) => variable.value !== '-1' && variable.value !== undefined)) {\n allUploaded = true;\n }\n\n if (!allUploaded) return false;\n const inverters = serialNumberVariables.map((entry: any) => {\n const { variable, value } = entry;\n const id = value;\n let type = SerialNumberType.HybridInverter;\n if (variable.includes('prgACPV')) {\n type = SerialNumberType.StringInverter;\n }\n return {\n id,\n type,\n };\n });\n\n let status = false;\n // only check if not all inverters are confirmed\n if (this.project.id) {\n const filteredInverters = inverters.filter((inverter: { id: string; type: SerialNumberType }) => inverter.id !== '-1');\n status = await this.activateSerialNumbers({\n projectId: this.project.id,\n inverters: filteredInverters,\n });\n }\n\n if (IGNORE_INVERTER_CHECK) return true;\n return status;\n }\n\n setVariablesToSend(variableName: string, value: number | string = 0, systemIndex = 0, page = 'pilotPage') {\n this.variablesToSend.set(variableName + systemIndex, installationWizardVariables(variableName, page, value, systemIndex));\n }\n\n sendBatteryVariables() {\n const pvPowerVariable = installationWizardVariables('maxPowerInverter', 'componentsPage').variable;\n // get inverter power and divide by the number of inverters to check if sps is big enough for next variables\n const power = (this.measurements[pvPowerVariable] as number ?? 0) / this.installationWizardState.inverterCount;\n\n if (power >= 30000) {\n const separateBatteryInput = this.includedSystems.battery.definition.length > 1 ? 1 : 0;\n this.setVariablesToSend('batteryInput', separateBatteryInput, 0, 'componentsPage');\n } else {\n this.setVariablesToSend('batteryInput', 0, 0, 'componentsPage');\n }\n this.setVariablesToSend('numberOfBatteries', this.includedSystems.battery.count * this.installationWizardState.inverterCount, 0, 'componentsPage');\n }\n\n async created() {\n // send battery variables\n await this.sendBatteryVariables();\n // check if serial numbers from inverters are being sent and available in backend\n // define all checks\n const navigationDirectionCheck = this.navigationDirection !== NavigationDirection.backward;\n\n if (navigationDirectionCheck && !this.serialNumberCheckDone) {\n // check if serialNumberCheck is already done and no other inverters were added\n if (this.wasInstallationWizardCompleted) {\n const sameAmountOfInverters = (this.installationWizardState.inverterCount + this.installationWizardState.stringInverterCount) === this.inverters.length;\n const allInvertersAreConfirmed = this.inverters.every((inverter: IInverter) => inverter.project_id === this.project.id);\n if (sameAmountOfInverters && allInvertersAreConfirmed) {\n this.setSerialNumberCheckDone();\n }\n }\n if (this.installationWizardState.inverterCount !== 0 || this.installationWizardState.stringInverterCount !== 0) {\n const status = await this.checkSerialNumbers();\n this.checkWasSuccessful = status;\n this.variablesToSend.set('serialNumbersConfirmed', installationWizardVariables('serialNumbersConfirmed', 'pilotPage', status && this.installationWizardState.inverterCount ? 1 : 0));\n if (this.installationWizardState.stringInverterCount > 0) this.variablesToSend.set('stringInverterSerialNumberConfirmed', installationWizardVariables('stringInverterSerialNumberConfirmed', 'pilotPage', status ? 1 : 0));\n this.variablesToSend.set('lastVariable', installationWizardVariables('lastVariable', 'componentsPage'));\n if (status) {\n this.loading = false;\n } else {\n // if serial numbers are not confirmed we set the wizard blocked\n this.setWizardBlocked(true);\n this.setSerialNumberCheckDone();\n }\n }\n } else if (navigationDirectionCheck && this.serialNumberCheckDone) {\n this.variablesToSend.set('serialNumbersConfirmed', installationWizardVariables('serialNumbersConfirmed', 'pilotPage', this.installationWizardState.inverterCount ? 1 : 0));\n if (this.installationWizardState.stringInverterCount > 0) this.variablesToSend.set('stringInverterSerialNumberConfirmed', installationWizardVariables('stringInverterSerialNumberConfirmed', 'pilotPage', status ? 1 : 0));\n this.variablesToSend.set('lastVariable', installationWizardVariables('lastVariable', 'componentsPage'));\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterConfiguration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InverterConfiguration.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InverterConfiguration.vue?vue&type=template&id=53ad4aaa&scoped=true&\"\nimport script from \"./InverterConfiguration.vue?vue&type=script&lang=ts&\"\nexport * from \"./InverterConfiguration.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InverterConfiguration.vue?vue&type=style&index=0&id=53ad4aaa&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53ad4aaa\",\n null\n \n)\n\nexport default component.exports","import Information from '@/ui/components/wizards/installationWizard/steps/defineComponents/Information.vue';\nimport ComponentsPage from '@/ui/components/wizards/installationWizard/steps/defineComponents/ComponentsPage.vue';\nimport BatteryGridSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/BatteryGridSettings.vue';\nimport ChargingStationSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChargingStationSettings.vue';\nimport HeatingElementSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingElementSettings.vue';\nimport GeneralSettingsEMS from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneralSettingsEMS.vue';\nimport PilotSpecification from '@/ui/components/wizards/installationWizard/steps/defineHardware/PilotSpecification.vue';\nimport FinalPageInstallationWizard from '@/ui/components/wizards/installationWizard/steps/finalPage/FinalPage.vue';\nimport GeneralInformations from '@/ui/components/wizards/installationWizard/steps/generalSettings/GeneralInformations.vue';\nimport InviteUsersToProject\n from '@/ui/components/wizards/installationWizard/steps/inviteUsers/InviteUserToProject.vue';\nimport InstallationPage\n from '@/ui/components/wizards/installationWizard/steps/inviteUsers/InstallationPage.vue';\nimport GridDrmSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/GridDrmSettings.vue';\nimport GeneratorSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/GeneratorSettings.vue';\nimport HeatingPumpSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/HeatingPumpSettings.vue';\nimport BigConsumerSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/BigConsumerSettings.vue';\nimport ChpSettings from '@/ui/components/wizards/installationWizard/steps/defineEmsSettings/ChpSettings.vue';\nimport SystemTestPage\n from '@/ui/components/wizards/installationWizard/steps/inviteUsers/SystemTestPage.vue';\nimport ManualsPage from '@/ui/components/wizards/installationWizard/steps/defineComponents/ManualsPage.vue';\nimport CommonEnergyPriceSettings from '@/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue';\nimport AddStringLoggersPage from '@/ui/components/wizards/installationWizard/steps/defineHardware/AddStringLoggersPage.vue';\nimport Questionnaire\n from '@/ui/components/wizards/installationWizard/steps/generalSettings/Questionnaire.vue';\nimport InverterConfiguration\n from '@/ui/components/wizards/installationWizard/steps/defineHardware/InverterConfiguration.vue';\n\nconst installationWizardImports = {\n Information,\n ComponentsPage,\n BatteryGridSettings,\n ChargingStationSettings,\n InverterConfiguration,\n HeatingElementSettings,\n GeneralSettingsEMS,\n Questionnaire,\n PilotSpecification,\n FinalPageInstallationWizard,\n GeneralInformations,\n InviteUsersToProject,\n InstallationPage,\n GridDrmSettings,\n GeneratorSettings,\n HeatingPumpSettings,\n BigConsumerSettings,\n ChpSettings,\n SystemTestPage,\n ManualsPage,\n CommonEnergyPriceSettings,\n AddStringLoggersPage,\n};\n\nexport default installationWizardImports;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.ownerValid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.subPages.BasicBillingInformation')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.ownerValid),callback:function ($$v) {_vm.ownerValid=$$v},expression:\"ownerValid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required],\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.ownerName`)},model:{value:(_vm.ownerName),callback:function ($$v) {_vm.ownerName=$$v},expression:\"ownerName\"}}),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required],\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.providerName`)},model:{value:(_vm.providerName),callback:function ($$v) {_vm.providerName=$$v},expression:\"providerName\"}}),_c('v-select',{attrs:{\"items\":_vm.contractCountryItems,\"color\":\"accent\",\"hide-selected\":\"\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required],\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.contractCountry`)},model:{value:(_vm.contractCountry),callback:function ($$v) {_vm.contractCountry=$$v},expression:\"contractCountry\"}})],1)],1),_c('h3',[_vm._v(_vm._s(_vm.$t(`tenantWizard.basicBillingInformation.ownerInformation`))+\":\")]),_c('v-row',{staticClass:\"mb-0 pb-0\"},[_c('v-col',{staticClass:\"pb-0 mb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.street`)},model:{value:(_vm.ownerAddress.street),callback:function ($$v) {_vm.$set(_vm.ownerAddress, \"street\", $$v)},expression:\"ownerAddress.street\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.location`)},model:{value:(_vm.ownerAddress.city),callback:function ($$v) {_vm.$set(_vm.ownerAddress, \"city\", $$v)},expression:\"ownerAddress.city\"}})],1)]),_c('v-col',{staticClass:\"pb-0 mb-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.plz`)},model:{value:(_vm.ownerAddress.zip),callback:function ($$v) {_vm.$set(_vm.ownerAddress, \"zip\", $$v)},expression:\"ownerAddress.zip\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"color\":\"Land\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.country`)},model:{value:(_vm.ownerAddress.country),callback:function ($$v) {_vm.$set(_vm.ownerAddress, \"country\", $$v)},expression:\"ownerAddress.country\"}})],1)]),_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required],\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.ownerNumber`)},model:{value:(_vm.ownerMobile),callback:function ($$v) {_vm.ownerMobile=$$v},expression:\"ownerMobile\"}})],1),_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.email],\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.ownerMail`)},model:{value:(_vm.ownerMail),callback:function ($$v) {_vm.ownerMail=$$v},expression:\"ownerMail\"}})],1),_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"label\":_vm.$t(`tenantWizard.basicBillingInformation.labels.ownerRegistrationNumber`)},model:{value:(_vm.ownerRegistrationNumber),callback:function ($$v) {_vm.ownerRegistrationNumber=$$v},expression:\"ownerRegistrationNumber\"}})],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { cloneDeep } from 'lodash';\nimport { ITenantModel } from '@/types/wizards/tenant.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class BasicBillingInformation extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n @Action('app/postAsset') postAsset!: (asset: any) => Promise;\n\n currentImage: any = ''\n headerText = '';\n ownerName = '';\n ownerValid = false;\n providerName = '';\n contractCountry = '';\n ownerAddress= {\n street: '',\n zip: '',\n city: '',\n country: '',\n };\n ownerMobile = '';\n ownerMail = '';\n ownerRegistrationNumber = '';\n\n customToolbar = [\n [{ 'header': [false, 1, 2, 3, 4, 5, 6] }],\n ['bold', 'italic', 'underline'],\n [{ 'list': 'ordered' }, { 'list': 'bullet' }],\n [{ 'indent': '-1' }, { 'indent': '+1' }],\n ];\n\n get contractCountryItems() {\n return [\n { text: this.$t('tenantWizard.contractCountryItems.DE'), value: 'Germany' },\n { text: this.$t('tenantWizard.contractCountryItems.CH'), value: 'Switzerland' },\n ];\n }\n\n triggerValidation() {\n (this.$refs.form as any).validate();\n }\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n /**\n * gets al data from the store and sets it to the local variables\n */\n created() {\n if (this.tenantState.tenant.header.providerName !== '') {\n this.headerText = this.tenantState.tenant.header.headerText;\n this.currentImage = this.tenantState.tenant.header.image_Id;\n this.providerName = this.tenantState.tenant.header.providerName;\n this.ownerAddress = this.tenantState.tenant.header.ownerAddress;\n this.contractCountry = this.tenantState.tenant.header.contractCountry;\n this.ownerMail = this.tenantState.tenant.header.ownerMail;\n this.ownerMobile = this.tenantState.tenant.header.ownerMobile;\n this.ownerName = this.tenantState.tenant.header.ownerName;\n this.ownerRegistrationNumber = this.tenantState.tenant.header.ownerRegistrationNumber;\n }\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.header.headerText = this.headerText;\n tenantCopy.header.image_Id = this.currentImage;\n tenantCopy.header.providerName = this.providerName;\n tenantCopy.header.ownerAddress = this.ownerAddress;\n tenantCopy.header.contractCountry = this.contractCountry;\n tenantCopy.header.ownerMail = this.ownerMail;\n tenantCopy.header.ownerMobile = this.ownerMobile;\n tenantCopy.header.ownerName = this.ownerName;\n tenantCopy.header.ownerRegistrationNumber = this.ownerRegistrationNumber;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicBillingInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicBillingInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasicBillingInformation.vue?vue&type=template&id=5dc87b4e&scoped=true&\"\nimport script from \"./BasicBillingInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasicBillingInformation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BasicBillingInformation.vue?vue&type=style&index=0&id=5dc87b4e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5dc87b4e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.paymentInformation.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.paymentInformation.currency')))]),_c('v-row',{staticClass:\"pt-4\"},[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-select',{attrs:{\"value\":_vm.paymentInformation.currency,\"items\":['€', 'CHF'],\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.paymentInformation.currency),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"currency\", $$v)},expression:\"paymentInformation.currency\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.tax ? [..._vm.minMaxValidation(_vm.paymentInformation.tax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.taxElectricity'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.tax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"tax\", _vm._n($$v))},expression:\"paymentInformation.tax\"}})],1),_c('v-col',{staticClass:\"d-flex py-0 my-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.coldWaterTax ? [..._vm.minMaxValidation(_vm.paymentInformation.coldWaterTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.taxColdWater'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.coldWaterTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"coldWaterTax\", _vm._n($$v))},expression:\"paymentInformation.coldWaterTax\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.serviceWaterTax ? [..._vm.minMaxValidation(_vm.paymentInformation.serviceWaterTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.taxServiceWater'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.serviceWaterTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"serviceWaterTax\", _vm._n($$v))},expression:\"paymentInformation.serviceWaterTax\"}})],1),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.heatingTax ? [..._vm.minMaxValidation(_vm.paymentInformation.heatingTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.taxHeating'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.heatingTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"heatingTax\", _vm._n($$v))},expression:\"paymentInformation.heatingTax\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.productionTax ? [..._vm.minMaxValidation(_vm.paymentInformation.productionTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.productionTax'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.productionTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"productionTax\", _vm._n($$v))},expression:\"paymentInformation.productionTax\"}})],1),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.sideCostsTax ? [..._vm.minMaxValidation(_vm.paymentInformation.sideCostsTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.sideCostsTax'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.sideCostsTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"sideCostsTax\", _vm._n($$v))},expression:\"paymentInformation.sideCostsTax\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"suffix\":\"%\",\"rules\":_vm.paymentInformation.coolingTax ? [..._vm.minMaxValidation(_vm.paymentInformation.coolingTax, 0, 100)] : [],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.paymentInformation.taxCooling'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.coolingTax),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"coolingTax\", _vm._n($$v))},expression:\"paymentInformation.coolingTax\"}})],1)],1),_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.paymentInformation.bankcoordinates')))]),_c('v-row',{staticClass:\"pt-4\"},[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"type\":\"text\",\"label\":_vm.$t('tenantWizard.paymentInformation.bankName'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.bankName),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"bankName\", $$v)},expression:\"paymentInformation.bankName\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.paymentInformation.iban !== '' ? [_vm.rules.fieldNotValidIban] : [],\"outlined\":\"\",\"type\":\"text\",\"label\":_vm.$t('tenantWizard.paymentInformation.iban'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.iban),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"iban\", $$v)},expression:\"paymentInformation.iban\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"type\":\"text\",\"label\":_vm.$t('tenantWizard.paymentInformation.swift'),\"color\":\"accent\"},model:{value:(_vm.paymentInformation.swift),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"swift\", $$v)},expression:\"paymentInformation.swift\"}})],1)],1),_c('v-row',[_c('v-col',{staticStyle:{\"height\":\"180px\"}},[_c('v-textarea',{staticClass:\"mr-2\",attrs:{\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.paymentInformation.additionalText'),\"height\":180,\"rules\":[_vm.rules.required],\"color\":\"accent\"},model:{value:(_vm.paymentInformation.additionalText),callback:function ($$v) {_vm.$set(_vm.paymentInformation, \"additionalText\", $$v)},expression:\"paymentInformation.additionalText\"}})],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\nimport { IProject } from '@/types/project.types';\nimport { ITenantModel } from '@/types/wizards/tenant.types';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n },\n})\nexport default class PaymentInformation extends mixins(Validation) {\n @Getter('projects/project') project!: IProject;\n @State('tenantWizard') tenantState!: ITenantWizardState\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n valid = false;\n\n paymentInformation: ITenantModel['general']['paymentDetails'] = {\n currency: '€',\n tax: 0,\n coldWaterTax: 0,\n serviceWaterTax: 0,\n heatingTax: 0,\n productionTax: 0,\n sideCostsTax: 0,\n coolingTax: 0,\n isTaxIncluded: false,\n bankName: '',\n iban: '',\n swift: '',\n additionalText: '',\n };\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.paymentDetails.currency = this.paymentInformation.currency as ITenantModel['general']['paymentDetails']['currency'];\n const taxKeys = ['tax', 'coldWaterTax', 'serviceWaterTax', 'heatingTax', 'productionTax', 'sideCostsTax', 'coolingTax'];\n taxKeys.forEach((key) => {\n if (typeof (this.paymentInformation as any)[key] === 'string') {\n (this.paymentInformation as any)[key] = (this.paymentInformation as any)[key] === '' ? 0 : parseInt((this.paymentInformation as any)[key], 10);\n }\n });\n tenantCopy.general.paymentDetails = { ...this.paymentInformation };\n this.updateTenantObject(tenantCopy);\n }\n\n created() {\n if (!this.project.meta.wasTenantWizardCompleted) {\n this.paymentInformation.additionalText = this.$t('tenantWizard.paymentInformation.defaultText') as string;\n } else {\n this.paymentInformation = cloneDeep(this.tenantState.tenant.general.paymentDetails);\n const taxKeys = ['tax', 'coldWaterTax', 'serviceWaterTax', 'heatingTax', 'productionTax', 'sideCostsTax', 'coolingTax'];\n // if some tax is not set, set it to 0\n // this is necessary because new tax fields where added in later versions\n taxKeys.forEach((key) => {\n if (!(this.paymentInformation as any)[key]) {\n (this.paymentInformation as any)[key] = 0;\n }\n });\n }\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaymentInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaymentInformation.vue?vue&type=template&id=67193e16&scoped=true&\"\nimport script from \"./PaymentInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaymentInformation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67193e16\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.extraCosts.title')))])])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_vm._l((_vm.sideCosts),function(sideCostObject,index){return _c('div',{key:index,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"label\":_vm.$t('tenantWizard.extraCosts.labels.nameOfSideCost'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.required]},model:{value:(sideCostObject.name),callback:function ($$v) {_vm.$set(sideCostObject, \"name\", $$v)},expression:\"sideCostObject.name\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('tenantWizard.extraCosts.labels.amount'),\"suffix\":`${_vm.selectedCurrency}`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.required,\n _vm.fieldMoreThan(0),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(sideCostObject.amount),callback:function ($$v) {_vm.$set(sideCostObject, \"amount\", _vm._n($$v))},expression:\"sideCostObject.amount\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeSideCost(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"mt-5\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.addSideCost}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.extraCosts.labels.addSideCost'))+\" \")])],2)],1),_c('v-row',[_c('v-col',{staticClass:\"py-2\"},[_c('div',{staticStyle:{\"color\":\"grey\",\"font-weight\":\"700\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.extraCosts.titleInfo'))+\" \")]),_c('div',{staticClass:\"d-flex mt-2\"},[_c('v-checkbox',{staticClass:\"pr-2 py-0 my-0\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.handleClick()}},model:{value:(_vm.splitEqual),callback:function ($$v) {_vm.splitEqual=$$v},expression:\"splitEqual\"}}),_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.extraCosts.labels.splitCostsEqual'))+\" \")],1)])],1),(!_vm.splitEqual)?_c('div',_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-2\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.extraCosts.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"25%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.extraCosts.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"px-3 pt-6\",staticStyle:{\"width\":\"25%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.extraCosts.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"25%\"}},[_c('v-text-field',{key:`percentage` + flatIndex,attrs:{\"suffix\":\"%\",\"rules\":[..._vm.minMaxValidation(flat.sideCostPercentage, 0, 100), _vm.isOneHundredPercent],\"outlined\":\"\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.extraCosts.labels.percentage'),\"color\":\"accent\"},model:{value:(flat.sideCostPercentage),callback:function ($$v) {_vm.$set(flat, \"sideCostPercentage\", _vm._n($$v))},expression:\"flat.sideCostPercentage\"}})],1)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),1):_vm._e()],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { minMaxValidation, valuesAddTo100 } from '@/utils/utilsFunctions';\nimport { cloneDeep } from 'lodash';\nimport { initFlatsAddresses } from '@/utils/tenantWizardUtilsFunctions';\nimport { IProject } from '@/types/project.types';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class ExtraCosts extends mixins(Validation) {\n @Getter('projects/project') project!: IProject;\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n valid = false;\n sideCosts = [{ name: '', amount: 0 }];\n selectedCurrency = '';\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n percentageValues: number[] = [];\n splitEqual = true;\n\n // check if all percentage values add up to 100%\n get isOneHundredPercent() {\n const percentagesList = this.flatsConfigList.map((element: IFlatsConfig) => {\n return { value: element.sideCostPercentage };\n });\n return valuesAddTo100(percentagesList, 'value') || this.$t('tenantWizard.notHundredPercentError');\n }\n\n handleClick() {\n if (!this.splitEqual) {\n this.flatsConfigList.forEach((element: IFlatsConfig) => {\n element.sideCostPercentage = 0;\n });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n return;\n }\n const equalValue = Math.round((100 / this.flatsConfigList.length) * 100) / 100;\n if (equalValue * this.flatsConfigList.length === 100) {\n // if equal parts add up to 100% then set all values to equalValue\n this.flatsConfigList.forEach((element: IFlatsConfig) => (element.sideCostPercentage = equalValue));\n } else {\n // if equal parts\n const val = Math.round((equalValue * (this.flatsConfigList.length - 1)) * 100) / 100;\n this.flatsConfigList.forEach((element: IFlatsConfig, index: number) => {\n if (index === this.flatsConfigList.length - 1) {\n // set last value to 100 - sum of all other values\n const lastValue = parseFloat((100 - val).toFixed(2));\n element.sideCostPercentage = lastValue;\n } else {\n // set equal part\n element.sideCostPercentage = equalValue;\n }\n });\n }\n }\n\n created() {\n this.selectedCurrency = this.tenantState.tenant.general.paymentDetails.currency;\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n if (this.flatsConfigList.every((value: IFlatsConfig) => value.sideCostPercentage === 0)) {\n this.flatsConfigList.forEach((value: IFlatsConfig) => (value.sideCostPercentage = parseInt((100 / this.flatsConfigList.length).toFixed(0), 10)));\n }\n this.sideCosts = this.tenantState.tenant.general.sideCosts;\n if (this.project.meta.wasTenantWizardCompleted) {\n this.percentageValues = this.flatsConfigList.map((element: IFlatsConfig) => element.sideCostPercentage);\n const difference = Math.max(...this.percentageValues) - Math.min(...this.percentageValues); // Calculates the difference between the highest and lowest value\n if (difference > 1) {\n this.splitEqual = false;\n }\n }\n }\n\n mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleNext() {\n this.handleIncrement();\n this.updateTenant();\n }\n\n /**\n * updates the tenant object in the store\n */\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.sideCosts = this.sideCosts;\n this.updateTenantObject(tenantCopy);\n }\n\n addSideCost() {\n this.sideCosts.push({ name: '', amount: 0 });\n }\n\n removeSideCost(index: number) {\n this.sideCosts.splice(index, 1);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtraCosts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExtraCosts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExtraCosts.vue?vue&type=template&id=5e6baff2&scoped=true&\"\nimport script from \"./ExtraCosts.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExtraCosts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ExtraCosts.vue?vue&type=style&index=0&id=5e6baff2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e6baff2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid && _vm.flatsValid && Object.entries(_vm.billingComponents).some((element) => element[1]),\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.flatsInformation.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex py-2\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.flatsInformation.subTitles.invoiceComponents'))+\" :\")]),_c('div',{staticClass:\"pl-2\"},[_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.flatsInformation.infoTexts.invoiceComponents'))+\" \")]},proxy:true}])})],1)]),_c('v-row',{staticClass:\"pt-0 mt-0\"},[_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('div',{staticClass:\"invoiceComponents\"},[_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('v-checkbox',{staticClass:\"pr-2\",attrs:{\"color\":\"accent\"},model:{value:(_vm.billingComponents['electricity']),callback:function ($$v) {_vm.$set(_vm.billingComponents, 'electricity', $$v)},expression:\"billingComponents['electricity']\"}}),_c('h3',[_vm._v(_vm._s(_vm.$t(`tenantWizard.flatsInformation.labels.electricity`)))])],1),_vm._l((Object.entries(_vm.billingComponents).filter((element) => element[0] !== 'electricity' )),function(component,index){return _c('div',{key:index},[(component[0] !== 'electricity')?_c('div',{staticClass:\"d-flex align-center justify-space-between\"},[_c('v-checkbox',{staticClass:\"pr-2\",attrs:{\"color\":\"accent\"},model:{value:(_vm.billingComponents[component[0]]),callback:function ($$v) {_vm.$set(_vm.billingComponents, component[0], $$v)},expression:\"billingComponents[component[0]]\"}}),_c('h3',[_vm._v(_vm._s(_vm.$t(`tenantWizard.flatsInformation.labels.${component[0]}`)))])],1):_vm._e()])})],2),(\n _vm.billingComponents.serviceWater ||\n _vm.billingComponents.coldWater ||\n _vm.billingComponents.heating ||\n _vm.billingComponents.cooling)?_c('p',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.coldWater.basicInformation'))+\" \")]):_vm._e(),(Object.entries(_vm.billingComponents).every((element) => !element[1]))?_c('div',{staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.flatsInformation.pleaseSelectBillingComponents'))+\" \")]):_vm._e()])],1),_c('FlatDetails',{attrs:{\"showBuildingAddress\":true,\"showRenterSwapInfo\":_vm.whereFlatsAllreadyDoneOnce},on:{\"updateValid\":function($event){return _vm.updateValid($event)},\"updateFlats\":function($event){return _vm.updateFlats($event)},\"updateBuildingAddress\":function($event){return _vm.updatebuildingAddress($event)}}})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.showBuildingAddress)?_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.flatsInformation.labels.buildingAddress'))+\":\")]):_vm._e(),(_vm.showBuildingAddress)?_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.street`)},on:{\"input\":function($event){return _vm.handleBuildingAddressChange()}},model:{value:(_vm.buildingAddress.street),callback:function ($$v) {_vm.$set(_vm.buildingAddress, \"street\", $$v)},expression:\"buildingAddress.street\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.location`)},on:{\"input\":function($event){return _vm.handleBuildingAddressChange()}},model:{value:(_vm.buildingAddress.city),callback:function ($$v) {_vm.$set(_vm.buildingAddress, \"city\", $$v)},expression:\"buildingAddress.city\"}})],1)]),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.plz`)},on:{\"input\":function($event){return _vm.handleBuildingAddressChange()}},model:{value:(_vm.buildingAddress.zip),callback:function ($$v) {_vm.$set(_vm.buildingAddress, \"zip\", $$v)},expression:\"buildingAddress.zip\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.country`)},on:{\"input\":function($event){return _vm.handleBuildingAddressChange()}},model:{value:(_vm.buildingAddress.country),callback:function ($$v) {_vm.$set(_vm.buildingAddress, \"country\", $$v)},expression:\"buildingAddress.country\"}})],1)])],1):_vm._e(),(_vm.showTitle)?_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.flatsInformation.subTitles.tenantDetails'))+\" :\")]):_vm._e(),(_vm.showNumberOfFlats)?_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-select',{attrs:{\"items\":Array.from({ length: _vm.flatLimit }, (_, index) => index + 1),\"label\":_vm.$t('tenantWizard.flatsInformation.labels.numberOfHouses'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\"},on:{\"input\":_vm.handleChange},model:{value:(_vm.flatsCount),callback:function ($$v) {_vm.flatsCount=$$v},expression:\"flatsCount\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.flatsInformation.infoTexts.amount'))+\" \")]},proxy:true}],null,false,1932443606)})],1)],1)])],1):_vm._e(),_c('v-lazy',[_c('v-expansion-panels',{staticClass:\"pt-3\",attrs:{\"focusable\":\"\"},model:{value:(_vm.panels),callback:function ($$v) {_vm.panels=$$v},expression:\"panels\"}},_vm._l((_vm.flatsConfigList),function(currentFlat,index){return _c('v-expansion-panel',{key:index},[_c('v-expansion-panel-header',[(currentFlat.name === '')?_c('div',{style:(_vm.hasEmptyValue(index) ? 'color: red': '')},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.flatsInformation.texts.tenant'))+\" \"+_vm._s(index + 1)+\" \")]):_c('div',{style:(_vm.hasEmptyValue(index) ? 'color: red': '')},[_vm._v(\" \"+_vm._s(currentFlat.name)+\" \")])]),_c('v-expansion-panel-content',{attrs:{\"eager\":\"\"}},[(_vm.panels === index)?_c('div',[_c('h4',{staticClass:\"pt-2\"},[_vm._v(_vm._s(_vm.$t(`tenantWizard.flatsInformation.subTitles.tenantDetails`))+\":\")]),(_vm.showRenterSwapInfo && _vm.indexChanged.includes(index))?_c('h3',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`tenantWizard.flatsInformation.renterSwapInfo`))+\" \")]):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.name`)},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(currentFlat.name),callback:function ($$v) {_vm.$set(currentFlat, \"name\", $$v)},expression:\"currentFlat.name\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.rules.email],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.mail`)},on:{\"input\":function($event){return _vm.handleInput(index)}},model:{value:(currentFlat.mail),callback:function ($$v) {_vm.$set(currentFlat, \"mail\", $$v)},expression:\"currentFlat.mail\"}}),_c('div',{staticClass:\"mt-4 ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`tenantWizard.flatsInformation.infoTexts.mailInfo`))+\" \")]},proxy:true}],null,true)})],1)],1),_c('div',[_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.clientNumber`)},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(currentFlat.clientId),callback:function ($$v) {_vm.$set(currentFlat, \"clientId\", $$v)},expression:\"currentFlat.clientId\"}}),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.clientName`)},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(currentFlat.address.clientName),callback:function ($$v) {_vm.$set(currentFlat.address, \"clientName\", $$v)},expression:\"currentFlat.address.clientName\"}}),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString],\"label\":_vm.$t(`tenantWizard.flatsInformation.labels.houseNumber`)},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(currentFlat.address.houseNumber),callback:function ($$v) {_vm.$set(currentFlat.address, \"houseNumber\", $$v)},expression:\"currentFlat.address.houseNumber\"}})],1)])],1),_c('v-row',[_c('v-col',[_c('v-textarea',{attrs:{\"outlined\":\"\",\"label\":_vm.$t(`tenantWizard.flatsInformation.subTitles.contract`),\"height\":200,\"rules\":[_vm.rules.required],\"hide-details\":\"\",\"color\":\"accent\"},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(currentFlat.additionalText),callback:function ($$v) {_vm.$set(currentFlat, \"additionalText\", $$v)},expression:\"currentFlat.additionalText\"}}),(currentFlat.additionalText === '')?_c('div',{staticClass:\"error--text\"},[_vm._v(\" \"+_vm._s(_vm.$t(`tenantWizard.emptyFieldNotAllowed`))+\" \")]):_vm._e()],1)],1)],1):_vm._e()])],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Getter, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport { IMember } from '@/types/members.types';\nimport { IFlatsConfig } from '@/types/wizards/tenant.types';\nimport { PlcPerformanceCategorie } from '@/utils/plcPerformanceLimits';\nimport { IProject } from '@/types/project.types';\nimport { plcLevelVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class FlatDetails extends mixins(Validation) {\n @Prop({ default: true }) showNumberOfFlats!: boolean;\n @Prop({ default: true }) showTitle!: boolean;\n @Prop({ default: false }) showBuildingAddress!: boolean;\n @Prop({ default: false }) showRenterSwapInfo!: boolean;\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('members/members') members!: IMember[];\n @Getter('projects/project') project!: IProject;\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n\n indexChanged: any[] = [];\n valid = false;\n isInitialLoadingDone = false;\n buildingAddress = {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n };\n\n flatsConfigList: IFlatsConfig[] = [\n {\n name: '',\n mail: '',\n clientId: '',\n address: {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n houseNumber: '',\n },\n additionalText: this.$t('tenantWizard.flatsInformation.defaultAdditionalText') as string,\n sideCostPercentage: 0,\n hasChargingStation: false,\n counters: {\n energyCounter: [],\n heatingCounter: [],\n serviceWaterCounter: [],\n coldWaterCounter: [],\n coolingCounter: [],\n },\n },\n ]\n flatsCount = 1;\n oldFlatsCount = 1;\n saved = true;\n currentFlatConfig: any = undefined;\n\n get plcLevelVersionDateFeature() {\n return plcVersionDate(this.project).getTime() > plcLevelVersionDate.getTime();\n }\n\n get flatLimit() {\n let returnValue = 20;\n // TODO: remove this when PLC performance level is implemented on SPS side\n // if (this.plcLevelVersionDateFeature && this.project.meta.controller.plcPerformanceLevel === PlcPerformanceCategorie.high) {\n // // if the project has the high performance level and the plcLevelVersionDateFeature is enabled, the limit is 150\n // returnValue = 150;\n // }\n return returnValue;\n }\n\n // checks if all flats are filled\n get allFlatsFilled() {\n const statusList = this.flatsConfigList.map((value: IFlatsConfig, index: number) => {\n return this.hasEmptyValue(index);\n });\n return statusList.every(element => element === false);\n }\n\n /**\n * returns a array of all available member mails\n */\n get availableMemberMails() {\n return this.members.map((member: IMember) => member.email).filter((email: string) => !email.includes('support'));\n }\n\n panels: any = [];\n\n @Watch('panels')\n updatePanels(newVal: any, oldVal: any) {\n if (this.showNumberOfFlats) {\n if (newVal) {\n this.handleClickPanelHeader();\n }\n return;\n }\n const defaultFlatConfig = {\n name: '',\n mail: '',\n clientId: '',\n address: {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n houseNumber: '',\n },\n additionalText: this.$t('tenantWizard.flatsInformation.defaultAdditionalText') as string,\n sideCostPercentage: 0,\n counters: {\n energyCounter: [],\n heatingCounter: [],\n serviceWaterCounter: [],\n coldWaterCounter: [],\n },\n };\n\n if (newVal) {\n // update the currentFlatConfig when panel is opened to then compare if it was changed\n this.currentFlatConfig = this.flatsConfigList[newVal[0]];\n // trigger validation for textfields when panel is opened\n this.handleClickPanelHeader();\n } else {\n // update config with default values when panel is closed\n this.currentFlatConfig = defaultFlatConfig;\n }\n\n // set saved to true\n this.saved = true;\n }\n\n @Watch('valid')\n updateValid() {\n if (this.allFlatsFilled === false) {\n this.$emit('updateValid', { status: false });\n return;\n }\n this.$emit('updateValid', { status: this.valid });\n }\n\n // emits the flatsConfigList to the parent component on input action of any field\n handleInput(index = null) {\n if (this.currentFlatConfig !== this.flatsConfigList[this.panels]) {\n this.saved = false;\n } else {\n this.saved = true;\n }\n if (index !== null) {\n if (!this.indexChanged.includes(index)) {\n this.indexChanged.push(index);\n }\n }\n // case inside when going through the tenant wizard, there it is not relevant to check inital loading\n if (this.showNumberOfFlats) {\n this.$emit('updateFlats', { flats: this.flatsConfigList });\n }\n if (this.isInitialLoadingDone === true) {\n this.$emit('updateFlats', { flats: this.flatsConfigList });\n }\n }\n\n handleBuildingAddressChange() {\n this.$emit('updateBuildingAddress', { buildingAddress: this.buildingAddress });\n // case inside when going through the tenant wizard, there it is not relevant to check inital loading\n if (this.showNumberOfFlats) {\n this.$emit('updateFlats', { flats: this.flatsConfigList });\n }\n if (this.isInitialLoadingDone === true) {\n this.$emit('updateFlats', { flats: this.flatsConfigList });\n }\n }\n\n // adds or removes flats based on the input value of the v-select\n handleChange() {\n const newValue = this.flatsCount;\n const oldValue = this.oldFlatsCount;\n const valueDifference = newValue - oldValue;\n if (valueDifference > 0) {\n for (let index = 0; index < valueDifference; index++) {\n this.flatsConfigList.push({\n name: '',\n mail: '',\n clientId: '',\n address: {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n houseNumber: '',\n },\n additionalText: this.$t('tenantWizard.flatsInformation.defaultAdditionalText') as string,\n sideCostPercentage: 0,\n hasChargingStation: false,\n counters: {\n energyCounter: [],\n heatingCounter: [],\n serviceWaterCounter: [],\n coldWaterCounter: [],\n coolingCounter: [],\n },\n });\n }\n this.valid = false;\n } else if (valueDifference < 0) {\n this.flatsConfigList = this.flatsConfigList.slice(0, valueDifference);\n }\n this.oldFlatsCount = this.flatsCount;\n this.valid = this.allFlatsFilled;\n this.$emit('updateFlats', { flats: this.flatsConfigList });\n }\n\n mapFlatConfigList() {\n const tenantFlatsCopy = this.tenantState.tenant.general.flats;\n\n // fill up building address based on saved flat address\n this.buildingAddress.city = tenantFlatsCopy.flatConfigurations[0].address.city;\n this.buildingAddress.country = tenantFlatsCopy.flatConfigurations[0].address.country;\n this.buildingAddress.zip = tenantFlatsCopy.flatConfigurations[0].address.zip;\n // eslint-disable-next-line prefer-destructuring\n this.buildingAddress.street = tenantFlatsCopy.flatConfigurations[0].address.street.split(',')[0];\n\n // remap housenumber from street to specific houseNumber field in address\n this.flatsConfigList.forEach((flat: any) => {\n // eslint-disable-next-line prefer-destructuring\n flat.address.houseNumber = flat.address.street.split(', ')[1];\n // eslint-disable-next-line prefer-destructuring\n flat.address.street = flat.address.street.split(',')[0];\n });\n }\n\n created() {\n if (this.tenantState.tenant.general.flats.flatConfigurations.length !== 0) {\n this.flatsCount = this.tenantState.tenant.general.flats.flatCount;\n this.oldFlatsCount = this.tenantState.tenant.general.flats.flatCount;\n this.flatsConfigList = cloneDeep(this.tenantState.tenant.general.flats.flatConfigurations);\n this.mapFlatConfigList();\n } else {\n this.valid = false;\n }\n }\n\n async mounted() {\n await this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n this.isInitialLoadingDone = true;\n }\n\n // will trigger validation of the form when the panel header is clicked\n // timeout is needed in order for it to work correctly on first open of the panel\n handleClickPanelHeader() {\n setTimeout(() => {\n if (this.$refs.form === undefined) {\n return;\n }\n (this.$refs.form as any).validate();\n }, 300);\n }\n\n // checks if all values of a flat are filled\n hasEmptyValue(index: number) {\n const { name, mail, clientId, address } = this.flatsConfigList[index];\n const { clientName, houseNumber } = address;\n\n const variablesToCheck = [\n name,\n mail,\n clientId,\n clientName,\n houseNumber?.toString() || '',\n ];\n\n return variablesToCheck.some(value => value === '');\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlatDetails.vue?vue&type=template&id=01b010f2&\"\nimport script from \"./FlatDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./FlatDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { combineHouseNumberAndStreet } from '@/utils/tenantWizardUtilsFunctions';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { cloneDeep } from 'lodash';\nimport FlatDetails from './FlatsComponents/FlatDetails.vue';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n FlatDetails,\n },\n})\nexport default class FlatsInformation extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n valid = false;\n flatsValid = false;\n whereFlatsAllreadyDoneOnce = false;\n\n billingComponents = {\n electricity: false,\n serviceWater: false,\n coldWater: false,\n heating: false,\n cooling: false,\n };\n buildingAddress = {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n };\n flatsConfigList: IFlatsConfig[] = [\n {\n name: '',\n mail: '',\n clientId: '',\n address: {\n clientName: '',\n street: '',\n zip: '',\n city: '',\n country: '',\n },\n additionalText: this.$t('tenantWizard.flatsInformation.defaultAdditionalText') as string,\n sideCostPercentage: 0,\n hasChargingStation: false,\n counters: {\n energyCounter: [{ id: '', name: '' }],\n heatingCounter: [{ id: '', name: '' }],\n serviceWaterCounter: [{ id: '', name: '' }],\n coldWaterCounter: [{ id: '', name: '' }],\n coolingCounter: [{ id: '', name: '' }],\n },\n },\n ]\n flatsCount = 1;\n oldFlatsCount = 1;\n\n updateValid(val: { status: boolean }) {\n this.flatsValid = val.status;\n }\n\n updateFlats(val: { flats: IFlatsConfig[] }) {\n this.flatsConfigList = val.flats;\n this.flatsCount = this.flatsConfigList.length;\n }\n\n updatebuildingAddress(val: { buildingAddress: { clientName: string; street: string; zip: string; city: string; country: string } }) {\n this.buildingAddress = val.buildingAddress;\n }\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n /**\n * updates the tenant object in the store\n */\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n\n if (this.billingComponents.coldWater === false) {\n this.removeNoneSelectedItems('coldWaterCounter');\n tenantCopy.general.overallCounters.coldWaterCounter = [];\n }\n\n if (this.billingComponents.serviceWater === false) {\n this.removeNoneSelectedItems('serviceWaterCounter');\n tenantCopy.general.overallCounters.serviceWaterCounter = [];\n }\n\n if (this.billingComponents.heating === false) {\n this.removeNoneSelectedItems('heatingCounter');\n tenantCopy.general.overallCounters.heatingCounter = [];\n }\n\n if (this.billingComponents.electricity === false) {\n this.removeNoneSelectedItems('energyCounter');\n tenantCopy.general.overallCounters.energyCounter = [];\n }\n\n if (this.billingComponents.cooling === false) {\n this.removeNoneSelectedItems('coolingCounter');\n tenantCopy.general.overallCounters.coolingCounter = [];\n }\n\n tenantCopy.general.billingComponents = this.billingComponents;\n tenantCopy.general.flats.flatCount = this.flatsCount;\n\n this.updateFlatsWithBuildingAddress();\n this.flatsConfigList = combineHouseNumberAndStreet(this.flatsConfigList);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n this.updateTenantObject(tenantCopy);\n }\n\n /**\n * updates the flats with the building address\n */\n updateFlatsWithBuildingAddress() {\n this.flatsConfigList.forEach((flat: any) => {\n flat.address.street = this.buildingAddress.street;\n flat.address.zip = this.buildingAddress.zip;\n flat.address.city = this.buildingAddress.city;\n flat.address.country = this.buildingAddress.country;\n });\n }\n\n /**\n * removes all selected items from the counters object for each flat\n */\n removeNoneSelectedItems(type: any) {\n this.flatsConfigList.forEach((flat: any) => {\n flat.counters[type] = [];\n });\n }\n\n mapFlatConfigList() {\n const tenantFlatsCopy = this.tenantState.tenant.general.flats;\n\n // fill up building address based on saved flat address\n this.buildingAddress.city = tenantFlatsCopy.flatConfigurations[0].address.city;\n this.buildingAddress.country = tenantFlatsCopy.flatConfigurations[0].address.country;\n this.buildingAddress.zip = tenantFlatsCopy.flatConfigurations[0].address.zip;\n // eslint-disable-next-line prefer-destructuring\n this.buildingAddress.street = tenantFlatsCopy.flatConfigurations[0].address.street.split(',')[0];\n\n // remap housenumber from street to specific houseNumber field in address\n this.flatsConfigList.forEach((flat: any) => {\n // eslint-disable-next-line prefer-destructuring\n flat.address.houseNumber = flat.address.street.split(', ')[1];\n // eslint-disable-next-line prefer-destructuring\n flat.address.street = flat.address.street.split(',')[0];\n });\n }\n\n created() {\n if (this.tenantState.tenant.general.flats.flatConfigurations[0] !== undefined) {\n this.whereFlatsAllreadyDoneOnce = true;\n this.flatsCount = this.tenantState.tenant.general.flats.flatCount;\n this.oldFlatsCount = this.tenantState.tenant.general.flats.flatCount;\n this.flatsConfigList = cloneDeep(this.tenantState.tenant.general.flats.flatConfigurations);\n this.mapFlatConfigList();\n this.billingComponents = this.tenantState.tenant.general.billingComponents;\n } else {\n this.flatsValid = true;\n }\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatsInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FlatsInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FlatsInformation.vue?vue&type=template&id=8570ed7e&scoped=true&\"\nimport script from \"./FlatsInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./FlatsInformation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FlatsInformation.vue?vue&type=style&index=0&id=8570ed7e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8570ed7e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"py-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.electricity')))]),_c('div',{staticClass:\"ml-2 mt-3\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.infoTooltips.tariff'))+\" \")]},proxy:true}])})],1)]),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"mt-0 mx-0 mb-2 pa-0\",attrs:{\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},on:{\"change\":_vm.handleTariffSelectionChange},model:{value:(_vm.showAllDayTariffFields),callback:function ($$v) {_vm.showAllDayTariffFields=$$v},expression:\"showAllDayTariffFields\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.enableAllDayTariff'))+\" \")])],1),(!_vm.showAllDayTariffFields)?_c('div',[_c('v-row',[_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titlePvTarif')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.productionTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffStartPV')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesProduction.start),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesProduction, \"start\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesProduction.start\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.productionTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffEndPV')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesProduction.end),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesProduction, \"end\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesProduction.end\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.lowTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.lowTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"lowTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.lowTariffProduction\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.highTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.highTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"highTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.highTariffProduction\"}})],1)]),_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titleGridTarif')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.gridTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffStartGrid')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesGrid.start),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesGrid, \"start\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesGrid.start\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.gridTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffEndGrid')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesGrid.end),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesGrid, \"end\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesGrid.end\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.lowTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.lowTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"lowTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.lowTariffGrid\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.highTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.highTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"highTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.highTariffGrid\"}})],1)]),_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"3\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('v-combobox',{attrs:{\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required],\"items\":_vm.timeZones,\"label\":_vm.$t('uiComponents.timezoneChooser.labelText')},model:{value:(_vm.timeZone),callback:function ($$v) {_vm.timeZone=$$v},expression:\"timeZone\"}})],1)],1)],1):_c('div',{staticClass:\"mt-2\"},[_c('v-row',[_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"lg\":\"3\",\"md\":\"3\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.allDayTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.allDayTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"allDayTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.allDayTariffProduction\"}})],1),_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"lg\":\"3\",\"md\":\"3\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.allDayTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.allDayTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"allDayTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.allDayTariffGrid\"}})],1)],1)],1),(\n _vm.tenantState.tenant.general.billingComponents.coldWater ||\n _vm.tenantState.tenant.general.billingComponents.serviceWater ||\n _vm.tenantState.tenant.general.billingComponents.heating\n )?_c('h3',{staticClass:\"pb-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.other')))]):_vm._e(),(\n _vm.tenantState.tenant.general.billingComponents.coldWater ||\n _vm.tenantState.tenant.general.billingComponents.serviceWater ||\n _vm.tenantState.tenant.general.billingComponents.heating\n )?_c('v-row',[(_vm.tenantState.tenant.general.billingComponents.coldWater === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceColdWater'),\"suffix\":`${_vm.selectedCurrency} / m^3`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.fieldMoreThan(0.01),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.tariffCost.priceColdWater),callback:function ($$v) {_vm.$set(_vm.tariffCost, \"priceColdWater\", _vm._n($$v))},expression:\"tariffCost.priceColdWater\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.infoTooltips.tariff'))+\" \")]},proxy:true}],null,false,3390777879)})],1)],1)]):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.serviceWater === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceServiceWater'),\"suffix\":`${_vm.selectedCurrency} / m^3`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.fieldMoreThan(0.01),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.tariffCost.priceServiceWater),callback:function ($$v) {_vm.$set(_vm.tariffCost, \"priceServiceWater\", _vm._n($$v))},expression:\"tariffCost.priceServiceWater\"}})],1):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.heating === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceHeating'),\"suffix\":`${_vm.selectedCurrency} / kWh`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.fieldMoreThan(0.01),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.tariffCost.priceHeating),callback:function ($$v) {_vm.$set(_vm.tariffCost, \"priceHeating\", _vm._n($$v))},expression:\"tariffCost.priceHeating\"}})],1):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.cooling === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceCooling'),\"suffix\":`${_vm.selectedCurrency} / kWh`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.fieldMoreThan(0.01),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.tariffCost.priceCooling),callback:function ($$v) {_vm.$set(_vm.tariffCost, \"priceCooling\", _vm._n($$v))},expression:\"tariffCost.priceCooling\"}})],1):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"d-flex\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.residualElectricityComposition.title')))]),_c('div',{staticClass:\"ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.infoTooltips.residual'))+\" \")]},proxy:true}])})],1)]),_vm._l((_vm.tariffSettings.electricity.residualElectricityComposition),function(item,index){return _c('v-row',{key:index,staticClass:\"pt-4\"},[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{key:`name` + index,attrs:{\"rules\":[_vm.rules.required],\"outlined\":\"\",\"type\":\"text\",\"label\":_vm.$t('tenantWizard.tariffSettings.residualElectricityComposition.name'),\"color\":\"accent\"},model:{value:(item.name),callback:function ($$v) {_vm.$set(item, \"name\", $$v)},expression:\"item.name\"}})],1),_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-text-field',{key:`percentage` + index,attrs:{\"suffix\":\"%\",\"rules\":[..._vm.minMaxValidation(item.percentage, 0, 100), _vm.isOneHundredPercent],\"outlined\":\"\",\"min\":\"0\",\"type\":\"number\",\"label\":_vm.$t('tenantWizard.tariffSettings.residualElectricityComposition.percentage'),\"color\":\"accent\"},model:{value:(item.percentage),callback:function ($$v) {_vm.$set(item, \"percentage\", _vm._n($$v))},expression:\"item.percentage\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.clearFromResidualElectricityCompositionAt(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)],1)}),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"3\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.addResidualElectricityComposition}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.residualElectricityComposition.addButton'))+\" \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"d-flex py-0\",attrs:{\"sm\":\"12\",\"lg\":\"6\"}},[_c('v-textarea',{staticClass:\"mr-2 mt-4\",attrs:{\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.paymentInformation.additionalText'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.residualElectricityText),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"residualElectricityText\", $$v)},expression:\"tariffSettings.electricity.residualElectricityText\"}})],1)],1)],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport {\n ITenantWizardState,\n} from '@/store/modules/tenantWizard/types';\nimport { IResidualElectricityPart, ITenantModel } from '@/types/wizards/tenant.types';\nimport {\n minMaxValidation,\n valuesAddTo100,\n timeToMinutes,\n} from '@/utils/utilsFunctions';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport moment from 'moment';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n methods: { valuesAddTo100, minMaxValidation },\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class TariffSettings extends mixins(Validation) {\n @Getter('projects/project') project!: IProject;\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n valid = false;\n\n tariffSettings: ITenantModel['general']['tariffSettings'] = {\n electricity: {\n lowTariffProduction: 0,\n highTariffProduction: 0,\n lowTariffGrid: 0,\n highTariffGrid: 0,\n allDayTariffGrid: 0,\n allDayTariffProduction: 0,\n residualElectricityComposition: [\n {\n name: this.$t('tenantWizard.tariffSettings.residualCompositionDefaultTexts.biomass') as string,\n percentage: 20,\n },\n {\n name: this.$t('tenantWizard.tariffSettings.residualCompositionDefaultTexts.wind') as string,\n percentage: 20,\n },\n {\n name: this.$t('tenantWizard.tariffSettings.residualCompositionDefaultTexts.solar') as string,\n percentage: 20,\n },\n {\n name: this.$t('tenantWizard.tariffSettings.residualCompositionDefaultTexts.cole') as string,\n percentage: 20,\n },\n {\n name: this.$t('tenantWizard.tariffSettings.residualCompositionDefaultTexts.nuclearPower') as string,\n percentage: 20,\n },\n ] as IResidualElectricityPart[],\n lowTariffTimesProduction: {\n start: '00:00',\n end: '00:00',\n },\n lowTariffTimesGrid: {\n start: '00:00',\n end: '00:00',\n },\n residualElectricityText: '',\n },\n water: {\n priceServiceWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceColdWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceHeating: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceCooling: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n },\n };\n timeZone = '';\n showAllDayTariffFields = false;\n\n selectedCurrency = '';\n tariffCost = {\n priceColdWater: 0,\n priceServiceWater: 0,\n priceHeating: 0,\n priceCooling: 0,\n };\n\n /* check if time for production tariffs is valid */\n get productionTariffsValid() {\n let valid = true;\n const values: any = this.tariffSettings.electricity.lowTariffTimesProduction;\n valid = timeToMinutes(values.start) < timeToMinutes(values.end);\n if (!valid) return this.$t('modals.manageReport.errorMessages.timeError');\n return valid;\n }\n\n /* check if time for grid tariffs is valid */\n get gridTariffsValid() {\n let valid = true;\n const values: any = this.tariffSettings.electricity.lowTariffTimesGrid;\n valid = timeToMinutes(values.start) < timeToMinutes(values.end);\n if (!valid) return this.$t('modals.manageReport.errorMessages.timeError');\n return valid;\n }\n\n // returns all european timezones\n get timeZones() {\n const timezones = moment.tz.names().filter((timezone: string) => {\n return timezone.includes('Europe');\n });\n return timezones;\n }\n\n created() {\n const currentTariffSettings = this.tenantState.tenant.general.tariffSettings;\n // if tenant was done before or if we went back from page after, show the same settings as before\n if (this.project.meta.wasTenantWizardCompleted || currentTariffSettings.electricity.allDayTariffGrid !== 0 || currentTariffSettings.electricity.highTariffGrid !== 0) {\n this.tariffSettings = cloneDeep(this.tenantState.tenant.general.tariffSettings);\n this.tariffCost = this.tenantState.tenant.general.tariffSettings.water;\n if (this.tenantState.tenant.general.timeZone !== undefined) {\n this.timeZone = this.tenantState.tenant.general.timeZone;\n }\n // if one of the all day tariff fields is not 0, show the all day tariff fields\n if (this.tariffSettings.electricity.allDayTariffGrid !== 0 || this.tariffSettings.electricity.allDayTariffProduction !== 0) {\n this.showAllDayTariffFields = true;\n }\n } else {\n // if tenant wasn't done before, show all day tariff fields as default\n this.showAllDayTariffFields = true;\n }\n }\n\n mounted() {\n this.selectedCurrency = this.tenantState.tenant.general.paymentDetails.currency;\n this.validate();\n }\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n handleTariffSelectionChange() {\n if (!this.showAllDayTariffFields) {\n // clear all day tariff fields\n this.tariffSettings.electricity.allDayTariffGrid = 0;\n this.tariffSettings.electricity.allDayTariffProduction = 0;\n } else {\n // clear high/low tariff fields\n this.tariffSettings.electricity.lowTariffTimesProduction.start = '00:00';\n this.tariffSettings.electricity.lowTariffTimesProduction.end = '00:00';\n this.tariffSettings.electricity.lowTariffTimesGrid.start = '00:00';\n this.tariffSettings.electricity.lowTariffTimesGrid.end = '00:00';\n this.tariffSettings.electricity.lowTariffGrid = 0;\n this.tariffSettings.electricity.highTariffGrid = 0;\n this.tariffSettings.electricity.lowTariffProduction = 0;\n this.tariffSettings.electricity.highTariffProduction = 0;\n }\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.tariffSettings.water = this.tariffCost;\n tenantCopy.general.tariffSettings.electricity = this.tariffSettings.electricity;\n tenantCopy.general.timeZone = this.timeZone;\n this.updateTenantObject(tenantCopy);\n }\n\n // check if sum of all percentages from the residualElectricityComposition is 100\n get isOneHundredPercent() {\n return valuesAddTo100(this.tariffSettings.electricity.residualElectricityComposition, 'percentage') || this.$t('tenantWizard.notHundredPercentError');\n }\n\n // adds new entrie to the residualElectricityComposition array and triggers validation\n addResidualElectricityComposition() {\n this.tariffSettings.electricity.residualElectricityComposition.push({\n name: '',\n percentage: 0,\n });\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n // removes entrie from the residualElectricityComposition array at index\n clearFromResidualElectricityCompositionAt(index: number) {\n this.tariffSettings.electricity.residualElectricityComposition.splice(index, 1);\n }\n\n validate() {\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TariffSettings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TariffSettings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TariffSettings.vue?vue&type=template&id=71d37af2&\"\nimport script from \"./TariffSettings.vue?vue&type=script&lang=ts&\"\nexport * from \"./TariffSettings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-card',{staticStyle:{\"max-width\":\"80%\"},attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-home-analytics\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('tenantWizard.welcomePage.title')))])])],1),_c('v-card-text',{staticStyle:{\"margin\":\"0 auto\"}},[_c('p',{staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.welcomePage.infoText')))]),(_vm.showAdditionalMessage)?_c('div',{staticClass:\"mt-1 warning-text\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.welcomePage.additionalWarningInfo')))])]):_vm._e(),(_vm.currentMember?.role !== _vm.UserRoleCode.admin)?_c('div',{staticClass:\"mt-1 warning-text\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.welcomePage.onlyAdmin')))])]):_vm._e()]),_c('v-card-actions',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"color\":\"accent\",\"x-large\":\"\",\"disabled\":_vm.disableStartButton},on:{\"click\":_vm.handleStart}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.start'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMember } from '@/types/members.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IProject } from '@/types/project.types';\nimport { hybridVersionDate, plcVersionDate, tenantUpdateWagoCounters } from '@/utils/versionManagementUtils';\n\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n WizardContentView,\n },\n})\nexport default class WelcomePage extends Vue {\n @State('app') appState!: IAppState;\n @Getter('projects/project') project!: IProject;\n @Getter('measurements/measurements') measurements!: any;\n @Getter('members/currentMember') currentMember!: IMember;\n @Mutation('tenantWizard/setOverallProductionMeasurement') setOverallProductionMeasurement!: (payload: string) => void;\n @Mutation('tenantWizard/setHasLynusInverter') setHasLynusInverter!: (data: boolean) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n showAdditionalMessage = false;\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get wasInstallationWizardCompleted() {\n return this.project.meta.wasInstallationWizardCompleted ?? false;\n }\n\n get disableStartButton() {\n // If the user is a super admin, the button should always be enabled\n if (this.superAdmin) {\n return false;\n }\n return this.showAdditionalMessage || this.currentMember?.role !== UserRoleCode.admin;\n }\n\n created() {\n if (this.measurements['prgPilot.bEnable'] && this.measurements['prgPilot.bEnable'] === 1) {\n this.showAdditionalMessage = true;\n }\n if (this.project.meta.overallProductionMeasurement) {\n this.setOverallProductionMeasurement(this.project.meta.overallProductionMeasurement);\n }\n\n if (this.project.meta) {\n if (plcVersionDate(this.project).getTime() > hybridVersionDate.getTime() && this.project.meta.hasLynusInverter) {\n this.setHasLynusInverter(this.project.meta.hasLynusInverter);\n }\n }\n }\n\n handleStart() {\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomePage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WelcomePage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WelcomePage.vue?vue&type=template&id=d1f629e6&scoped=true&\"\nimport script from \"./WelcomePage.vue?vue&type=script&lang=ts&\"\nexport * from \"./WelcomePage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WelcomePage.vue?vue&type=style&index=0&id=d1f629e6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d1f629e6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.title')))]),_c('p',{staticStyle:{\"color\":\"orange\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.basicInformation')))])])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.subTitles.overallPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.overallInfo')))])]},proxy:true}])})],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallColdWaterCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallColdWaterCounterNumberList[index].name),callback:function ($$v) {_vm.$set(_vm.overallColdWaterCounterNumberList[index], \"name\", $$v)},expression:\"overallColdWaterCounterNumberList[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.coldWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallColdWaterCounterNumberList[index].id)]},model:{value:(_vm.overallColdWaterCounterNumberList[index].id),callback:function ($$v) {_vm.$set(_vm.overallColdWaterCounterNumberList[index], \"id\", $$v)},expression:\"overallColdWaterCounterNumberList[index].id\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallColdWaterCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallColdWaterCounterIdArray[index].name),callback:function ($$v) {_vm.$set(_vm.overallColdWaterCounterIdArray[index], \"name\", $$v)},expression:\"overallColdWaterCounterIdArray[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.coldWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallColdWaterCounterIdArray[index].id),callback:function ($$v) {_vm.$set(_vm.overallColdWaterCounterIdArray[index], \"id\", $$v)},expression:\"overallColdWaterCounterIdArray[index].id\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.coldWater,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addOverallItem()}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.coldWater.buttons.addColdWaterCounter'))+\" \")])],1)],1),_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.subTitles.flatsPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.tooltips.flatsPartInfo')))])]},proxy:true}])})],1),_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.coldWater.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.coldWater.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.coldWater.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"45%\"}},[_vm._l((flat.counters.coldWaterCounter),function(_,counterIndex){return _c('div',{key:counterIndex,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(flat.counters.coldWaterCounter[counterIndex].name),callback:function ($$v) {_vm.$set(flat.counters.coldWaterCounter[counterIndex], \"name\", $$v)},expression:\"flat.counters.coldWaterCounter[counterIndex].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.coldWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(flat.counters.coldWaterCounter[counterIndex].id)]},model:{value:(flat.counters.coldWaterCounter[counterIndex].id),callback:function ($$v) {_vm.$set(flat.counters.coldWaterCounter[counterIndex], \"id\", $$v)},expression:\"flat.counters.coldWaterCounter[counterIndex].id\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCounterFromFlat(flatIndex, counterIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"lynus-small-btn mb-4\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.coldWater,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addCounterToFlat(flatIndex)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.coldWater.buttons.addColdWaterCounter'))+\" \")])],2)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-row')],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const counterLimits = {\n electricity: 40,\n serviceWater: 40,\n coldWater: 40,\n heating: 40,\n cooling: 40,\n};\n","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { initFlatsAddresses, hasArrayDuplicateValue, filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { counterLimits } from '@/ui/components/wizards/tenantWizard/wizardSettings/limits';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class ColdWater extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('variables/variablesForComboBox') noAutomappingVaribles!: [];\n @Getter('projects/project') project!: IProject;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n localCounterLimits = counterLimits;\n valid = false;\n sideCosts = 0;\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n overallColdWaterCounterIdArray: any = [];\n\n overallColdWaterCounterNumberList: any[] = [];\n\n valueNotAllowedCheck(value: any) {\n if (!this.isAutoMappingEnabled) {\n return true;\n }\n const number = parseInt(value, 10);\n if (!this.variablesForComboBox.includes(number)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n return true;\n }\n\n get counterAmount() {\n let otherCounterNumber = 0;\n let flatCounterNumber = 0;\n\n if (this.isAutoMappingEnabled) {\n otherCounterNumber = this.overallColdWaterCounterNumberList.length + 2;\n } else {\n otherCounterNumber = this.overallColdWaterCounterIdArray.length + 2;\n }\n\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flatCounterNumber += flat.counters.coldWaterCounter.length;\n });\n return otherCounterNumber + flatCounterNumber;\n }\n\n get variablesForComboBox() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n // if automapping is enabled we return all numbers from 1 to 255\n return Array.from({ length: 255 }, (_, index) => index + 1);\n }\n\n get hasDuplicateValue(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n // if automapping is disabled we disable this validation\n if (!this.isAutoMappingEnabled) {\n array = [this.overallColdWaterCounterIdArray.map((value: { id: string; name: string}) => value.id)].flat();\n } else {\n array = [this.overallColdWaterCounterNumberList.map((value: { id: string; name: string}) => value.id)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coldWaterCounter.forEach((counter: any) => {\n array.push(counter.id);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateValue');\n }\n\n get hasDuplicateName(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n\n if (this.isAutoMappingEnabled) {\n array = [this.overallColdWaterCounterNumberList.map((value: { id: string; name: string}) => value.name)].flat();\n } else {\n array = [this.overallColdWaterCounterIdArray.map((value: { id: string; name: string}) => value.name)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coldWaterCounter.forEach((counter: any) => {\n array.push(counter.name);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateName') ?? true;\n }\n\n created() {\n this.fetchVariables(this.$route.params.id);\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n this.flatsConfigList.forEach((flat: IFlatsConfig, index: number) => {\n if (this.flatsConfigList[index].counters?.coldWaterCounter === null) {\n this.flatsConfigList[index].counters.coldWaterCounter = [];\n }\n });\n if (this.flatsConfigList[0].counters.coldWaterCounter.length === 0) {\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coldWaterCounter.push({ id: '', name: '' });\n });\n }\n if (this.tenantState.tenant.general.overallCounters.coldWaterCounter !== null) {\n this.overallColdWaterCounterIdArray = this.tenantState.tenant.general.overallCounters.coldWaterCounter;\n }\n if (this.isAutoMappingEnabled) {\n this.fillNumbers();\n }\n }\n\n fillNumbers() {\n // overall part\n this.overallColdWaterCounterNumberList = this.overallColdWaterCounterIdArray.map((counter: any) => {\n return { id: filterNumberFromString(counter.id), name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coldWaterCounter.forEach((counter: any) => {\n counter.id = filterNumberFromString(counter.id);\n });\n });\n }\n\n removeOverallItem(index: number) {\n if (this.isAutoMappingEnabled) {\n this.overallColdWaterCounterNumberList.splice(index, 1);\n } else {\n this.overallColdWaterCounterIdArray.splice(index, 1);\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addOverallItem() {\n if (this.isAutoMappingEnabled) {\n this.overallColdWaterCounterNumberList.push({ id: '', name: '' });\n } else {\n this.overallColdWaterCounterIdArray.push({ id: '', name: '' });\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeCounterFromFlat(flatIndex: number, counterIndex: number) {\n this.flatsConfigList[flatIndex].counters.coldWaterCounter.splice(counterIndex, 1);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addCounterToFlat(flatIndex: number) {\n this.flatsConfigList[flatIndex].counters.coldWaterCounter.push({ id: '', name: '' });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleBack() {\n // if we are going back and we are in the automapping mode we need to convert the numbers to the variable names\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.handleDecrement();\n }\n\n handleNext() {\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.updateTenant();\n this.handleIncrement();\n }\n\n convertNumbersToVariables() {\n // overall part\n this.overallColdWaterCounterIdArray = this.overallColdWaterCounterNumberList.map((counter: any) => {\n return { id: `prgCWM.lrCounter_CW_C_${counter.id}`, name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coldWaterCounter.forEach((counter: any) => {\n counter.id = `prgCWM.lrCounter_CW_C_${counter.id}`;\n });\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.overallCounters.coldWaterCounter = this.overallColdWaterCounterIdArray;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWater.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWater.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ColdWater.vue?vue&type=template&id=6b6a4ceb&scoped=true&\"\nimport script from \"./ColdWater.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColdWater.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColdWater.vue?vue&type=style&index=0&id=6b6a4ceb&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b6a4ceb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.title')))]),_c('p',{staticStyle:{\"color\":\"orange\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.basicInformation')))])])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.subTitles.overallPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.overallInfo')))])]},proxy:true}])})],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallHeatingCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallHeatingCounterNumberList[index].name),callback:function ($$v) {_vm.$set(_vm.overallHeatingCounterNumberList[index], \"name\", $$v)},expression:\"overallHeatingCounterNumberList[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.heating.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallHeatingCounterNumberList[index].id)]},model:{value:(_vm.overallHeatingCounterNumberList[index].id),callback:function ($$v) {_vm.$set(_vm.overallHeatingCounterNumberList[index], \"id\", $$v)},expression:\"overallHeatingCounterNumberList[index].id\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallHeatingCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallHeatingCounterIdArray[index].name),callback:function ($$v) {_vm.$set(_vm.overallHeatingCounterIdArray[index], \"name\", $$v)},expression:\"overallHeatingCounterIdArray[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.heating.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallHeatingCounterIdArray[index].id),callback:function ($$v) {_vm.$set(_vm.overallHeatingCounterIdArray[index], \"id\", $$v)},expression:\"overallHeatingCounterIdArray[index].id\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.heating,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addItem()}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.heating.buttons.addHeatingCounter'))+\" \")])],1)],1),_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.subTitles.flatsPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.tooltips.flatsPartInfo')))])]},proxy:true}])})],1),_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.heating.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.heating.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.heating.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"45%\"}},[_vm._l((flat.counters.heatingCounter),function(_,counterIndex){return _c('div',{key:counterIndex,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(flat.counters.heatingCounter[counterIndex].name),callback:function ($$v) {_vm.$set(flat.counters.heatingCounter[counterIndex], \"name\", $$v)},expression:\"flat.counters.heatingCounter[counterIndex].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.heating.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(flat.counters.heatingCounter[counterIndex].id)]},model:{value:(flat.counters.heatingCounter[counterIndex].id),callback:function ($$v) {_vm.$set(flat.counters.heatingCounter[counterIndex], \"id\", $$v)},expression:\"flat.counters.heatingCounter[counterIndex].id\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCounterFromFlat(flatIndex, counterIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"lynus-small-btn mb-4\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.heating,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addCounterToFlat(flatIndex)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.heating.buttons.addHeatingCounter'))+\" \")])],2)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-row')],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { initFlatsAddresses, hasArrayDuplicateValue, filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { counterLimits } from '@/ui/components/wizards/tenantWizard/wizardSettings/limits';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class Heating extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('variables/variablesForComboBox') noAutomappingVaribles!: [];\n @Getter('projects/project') project!: IProject;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n localCounterLimits = counterLimits;\n valid = false;\n sideCosts = 0;\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n overallHeatingCounterIdArray: any = [];\n\n overallHeatingCounterNumberList: any[] = [];\n\n valueNotAllowedCheck(value: any) {\n if (!this.isAutoMappingEnabled) {\n return true;\n }\n const number = parseInt(value, 10);\n if (!this.variablesForComboBox.includes(number)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n return true;\n }\n\n get counterAmount() {\n let otherCounterNumber = 0;\n let flatCounterNumber = 0;\n\n if (this.isAutoMappingEnabled) {\n otherCounterNumber = this.overallHeatingCounterNumberList.length + 2;\n } else {\n otherCounterNumber = this.overallHeatingCounterIdArray.length + 2;\n }\n\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flatCounterNumber += flat.counters.heatingCounter.length;\n });\n return otherCounterNumber + flatCounterNumber;\n }\n\n get variablesForComboBox() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n // if automapping is enabled we return all numbers from 1 to 255\n return Array.from({ length: 255 }, (_, index) => index + 1);\n }\n\n get hasDuplicateValue(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n // if automapping is disabled we disable this validation\n if (!this.isAutoMappingEnabled) {\n array = [this.overallHeatingCounterIdArray.map((value: { id: string; name: string}) => value.id)].flat();\n } else {\n array = [this.overallHeatingCounterNumberList.map((value: { id: string; name: string}) => value.id)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.heatingCounter.forEach((counter: any) => {\n array.push(counter.id);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateValue');\n }\n\n get hasDuplicateName(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n\n if (this.isAutoMappingEnabled) {\n array = [this.overallHeatingCounterNumberList.map((value: { id: string; name: string}) => value.name)].flat();\n } else {\n array = [this.overallHeatingCounterIdArray.map((value: { id: string; name: string}) => value.name)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.heatingCounter.forEach((counter: any) => {\n array.push(counter.name);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateName') ?? true;\n }\n\n created() {\n this.fetchVariables(this.$route.params.id);\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n if (this.flatsConfigList[0].counters.heatingCounter.length === 0) {\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.heatingCounter.push({ id: '', name: '' });\n });\n }\n this.overallHeatingCounterIdArray = this.tenantState.tenant.general.overallCounters.heatingCounter;\n if (this.isAutoMappingEnabled) {\n this.fillNumbers();\n }\n }\n\n fillNumbers() {\n // overall part\n this.overallHeatingCounterNumberList = this.overallHeatingCounterIdArray.map((counter: any) => {\n return { id: filterNumberFromString(counter.id), name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.heatingCounter.forEach((counter: any) => {\n counter.id = filterNumberFromString(counter.id);\n });\n });\n }\n\n removeCounterFromFlat(flatIndex: number, counterIndex: number) {\n this.flatsConfigList[flatIndex].counters.heatingCounter.splice(counterIndex, 1);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addCounterToFlat(flatIndex: number) {\n this.flatsConfigList[flatIndex].counters.heatingCounter.push({ id: '', name: '' });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeItem(index: number) {\n if (this.isAutoMappingEnabled) {\n this.overallHeatingCounterNumberList.splice(index, 1);\n } else {\n this.overallHeatingCounterIdArray.splice(index, 1);\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addItem() {\n if (this.isAutoMappingEnabled) {\n this.overallHeatingCounterNumberList.push({ id: '', name: '' });\n } else {\n this.overallHeatingCounterIdArray.push({ id: '', name: '' });\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleBack() {\n // if we are going back and we are in the automapping mode we need to convert the numbers to the variable names\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.handleDecrement();\n }\n\n handleNext() {\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.updateTenant();\n this.handleIncrement();\n }\n\n convertNumbersToVariables() {\n // overall part\n this.overallHeatingCounterIdArray = this.overallHeatingCounterNumberList.map((counter: any) => {\n return { id: `prgHM.lrCounter_H_C_${counter.id}`, name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.heatingCounter.forEach((counter: any) => {\n counter.id = `prgHM.lrCounter_H_C_${counter.id}`;\n });\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.overallCounters.heatingCounter = this.overallHeatingCounterIdArray;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Heating.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Heating.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Heating.vue?vue&type=template&id=1bc6cccd&scoped=true&\"\nimport script from \"./Heating.vue?vue&type=script&lang=ts&\"\nexport * from \"./Heating.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Heating.vue?vue&type=style&index=0&id=1bc6cccd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bc6cccd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.title')))]),_c('p',{staticStyle:{\"color\":\"orange\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.basicInformation')))])])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.subTitles.overallPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.overallInfo')))])]},proxy:true}])})],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallServiceWaterCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallServiceWaterCounterNumberList[index].name),callback:function ($$v) {_vm.$set(_vm.overallServiceWaterCounterNumberList[index], \"name\", $$v)},expression:\"overallServiceWaterCounterNumberList[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.serviceWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallServiceWaterCounterNumberList[index].id)]},model:{value:(_vm.overallServiceWaterCounterNumberList[index].id),callback:function ($$v) {_vm.$set(_vm.overallServiceWaterCounterNumberList[index], \"id\", $$v)},expression:\"overallServiceWaterCounterNumberList[index].id\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallServiceWaterCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallServiceWaterCounterIdArray[index].name),callback:function ($$v) {_vm.$set(_vm.overallServiceWaterCounterIdArray[index], \"name\", $$v)},expression:\"overallServiceWaterCounterIdArray[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.serviceWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallServiceWaterCounterIdArray[index].id),callback:function ($$v) {_vm.$set(_vm.overallServiceWaterCounterIdArray[index], \"id\", $$v)},expression:\"overallServiceWaterCounterIdArray[index].id\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.serviceWater,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addOverallItem()}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.serviceWater.buttons.addServiceWaterCounter'))+\" \")])],1)],1),_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.subTitles.flatsPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.tooltips.flatsPartInfo')))])]},proxy:true}])})],1),_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.serviceWater.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.serviceWater.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.serviceWater.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"45%\"}},[_vm._l((flat.counters.serviceWaterCounter),function(_,counterIndex){return _c('div',{key:counterIndex,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(flat.counters.serviceWaterCounter[counterIndex].name),callback:function ($$v) {_vm.$set(flat.counters.serviceWaterCounter[counterIndex], \"name\", $$v)},expression:\"flat.counters.serviceWaterCounter[counterIndex].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.serviceWater.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(flat.counters.serviceWaterCounter[counterIndex].id)]},model:{value:(flat.counters.serviceWaterCounter[counterIndex].id),callback:function ($$v) {_vm.$set(flat.counters.serviceWaterCounter[counterIndex], \"id\", $$v)},expression:\"flat.counters.serviceWaterCounter[counterIndex].id\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCounterFromFlat(flatIndex, counterIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"lynus-small-btn mb-4\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.serviceWater,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addCounterToFlat(flatIndex)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.serviceWater.buttons.addServiceWaterCounter'))+\" \")])],2)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-row')],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { initFlatsAddresses, hasArrayDuplicateValue, filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { counterLimits } from '@/ui/components/wizards/tenantWizard/wizardSettings/limits';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class WarmWater extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('variables/variablesForComboBox') noAutomappingVaribles!: [];\n @Getter('projects/project') project!: IProject;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n localCounterLimits = counterLimits;\n valid = false;\n sideCosts = 0;\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n overallServiceWaterCounterIdArray: any = [];\n\n overallServiceWaterCounterNumberList: any[] = [];\n\n valueNotAllowedCheck(value: any) {\n if (!this.isAutoMappingEnabled) {\n return true;\n }\n const number = parseInt(value, 10);\n if (!this.variablesForComboBox.includes(number)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n return true;\n }\n\n get counterAmount() {\n let otherCounterNumber = 0;\n let flatCounterNumber = 0;\n\n if (this.isAutoMappingEnabled) {\n otherCounterNumber = this.overallServiceWaterCounterNumberList.length + 2;\n } else {\n otherCounterNumber = this.overallServiceWaterCounterIdArray.length + 2;\n }\n\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flatCounterNumber += flat.counters.serviceWaterCounter.length;\n });\n return otherCounterNumber + flatCounterNumber;\n }\n\n get variablesForComboBox() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n // if automapping is enabled we return all numbers from 1 to 255\n return Array.from({ length: 255 }, (_, index) => index + 1);\n }\n\n get hasDuplicateValue(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [this.overallServiceWaterCounterNumberList.map((value: { id: string; name: string}) => value.id)].flat();\n // if automapping is disabled we disable this validation\n if (!this.isAutoMappingEnabled) {\n array = [this.overallServiceWaterCounterIdArray.map((value: { id: string; name: string}) => value.id)].flat();\n } else {\n array = [this.overallServiceWaterCounterNumberList.map((value: { id: string; name: string}) => value.id)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.serviceWaterCounter.forEach((counter: any) => {\n array.push(counter.id);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateValue');\n }\n\n get hasDuplicateName(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n\n if (this.isAutoMappingEnabled) {\n array = [this.overallServiceWaterCounterNumberList.map((value: { id: string; name: string}) => value.name)].flat();\n } else {\n array = [this.overallServiceWaterCounterIdArray.map((value: { id: string; name: string}) => value.name)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.serviceWaterCounter.forEach((counter: any) => {\n array.push(counter.name);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateName') ?? true;\n }\n\n created() {\n this.fetchVariables(this.$route.params.id);\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n this.flatsConfigList.forEach((flat: IFlatsConfig, index: number) => {\n if (this.flatsConfigList[index].counters?.serviceWaterCounter === null) {\n this.flatsConfigList[index].counters.serviceWaterCounter = [];\n }\n });\n if (this.flatsConfigList[0].counters.serviceWaterCounter.length === 0) {\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.serviceWaterCounter.push({ id: '', name: '' });\n });\n }\n if (this.tenantState.tenant.general.overallCounters.serviceWaterCounter !== null) {\n this.overallServiceWaterCounterIdArray = this.tenantState.tenant.general.overallCounters.serviceWaterCounter;\n }\n if (this.isAutoMappingEnabled) {\n this.fillNumbers();\n }\n }\n\n fillNumbers() {\n // overall part\n this.overallServiceWaterCounterNumberList = this.overallServiceWaterCounterIdArray.map((counter: any) => {\n return { id: filterNumberFromString(counter.id), name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.serviceWaterCounter.forEach((counter: any) => {\n counter.id = filterNumberFromString(counter.id);\n });\n });\n }\n\n removeOverallItem(index: number) {\n if (this.isAutoMappingEnabled) {\n this.overallServiceWaterCounterNumberList.splice(index, 1);\n } else {\n this.overallServiceWaterCounterIdArray.splice(index, 1);\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addOverallItem() {\n if (this.isAutoMappingEnabled) {\n this.overallServiceWaterCounterNumberList.push({ id: '', name: '' });\n } else {\n this.overallServiceWaterCounterIdArray.push({ id: '', name: '' });\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeCounterFromFlat(flatIndex: number, counterIndex: number) {\n this.flatsConfigList[flatIndex].counters.serviceWaterCounter.splice(counterIndex, 1);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addCounterToFlat(flatIndex: number) {\n this.flatsConfigList[flatIndex].counters.serviceWaterCounter.push({ id: '', name: '' });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleBack() {\n // if we are going back and we are in the automapping mode we need to convert the numbers to the variable names\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.handleDecrement();\n }\n\n handleNext() {\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.updateTenant();\n this.handleIncrement();\n }\n\n convertNumbersToVariables() {\n // overall part\n this.overallServiceWaterCounterIdArray = this.overallServiceWaterCounterNumberList.map((counter: any) => {\n return { id: `prgHWM.lrCounter_HW_C_${counter.id}`, name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.serviceWaterCounter.forEach((counter: any) => {\n counter.id = `prgHWM.lrCounter_HW_C_${counter.id}`;\n });\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.overallCounters.serviceWaterCounter = this.overallServiceWaterCounterIdArray;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarmWater.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarmWater.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WarmWater.vue?vue&type=template&id=f35573e0&scoped=true&\"\nimport script from \"./WarmWater.vue?vue&type=script&lang=ts&\"\nexport * from \"./WarmWater.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WarmWater.vue?vue&type=style&index=0&id=f35573e0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f35573e0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid && _vm.chargeStationsValid && _vm.checkLynusInverterChanges,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.onNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex pb-2\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.subTitles.overallPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.overallInfo')))])]},proxy:true}])})],1),(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallEnergyCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallEnergyCounterNumberList[index].name),callback:function ($$v) {_vm.$set(_vm.overallEnergyCounterNumberList[index], \"name\", $$v)},expression:\"overallEnergyCounterNumberList[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.overallCounterId'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallEnergyCounterNumberList[index].id, false)]},model:{value:(_vm.overallEnergyCounterNumberList[index].id),callback:function ($$v) {_vm.$set(_vm.overallEnergyCounterNumberList[index], \"id\", $$v)},expression:\"overallEnergyCounterNumberList[index].id\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'energy')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallEnergyCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallEnergyCounterIdArray[index].name),callback:function ($$v) {_vm.$set(_vm.overallEnergyCounterIdArray[index], \"name\", $$v)},expression:\"overallEnergyCounterIdArray[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.overallCounterId'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallEnergyCounterIdArray[index].id),callback:function ($$v) {_vm.$set(_vm.overallEnergyCounterIdArray[index], \"id\", $$v)},expression:\"overallEnergyCounterIdArray[index].id\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'energy')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.disableAddButtons,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addItem('energy')}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.buttons.addEnergyCounter'))+\" \")])],1),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex pb-2\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.subTitles.productionPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.productionInfo')))])]},proxy:true}])})],1),(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallPVCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"disabled\":counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2',\"items\":_vm.hasProductionCounterTotal ? ['prgEnergy.lrCounterProdTotal', 'prgEM.lrCounterProdTotal_2', ..._vm.variablesForCombobox] : _vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.productionCounterId'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2' ? [] : [_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallPVCounterNumberList[index], false)]},model:{value:(_vm.overallPVCounterNumberList[index]),callback:function ($$v) {_vm.$set(_vm.overallPVCounterNumberList, index, $$v)},expression:\"overallPVCounterNumberList[index]\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2' ? _vm.$t('tenantWizard.productionCounterTotalInfo') : _vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",style:({ visibility: index === 0 && !_vm.hasLynusInverter ? 'hidden' : 'visible' }),attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'pv')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallproductionCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"disabled\":counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2',\"label\":_vm.$t('tenantWizard.electricity.labels.productionCounterId'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":_vm.overallPVCounterNumberList[index] === 'prgEnergy.lrCounterProdTotal' || _vm.overallPVCounterNumberList[index] === 'prgEM.lrCounterProdTotal_2' ? [] : [_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallPVCounterNumberList[index], false)]},model:{value:(_vm.overallproductionCounterIdArray[index]),callback:function ($$v) {_vm.$set(_vm.overallproductionCounterIdArray, index, $$v)},expression:\"overallproductionCounterIdArray[index]\"}}),(counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2')?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.productionCounterTotalInfo')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",style:({ visibility: index === 0 && !_vm.hasLynusInverter ? 'hidden' : 'visible' }),attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'pv')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.disableAddButtons,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addItem('pv')}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.buttons.addProductionCounter'))+\" \")]),(_vm.showChargeStationV2Feature)?_c('div',{staticClass:\"mt-4 d-flex\"},[_c('v-select',{attrs:{\"items\":_vm.overallProductionMeasurementItems,\"label\":_vm.$t('tenantWizard.selectOverallMeasurement'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"outlined\":\"\",\"color\":\"accent\",\"hide-selected\":\"\",\"rules\":!_vm.hasLynusInverter ? [_vm.rules.required, _vm.rules.noEmptyString] : []},model:{value:(_vm.overallProductionMeasurement),callback:function ($$v) {_vm.overallProductionMeasurement=$$v},expression:\"overallProductionMeasurement\"}}),(_vm.overallProductionMeasurement !== '')?_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){_vm.overallProductionMeasurement = ''}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()],1):_vm._e()],1),_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"md\":\"6\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex pb-2\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.subTitles.gridPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.gridInfo')))])]},proxy:true}])})],1),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.counterOfGrid'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.gridCounterNumber, false)]},model:{value:(_vm.gridCounterNumber),callback:function ($$v) {_vm.gridCounterNumber=$$v},expression:\"gridCounterNumber\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,false,3312971224)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",staticStyle:{\"visibility\":\"hidden\"},attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(_vm.index, 'energy')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1):_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.gridCounterId'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.gridCounterId),callback:function ($$v) {_vm.gridCounterId=$$v},expression:\"gridCounterId\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",staticStyle:{\"visibility\":\"hidden\"},attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(_vm.index, 'energy')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]),_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"md\":\"6\",\"sm\":\"6\",\"cols\":\"12\"}},[(!_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"d-flex\",staticStyle:{\"margin-top\":\"37px\"}},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.gridProductionCounter'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.gridCounterNumber, false)]},model:{value:(_vm.gridProductionCounter),callback:function ($$v) {_vm.gridProductionCounter=$$v},expression:\"gridProductionCounter\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",staticStyle:{\"visibility\":\"hidden\"},attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(_vm.index, 'energy')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1):_vm._e()]),(_vm.showAcBatteryFeature)?_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"6\",\"sm\":\"6\",\"cols\":\"12\"}},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.subTitles.acBatteryPart')))]),_c('div',{staticClass:\"mt-4 d-flex\"},[_c('v-checkbox',{staticClass:\"mt-0 mx-0 mb-2 pa-0\",attrs:{\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},on:{\"click\":function($event){return _vm.handleAcBatteryCheckbox()}},model:{value:(_vm.activateAcBattery),callback:function ($$v) {_vm.activateAcBattery=$$v},expression:\"activateAcBattery\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.connectAcBattery'))+\" \")])],1),(_vm.activateAcBattery)?_c('div',{staticClass:\"mt-1\"},[(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallAcBatteryCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.acBatteryCounter'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallAcBatteryCounterNumberList[index], false)]},model:{value:(_vm.overallAcBatteryCounterNumberList[index]),callback:function ($$v) {_vm.$set(_vm.overallAcBatteryCounterNumberList, index, $$v)},expression:\"overallAcBatteryCounterNumberList[index]\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",style:({ visibility: index === 0 ? 'hidden' : 'visible' }),attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'acBattery')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallAcBatteryCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-combobox',{attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.acBatteryCounter'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallAcBatteryCounterIdArray[index]),callback:function ($$v) {_vm.$set(_vm.overallAcBatteryCounterIdArray, index, $$v)},expression:\"overallAcBatteryCounterIdArray[index]\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",style:({ visibility: index === 0 ? 'hidden' : 'visible' }),attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index, 'acBattery')}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.disableAddButtons,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addItem('acBattery')}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.buttons.addAcBatteryCounter'))+\" \")])],1):_vm._e(),(!_vm.checkLynusInverterChanges && _vm.showAcBatteryFeature)?_c('div',{staticClass:\"mt-2\",staticStyle:{\"color\":\"red\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.checkLynusInverterChanges'))+\" \")]):_vm._e()]):_vm._e()],1),_c('div',{staticClass:\"d-flex mt-2\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.subTitles.flatsPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.flatsPartInfo')))])]},proxy:true}])})],1),_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6 mr-3\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.electricity.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"pt-6 ml-3\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.electricity.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"pt-6 ml-3\",staticStyle:{\"width\":\"45%\"}},[_vm._l((flat.counters.energyCounter),function(_,counterIndex){return _c('div',{key:counterIndex,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(flat.counters.energyCounter[counterIndex].name),callback:function ($$v) {_vm.$set(flat.counters.energyCounter[counterIndex], \"name\", $$v)},expression:\"flat.counters.energyCounter[counterIndex].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.showChargeStationV2Feature ? _vm.variablesForComboboxFlats : _vm.variablesForCombobox,\"label\":_vm.$t('tenantWizard.electricity.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(flat.counters.energyCounter[counterIndex].id, true)]},model:{value:(flat.counters.energyCounter[counterIndex].id),callback:function ($$v) {_vm.$set(flat.counters.energyCounter[counterIndex], \"id\", $$v)},expression:\"flat.counters.energyCounter[counterIndex].id\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCounterFromFlat(flatIndex, counterIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"lynus-small-btn mb-4\",attrs:{\"disabled\":_vm.disableAddButtons,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addCounterToFlat(flatIndex)}}},[_vm._v(\" \"+_vm._s(_vm.showChargeStationV2Feature ? _vm.$t('tenantWizard.electricity.buttons.addEnergyOrChargeCounter') : _vm.$t('tenantWizard.electricity.buttons.addEnergyCounter'))+\" \")]),(_vm.showChargeStationV2Feature)?_c('div',{staticClass:\"mb-2\"},[_c('div',{staticClass:\"mt-4 d-flex\"},[_c('v-checkbox',{staticClass:\"mt-1 mx-0 mb-2 pa-0\",attrs:{\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\",\"disabled\":_vm.disableCheckbox(flat, flatIndex)},on:{\"click\":function($event){return _vm.handleCheckboxChange(flatIndex)}},model:{value:(flat.hasChargingStation),callback:function ($$v) {_vm.$set(flat, \"hasChargingStation\", $$v)},expression:\"flat.hasChargingStation\"}}),_c('div',{staticClass:\"ml-1 mt-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.electricity.connectChargingStation'))+\" \")]),(flat.hasChargingStation)?_c('div',{staticClass:\"d-flex\"},[(_vm.getInfoText(flat.mail).text !== undefined)?_c('div',{staticClass:\"ml-3 mt-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-icon',{attrs:{\"color\":_vm.getInfoText(flat.mail).color}},[_vm._v(\" \"+_vm._s(_vm.getInfoText(flat.mail).icon)+\" \")])]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.getInfoText(flat.mail).text)+\" \")]},proxy:true}],null,true)})],1):_c('div',{staticClass:\"ml-3\"},[_c('v-icon',{attrs:{\"color\":_vm.getInfoText(flat.mail).color}},[_vm._v(\" \"+_vm._s(_vm.getInfoText(flat.mail).icon)+\" \")])],1),(_vm.getInfoText(flat.mail).errorType === 'notAssigned')?_c('div',{staticClass:\"ml-2\"},[_c('AddUserToChargeStationWindow',{attrs:{\"index\":flatIndex,\"memberId\":_vm.getInfoText(flat.mail).memberId,\"flat\":flat},on:{\"assignUser\":_vm.handleUpdateDevice}})],1):_vm._e()]):_vm._e()],1)]):_vm._e()],2)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-row')],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"500\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.selectChargeStation'))+\" \")])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-select',{attrs:{\"items\":_vm.chargeStationItems,\"label\":_vm.$t('tenantWizard.selectChargeStation'),\"item-text\":\"text\",\"item-value\":\"value\",\"color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"clearable\":\"\"},model:{value:(_vm.selectedChargeStation),callback:function ($$v) {_vm.selectedChargeStation=$$v},expression:\"selectedChargeStation\"}}),_c('v-btn',{staticClass:\"mt-3\",attrs:{\"disabled\":_vm.selectedChargeStation === null,\"color\":\"accent\"},on:{\"click\":_vm.onAssignUser}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { IFlatsConfig } from '@/types/wizards/tenant.types';\nimport { IDevice } from '@/types/devices.types';\nimport { Getter } from 'vuex-class';\nimport {\n chargeStationTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\n\n@Component({\n components: {\n ModalWindow,\n },\n})\nexport default class AddUserToChargeStationWindow extends Vue {\n @Prop({ default: {} }) flat!: IFlatsConfig;\n @Prop({ default: '' }) memberId!: string;\n @Prop({ default: 0 }) flatIndex!: number;\n\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('measurements/measurements') measurements!: any;\n\n chargeStationItems: any[] = [];\n selectedChargeStation: string | null = null;\n\n /**\n * Returns array of electric charging station devices from all devices\n */\n get electricChargingStationV2Devices() {\n return this.allDevices.filter((device: IDevice) => device.data.type === 'ElectricChargingStationV2');\n }\n\n getChargeStationItemByType(type: string) {\n return chargeStationTypes.find((item: any) => item.value === type);\n }\n\n /**\n * Get charge station by index if it exists inside the project\n */\n chargeStationByIndex(index: number) {\n const chargingStations = this.electricChargingStationV2Devices;\n return chargingStations.find((device: IDevice) => device.data.mappings.OutputField_actualValue.includes(`prgCS.lrPowerCS_${index + 1}`) || device.data.mappings.OutputField_actualValue.includes(`prgPilot.lrPower_${index + 1}`));\n }\n\n getStatusFreeChargeByIndex(device: IDevice) {\n return this.measurements[device.data.mappings.Switch2V_onOff];\n }\n\n onAssignUser() {\n // update device with new user\n const chargeStation = this.allDevices.find((device: IDevice) => device.id === this.selectedChargeStation);\n if (chargeStation === undefined) return;\n if (chargeStation.data.meta.selectedUsers === undefined) chargeStation.data.meta.selectedUsers = [];\n chargeStation.data.meta.selectedUsers.push(this.memberId);\n // emit to electricity page to update device\n this.$emit('assignUser', { chargeStation, index: this.flatIndex });\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n async onDialogStatusChange(status: boolean) {\n if (status) {\n // dialog open\n this.chargeStationItems = this.electricChargingStationV2Devices.map((device: IDevice, index: number) => {\n if (this.getStatusFreeChargeByIndex(device) === 0) return null;\n const name = this.getChargeStationItemByType(device.data.meta.systemType)?.name;\n return {\n text: name !== undefined ? `${device.name}: ${name}` : device.name,\n value: device.id,\n };\n }).filter((item: any) => item !== null);\n } else {\n // dialog close\n this.selectedChargeStation = null;\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddUserToChargeStationWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddUserToChargeStationWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddUserToChargeStationWindow.vue?vue&type=template&id=4254ce48&\"\nimport script from \"./AddUserToChargeStationWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddUserToChargeStationWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddUserToChargeStationWindow.vue?vue&type=style&index=0&id=4254ce48&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport LynusPopup from '@/ui/components/components/LynusPopup.vue';\nimport { initFlatsAddresses, hasArrayDuplicateValue, filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { counterLimits } from '@/ui/components/wizards/tenantWizard/wizardSettings/limits';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IMember } from '@/types/members.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IProject } from '@/types/project.types';\nimport { plcVersionDate, chargingStationV2Feature, tenantAcBatteryUpdate, tenantUpdateWagoCounters, plcLevelVersionDate } from '@/utils/versionManagementUtils';\nimport { ICountersObject, IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { convertArrayToBit, convertBinaryNumberToDecimal, convertBitToArray, convertDecimalNumberToBinary } from '@/utils/utilsFunctions';\nimport { MQTTFeedbackError } from '@/store/modules/installationWizard/MQTTFeedbackError';\nimport { IReportBox } from '@/types/app.types';\nimport { IWizardLoadingState } from '@/types/wizards/wizard.general.types';\nimport { IMQTTVariable } from '@/types/wizards/installationWizard.types';\nimport AddUserToChargeStationWindow from '@/ui/components/wizards/tenantWizard/components/AddUserToChargeStationWindow.vue';\nimport { IRoom } from '@/types/rooms.types';\nimport { getChargeStationNameByValue } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { defaultTimeoutRepotMessages } from '@/utils/constants';\nimport { PlcPerformanceCategorie } from '@/utils/plcPerformanceLimits';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n LynusPopup,\n AddUserToChargeStationWindow,\n },\n})\nexport default class Electricity extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('variables/variablesForComboBox') noAutomappingVaribles!: [];\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('members/members') members!: IMember[];\n @Getter('projects/project') project!: IProject;\n @Getter('tenantWizard/hasLynusInverter') hasLynusInverter!: boolean;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('tenantWizard/overallProductionMeasurement') getOverallProductionMeasurement!: string;\n @Mutation('installationWizard/setLoadingState') setLoadingState!: (payload: IWizardLoadingState) => void;\n @Mutation('tenantWizard/setOverallProductionMeasurement') setOverallProductionMeasurement!: (payload: string) => void;\n @Mutation('installationWizard/resetLoadingState') resetLoadingState!: () => void;\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('installationWizard/sendVariables') sendVariables!: (variablesToSend: IMQTTVariable[]) => Promise;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('members/updateMemberCollections') updateMemberCollections!: (\n { project_id, member, collectionsList }: { project_id: string; member: IMember; collectionsList: string[] }\n ) => Promise;\n\n localCounterLimits = counterLimits;\n valid = false;\n sideCosts = 0;\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n overallEnergyCounterIdArray: any = [];\n overallproductionCounterIdArray: any= [];\n overallAcBatteryCounterIdArray: any = [];\n gridCounterId= '';\n gridProductionCounter='';\n chargeStationValidationArray: boolean[] = [];\n chargeStationsValid = true;\n\n overallAcBatteryCounterNumberList: any[] = [];\n flatsFullAddressNumberList: any[] = [];\n overallEnergyCounterNumberList: any[] = [];\n // production counter\n overallPVCounterNumberList: any[] = [];\n // consumption counter\n gridCounterNumber = null;\n\n activateAcBattery = false;\n variablesToSend: IMQTTVariable[] = [];\n\n overallProductionMeasurement = '';\n\n get plcLevelVersionDateFeature() {\n return plcVersionDate(this.project).getTime() > plcLevelVersionDate.getTime();\n }\n\n get disableAddButtons() {\n // TODO: remove this when PLC performance level is implemented on SPS side\n // if (this.plcLevelVersionDateFeature && this.project.meta.controller.plcPerformanceLevel === PlcPerformanceCategorie.high) {\n // // always enable add buttons if the project has the high performance level and the plcLevelVersionDateFeature is enabled\n // return false;\n // }\n return this.electricityCounterAmount >= this.localCounterLimits.electricity;\n }\n\n /**\n * Disables checkbox of a specific flat if the flat has a charging station and the counter is set via the counter id field\n * also marks hasChargingStation as false if the counter is set\n */\n disableCheckbox(flatsConfig: IFlatsConfig, index: number) {\n if (this.isAutoMappingEnabled) {\n const chargeStationMappingTexts = this.chargeStationSelectItems.map((item: any) => item.text);\n // check if the counter is set via the counter id field\n const check = flatsConfig.counters.energyCounter.some((counter: ICountersObject) => chargeStationMappingTexts.includes(counter.id));\n if (check) {\n this.flatsConfigList[index].hasChargingStation = false;\n }\n return check;\n } else {\n const check = flatsConfig.counters.energyCounter.some((counter: ICountersObject) => counter.id.includes('prgCS.lrCounterCS')); // check for default charge station counter mapping\n if (check) {\n this.flatsConfigList[index].hasChargingStation = false;\n }\n return check;\n }\n }\n\n get checkLynusInverterChanges() {\n // if feature is not enabled we return true\n if (!this.showAcBatteryFeature) return true;\n // if feature is enabled and there is no lynus inverter we return true\n if (!this.hasLynusInverter) return true;\n\n // if feature is enabled and there is a lynus inverter we check if the ac battery is activated and a overallProductionMeasurement is set\n // then we return false\n if (this.activateAcBattery && this.overallProductionMeasurement !== '') return false;\n\n return true;\n }\n\n get overallProductionMeasurementItems() {\n if (this.isAutoMappingEnabled) {\n // map all production counters\n return this.overallPVCounterNumberList.map((counter: any) => {\n return {\n text: counter,\n value: counter,\n };\n }).filter((counter: any) => counter.text !== 'prgEnergy.lrCounterProdTotal' && counter.text !== 'prgEM.lrCounterProdTotal_2');\n } else {\n // map production id's\n return this.overallproductionCounterIdArray.map((counter: any) => {\n return {\n text: counter,\n value: counter,\n };\n }).filter((counter: any) => counter.text !== 'prgEnergy.lrCounterProdTotal' && counter.text !== 'prgEM.lrCounterProdTotal_2');\n }\n }\n\n get showChargeStationV2Feature() {\n return plcVersionDate(this.project).getTime() > chargingStationV2Feature.getTime();\n }\n\n get showAcBatteryFeature() {\n return plcVersionDate(this.project).getTime() > tenantAcBatteryUpdate.getTime() && this.hasLynusInverter;\n }\n\n valueNotAllowedCheck(value: any, useFlatMappings: boolean) {\n if (!this.isAutoMappingEnabled) {\n return true;\n }\n const number = parseInt(value, 10);\n if (useFlatMappings && this.showChargeStationV2Feature) {\n const valueToCheck = Number.isNaN(number) ? value : number;\n const variableValuesToCheck = this.variablesForComboboxFlats\n .map((item: {text: string; value: string; disabled: boolean}) => item.value);\n\n if (!variableValuesToCheck.includes(valueToCheck)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n } else {\n const values: any = this.variablesForCombobox.map((item: {text: string; value: string; disabled: boolean}) => item.value);\n if (!values.includes(number)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n }\n return true;\n }\n\n /**\n * Returns array of electric charging station devices from all devices\n */\n get electricChargingStationV2Devices() {\n return this.allDevices.filter((device: IDevice) => device.data.type === 'ElectricChargingStationV2');\n }\n\n /**\n * Returns array of all selected users for charging stations\n */\n get allSelectedUsers() {\n const getAllSelectedUsers: any = [];\n this.electricChargingStationV2Devices.forEach((device: IDevice) => {\n device.data.meta.selectedUsers.forEach((user: any) => {\n if (getAllSelectedUsers.indexOf(user) === -1) {\n getAllSelectedUsers.push(user);\n }\n });\n });\n return getAllSelectedUsers ?? [];\n }\n\n handleAcBatteryCheckbox() {\n if (!this.activateAcBattery) {\n if (this.isAutoMappingEnabled) {\n this.overallAcBatteryCounterNumberList = [];\n } else {\n this.overallAcBatteryCounterIdArray = [];\n }\n } else {\n if (this.isAutoMappingEnabled) {\n this.overallAcBatteryCounterNumberList.push(\"\");\n } else {\n this.overallAcBatteryCounterIdArray.push('');\n }\n }\n\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n /**\n * Checks 'prgCS.wWebasto_Unite' variable and returns an array of indices of webasto unite charge stations\n * These can be selected as flat specific counters\n */\n get webastoUniteIndex() {\n const decimalValue = typeof this.measurements['prgCS.wWebasto_Unite'] === 'number' ?\n this.measurements['prgCS.wWebasto_Unite'] : parseInt(this.measurements['prgCS.wWebasto_Unite'], 10);\n const binaryValue = convertDecimalNumberToBinary(decimalValue ?? 0);\n return convertBitToArray(binaryValue.toString());\n }\n\n get chargeStationSelectItems() {\n const supportedChargeStationTypes = ['Webasto11', 'Webasto22'];\n return this.electricChargingStationV2Devices.map((device: IDevice) => {\n let indexOfDevice = device.data.mappings.OutputField_actualValue.match(/\\d+/);\n indexOfDevice = indexOfDevice ? parseInt(indexOfDevice[0], 10) : -1;\n // if no index is found we return undefined\n if (indexOfDevice === -1) {\n return undefined;\n }\n const name = `${device.name}: ${getChargeStationNameByValue(device.data.meta.systemType)}`;\n // check if the device is a supported charge station type\n if (supportedChargeStationTypes.includes(device.data.meta.systemType)) {\n // if the device is a webasto charge station we check if the device is a webasto charge station\n if (device.data.meta.systemType.includes('Webasto')) {\n // if the prgCS.byTypeECS is set to 1 (this means the device is a webasto unite charge station),\n // or for the new version if it is set via the 'prgCS.wWebasto_Unite' variable\n if (this.measurements[`prgCS.byTypeECS_${indexOfDevice}`] === 1 || this.webastoUniteIndex.includes(indexOfDevice)) {\n // only use unite charge stations as others are not supported for this feature\n return {\n text: name,\n value: `prgCS.lrCounterCS_${indexOfDevice}`,\n };\n } else {\n return undefined;\n }\n } else {\n // if in future some other charge station types are supported we just add them here\n return {\n text: name,\n value: `prgCS.lrCounterCS_${indexOfDevice}`,\n };\n }\n } else {\n return undefined;\n }\n }).filter((device: any) => device !== undefined);\n }\n\n /**\n * Add compatible charge stations to the combobox for selection as a flat specific counter\n */\n get variablesForComboboxFlats() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n const chargeStationArray: string[] = [];\n const numberArray = Array.from({ length: 255 }, (_, index) => index + 1);\n this.chargeStationSelectItems.forEach((item: any) => {\n chargeStationArray.push(item.text);\n });\n\n return [...chargeStationArray, ...numberArray].map((name: any) => {\n return {\n text: name,\n value: name,\n // disable if limit is reached and if it is not included in the charge station array, charge stations can be selected always\n disabled: this.electricityCounterAmount >= this.localCounterLimits.electricity && !chargeStationArray.includes(name),\n };\n });\n }\n\n /**\n * Update device and trigger fetchDevices\n */\n async handleUpdateDevice(obj: { chargeStation: IDevice; index: number }) {\n await this.updateDevice({ device: obj.chargeStation, skipReport: false });\n await this.fetchDevices(this.$route.params.id);\n this.handleCheckboxChange(obj.index);\n }\n\n /**\n * Update chargeStationValidationArray and chargeStationsValid\n */\n handleCheckboxChange(flatIndex: number) {\n const { mail } = this.flatsConfigList[flatIndex];\n // check if checkbox is checked\n if (this.flatsConfigList[flatIndex].hasChargingStation) {\n // if checkbox is checked we check if the user selected for the charging station is valid\n if (this.getInfoText(mail).valid === false) {\n this.chargeStationValidationArray[flatIndex] = false;\n } else {\n this.chargeStationValidationArray[flatIndex] = true;\n }\n } else {\n // if checkbox is unchecked we set the validation to true\n this.chargeStationValidationArray[flatIndex] = true;\n }\n this.chargeStationsValid = this.chargeStationValidationArray.every((valid: boolean) => valid);\n this.flatsConfigList = cloneDeep(this.flatsConfigList);\n }\n\n getInfoText(mail: string) {\n const id = this.getMemberIdByMail(mail);\n const member = this.members.find((member: IMember) => member.id === id);\n const memberName = `${member?.first_name} ${member?.last_name}`;\n\n if (id === undefined) {\n // if id is undefined the user is not a member of the project\n return {\n text: this.$t('tenantWizard.electricity.userNotInProject'),\n icon: 'mdi-close',\n color: 'red',\n valid: true,\n errorType: 'undefined',\n memberId: id,\n };\n }\n\n if (this.allSelectedUsers.includes(id)) {\n if (this.checkIfMemberIsAdmin(id)) {\n // for admin users we show a information text that the user is an admin\n return {\n text: this.$t('tenantWizard.electricity.userIsAdmin', { user: memberName }),\n icon: 'info_outlined',\n color: 'orange',\n valid: true,\n memberId: id,\n };\n } else {\n // for normal users we show a check icon\n return {\n text: undefined,\n icon: 'fa-check',\n color: 'green',\n valid: true,\n memberId: id,\n };\n }\n } else {\n // if the user is not selected for a charging station we show a close icon\n return {\n text: this.$t('tenantWizard.electricity.userNotAssignedToChargingStation', { user: memberName }),\n icon: 'mdi-close',\n color: 'red',\n valid: true,\n errorType: 'notAssigned',\n memberId: id,\n };\n }\n }\n\n /**\n * Returns the member id by mail\n */\n getMemberIdByMail(id: string) {\n return this.members.find((member: IMember) => member.email === id)?.id;\n }\n\n /**\n * Checks if member is admin\n */\n checkIfMemberIsAdmin(id: string) {\n const member = this.members.find((member: IMember) => member.id === id);\n return member?.role === UserRoleCode.admin;\n }\n\n getCounterNumber(counterLists: ICountersObject[][]) {\n return counterLists\n .flatMap(list => list.filter((counter: ICountersObject) => counter.id !== ''))\n .length + 1;\n }\n\n excludeInternalCounters(counterList: string[], variablesToExclude: string[]) {\n return counterList.filter(counter => !variablesToExclude.includes(counter)).length;\n }\n\n /**\n * Returns the amount of consumption counters\n */\n get electricityCounterAmount() {\n let flatCounterNumber = 0;\n // filter out internal counters as they dont count towards the limit\n const variablesToExclude = ['prgEnergy.lrCounterProdTotal', 'prgEM.lrCounterProdTotal_2'];\n\n let productionCounters = this.isAutoMappingEnabled ? this.overallPVCounterNumberList : this.overallproductionCounterIdArray;\n // filter out varibles to exclude\n productionCounters = productionCounters.filter((counter: string) => !variablesToExclude.includes(counter));\n\n const otherCounterNumber = this.isAutoMappingEnabled\n ? this.getCounterNumber([this.overallEnergyCounterNumberList, productionCounters, this.overallAcBatteryCounterNumberList])\n : this.getCounterNumber([this.overallEnergyCounterIdArray, productionCounters, this.overallAcBatteryCounterIdArray]);\n\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n // map all counter id's from flats\n const energyCounterCurrentFlat = flat.counters.energyCounter\n .map((counter: {id: string | number | undefined; name: string}) => (counter?.id ?? '').toString());\n\n const chargeStationMappingTexts = this.chargeStationSelectItems.map((item: any) => item.text);\n // filter out the charging station counters as they dont count towards the limit\n const filteredCounterList = energyCounterCurrentFlat\n .filter((counter: any) => {\n // check if the counter is a charging station counter and check for default chargestation counter mapping 'prgCS.lrCounterCS'\n return !chargeStationMappingTexts.includes(counter) && !counter.includes('prgCS.lrCounterCS') && counter !== '';\n });\n\n flatCounterNumber += filteredCounterList.length;\n });\n return otherCounterNumber + flatCounterNumber;\n }\n\n get hasProductionCounterTotal(): boolean {\n return Object.keys(this.measurements).includes('prgEnergy.lrCounterProdTotal') || Object.keys(this.measurements).includes('prgEM.lrCounterProdTotal_2');\n }\n\n get variablesForCombobox() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n\n return Array.from({ length: 255 }, (_, index) => index + 1).map((name: any) => {\n return {\n text: name,\n value: name,\n // disable if limit is reached\n disabled: this.electricityCounterAmount >= this.localCounterLimits.electricity,\n };\n });\n }\n\n get hasDuplicateValue(): boolean | string {\n // will contain all numbers that are set either inside overall counters, grid counter or grid production counter or inside flats counters\n let array = [];\n if (!this.isAutoMappingEnabled) {\n array = [\n this.overallEnergyCounterIdArray.map((value: { id: string; name: string}) => value.id),\n this.overallproductionCounterIdArray,\n this.overallAcBatteryCounterNumberList,\n this.gridCounterId,\n this.gridProductionCounter,\n ].flat();\n } else {\n array = [\n this.overallEnergyCounterNumberList.map((value: { id: string; name: string}) => value.id),\n this.overallPVCounterNumberList,\n this.overallAcBatteryCounterNumberList,\n this.gridCounterNumber,\n ].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach(counter => array.push(counter.id));\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateValue');\n }\n\n get hasDuplicateName(): boolean | string {\n // will contain all numbers that are set either inside overall counters, grid counter or grid production counter or inside flats counters\n let array = [];\n if (this.isAutoMappingEnabled) {\n array = [this.overallEnergyCounterNumberList.map((value: { id: string; name: string}) => value.name), this.overallPVCounterNumberList].flat();\n } else {\n array = [this.overallEnergyCounterIdArray.map((value: { id: string; name: string}) => value.name), this.overallproductionCounterIdArray].flat();\n }\n // add grid counter and grid production counter\n array.push(this.gridCounterNumber as any);\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach(counter => array.push(counter.name));\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateName') ?? true;\n }\n\n created() {\n this.fetchVariables(this.$route.params.id);\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n if (this.flatsConfigList[0].counters.energyCounter.length === 0) {\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.push({ id: '', name: '' });\n });\n }\n this.overallEnergyCounterIdArray = this.tenantState.tenant.general.overallCounters.energyCounter;\n this.overallproductionCounterIdArray = this.tenantState.tenant.general.productionCounters;\n if (this.overallproductionCounterIdArray.length === 0 && !this.hasLynusInverter && this.showAcBatteryFeature) {\n // if we dont have a lynus inverter we need to set the overall production counter to the default value\n this.overallproductionCounterIdArray.push('');\n }\n this.gridCounterId = this.tenantState.tenant.general.gridCounter;\n this.gridProductionCounter = this.tenantState.tenant.general.gridProductionCounter ?? '';\n\n if (this.showChargeStationV2Feature) {\n this.flatsConfigList.forEach((flat: IFlatsConfig, flatIndex: number) => {\n if (flat.hasChargingStation) {\n // if checkbox is checked we check if the user selected for the charging station is valid\n if (this.getInfoText(flat.mail).valid === false) {\n this.chargeStationValidationArray.push(true);\n this.chargeStationValidationArray[flatIndex] = false;\n } else {\n this.chargeStationValidationArray.push(true);\n this.chargeStationValidationArray[flatIndex] = true;\n }\n } else {\n // if checkbox is unchecked we set the validation to true\n flat.hasChargingStation = false;\n this.chargeStationValidationArray.push(true);\n this.chargeStationValidationArray[flatIndex] = true;\n }\n });\n }\n\n if (this.isAutoMappingEnabled) {\n this.fillNumbers();\n }\n if (plcVersionDate(this.project).getTime() > tenantAcBatteryUpdate.getTime()) {\n // if ac battery is set but we dont have a lynus inverter we need to reset the ac battery part\n if (!this.hasLynusInverter) {\n this.activateAcBattery = false;\n this.overallAcBatteryCounterNumberList = [];\n this.overallAcBatteryCounterIdArray = [];\n // if we dont have a lynus inverter we remove all internal counters from the production counters\n if (!this.hasLynusInverter) {\n // clear also all internal counters from the production counters\n if (this.isAutoMappingEnabled) {\n this.overallPVCounterNumberList = this.overallPVCounterNumberList.filter((counter: any) => counter !== 'prgEM.lrCounterProdTotal_2' && counter !== 'prgEnergy.lrCounterProdTotal');\n } else {\n this.overallproductionCounterIdArray = this.overallproductionCounterIdArray.filter((counter: any) => counter !== 'prgEM.lrCounterProdTotal_2' && counter !== 'prgEnergy.lrCounterProdTotal');\n if (this.overallproductionCounterIdArray.length === 0) {\n this.overallproductionCounterIdArray.push('');\n }\n }\n }\n } else {\n this.initAcBatteryField();\n }\n // save the overall production measurement\n if (this.isAutoMappingEnabled) {\n this.overallProductionMeasurement = filterNumberFromString(this.getOverallProductionMeasurement);\n } else {\n this.overallProductionMeasurement = this.getOverallProductionMeasurement;\n }\n }\n }\n\n initAcBatteryField() {\n // if set saved value will be the decimal equivalent of the bit set with the ac battery numbers\n let savedValue = this.measurements['prgEM.lwPosOfACBattery'];\n\n // if saved value is undefined we do not need to do anything\n if (!savedValue) return;\n\n if (typeof savedValue === 'string') {\n savedValue = parseInt(savedValue, 10);\n }\n // if saved value is 0 we do not need to do anything\n if (savedValue === 0) return;\n\n // convert the decimal number to binary and then to an array of numbers used for the ac battery mapping\n const binaryNumber = convertDecimalNumberToBinary(savedValue).toString();\n const acBatteryNumbers = convertBitToArray(binaryNumber);\n if (this.isAutoMappingEnabled) {\n // add ac battery number\n this.activateAcBattery = true;\n this.overallAcBatteryCounterNumberList = acBatteryNumbers;\n } else {\n // add variable mapping\n this.activateAcBattery = true;\n this.overallAcBatteryCounterIdArray = acBatteryNumbers.map((number: number) => `prgEM.lrCounter_E_P_${number}`);\n }\n }\n\n fillNumbers() {\n // overall part\n this.overallEnergyCounterNumberList = this.overallEnergyCounterIdArray.map((counter: any) => {\n return { id: filterNumberFromString(counter.id), name: counter.name };\n });\n // grid counter address\n const numberGridCounter: any = filterNumberFromString(this.gridCounterId);\n this.gridCounterNumber = numberGridCounter;\n // grid production counter address\n const numberGridProductionCounter: any = filterNumberFromString(this.gridProductionCounter);\n\n // pv counter part\n this.overallPVCounterNumberList = this.overallproductionCounterIdArray.map((counter: any) => {\n if (counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2') {\n return counter;\n }\n return filterNumberFromString(counter);\n });\n\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach((counter: any) => {\n if (this.showChargeStationV2Feature) {\n if (counter.id.includes('prgCS.lrCounterCS')) {\n // search in chargeStationSelectItems and map internal counter from charge station to variable\n counter.id = this.chargeStationSelectItems.find((item: any) => item.value === counter.id)?.text;\n } else {\n // if the number is not a charge station number we map it to the default variable\n counter.id = filterNumberFromString(counter.id);\n }\n } else {\n counter.id = filterNumberFromString(counter.id);\n }\n });\n });\n }\n\n removeCounterFromFlat(flatIndex: number, counterIndex: number) {\n this.flatsConfigList[flatIndex].counters.energyCounter.splice(counterIndex, 1);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addCounterToFlat(flatIndex: number) {\n this.flatsConfigList[flatIndex].counters.energyCounter.push({ id: '', name: '' });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeItem(index: number, type: string) {\n if (type === 'energy') {\n if (this.isAutoMappingEnabled) {\n this.overallEnergyCounterNumberList.splice(index, 1);\n } else {\n this.overallEnergyCounterIdArray.splice(index, 1);\n }\n } else if (type === 'pv') {\n let value = '';\n if (this.isAutoMappingEnabled) {\n value = this.overallPVCounterNumberList[index];\n this.overallPVCounterNumberList.splice(index, 1);\n } else {\n value = this.overallproductionCounterIdArray[index];\n this.overallproductionCounterIdArray.splice(index, 1);\n }\n if (this.overallProductionMeasurement === value) {\n this.overallProductionMeasurement = '';\n }\n } else if (type === 'acBattery') {\n if (this.isAutoMappingEnabled) {\n this.overallAcBatteryCounterNumberList.splice(index, 1);\n } else {\n this.overallAcBatteryCounterIdArray.splice(index, 1);\n }\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addItem(type: string) {\n if (type === 'energy') {\n if (this.isAutoMappingEnabled) {\n this.overallEnergyCounterNumberList.push({ id: '', name: '' });\n } else {\n this.overallEnergyCounterIdArray.push({ id: '', name: '' });\n }\n } else if (type === 'pv') {\n if (this.isAutoMappingEnabled) {\n this.overallPVCounterNumberList.push(\"\");\n } else {\n this.overallproductionCounterIdArray.push('');\n }\n } else if (type === 'acBattery') {\n if (this.isAutoMappingEnabled) {\n this.overallAcBatteryCounterNumberList.push(\"\");\n } else {\n this.overallAcBatteryCounterIdArray.push('');\n }\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n async mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n\n // if tenant wizard was not done already, fill production counter\n if (!this.tenantState.wasTenantDone) await this.fillProductionCounter();\n\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n async fillProductionCounter() {\n await this.fetchMeasurements(this.$route.params.id);\n // check if measurements or production counters include variable prgEnergy.lrCounterProdTotal\n if (!this.overallproductionCounterIdArray.includes('prgEnergy.lrCounterProdTotal') && Object.keys(this.measurements).includes('prgEnergy.lrCounterProdTotal')) {\n if (this.isAutoMappingEnabled) {\n this.overallPVCounterNumberList.push('prgEnergy.lrCounterProdTotal');\n } else {\n this.overallproductionCounterIdArray.push('prgEnergy.lrCounterProdTotal');\n }\n }\n }\n\n handleBack() {\n // if we are going back to the automapping step\n // and we are in the automapping mode we need to convert the numbers to the variable names\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.handleDecrement();\n }\n\n async onNext() {\n let returnValue = true;\n if (plcVersionDate(this.project).getTime() > tenantAcBatteryUpdate.getTime()) {\n returnValue = await this.updateMeasurements();\n // set overall production measurement\n if (this.isAutoMappingEnabled) {\n if (this.overallProductionMeasurement !== '') {\n // if overall production measurement is set we set it to the variable name\n this.setOverallProductionMeasurement(`prgEM.lrCounter_E_P_${this.overallProductionMeasurement}`);\n } else {\n // if overall production measurement is empty we set it to an empty string\n this.setOverallProductionMeasurement('');\n }\n } else {\n this.setOverallProductionMeasurement(this.overallProductionMeasurement);\n }\n\n if (this.overallProductionMeasurement !== '') {\n // remove digital counter if total consumption counter is set\n this.clearInternalCounters();\n }\n if (!this.hasLynusInverter) {\n // remove digital counter if total consumption counter is set\n this.clearInternalCounters();\n }\n\n await this.updateUserAccess();\n }\n // if request was not successful we do not continue\n if (!returnValue) return;\n\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.checkLrProductionCounters();\n this.updateTenant();\n this.handleIncrement();\n }\n\n async updateUserAccess() {\n if (this.electricChargingStationV2Devices.length === 0) return;\n const collectionIdToCheck = this.electricChargingStationV2Devices[0].collection_id;\n // check if all users that are selected for the charging station have access to the area or are admin users\n await this.allSelectedUsers.forEach(async (selectedUserForChargeStation: string) => {\n const memberById = this.members.find((member: IMember) => member.id === selectedUserForChargeStation);\n if (!memberById) return;\n if (memberById.role !== UserRoleCode.admin) {\n const collectionsForUser = memberById.collections;\n if (!collectionsForUser) return;\n if (!collectionsForUser.includes(collectionIdToCheck)) {\n // if user does not have access to the collection we add the collection to the user\n collectionsForUser.push(collectionIdToCheck);\n if (!this.project.id) return;\n await this.updateMemberCollections({\n project_id: this.project.id,\n member: memberById,\n collectionsList: collectionsForUser,\n });\n }\n }\n });\n }\n\n async updateMeasurements() {\n await this.fetchMeasurements(this.$route.params.id);\n let bit = '';\n // convert array of numbers to bit\n if (this.overallAcBatteryCounterNumberList.length === 0 && this.overallAcBatteryCounterIdArray.length === 0) {\n bit = '0';\n } else {\n if (this.isAutoMappingEnabled) {\n bit = convertArrayToBit(this.overallAcBatteryCounterNumberList);\n } else {\n const numberArray = this.overallAcBatteryCounterIdArray.map((counter: any) => parseInt(filterNumberFromString(counter), 10));\n bit = convertArrayToBit(numberArray);\n }\n }\n // convert bit to decimal number to send it to the plc\n const decimal = convertBinaryNumberToDecimal(parseInt(bit, 10));\n\n this.variablesToSend = [{\n variable: 'prgEM.lwPosOfACBattery',\n value: decimal,\n feedbackVariable: 'prgEM.bConfigIsInProgress',\n customExpectedValue: 1,\n }];\n\n // skip sending if the value is already set\n if (this.measurements['prgEM.lwPosOfACBattery'] === decimal) {\n return true;\n }\n\n try {\n this.setLoadingState({\n isLoading: true,\n loadingCount: 0,\n loadingTotal: this.variablesToSend.length,\n });\n await this.sendVariables(this.variablesToSend);\n this.resetLoadingState();\n return true;\n } catch (e) {\n if (e instanceof MQTTFeedbackError) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.$t('installationWizard.mqttFeedbackErrorMessage', { variable: e.variable }),\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n }\n this.resetLoadingState();\n return false;\n }\n }\n\n clearInternalCounters() {\n if (this.isAutoMappingEnabled) {\n // parse all numbers to strings\n this.overallPVCounterNumberList = this.overallPVCounterNumberList.map((value: string | number) => {\n if (typeof value === 'number') {\n return value.toString();\n }\n return value;\n });\n this.overallPVCounterNumberList = this.overallPVCounterNumberList.filter((counter: any) => !counter.includes('prgEnergy.lrCounterProdTotal') && !counter.includes('prgEM.lrCounterProdTotal_2'));\n } else {\n this.overallproductionCounterIdArray = this.overallproductionCounterIdArray.filter((counter: any) => !counter.includes('prgEnergy.lrCounterProdTotal') && !counter.includes('prgEM.lrCounterProdTotal_2'));\n }\n }\n\n checkLrProductionCounters() {\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n // if we do not have a lynus inverter we do not need to check the production counters\n if (!this.hasLynusInverter) return;\n // if we have a overall counter and a lynus inverter we do not need a digital counter\n if (this.overallProductionMeasurement !== '' && this.hasLynusInverter) return;\n }\n // if no ac battery is connected we do not need to update the production counters\n if (this.overallAcBatteryCounterNumberList.length === 0 && this.overallAcBatteryCounterNumberList.length === 0) return;\n // if prgEM.lrCounterProdTotal_2 is set we do not need to update the production counters\n if (this.overallproductionCounterIdArray.includes('prgEM.lrCounterProdTotal_2')) return;\n\n // if prgEM.lrCounterProdTotal_2 is not set and we have an ac battery connected we need to add the production counter\n if (this.overallproductionCounterIdArray.includes('prgEnergy.lrCounterProdTotal')) {\n const index = this.overallproductionCounterIdArray.indexOf('prgEnergy.lrCounterProdTotal');\n // replace prgEnergy.lrCounterProdTotal with prgEM.lrCounterProdTotal_2\n this.overallproductionCounterIdArray.splice(index, 1, 'prgEM.lrCounterProdTotal_2');\n } else {\n // add prgEM.lrCounterProdTotal_2 to the production counters\n this.overallproductionCounterIdArray.push('prgEM.lrCounterProdTotal_2');\n }\n }\n\n convertNumbersToVariables() {\n // overall Part\n this.overallEnergyCounterIdArray = this.overallEnergyCounterNumberList.map((counter: any) => {\n return { id: `prgEM.lrCounter_E_C_${counter.id}`, name: counter.name };\n });\n // grid counter address\n this.gridCounterId = `prgEM.lrCounter_E_C_${this.gridCounterNumber}`;\n // grid production counter address\n this.gridProductionCounter = `prgEM.lrCounter_E_P_${this.gridCounterNumber}`;\n // pv counter part\n this.overallproductionCounterIdArray = this.overallPVCounterNumberList.map((counter: any) => {\n if (counter === 'prgEnergy.lrCounterProdTotal' || counter === 'prgEM.lrCounterProdTotal_2') {\n return counter;\n }\n return `prgEM.lrCounter_E_P_${counter}`;\n });\n\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach((counter: any) => {\n if (this.showChargeStationV2Feature) {\n const number = parseInt(counter.id, 10);\n if (Number.isNaN(number)) {\n // search in chargeStationSelectItems and map internal counter from charge station to variable\n counter.id = this.chargeStationSelectItems.find((item: any) => item.text === counter.id)?.value;\n } else {\n // if the number is not a charge station number we map it to the default variable\n counter.id = `prgEM.lrCounter_E_C_${counter.id}`;\n }\n } else {\n counter.id = `prgEM.lrCounter_E_C_${counter.id}`;\n }\n });\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.overallCounters.energyCounter = this.overallEnergyCounterIdArray;\n tenantCopy.general.productionCounters = this.overallproductionCounterIdArray;\n tenantCopy.general.gridCounter = this.gridCounterId;\n tenantCopy.general.gridProductionCounter = this.gridProductionCounter;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Electricity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Electricity.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Electricity.vue?vue&type=template&id=ab350120&scoped=true&\"\nimport script from \"./Electricity.vue?vue&type=script&lang=ts&\"\nexport * from \"./Electricity.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Electricity.vue?vue&type=style&index=0&id=ab350120&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ab350120\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.comparisonAndReference.text')))]),_c('div',{staticClass:\"ml-2 mt-1\"},[_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.comparisonAndReference.tooltip')))])]},proxy:true}])})],1)]),_vm._l((Object.entries(_vm.localReferenceInformation).filter((el) => el[0] !== 'additionalText')),function(houseHold,houseIndex){return _c('v-row',{key:houseIndex},[_c('v-col',{attrs:{\"md\":\"8\",\"sm\":\"11\",\"cols\":\"12\"}},[(houseHold[0] !== 'additionalText')?_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"mr-4 mt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.consumptionWithMultiplePersons', { amount: houseIndex+1 }))+\": \")]),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"flat\":\"\",\"rules\":[_vm.rules.required],\"suffix\":`kWh/${_vm.$t('tenantWizard.consumptionComparison.year')}`},model:{value:(_vm.localReferenceInformation[`consumption${houseIndex+1}PersonHousehold`]),callback:function ($$v) {_vm.$set(_vm.localReferenceInformation, `consumption${houseIndex+1}PersonHousehold`, _vm._n($$v))},expression:\"localReferenceInformation[`consumption${houseIndex+1}PersonHousehold`]\"}})],1):_vm._e()]),_c('v-col',{attrs:{\"md\":\"1\",\"sm\":\"1\",\"cols\":\"12\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(houseIndex === 0),expression:\"houseIndex === 0\"}],staticClass:\"mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.adjustObject')))])]},proxy:true}],null,true)})],1)])],1)}),_c('v-row',{staticClass:\"mt-4\"},[_c('div',{staticClass:\"mb-3 d-flex\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.additionalText.title')))]),_c('div',{staticClass:\"ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.consumptionComparison.additionalText.tooltip')))])]},proxy:true}])})],1)])]),_c('v-row',{staticClass:\"mb-2\"},[_c('v-textarea',{staticClass:\"mr-2\",attrs:{\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.paymentInformation.additionalText'),\"height\":200,\"rules\":[_vm.rules.required],\"color\":\"accent\"},model:{value:(_vm.localReferenceInformation.additionalText),callback:function ($$v) {_vm.$set(_vm.localReferenceInformation, \"additionalText\", $$v)},expression:\"localReferenceInformation.additionalText\"}})],1)],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { cloneDeep } from 'lodash';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { ITenantModel } from '@/types/wizards/tenant.types';\n\n@Component({\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class ConsumptionComparison extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n valid = false;\n localReferenceInformation= {\n consumption1PersonHousehold: 2400, // kWh/Year default 2400\n consumption2PersonHousehold: 3000, // kWh/Year default 3000\n consumption3PersonHousehold: 3600, // kWh/Year default 3600\n consumption4PersonHousehold: 4000, // kWh/Year default 4000\n additionalText: '',\n };\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.referenceInformation = this.localReferenceInformation;\n this.updateTenantObject(tenantCopy);\n }\n\n created() {\n if (this.tenantState.tenant.referenceInformation.additionalText === '') {\n this.localReferenceInformation.additionalText = this.$t('tenantWizard.consumptionComparison.additionalText.default') as string;\n } else {\n this.localReferenceInformation = this.tenantState.tenant.referenceInformation;\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsumptionComparison.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConsumptionComparison.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConsumptionComparison.vue?vue&type=template&id=20ce5eff&\"\nimport script from \"./ConsumptionComparison.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConsumptionComparison.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid && _vm.selectedMonth !== '',\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.accounting.title')))])]),_c('v-row',[_c('v-col',{staticClass:\"mt-2\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('modals.manageReport.startDateText')))]),_c('v-date-picker',{staticClass:\"mt-4\",attrs:{\"type\":\"month\",\"max\":new Date().toISOString().substr(0, 7),\"min\":new Date(_vm.projectCreationTimestamp * 1000).toISOString().substr(0, 7),\"color\":\"accent\"},model:{value:(_vm.selectedMonth),callback:function ($$v) {_vm.selectedMonth=$$v},expression:\"selectedMonth\"}})],1)])],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-row',[_c('div',{staticClass:\"fieldGrid\"},[_c('h4',{staticClass:\"mt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.periodOptions.title'))+\": \")]),_c('div',{staticClass:\"d-flex\"},[_c('v-select',{attrs:{\"items\":_vm.periodOptions,\"label\":_vm.$t('tenantWizard.billingAndDocumentOutput.periodOptions.selectOption'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.billingSettings.interval),callback:function ($$v) {_vm.$set(_vm.billingSettings, \"interval\", $$v)},expression:\"billingSettings.interval\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[(_vm.billingSettings.interval === 'Never')?_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.neverTooltip'))+\" \")]},proxy:true}],null,false,1144066075)}):_vm._e()],1)],1)])])],1)],1),_c('v-row',[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.accountingViaMail.title')))])]),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-row',[_c('div',{staticClass:\"fieldGrid\"},[_c('h4',{staticClass:\"mt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.accountingViaMail.mail'))+\": \")]),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.rules.email]},model:{value:(_vm.billingSettings.mail),callback:function ($$v) {_vm.$set(_vm.billingSettings, \"mail\", $$v)},expression:\"billingSettings.mail\"}})],1)]),_c('v-row',[_c('div',{staticClass:\"fieldGrid\"},[_c('h4',{staticClass:\"mt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.accountingViaMail.subject'))+\": \")]),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString]},model:{value:(_vm.billingSettings.subject),callback:function ($$v) {_vm.$set(_vm.billingSettings, \"subject\", $$v)},expression:\"billingSettings.subject\"}})],1)]),_c('v-row',[_c('div',{staticClass:\"fieldGrid\"},[_c('h4',{staticClass:\"mt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.accountingViaMail.content'))+\": \")]),_c('v-text-field',{attrs:{\"color\":\"accent\",\"outlined\":\"\",\"flat\":\"\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString]},model:{value:(_vm.billingSettings.content),callback:function ($$v) {_vm.$set(_vm.billingSettings, \"content\", $$v)},expression:\"billingSettings.content\"}})],1)])],1)],1),_c('div',{staticClass:\"d-flex justify-end\"},[(_vm.isCurrentMemberAdmin)?_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":function($event){_vm.wagoCounterCheckEnabled = !_vm.wagoCounterCheckEnabled}}},[_vm._v(\" Wago Check: \"+_vm._s(_vm.wagoCounterCheckEnabled ? 'aktiv': 'deaktiviert')+\" \")]):_vm._e()],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport { MQTTFeedbackError } from '@/store/modules/installationWizard/MQTTFeedbackError';\nimport { IReportBox } from '@/types/app.types';\nimport { IMQTTVariable } from '@/types/wizards/installationWizard.types';\nimport { IWizardLoadingState } from '@/types/wizards/wizard.general.types';\nimport { ICountersObject, IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { convertDecimalNumberToBinary, convertBitToArray } from '@/utils/utilsFunctions';\nimport { plcVersionDate, tenantAcBatteryUpdate, tenantUpdateWagoCounters } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport { filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { defaultTimeoutRepotMessages } from '@/utils/constants';\nimport { IMember } from '@/types/members.types';\n\n@Component({\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class BillingAndDocumentOutput extends mixins(Validation) {\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('projects/project') project!: IProject;\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n @Action('tenantWizard/downLoadTenant') downLoadTenant!: (data: {start: number; end: number; project_id: string}) => any;\n @Action('installationWizard/sendVariables') sendVariables!: (variablesToSend: IMQTTVariable[]) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Mutation('installationWizard/setLoadingState') setLoadingState!: (payload: IWizardLoadingState) => void;\n @Mutation('installationWizard/resetLoadingState') resetLoadingState!: () => void;\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n @Getter('members/currentMember') currentMember!: IMember;\n\n variablesToSend: IMQTTVariable[] = [];\n\n valid = false;\n showLoader = false;\n selectedMonth = '';\n wagoCounterCheckEnabled = true;\n\n get periodOptions() {\n return [\n { value: 'Year', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Year') },\n { value: 'HalfYear', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.HalfYear') },\n { value: 'QuarterYear', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.QuarterYear') },\n { value: 'Month', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Month') },\n { value: 'Never', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Never') },\n ];\n }\n\n billingSettings = {\n start: '',\n interval: 'Year',\n mail: '',\n subject: 'Mieterstrommodell Abrechnung',\n content: 'Mieterstrommodell Abrechnung',\n download: {\n start: '', // will contain the start date for the accounting period\n end: '', // will contain the end date for the accounting period\n },\n };\n\n get isCurrentMemberAdmin() {\n return this.currentMember.owner && this.currentMember.email === 'support@lynus.io';\n }\n\n async handleNext() {\n this.updateTenant();\n\n const measurementsUpdatedCorrectly = await this.updateMeasurements();\n if (measurementsUpdatedCorrectly) {\n this.handleIncrement();\n }\n }\n\n async updateMeasurements() {\n await this.fetchMeasurements(this.$route.params.id);\n // the plus 2 is for the Grid Couter and Grid Production Counter that are allways mapped in the tenant object\n let countOverallMeasurements = this.tenantState.tenant.general.overallCounters.energyCounter.length + this.tenantState.tenant.general.productionCounters.length + 1;\n // will contain amount of all flat specific energy counters\n let countFlatSpecificCounters = 0;\n let highestCounter;\n const { productionCounters } = this.tenantState.tenant.general;\n if (!this.isAutoMappingEnabled) {\n if (productionCounters.includes('prgEnergy.lrCounterProdTotal') || productionCounters.includes('prgEM.lrCounterProdTotal_2')) {\n // this is a digital counter thats why it is not needed to count in for the counter amount\n countOverallMeasurements -= 1;\n }\n let savedValue = this.measurements['prgEM.lwPosOfACBattery'];\n if (typeof savedValue === 'string') {\n savedValue = parseInt(savedValue, 10);\n }\n if (plcVersionDate(this.project).getTime() > tenantAcBatteryUpdate.getTime()) {\n // if saved value is set and not 0 we add the ac battery count\n if (savedValue || savedValue !== 0) {\n // convert the decimal number to binary and then to an array of numbers used for the ac battery mapping\n const binaryNumber = convertDecimalNumberToBinary(savedValue).toString();\n const acBatteryNumbers = convertBitToArray(binaryNumber);\n // add all ac battery mappings to counters\n countOverallMeasurements += acBatteryNumbers.length;\n }\n }\n this.tenantState.tenant.general.flats.flatConfigurations.forEach((flat: IFlatsConfig) => {\n countFlatSpecificCounters += flat.counters.energyCounter.length;\n });\n } else {\n const productionCountersFiltered = productionCounters.filter((counter: string) => counter !== 'prgEnergy.lrCounterProdTotal' && counter !== 'prgEM.lrCounterProdTotal_2') ?? [];\n const overallCounters = this.tenantState.tenant.general.overallCounters.energyCounter.map((counter: ICountersObject) => counter.id);\n const allCounters = [...productionCountersFiltered];\n overallCounters.forEach((counter: string) => {\n allCounters.push(counter);\n });\n // add grid counter\n allCounters.push(this.tenantState.tenant.general.gridCounter);\n this.tenantState.tenant.general.flats.flatConfigurations.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach((counter: ICountersObject) => {\n allCounters.push(counter.id);\n });\n });\n let savedValue = this.measurements['prgEM.lwPosOfACBattery'];\n if (typeof savedValue === 'string') {\n savedValue = parseInt(savedValue, 10);\n }\n if (plcVersionDate(this.project).getTime() > tenantAcBatteryUpdate.getTime()) {\n // if saved value is set and not 0 we add the ac battery count\n if (savedValue || savedValue !== 0) {\n // convert the decimal number to binary and then to an array of numbers used for the ac battery mapping\n const binaryNumber = convertDecimalNumberToBinary(savedValue).toString();\n const acBatteryNumbers = convertBitToArray(binaryNumber);\n // add all ac battery mappings to counters\n acBatteryNumbers.forEach((counter: number) => {\n allCounters.push(`${counter}`);\n });\n }\n }\n const counterNumbers = allCounters.map((counter: string) => {\n return filterNumberFromString(counter) !== undefined ? parseInt(filterNumberFromString(counter), 10) : 0;\n }).filter((counter: number) => counter !== 0);\n highestCounter = Math.max(...counterNumbers);\n }\n\n const val = this.isAutoMappingEnabled ? highestCounter : countOverallMeasurements + countFlatSpecificCounters;\n this.variablesToSend = [\n {\n variable: 'prgEM.byNumberOfEM',\n value: val ?? 0,\n },\n ];\n\n if (this.wagoCounterCheckEnabled) {\n this.variablesToSend.push({\n variable: 'prgEM.bEnable',\n value: 1,\n feedbackVariable: 'prgEM.bSEnable',\n isBoolean: true,\n customTimeout: this.measurements['prgEM.bErrorEM'] !== undefined ? 30 : undefined, // if error variable exists we set a custom timeout\n });\n } else {\n // super admin can disable the wago counter check\n this.variablesToSend.push({\n variable: 'prgEM.bEnable',\n value: 1,\n });\n }\n try {\n this.setLoadingState({\n isLoading: true,\n loadingCount: 0,\n loadingTotal: this.variablesToSend.length,\n });\n await this.sendVariables(this.variablesToSend);\n if (this.measurements['prgEM.bErrorEM'] !== undefined) {\n // check if variable \"prgEM.bErrorEM\" is 0 or 1\n // 1 = error, 0 = no error\n await this.fetchMeasurements(this.$route.params.id);\n if (this.measurements['prgEM.bErrorEM'] === 1) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.$t('tenantWizard.billingAndDocumentOutput.electricMeterCommunicationError').toString(),\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n return false;\n } else {\n this.resetLoadingState();\n this.handleIncrement();\n return true;\n }\n } else {\n this.resetLoadingState();\n this.handleIncrement();\n return true;\n }\n } catch (e) {\n if (e instanceof MQTTFeedbackError) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.$t('installationWizard.mqttFeedbackErrorMessage', { variable: e.variable }),\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n }\n this.resetLoadingState();\n return false;\n }\n }\n\n /**\n * gets al data from the store and sets it to the local variables\n */\n created() {\n if (this.tenantState.tenant.billingSettings.mail !== '') {\n // convert unix timestamp to date string in order for the calendar to work correctly\n this.billingSettings.start = new Date(this.tenantState.tenant.billingSettings.start * 1000).toISOString();\n this.billingSettings.interval = this.tenantState.tenant.billingSettings.interval;\n this.billingSettings.mail = this.tenantState.tenant.billingSettings.mail;\n this.billingSettings.subject = this.tenantState.tenant.billingSettings.subject;\n this.billingSettings.content = this.tenantState.tenant.billingSettings.content;\n this.getMonth();\n }\n }\n\n /**\n * updates the tenant object in the store\n */\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n const finalBillingSettings: any = { ...this.billingSettings };\n finalBillingSettings.start = this.getFirstOfMonth();\n tenantCopy.billingSettings = finalBillingSettings;\n this.updateTenantObject(tenantCopy);\n }\n\n /**\n * returns the first day of the selected month in unix timestamp to save it in the backend\n */\n getFirstOfMonth() {\n const firstDay = new Date(`${this.selectedMonth}-01`);\n return firstDay.getTime() / 1000;\n }\n\n /**\n * return date string in format YYYY-MM for the v-date-picker. from the saved unix timestamp in the backend\n */\n getMonth() {\n const date = new Date(this.billingSettings.start);\n const selectedMonth = date.getMonth() + 1 > 9 ? date.getMonth() + 1 : `0${date.getMonth() + 1}`;\n this.selectedMonth = `${date.getFullYear()}-${selectedMonth}`;\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n // contains current date string to set max date for calendar\n get maxDateCalendar() {\n return new Date().toDateString();\n }\n\n // checks if both date fields are filled for the download\n get areDownloadFieldsFilled() {\n if (this.billingSettings.download.start !== '' && this.billingSettings.download.end !== '' && this.billingSettings.download.start !== null && this.billingSettings.download.end !== null) {\n return true;\n }\n return false;\n }\n\n // checks if the download dates are valid\n get areDownloadDatesValid() {\n const start = new Date(this.billingSettings.download.start).getTime() / 1000;\n const end = new Date(this.billingSettings.download.end).getTime() / 1000;\n return end > start;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BillingAndDocumentOutput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BillingAndDocumentOutput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BillingAndDocumentOutput.vue?vue&type=template&id=7b9ef1c6&scoped=true&\"\nimport script from \"./BillingAndDocumentOutput.vue?vue&type=script&lang=ts&\"\nexport * from \"./BillingAndDocumentOutput.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BillingAndDocumentOutput.vue?vue&type=style&index=0&id=7b9ef1c6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7b9ef1c6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-icon',{staticClass:\"mb-8\",attrs:{\"color\":\"accent\",\"size\":\"128\"}},[_vm._v(\"mdi-check-circle\")]),_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.finalPage.text')))]),_c('v-btn',{staticClass:\"mt-16\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.handleNext}},[_vm._v(_vm._s(_vm.$t('tenantWizard.finalPage.finish')))])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { IProject } from '@/types/project.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IEMSControllerMappings } from '@/types/mpc/devices/ems.types';\nimport { ICountersObject, IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport {\n houseMappingEMSTenant,\n batteryMappingEMSTenant,\n houseMappingEnergyViewTenant,\n gridMappingEnergyViewTenant,\n batteryMappingEnergyViewTenant,\n} from '@/ui/components/wizards/tenantWizard/wizardSettings/defaultMappings';\nimport { filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { convertDecimalNumberToBinary, convertBitToArray } from '@/utils/utilsFunctions';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { IMQTTVariable, WizardPath } from '@/types/wizards/installationWizard.types';\nimport { MQTTFeedbackError } from '@/store/modules/installationWizard/MQTTFeedbackError';\nimport { IWizardLoadingState } from '@/types/wizards/wizard.general.types';\nimport { IReportBox } from '@/types/app.types';\nimport { plcVersionDate, tenantUpdateWagoCounters } from '@/utils/versionManagementUtils';\nimport { defaultTimeoutRepotMessages } from '@/utils/constants';\nimport { gridMappingEMS, pvMappingEMS, pvMappingEnergyView } from '../../../installationWizard/wizardSettings/defaultMappings';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class WelcomePage extends Vue {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('tenantWizard/hasLynusInverter') hasLynusInverter!: boolean;\n @Getter('tenantWizard/overallProductionMeasurement') overallProductionMeasurement!: string;\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Mutation('tenantWizard/setWasTenantDoneState') setWasTenantDoneState!: (data: boolean) => void;\n @Mutation('tenantWizard/setWasTenantRestarted') setWasTenantRestarted!: (data: boolean) => void;\n @Mutation('tenantWizard/resetPageStepIndex') resetPageStepIndex!: () => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n @Action('tenantWizard/updateTenant') updateTenant!: (data: { project_id: string; tenant: ITenantModel }) => void;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => void;\n @Action('installationWizard/sendVariables') sendVariables!: (variablesToSend: IMQTTVariable[]) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Mutation('installationWizard/setLoadingState') setLoadingState!: (payload: IWizardLoadingState) => void;\n @Mutation('installationWizard/resetLoadingState') resetLoadingState!: () => void;\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n\n variablesToSend: IMQTTVariable[] = [];\n\n get emsDevice() {\n return this.allDevices.find((device) => device.data.type === 'EMSV2');\n }\n get energyViewDevice() {\n return this.allDevices.find((device) => device.data.type === 'EnergyViewV2');\n }\n\n async handleNext() {\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n const res = await this.updateMeasurements();\n if (!res) return;\n await this.updateEnergyDevices();\n }\n await this.updateTenantModel();\n await this.handleUpdateProject();\n this.setWasTenantDoneState(true);\n this.setWasTenantRestarted(false);\n this.resetPageStepIndex();\n }\n\n async updateMeasurements() {\n const gridNumber = filterNumberFromString(this.tenantState.tenant.general.gridCounter);\n\n // if there is no lynus inverter we need to set the grid measurement and disable the battery\n if (!this.hasLynusInverter) {\n this.variablesToSend = [\n {\n variable: 'prgEnergy.fbI.bEnable',\n value: 0,\n feedbackVariable: 'prgEnergy.fbI.stDataBattInverter.bEnabled',\n isBoolean: true,\n },\n {\n variable: 'prgEnergy.wSetGridMessurement',\n value: gridNumber,\n isBoolean: true,\n },\n ];\n\n if (this.project.meta.wizardSettings?.wizardPath === WizardPath.TENANT_INSTALLATION_NO_BATTERY) {\n this.variablesToSend.push({\n variable: 'prgEMS.fbEMS.bEnable',\n value: 1,\n feedbackVariable: 'prgEMS.fbEMS.bStateEnable',\n isBoolean: true,\n });\n }\n } else {\n // if there is a lynus inverter we need to set the grid measurement to 0\n this.variablesToSend = [\n {\n variable: 'prgEnergy.wSetGridMessurement',\n value: 0,\n isBoolean: true,\n },\n ];\n }\n\n try {\n this.setLoadingState({\n isLoading: true,\n loadingCount: 0,\n loadingTotal: this.variablesToSend.length,\n });\n await this.sendVariables(this.variablesToSend);\n this.resetLoadingState();\n this.handleIncrement();\n return true;\n } catch (e) {\n if (e instanceof MQTTFeedbackError) {\n this.resetLoadingState();\n this.setReport({\n type: 'error',\n message: this.$t('installationWizard.mqttFeedbackErrorMessage', { variable: e.variable }),\n value: true,\n timeout: defaultTimeoutRepotMessages,\n });\n }\n this.resetLoadingState();\n return false;\n }\n }\n\n async updateEnergyDevices() {\n const emsDeviceCopy: any = { ...this.emsDevice };\n const energyViewDeviceCopy: any = { ...this.energyViewDevice };\n const mappingsEMS: IEMSControllerMappings = { ...emsDeviceCopy.data.meta.controllerMappings };\n const mappingsEnergyView: any = { ...energyViewDeviceCopy.data.meta.controllerMappings };\n\n // replace house controller mappings with the once from the tenant\n // this is needed for both cases, hybrid system and tenant without lynus battery\n mappingsEMS.house.count = 0;\n mappingsEnergyView.house.count = 0;\n mappingsEMS.house.components = {};\n mappingsEnergyView.house.components = {};\n const overallConsumptionCounters = this.tenantState.tenant.general.overallCounters.energyCounter;\n const flatEnergyCounters: ICountersObject[] = [];\n this.tenantState.tenant.general.flats.flatConfigurations.forEach((flat: IFlatsConfig) => {\n flat.counters.energyCounter.forEach((counter) => {\n const object: ICountersObject = {\n id: counter.id,\n name: counter.name,\n };\n flatEnergyCounters.push(object);\n });\n });\n // combine overall consumption counters with flat counters to get all counters needed for the house mappings\n const combinedArray = overallConsumptionCounters.concat(flatEnergyCounters);\n mappingsEMS.house.count = combinedArray.length;\n mappingsEnergyView.house.count = combinedArray.length;\n combinedArray.forEach((counter: ICountersObject, index: number) => {\n if (counter.id.includes('prgCS.lrCounterCS_')) {\n mappingsEMS.house.count--;\n mappingsEnergyView.house.count--;\n return; // do not add charge station counters in the house mappings\n }\n const element = houseMappingEMSTenant(index + 1);\n element.title = counter.name;\n element.energy_counter = counter.id;\n element.power = `prgEM.lrPower_E_${filterNumberFromString(counter.id)}`;\n mappingsEMS.house.components[`house${index + 1}`] = element;\n\n const elementEnergyView = houseMappingEnergyViewTenant(index + 1);\n elementEnergyView.title = counter.name;\n elementEnergyView.energy_counter = counter.id;\n elementEnergyView.power = `prgEM.lrPower_E_${filterNumberFromString(counter.id)}`;\n mappingsEnergyView.house.components[`house${index + 1}`] = elementEnergyView;\n });\n\n const wizardPath = this.project.meta.wizardSettings?.wizardPath;\n if (!this.hasLynusInverter && wizardPath !== WizardPath.STRING_INVERTER) {\n // check also for wizard path because only string inverter systems dont have a grid\n mappingsEMS.grid.components = {};\n mappingsEnergyView.grid.components = {};\n const gridMappings = gridMappingEMS();\n gridMappings.energy_counter = this.tenantState.tenant.general.gridProductionCounter;\n gridMappings.size_in_amps = this.emsDevice?.data.meta.controllerMappings.grid.components.grid1?.size_in_amps ?? 0;\n gridMappings.power = `prgEM.lrPower_E_${filterNumberFromString(this.tenantState.tenant.general.gridCounter)}`;\n gridMappings.reverse_energy_counter = this.tenantState.tenant.general.gridCounter;\n mappingsEMS.grid.components.grid1 = gridMappings;\n const gridMappingsEnergyView = gridMappingEnergyViewTenant();\n mappingsEnergyView.grid.components.grid1 = {\n ...gridMappingsEnergyView,\n energy_counter: this.tenantState.tenant.general.gridProductionCounter,\n reverse_energy_counter: this.tenantState.tenant.general.gridCounter,\n power: `prgEM.lrPower_E_${filterNumberFromString(this.tenantState.tenant.general.gridCounter)}`,\n };\n }\n\n if (!this.hasLynusInverter) {\n // clear all batterie and pv mappings\n const componentKeysToClear = ['battery', 'pv'];\n componentKeysToClear.forEach((key) => {\n mappingsEMS[(key as keyof IEMSControllerMappings)].count = 0;\n mappingsEMS[(key as keyof IEMSControllerMappings)].components = {};\n mappingsEnergyView[key].count = 0;\n mappingsEnergyView[key].components = {};\n });\n } else if (this.hasLynusInverter) {\n // remove the mappings added by the tenant wizard to avoid duplicates\n const componentsToCheck = ['battery', 'pv'];\n componentsToCheck.forEach((key) => {\n Object.values(mappingsEMS[(key as keyof IEMSControllerMappings)].components).forEach((component: any, index: number) => {\n if (component.power.includes('prgEM.lrPower_E_')) {\n mappingsEMS[(key as keyof IEMSControllerMappings)].count--;\n mappingsEnergyView[(key as keyof IEMSControllerMappings)].count--;\n delete mappingsEMS[(key as keyof IEMSControllerMappings)].components[`${key}${index + 1}`];\n delete mappingsEnergyView[(key as keyof IEMSControllerMappings)].components[`${key}${index + 1}`];\n }\n });\n });\n }\n\n // if hasLynusInverter is false and we have a overallProductionMeasurement we add a pv mapping\n if (!this.hasLynusInverter) {\n const id = filterNumberFromString(this.overallProductionMeasurement);\n // if we have a overall production measurement and there is no lynus inverter, we add a pv mapping\n if (!this.hasLynusInverter) {\n const element = pvMappingEMS(1);\n element.power = `prgEM.lrPower_E_${id}`;\n element.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n element.title = 'Produktion Total';\n mappingsEMS.pv.components.pv1 = element;\n mappingsEMS.pv.count++;\n\n const elementEnergyView = pvMappingEnergyView(1);\n elementEnergyView.power = `prgEM.lrPower_E_${id}`;\n elementEnergyView.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n elementEnergyView.title = 'Produktion Total';\n mappingsEnergyView.pv.components.pv1 = elementEnergyView;\n mappingsEnergyView.pv.count++;\n }\n }\n\n // check if overall production measurement is not set or if there is no lynus inverter\n if (this.overallProductionMeasurement === '' || !this.hasLynusInverter) {\n // add the production mappings from the tenant to the pv mappings\n let productionMappings = this.tenantState.tenant.general.productionCounters ?? [];\n const variablesToFilter = [\n 'prgEnergy.lrCounterProdTotal',\n 'prgEM.lrCounterProdTotal_2',\n ];\n const containsInternalCounter = productionMappings.filter((counter: string) => variablesToFilter.includes(counter)).length > 0;\n // remove the counters that are not needed for the pv mappings\n productionMappings = productionMappings.filter((counter: string) => !variablesToFilter.includes(counter));\n if (this.hasLynusInverter && !containsInternalCounter) {\n // if digital counters are not present we do not need to add any pv's\n productionMappings = [];\n }\n productionMappings.forEach((counter: string) => {\n // get the number from the counter string\n const number = parseInt(filterNumberFromString(counter), 10) ?? 0;\n if (!this.hasLynusInverter) {\n // if there is no lynus inverter overall measurement must be set\n const overallMeasurementNumber = parseInt(filterNumberFromString(this.overallProductionMeasurement), 10) ?? 0;\n // if the number is the same as the overall measurement number we do not need to add it to the pv mappings\n if (number === overallMeasurementNumber) return;\n }\n // check if the component is already set\n if (!this.checkComponentIsSet(number, mappingsEMS.pv.components)) {\n // if not set add it to the mappings in EMS and EnergyView\n mappingsEMS.pv.count++;\n const element = pvMappingEMS(mappingsEMS.pv.count);\n element.title = `PV ${mappingsEMS.pv.count}`;\n element.energy_counter = counter;\n element.power = `prgEM.lrPower_E_${filterNumberFromString(counter)}`;\n mappingsEMS.pv.components[`pv${mappingsEMS.pv.count}`] = element;\n\n mappingsEnergyView.pv.count++;\n const elementEnergyView = pvMappingEnergyView(mappingsEMS.pv.count);\n elementEnergyView.title = `PV ${mappingsEMS.pv.count}`;\n elementEnergyView.energy_counter = counter;\n elementEnergyView.power = `prgEM.lrPower_E_${filterNumberFromString(counter)}`;\n mappingsEnergyView.pv.components[`pv${mappingsEMS.pv.count}`] = elementEnergyView;\n }\n });\n }\n\n // will contain the ac battery numbers if present\n const acBatteryIds = this.getAcBatteryNumbers();\n // add ac batteries if they are present. but only if we have a lynus inverter\n if (acBatteryIds && this.hasLynusInverter) {\n acBatteryIds.forEach((id: number, acBatteryIndex: number) => {\n // check if the battery is already set\n if (!this.checkComponentIsSet(id, mappingsEMS.battery.components)) {\n // if battery is not set add it to the mappings in EMS and EnergyView\n mappingsEMS.battery.count++;\n const currentIndex = mappingsEMS.battery.count;\n const element = batteryMappingEMSTenant();\n element.power = `prgEM.lrPower_E_${id}`;\n element.title = `AC Batterie ${acBatteryIndex + 1}`;\n element.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n element.reverse_energy_counter = `prgEM.lrCounter_E_C_${id}`;\n mappingsEMS.battery.components[`battery${currentIndex}`] = element;\n\n mappingsEnergyView.battery.count++;\n const elementEnergyView = batteryMappingEnergyViewTenant(currentIndex);\n elementEnergyView.power = `prgEM.lrPower_E_${id}`;\n elementEnergyView.title = `AC Batterie ${acBatteryIndex + 1}`;\n elementEnergyView.energy_counter = `prgEM.lrCounter_E_P_${id}`;\n elementEnergyView.reverse_energy_counter = `prgEM.lrCounter_E_C_${id}`;\n mappingsEnergyView.battery.components[`battery${currentIndex}`] = elementEnergyView;\n }\n });\n }\n\n // update the devices with the new mappings\n emsDeviceCopy.data.meta.controllerMappings = mappingsEMS;\n energyViewDeviceCopy.data.meta.controllerMappings = mappingsEnergyView;\n await this.updateDevice({ device: emsDeviceCopy, skipReport: false });\n await this.updateDevice({ device: energyViewDeviceCopy, skipReport: false });\n }\n\n /**\n * Checks if the component with the fitting power mapping is already set in the mappings\n * @param variableIndex\n * @param componentMapping\n */\n checkComponentIsSet(variableIndex: number, componentMapping: any) {\n let returnVal = false;\n Object.values(componentMapping).forEach((component: any) => {\n if (component.power === `prgEM.lrPower_E_${variableIndex}`) {\n returnVal = true;\n }\n });\n return returnVal;\n }\n\n /**\n * Get the ac battery numbers from the saved value\n */\n getAcBatteryNumbers() {\n // if set saved value will be the decimal equivalent of the bit set with the ac battery numbers\n let savedValue = this.measurements['prgEM.lwPosOfACBattery'];\n\n // if saved value is undefined we do not need to do anything\n if (!savedValue) return;\n\n if (typeof savedValue === 'string') {\n savedValue = parseInt(savedValue, 10);\n }\n // if saved value is 0 we do not need to do anything\n if (savedValue === 0) return;\n\n // convert the decimal number to binary and then to an array of numbers used for the ac battery mapping\n const binaryNumber = convertDecimalNumberToBinary(savedValue).toString();\n return convertBitToArray(binaryNumber) ?? [];\n }\n\n /**\n * Updates the tenant model in the project meta\n */\n async updateTenantModel() {\n await this.updateTenant({ project_id: this.$route.params.id, tenant: this.tenantState.tenant });\n }\n\n async handleUpdateProject() {\n const projectCopy = { ...this.project };\n projectCopy.meta.wasTenantWizardCompleted = true;\n if (plcVersionDate(this.project).getTime() > tenantUpdateWagoCounters.getTime()) {\n // save tenantOnlyProject in project meta this is needed for the installation wizard, if it gets done in the future\n projectCopy.meta.hasLynusInverter = this.hasLynusInverter;\n projectCopy.meta.overallProductionMeasurement = this.overallProductionMeasurement;\n }\n await this.updateProject(projectCopy);\n }\n\n beforeDestroy() {\n this.setWasTenantDoneState(true);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinalPage.vue?vue&type=template&id=d0e25db6&\"\nimport script from \"./FinalPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinalPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":true,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return undefined},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center mt-10\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('tenantWizard.automappingQuestion')))]),_c('v-btn-toggle',{staticClass:\"mt-2\",attrs:{\"color\":\"accent\"},model:{value:(_vm.autoMappingEnable),callback:function ($$v) {_vm.autoMappingEnable=$$v},expression:\"autoMappingEnable\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(_vm.autoMappingEnable ? 'pointer-events: none;':''),attrs:{\"value\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(!_vm.autoMappingEnable ? 'pointer-events: none;':''),attrs:{\"value\":false}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1)],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { minMaxValidation } from '@/utils/utilsFunctions';\n\n@Component({\n methods: { minMaxValidation },\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class ExtraCosts extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Mutation('tenantWizard/setIsAutoMappingEnabled') setIsAutoMappingEnabled!: (value: boolean) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n autoMappingEnable = false;\n\n created() {\n this.autoMappingEnable = this.isAutoMappingEnabled;\n }\n\n handleNext() {\n this.setIsAutoMappingEnabled(this.autoMappingEnable);\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutoMapping.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AutoMapping.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AutoMapping.vue?vue&type=template&id=661a7a12&scoped=true&\"\nimport script from \"./AutoMapping.vue?vue&type=script&lang=ts&\"\nexport * from \"./AutoMapping.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AutoMapping.vue?vue&type=style&index=0&id=661a7a12&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"661a7a12\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.title')))]),_c('p',{staticStyle:{\"color\":\"orange\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.basicInformation')))])])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.subTitles.overallPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.electricity.tooltips.overallInfo')))])]},proxy:true}])})],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[(_vm.isAutoMappingEnabled)?_c('div',_vm._l((_vm.overallCoolingCounterNumberList),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallCoolingCounterNumberList[index].name),callback:function ($$v) {_vm.$set(_vm.overallCoolingCounterNumberList[index], \"name\", $$v)},expression:\"overallCoolingCounterNumberList[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.cooling.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(_vm.overallCoolingCounterNumberList[index].id)]},model:{value:(_vm.overallCoolingCounterNumberList[index].id),callback:function ($$v) {_vm.$set(_vm.overallCoolingCounterNumberList[index], \"id\", $$v)},expression:\"overallCoolingCounterNumberList[index].id\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0):_c('div',_vm._l((_vm.overallCoolingCounterIdArray),function(counter,index){return _c('div',{key:index},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(_vm.overallCoolingCounterIdArray[index].name),callback:function ($$v) {_vm.$set(_vm.overallCoolingCounterIdArray[index], \"name\", $$v)},expression:\"overallCoolingCounterIdArray[index].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.cooling.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue]},model:{value:(_vm.overallCoolingCounterIdArray[index].id),callback:function ($$v) {_vm.$set(_vm.overallCoolingCounterIdArray[index], \"id\", $$v)},expression:\"overallCoolingCounterIdArray[index].id\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeOverallItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)])}),0),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.cooling,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addOverallItem()}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.cooling.buttons.addCoolingCounter'))+\" \")])],1)],1),_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pr-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.subTitles.flatsPart')))]),_c('InfoTooltip',{attrs:{\"position\":'right'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.tooltips.flatsPartInfo')))])]},proxy:true}])})],1),_vm._l((_vm.flatsConfigList),function(flat,flatIndex){return _c('v-row',{key:flatIndex},[_c('v-col',{staticClass:\"py-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"px-3 pt-9\",staticStyle:{\"width\":\"15%\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.cooling.texts.flat'))+\" \"+_vm._s(flatIndex + 1)+\" :\")]),_c('div',{staticClass:\"pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.cooling.labels.name'),\"disabled\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(flat.name),callback:function ($$v) {_vm.$set(flat, \"name\", $$v)},expression:\"flat.name\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"20%\"}},[_c('v-text-field',{attrs:{\"disabled\":\"\",\"outlined\":\"\",\"label\":_vm.$t('tenantWizard.cooling.labels.address'),\"color\":\"accent\"},model:{value:(_vm.flatsFullAddress[flat.name]),callback:function ($$v) {_vm.$set(_vm.flatsFullAddress, flat.name, $$v)},expression:\"flatsFullAddress[flat.name]\"}})],1),_c('div',{staticClass:\"ml-3 pt-6\",staticStyle:{\"width\":\"45%\"}},[_vm._l((flat.counters.coolingCounter),function(_,counterIndex){return _c('div',{key:counterIndex,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-2\",attrs:{\"required\":\"\",\"label\":_vm.$t('tenantWizard.labels.counterName'),\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateName]},model:{value:(flat.counters.coolingCounter[counterIndex].name),callback:function ($$v) {_vm.$set(flat.counters.coolingCounter[counterIndex], \"name\", $$v)},expression:\"flat.counters.coolingCounter[counterIndex].name\"}}),_c('v-combobox',{staticClass:\"ml-2\",attrs:{\"required\":\"\",\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('tenantWizard.cooling.labels.variables'),\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"rules\":[_vm.rules.required, _vm.rules.noEmptyString, _vm.hasDuplicateValue, _vm.valueNotAllowedCheck(flat.counters.coolingCounter[counterIndex].id)]},model:{value:(flat.counters.coolingCounter[counterIndex].id),callback:function ($$v) {_vm.$set(flat.counters.coolingCounter[counterIndex], \"id\", $$v)},expression:\"flat.counters.coolingCounter[counterIndex].id\"}}),(_vm.isAutoMappingEnabled)?_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('p',[_vm._v(_vm._s(_vm.$t('tenantWizard.counterInformationText')))])]},proxy:true}],null,true)})],1):_vm._e(),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeCounterFromFlat(flatIndex, counterIndex)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),_c('v-btn',{staticClass:\"lynus-small-btn mb-4\",attrs:{\"disabled\":_vm.counterAmount >= _vm.localCounterLimits.cooling,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addCounterToFlat(flatIndex)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.cooling.buttons.addCoolingCounter'))+\" \")])],2)]),_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-row')],2)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { cloneDeep } from 'lodash';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { initFlatsAddresses, hasArrayDuplicateValue, filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { counterLimits } from '@/ui/components/wizards/tenantWizard/wizardSettings/limits';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class Cooling extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('tenantWizard/isAutoMappingEnabled') isAutoMappingEnabled!: boolean;\n @Getter('variables/variablesForComboBox') noAutomappingVaribles!: [];\n @Getter('projects/project') project!: IProject;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n localCounterLimits = counterLimits;\n valid = false;\n sideCosts = 0;\n flatsConfigList: IFlatsConfig[] = [];\n flatsFullAddress: Record = {};\n overallCoolingCounterIdArray: any = [];\n\n overallCoolingCounterNumberList: any[] = [];\n\n valueNotAllowedCheck(value: any) {\n if (!this.isAutoMappingEnabled) {\n return true;\n }\n const number = parseInt(value, 10);\n if (!this.variablesForComboBox.includes(number)) {\n return this.$t('tenantWizard.valueNotAllowed');\n }\n return true;\n }\n\n get counterAmount() {\n let otherCounterNumber = 0;\n let flatCounterNumber = 0;\n\n if (this.isAutoMappingEnabled) {\n otherCounterNumber = this.overallCoolingCounterNumberList.length + 2;\n } else {\n otherCounterNumber = this.overallCoolingCounterIdArray.length + 2;\n }\n\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flatCounterNumber += flat.counters.coolingCounter.length;\n });\n return otherCounterNumber + flatCounterNumber;\n }\n\n get variablesForComboBox() {\n // if automapping is disabled we just return normal meassurement variables\n if (!this.isAutoMappingEnabled) {\n return this.noAutomappingVaribles;\n }\n // if automapping is enabled we return all numbers from 1 to 255\n return Array.from({ length: 255 }, (_, index) => index + 1);\n }\n\n get hasDuplicateValue(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n // if automapping is disabled we disable this validation\n if (!this.isAutoMappingEnabled) {\n array = [this.overallCoolingCounterIdArray.map((value: { id: string; name: string}) => value.id)].flat();\n } else {\n array = [this.overallCoolingCounterNumberList.map((value: { id: string; name: string}) => value.id)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coolingCounter.forEach((counter: any) => {\n array.push(counter.id);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateValue');\n }\n\n get hasDuplicateName(): boolean | string {\n // will contain all numbers that are set either inside overall counters or inside flats counters\n let array = [];\n\n if (this.isAutoMappingEnabled) {\n array = [this.overallCoolingCounterNumberList.map((value: { id: string; name: string}) => value.name)].flat();\n } else {\n array = [this.overallCoolingCounterIdArray.map((value: { id: string; name: string}) => value.name)].flat();\n }\n\n // add flats counters\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coolingCounter.forEach((counter: any) => {\n array.push(counter.name);\n });\n });\n\n return hasArrayDuplicateValue(array, 'tenantWizard.hasDuplicateName') ?? true;\n }\n\n created() {\n this.fetchVariables(this.$route.params.id);\n this.flatsConfigList = this.tenantState.tenant.general.flats.flatConfigurations;\n this.flatsConfigList.forEach((flat: IFlatsConfig, index: number) => {\n if (this.flatsConfigList[index].counters?.coolingCounter === null) {\n this.flatsConfigList[index].counters.coolingCounter = [];\n }\n });\n if (this.flatsConfigList[0].counters.coolingCounter.length === 0) {\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coolingCounter.push({ id: '', name: '' });\n });\n }\n if (this.tenantState.tenant.general.overallCounters.coolingCounter !== null) {\n this.overallCoolingCounterIdArray = this.tenantState.tenant.general.overallCounters.coolingCounter;\n }\n if (this.isAutoMappingEnabled) {\n this.fillNumbers();\n }\n }\n\n fillNumbers() {\n // overall part\n this.overallCoolingCounterNumberList = this.overallCoolingCounterIdArray.map((counter: any) => {\n return { id: filterNumberFromString(counter.id), name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coolingCounter.forEach((counter: any) => {\n counter.id = filterNumberFromString(counter.id);\n });\n });\n }\n\n removeOverallItem(index: number) {\n if (this.isAutoMappingEnabled) {\n this.overallCoolingCounterNumberList.splice(index, 1);\n } else {\n this.overallCoolingCounterIdArray.splice(index, 1);\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addOverallItem() {\n if (this.isAutoMappingEnabled) {\n this.overallCoolingCounterNumberList.push({ id: '', name: '' });\n } else {\n this.overallCoolingCounterIdArray.push({ id: '', name: '' });\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n removeCounterFromFlat(flatIndex: number, counterIndex: number) {\n this.flatsConfigList[flatIndex].counters.coolingCounter.splice(counterIndex, 1);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n addCounterToFlat(flatIndex: number) {\n this.flatsConfigList[flatIndex].counters.coolingCounter.push({ id: '', name: '' });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n mounted() {\n this.flatsFullAddress = initFlatsAddresses(this.flatsConfigList);\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleBack() {\n // if we are going back and we are in the automapping mode we need to convert the numbers to the variable names\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.handleDecrement();\n }\n\n handleNext() {\n if (this.isAutoMappingEnabled) {\n this.convertNumbersToVariables();\n }\n this.updateTenant();\n this.handleIncrement();\n }\n\n convertNumbersToVariables() {\n // overall part\n this.overallCoolingCounterIdArray = this.overallCoolingCounterNumberList.map((counter: any) => {\n return { id: `prgHM.lrCounter_C_C_${counter.id}`, name: counter.name };\n });\n // flats part\n this.flatsConfigList.forEach((flat: IFlatsConfig) => {\n flat.counters.coolingCounter.forEach((counter: any) => {\n counter.id = `prgHM.lrCounter_C_C_${counter.id}`;\n });\n });\n }\n\n updateTenant() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = this.flatsConfigList;\n tenantCopy.general.overallCounters.coolingCounter = this.overallCoolingCounterIdArray;\n this.updateTenantObject(tenantCopy);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cooling.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cooling.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Cooling.vue?vue&type=template&id=011405f6&scoped=true&\"\nimport script from \"./Cooling.vue?vue&type=script&lang=ts&\"\nexport * from \"./Cooling.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Cooling.vue?vue&type=style&index=0&id=011405f6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"011405f6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'TenantWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-card',{staticStyle:{\"max-width\":\"80%\"},attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-home-analytics\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('tenantWizard.subPages.SystemInformation')))])])],1),_c('v-card-text',{staticStyle:{\"margin\":\"0 auto\"}},[_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.systemInformation.tenantWithoutLynusBattery'))+\" \"),_c('v-btn-toggle',{staticClass:\"py-4 pl-3\",attrs:{\"color\":\"accent\"},model:{value:(_vm.hasLynusInverter),callback:function ($$v) {_vm.hasLynusInverter=$$v},expression:\"hasLynusInverter\"}},[_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(_vm.hasLynusInverter ? 'pointer-events: none;':''),attrs:{\"value\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]),_c('v-btn',{staticStyle:{\"width\":\"50%\"},style:(!_vm.hasLynusInverter ? 'pointer-events: none;':''),attrs:{\"value\":false}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")])],1)],1)]),_c('v-card-actions',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"color\":\"accent\",\"x-large\":\"\"},on:{\"click\":_vm.handleNext}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class SystemInformation extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('projects/project') project!: IProject;\n @Mutation('tenantWizard/setHasLynusInverter') setHasLynusInverter!: (data: boolean) => void;\n @Action('tenantWizard/handleIncrement') handleIncrement!: () => void;\n @Action('tenantWizard/handleDecrement') handleDecrement!: () => void;\n\n hasLynusInverter = false;\n\n get hasLynusInverterFromProject() {\n return this.project?.meta?.hasLynusInverter ?? false;\n }\n\n handleNext() {\n this.updateTenant();\n this.handleIncrement();\n }\n\n updateTenant() {\n this.setHasLynusInverter(this.hasLynusInverter);\n }\n\n created() {\n if (this.hasLynusInverterFromProject === true) {\n this.hasLynusInverter = true;\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemInformation.vue?vue&type=template&id=90399c58&scoped=true&\"\nimport script from \"./SystemInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemInformation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"90399c58\",\n null\n \n)\n\nexport default component.exports","import BasicBillingInformation\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/BasicBillingInformation.vue';\nimport PaymentInformation\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/PaymentInformation.vue';\nimport ExtraCosts\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/ExtraCosts.vue';\nimport FlatsInformation\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsInformation.vue';\nimport TariffSettings\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/TariffSettings.vue';\nimport WelcomePage\n from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/WelcomePage.vue';\nimport ColdWater from '@/ui/components/wizards/tenantWizard/steps/CounterInformation/ColdWater.vue';\nimport Heating from '@/ui/components/wizards/tenantWizard/steps/CounterInformation/Heating.vue';\nimport WarmWater\n from '@/ui/components/wizards/tenantWizard/steps/CounterInformation/WarmWater.vue';\nimport Electricity from '@/ui/components/wizards/tenantWizard/steps/CounterInformation/Electricity.vue';\nimport ConsumptionComparison\n from '@/ui/components/wizards/tenantWizard/steps/ConsumptionComparison/ConsumptionComparison.vue';\nimport BillingAndDocumentOutput\n from '@/ui/components/wizards/tenantWizard/steps/BillingAndDocumentOutput/BillingAndDocumentOutput.vue';\nimport FinalPage from '@/ui/components/wizards/tenantWizard/steps/Final/FinalPage.vue';\nimport AutoMapping from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/AutoMapping.vue';\nimport Cooling from '@/ui/components/wizards/tenantWizard/steps/CounterInformation/Cooling.vue';\nimport SystemInformation from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/SystemInformation.vue';\n\nconst tenantWizardImports = {\n BasicBillingInformation,\n PaymentInformation,\n ExtraCosts,\n FlatsInformation,\n TariffSettings,\n WelcomePage,\n ColdWater,\n Heating,\n WarmWater,\n Electricity,\n ConsumptionComparison,\n BillingAndDocumentOutput,\n FinalPage,\n AutoMapping,\n Cooling,\n SystemInformation,\n};\n\nexport default tenantWizardImports;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-icon',{staticClass:\"mb-8\",attrs:{\"color\":\"accent\",\"size\":\"128\"}},[_vm._v(\"mdi-check-circle\")]),_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.finalPage.text')))]),_c('div',{staticClass:\"mt-4\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.FinalPage.additionalInformation')))])]),_c('v-btn',{staticClass:\"mt-16\",attrs:{\"color\":\"accent\"},on:{\"click\":function($event){return _vm.handleNext()}}},[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.finalPage.finish'))+\" \")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Action, Getter } from 'vuex-class';\nimport { IProject } from '@/types/project.types';\nimport { cloneDeep } from 'lodash';\nimport { IIncludedSystemsTypesLogger, ILoggerInformation } from '@/types/wizards/loggerWizard.types';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class FinalLoggerPage extends Vue {\n @Getter('projects/project') project!: IProject;\n @Getter('loggerWizard/loggerInformation') getLoggerInformation !: ILoggerInformation[];\n @Getter('loggerWizard/includedSystemsTypes') includedSystemsTypes !: IIncludedSystemsTypesLogger;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n localProject: IProject | null = null;\n loggerInformationForBackend: {id: string; type: string}[] = [];\n\n created() {\n this.loggerInformationForBackend = this.getLoggerInformation.map((logger: ILoggerInformation) => {\n return {\n id: logger.id,\n type: logger.type,\n };\n });\n }\n\n async handleNext() {\n this.localProject = cloneDeep(this.project);\n\n const solarmanLoggerInfoObject = {\n battery: {\n definition: this.includedSystemsTypes.battery.definition,\n },\n generator: {\n definition: this.includedSystemsTypes.generator.definition,\n },\n };\n await this.updateProject({\n ...this.localProject,\n meta: {\n ...this.localProject.meta,\n wizard_completed_at: new Date().toISOString(),\n wasInstallationWizardCompleted: true,\n loggerInformation: this.loggerInformationForBackend,\n solarmanLoggerInfo: solarmanLoggerInfoObject,\n },\n });\n this.$router.push(`/projects/${this.$route.params.id}/favorites`);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalLoggerPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinalLoggerPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinalLoggerPage.vue?vue&type=template&id=8ca3c628&scoped=true&\"\nimport script from \"./FinalLoggerPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinalLoggerPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./FinalLoggerPage.vue?vue&type=style&index=0&id=8ca3c628&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8ca3c628\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard',\"valid\":_vm.valid && _vm.uploadButtonClicked,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.generalInformationsPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-form',{ref:\"form\",staticClass:\"general-settings-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.generalSettings.generalInformationsPage.labels.projectName'),\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.required, _vm.rules.counter, _vm.forceProjectNameChange]},model:{value:(_vm.generalInformations.name),callback:function ($$v) {_vm.$set(_vm.generalInformations, \"name\", $$v)},expression:\"generalInformations.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('installationWizard.generalSettings.generalInformationsPage.labels.projectDescription'),\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\"},model:{value:(_vm.generalInformations.projectDescription),callback:function ($$v) {_vm.$set(_vm.generalInformations, \"projectDescription\", $$v)},expression:\"generalInformations.projectDescription\"}}),_c('div',[_c('v-autocomplete',{attrs:{\"items\":_vm.placesArr,\"search-input\":_vm.searchPlaces,\"clearable\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"hide-no-data\":\"\",\"no-filter\":\"\",\"hide-selected\":\"\",\"hide-details\":\"\",\"item-text\":\"display_name\",\"item-value\":\"coordinates\",\"return-object\":\"\",\"label\":_vm.$t('uiComponents.settings.general.form.city'),\"placeholder\":\"Start typing to Search Places\"},on:{\"update:searchInput\":function($event){_vm.searchPlaces=$event},\"update:search-input\":function($event){_vm.searchPlaces=$event}},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1)],1),_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper-wizard\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field-wizard\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.general.select'),\"hide-details\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\"},on:{\"change\":_vm.resetButtonClickedVariable},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"elevation\":\"0\"},on:{\"click\":_vm.handleFileUpload}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.upload')))])]),_c('div',{staticClass:\"ml-2\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.generalSettings.generalInformationsPage.tooltipTexts.imageField'))+\" \")]},proxy:true}])})],1)],1),(!_vm.uploadButtonClicked)?_c('div',{staticStyle:{\"color\":\"orange\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadReminder'))+\" \")]):_vm._e(),_c('div',{staticClass:\"upload-description\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.general.uploadDescription'))+\" \")])])],1),_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.generalSettings.specialistInformation.title')))]),_c('v-row',[_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.companyName'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.name),callback:function ($$v) {_vm.$set(_vm.expert, \"name\", $$v)},expression:\"expert.name\"}})],1),_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.phone'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.phone),callback:function ($$v) {_vm.$set(_vm.expert, \"phone\", $$v)},expression:\"expert.phone\"}})],1),_c('v-col',{staticStyle:{\"padding-bottom\":\"0px !important\"},attrs:{\"md\":\"3\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.email'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.email),callback:function ($$v) {_vm.$set(_vm.expert, \"email\", $$v)},expression:\"expert.email\"}})],1),_c('v-col',{staticStyle:{\"padding-top\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.street'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.street),callback:function ($$v) {_vm.$set(_vm.expert, \"street\", $$v)},expression:\"expert.street\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.city'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.city),callback:function ($$v) {_vm.$set(_vm.expert, \"city\", $$v)},expression:\"expert.city\"}})],1),_c('v-col',{staticStyle:{\"padding-top\":\"0px !important\"},attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.zipCode'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.zip),callback:function ($$v) {_vm.$set(_vm.expert, \"zip\", $$v)},expression:\"expert.zip\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.general.form.expert.country'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"50\",\"rules\":[_vm.rules.counter]},model:{value:(_vm.expert.country),callback:function ($$v) {_vm.$set(_vm.expert, \"country\", $$v)},expression:\"expert.country\"}})],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport _ from 'lodash';\nimport { IProject, IProjectExpert } from '@/types/project.types';\nimport LocationService from '@/services/LocationService';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IWeatherLocation, IGetLocationWithDelay } from '@/types/app.types';\n\n@Component({\n components: {\n InfoTooltip,\n WizardContentView,\n },\n})\nexport default class GeneralInformations extends mixins(Validation) {\n @Getter('projects/project') project!: IProject;\n @Action('app/postAsset') postAsset!: (asset: {}) => Promise;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n\n generalInformations = {\n name: '',\n projectDescription: '',\n }\n expert: IProjectExpert = {\n name: '',\n street: '',\n city: '',\n zip: '',\n country: '',\n email: '',\n phone: '',\n }\n fileObject = { name: '' };\n model: IWeatherLocation | null = null;\n searchPlaces: string | null = null;\n placesArr: IWeatherLocation[] = [];\n getLocationWithDelay: IGetLocationWithDelay | null = null;\n valid = false;\n initialProjectName = '';\n uploadButtonClicked = true;\n\n get forceProjectNameChange() {\n // if installation wizard was completed, it is not required to change the project name anymore\n if (this.project.meta.loggerInformation !== undefined) return true;\n\n // if the installation wizard is done for the first time, the project name has to be changed\n if (this.generalInformations.name === this.initialProjectName) {\n return this.$t('installationWizard.generalSettings.generalInformationsPage.forceProjectNameChange');\n }\n return true;\n }\n\n @Watch('searchPlaces')\n async onSearchPlaces(val: string | null) {\n const isEqualToSaved = this.project.meta?.location?.display_name === val;\n if (val && val.length > 2 && !isEqualToSaved) {\n this.getLocationWithDelay?.(val);\n }\n }\n\n created() {\n // fetch location with 1sec delay\n this.getLocationWithDelay = _.debounce(async (place) => {\n this.placesArr = await LocationService.fetchLocations(place);\n }, 1000);\n\n this.fillProjectObject();\n if (this.project?.meta?.expert) this.fillExpertProperties();\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n fillExpertProperties() {\n this.expert = { ...(this.project?.meta as any)?.expert };\n }\n\n fillProjectObject() {\n this.generalInformations.name = this.project.name;\n this.generalInformations.projectDescription = this.project.meta.description;\n if (this.project.meta?.location) this.setLocation(this.project.meta?.location);\n this.initialProjectName = this.generalInformations.name;\n }\n\n setLocation(location: IWeatherLocation) {\n this.model = { ...location };\n this.placesArr.push({ ...location });\n }\n\n resetButtonClickedVariable() {\n this.uploadButtonClicked = false;\n }\n\n async handleFileUpload() {\n this.uploadButtonClicked = true;\n if (this.fileObject) {\n if (this.fileObject.name.lastIndexOf('.') <= 0) {\n return;\n }\n const result = await this.postAsset(this.fileObject);\n if (!result) return;\n await this.updateProject({\n ...this.project,\n ...(result && {\n meta: { ...this.project.meta,\n imageId: result,\n },\n }),\n });\n }\n }\n\n async handleNext() {\n const localProject = { ...this.project, ...{ name: this.generalInformations.name } };\n if (this.model !== null) {\n localProject.meta.location = this.model;\n localProject.meta.description = this.generalInformations.projectDescription;\n localProject.meta.expert = this.expert;\n }\n await this.updateProject(localProject);\n\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInformations.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GeneralInformations.vue?vue&type=template&id=d393098a&\"\nimport script from \"./GeneralInformations.vue?vue&type=script&lang=ts&\"\nexport * from \"./GeneralInformations.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GeneralInformations.vue?vue&type=style&index=0&id=d393098a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard',\"valid\":true,\"handle-back\":_vm.handleDecrement,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.title')))])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"wrapper\"},[_c('Permissions',{attrs:{\"isInWizard\":true},on:{\"updateRules\":_vm.handleUpdateRules}}),_c('LynusPopup',{attrs:{\"showPopup\":_vm.showPopup},on:{\"closeLynusPopup\":_vm.handleClose},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column justify-center align-center\",staticStyle:{\"height\":\"200px\"}},[_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.text'))+\" \")]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.inviteUsers.membersPage.popup.question'))+\" \")]),_c('div',{staticClass:\"pt-4\"},[_c('v-btn',{staticClass:\"mr-2 accent\",on:{\"click\":_vm.handleClose}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")]),_c('v-btn',{staticClass:\"ml-2 accent\",on:{\"click\":_vm.handleContinue}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")])],1)])]},proxy:true}])})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Permissions from '@/ui/views/Project/Settings/Permissions.vue';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport LynusPopup from '@/ui/components/components/LynusPopup.vue';\nimport { IMember } from '@/types/members.types';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { cloneDeep } from 'lodash';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { getIsMemberInRulesAsRecipient } from '@/utils/membersUtils';\n\n@Component({\n components: {\n Permissions,\n WizardContentView,\n LynusPopup,\n },\n})\nexport default class InviteUsersToProject extends Vue {\n @State('rules') rulesState!: IRulesState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('members/members') members!: IMember[];\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n\n showPopup = false;\n conModel: any = {\n actions: [],\n enabled: false,\n };\n isNotificationForSomeMembersEnabled = false\n\n get rulesList() {\n return this.rulesState.rulesList;\n }\n\n get project() {\n return this.projectsState.project;\n }\n\n handleUpdateRules(value: { someUserSelected: boolean}) {\n this.isNotificationForSomeMembersEnabled = value.someUserSelected;\n }\n\n handleContinue() {\n this.showPopup = false;\n this.handleIncrement();\n }\n\n handleNext() {\n if (this.isNotificationForSomeMembersEnabled) {\n this.handleIncrement();\n } else {\n this.showPopup = true;\n }\n }\n\n handleClose() {\n this.showPopup = false;\n }\n\n created() {\n this.conModel = cloneDeep(this.project.connectivity);\n }\n\n mounted() {\n this.isNotificationForSomeMembersEnabled = this.members.some((m) => getIsMemberInRulesAsRecipient(m, this.rulesList, this.conModel));\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InviteUserToProject.vue?vue&type=template&id=770f2668&scoped=true&\"\nimport script from \"./InviteUserToProject.vue?vue&type=script&lang=ts&\"\nexport * from \"./InviteUserToProject.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InviteUserToProject.vue?vue&type=style&index=0&id=770f2668&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"770f2668\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-card',{staticStyle:{\"max-width\":\"80%\"},attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-auto-fix\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.manualsPage.title')))])])],1),_c('v-card-text',[_c('div',{staticClass:\"py-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.LoggerManualsPage.descriptionText'))+\" \")])]),_c('v-card-actions',{staticClass:\"d-flex justify-center mt-0 pt-0\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"color\":\"accent\",\"x-large\":\"\"},on:{\"click\":function($event){return _vm.handleNext()}}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { IProject } from '@/types/project.types';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class ManualsPage extends Vue {\n @Getter('projects/project') project!: IProject;\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n\n handleNext() {\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerManualsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerManualsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoggerManualsPage.vue?vue&type=template&id=360f5ba4&\"\nimport script from \"./LoggerManualsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoggerManualsPage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard',\"valid\":_vm.isValid,\"handle-next\":_vm.handleNext,\"handle-back\":_vm.handleBack},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.title'))+\" \")])]},proxy:true},{key:\"content\",fn:function(){return [_c('v-container',{staticClass:\"mt-4\"},[_c('v-form',{ref:\"form\",model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('div',[(_vm.loggerInformation[0].type === 'string')?_c('div',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('h2',{staticClass:\"pl-3\"},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.generalSettings'))+\" \")])]),_c('v-row',{staticClass:\"my-0 py-0 px-3\"},[_c('v-col',[_c('v-checkbox',{staticClass:\"mx-4\",staticStyle:{\"margin-right\":\"0\"},attrs:{\"color\":\"accent\",\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.hasGridMeasurement')},model:{value:(_vm.hasGridMeasurement),callback:function ($$v) {_vm.hasGridMeasurement=$$v},expression:\"hasGridMeasurement\"}})],1)],1)],1):_vm._e(),(_vm.amountOfHybridLoggers > 0 && _vm.amountOfStringLoggers > 0)?_c('v-row',[_c('v-col',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineHardware.addStringLoggersPage.userInformation'))+\" \")])],1):_vm._e(),_vm._l((_vm.loggerInformation),function(logger,index){return _c('v-row',{key:index,staticClass:\"d-flex my-0 py-0 px-3 justify-center\"},[_c('v-col',{staticClass:\"pb-0 mb-0 mt-0 pt-0\",attrs:{\"cols\":\"12\"}},[(index === 0)?_c('h2',[_vm._v(\"Master \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.inverter')))]):_c('h2',[_vm._v(\"Slave \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.inverter'))+\" \"+_vm._s(index))])]),_c('v-col',{staticClass:\"pb-0 mb-0\",attrs:{\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"pt-4\"},[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.logger'))+\" \"+_vm._s(index + 1))]),_c('v-text-field',{staticClass:\"ml-4 mr-2\",staticStyle:{\"max-width\":\"40%\"},attrs:{\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.loggerId'),\"rules\":[_vm.rules.required, _vm.duplicateLoggerIds, _vm.rules.noSpace],\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.loggerInformation[index].id),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"id\", $$v)},expression:\"loggerInformation[index].id\"}}),_c('v-select',{staticStyle:{\"max-width\":\"40%\"},attrs:{\"items\":index === 0 ? _vm.selectableLoggerTypesMaster: _vm.selectableLoggerTypesSlave,\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.selectInverterType'),\"outlined\":\"\",\"hide-selected\":\"\",\"clearable\":\"\",\"rules\":[_vm.rules.required],\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\"},on:{\"input\":function($event){return _vm.handleLoggerTypeChange(index)},\"click:clear\":function($event){_vm.loggerInformation[index].type = ''}},model:{value:(_vm.loggerInformation[index].type),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"type\", $$v)},expression:\"loggerInformation[index].type\"}}),_c('v-btn',{staticClass:\"mt-2 ml-2\",style:({ visibility: index === 0 ? 'hidden' : 'visible' }),attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeItem(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)]),(_vm.loggerInformation[index].type === 'hybrid')?_c('v-col',{staticClass:\"pt-0 mt-0\"},[_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"ml-4\",staticStyle:{\"margin-right\":\"0\"},attrs:{\"color\":\"accent\",\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.hasPV')},model:{value:(_vm.loggerInformation[index].hasPv),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"hasPv\", $$v)},expression:\"loggerInformation[index].hasPv\"}}),_c('v-checkbox',{staticClass:\"mx-4\",staticStyle:{\"margin-right\":\"0\"},attrs:{\"color\":\"accent\",\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.hasBattery')},model:{value:(_vm.loggerInformation[index].hasBattery),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"hasBattery\", $$v)},expression:\"loggerInformation[index].hasBattery\"}}),_c('v-checkbox',{staticStyle:{\"margin-right\":\"0\"},attrs:{\"color\":\"accent\",\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.otherProducerOptions'),\"disabled\":index !== 0 && (_vm.loggerInformation[0].selectedProducer === '' || _vm.loggerInformation[0].selectedProducer === 'nothingConnected' || _vm.loggerInformation[0].selectedProducer === undefined)},on:{\"change\":function($event){return _vm.handleShowProducerChange(index)}},model:{value:(_vm.loggerInformation[index].showProducer),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"showProducer\", $$v)},expression:\"loggerInformation[index].showProducer\"}}),(_vm.loggerInformation[index].showProducer)?_c('v-select',{staticClass:\"ml-4\",staticStyle:{\"max-width\":\"400px\"},attrs:{\"items\":index === 0 ? _vm.producerOptions: _vm.producerOptionsSlave,\"label\":_vm.$t('loggerWizard.pages.DefineLoggerIds.selectProducer'),\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\",\"clearable\":\"\",\"hide-details\":\"\",\"disabled\":index !== 0 && (_vm.loggerInformation[0].selectedProducer === '' || _vm.loggerInformation[0].selectedProducer === 'nothingConnected' || _vm.loggerInformation[0].selectedProducer === undefined)},on:{\"input\":function($event){return _vm.handleProducerChange(index)},\"click:clear\":function($event){_vm.loggerInformation[index].selectedProducer = ''}},model:{value:(_vm.loggerInformation[index].selectedProducer),callback:function ($$v) {_vm.$set(_vm.loggerInformation[index], \"selectedProducer\", $$v)},expression:\"loggerInformation[index].selectedProducer\"}}):_vm._e(),(index !== 0 && (_vm.loggerInformation[0].selectedProducer === '' || _vm.loggerInformation[0].selectedProducer === 'nothingConnected' || _vm.loggerInformation[0].selectedProducer === undefined))?_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.selectMasterProducerFirst'))+\" \")]},proxy:true}],null,true)})],1):_vm._e()],1)]):_vm._e(),_c('v-col',{staticClass:\"pb-0 mb-5\",attrs:{\"cols\":\"12\"}},[_c('v-divider',{attrs:{\"color\":\"blue\"}})],1)],1)}),_c('v-btn',{staticClass:\"mt-4\",attrs:{\"disabled\":_vm.loggerInformation.length >= _vm.totalLoggerLimit,\"color\":\"accent\"},on:{\"click\":function($event){return _vm.addLogger()}}},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.pages.DefineLoggerIds.addLogger'))+\" \")])],2)])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins } from 'vue-property-decorator';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { loggerLimitByType, solarmanLoggerLimits } from '@/ui/components/wizards/loggerWizard/wizardSettings/wizardLimits';\nimport { IDevice } from '@/types/devices.types';\nimport { ILoggerInformation } from '@/types/wizards/loggerWizard.types';\nimport { NavigationDirection } from '@/types/wizards/installationWizard.types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { TranslateResult } from 'vue-i18n';\n\n@Component({\n components: {\n WizardContentView,\n InfoTooltip,\n },\n})\nexport default class DefineLoggerId extends Mixins(Validation) {\n @State('projects') projectsState!: IProjectsState;\n @Getter('loggerWizard/loggerInformation') getLoggerInformation !: ILoggerInformation[];\n @Getter('devices/allDevices') allDevices !: IDevice[];\n @Getter('loggerWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Getter('loggerWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Mutation('loggerWizard/setLoggerInformation') setLoggerInformation!: (loggerInformation: ILoggerInformation[]) => Promise;\n @Mutation('loggerWizard/setHasGridMeasurement') setHasGridMeasurement!: (hasGrid: boolean) => Promise;\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n\n isValid = false;\n loggerInformation = [{ id: '', type: '', hasPv: true, hasBattery: true, selectedProducer: 'nothingConnected', showProducer: false }];\n hasGridMeasurement = true;\n\n /**\n * Checks if there are duplicate logger ids\n */\n get duplicateLoggerIds() {\n const array = this.loggerInformation.map((logger: ILoggerInformation) => logger.id);\n const count: Record = {};\n // Iterate over each element in the array\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n\n // If the value is already in the count object, it's a duplicate\n if (count[value] && value !== '') {\n return this.$t('loggerWizard.pages.DefineLoggerIds.duplicateLoggerIdNotAllowed', { value });\n }\n\n // Otherwise, add the value to the count object\n count[value] = 1;\n }\n return true;\n }\n\n get amountOfHybridLoggers() {\n return this.loggerInformation.filter((value: ILoggerInformation) => value.type === 'hybrid').length;\n }\n\n get amountOfStringLoggers() {\n return this.loggerInformation.filter((value: ILoggerInformation) => value.type === 'string').length;\n }\n\n /**\n * Returns the total logger limit based on logger type of master\n */\n get totalLoggerLimit() {\n if (this.loggerInformation[0].type === 'string') {\n return 20; // if master is string, then limit is 20 string loggers\n } else {\n return 30; // if master is hybrid, then limit is 30 in total (10 hybrid + 20 string)\n }\n }\n\n get loggerName() {\n return {\n string: this.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.stringInverter'),\n hybrid: this.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.hybridInverter'),\n };\n }\n\n /**\n * Returns the selectable logger types\n * Also checks if the limit of loggers is reached so that the logger type cant be selected anymore\n * Master can allways select all logger types\n */\n get selectableLoggerTypesMaster() {\n return [\n {\n state: this.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.stringInverter'),\n abbr: 'string',\n disabled: this.amountOfStringLoggers >= loggerLimitByType.string,\n },\n {\n state: this.$t('loggerWizard.pages.DefineLoggerIds.selectableLoggerTypes.hybridInverter'),\n abbr: 'hybrid',\n disabled: this.amountOfHybridLoggers >= loggerLimitByType.hybrid,\n },\n ];\n }\n\n /**\n * Returns the selectable logger types\n * Also checks if the limit of loggers is reached so that the logger type cant be selected anymore\n * Slave can only select logger type string if master is also string\n */\n get selectableLoggerTypesSlave() {\n if (this.loggerInformation[0].type === '') {\n return this.selectableLoggerTypesMaster;\n } else {\n if (this.loggerInformation[0].type === 'string') {\n return this.selectableLoggerTypesMaster.filter((loggerType: { state: TranslateResult; abbr: string }) => loggerType.abbr === 'string');\n }\n }\n return this.selectableLoggerTypesMaster;\n }\n\n /**\n * Returns the selectable producer options\n */\n get producerOptions() {\n return [\n { state: this.$t('loggerWizard.pages.DefineLoggerIds.producerOptions.generator'), abbr: 'generator' },\n { state: this.$t('loggerWizard.pages.DefineLoggerIds.producerOptions.acPv'), abbr: 'acpv' },\n { state: this.$t('loggerWizard.pages.DefineLoggerIds.producerOptions.nothingConnected'), abbr: 'nothingConnected' },\n ];\n }\n\n /**\n * Returns the selectable producer options for slave loggers\n * If master logger is generator, then slave logger cant be acpv and vice versa\n */\n get producerOptionsSlave() {\n // filter out options based on selected producer of first hybrid logger\n if (this.loggerInformation[0].selectedProducer === 'generator') {\n return this.producerOptions.filter((option: { state: TranslateResult; abbr: string }) => option.abbr !== 'acpv');\n }\n if (this.loggerInformation[0].selectedProducer === 'acpv') {\n return this.producerOptions.filter((option: { state: TranslateResult; abbr: string }) => option.abbr !== 'generator');\n }\n return this.producerOptions;\n }\n\n /**\n * Returns the limit of loggers based on logger type\n */\n get limitOfLoggers() {\n return {\n string: loggerLimitByType.string,\n hybrid: loggerLimitByType.hybrid,\n };\n }\n\n get defaultLoggerObject() {\n return { id: '', type: '', hasPv: true, hasBattery: true, selectedProducer: 'nothingConnected', showProducer: false };\n }\n\n get project() {\n return this.projectsState.project;\n }\n\n removeItem(index: number) {\n this.loggerInformation.splice(index, 1);\n }\n\n addLogger() {\n // add new logger object to array\n this.loggerInformation.push({ ...this.defaultLoggerObject });\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleLoggerTypeChange(index: number) {\n if (this.loggerInformation[index].type === 'string') {\n // if logger type is changed to string, then set hasPv to true and hasBattery to false\n this.loggerInformation[index].hasPv = true;\n this.loggerInformation[index].hasBattery = false;\n // if logger type is changed to string, then set selectedProducer to nothing connected\n this.loggerInformation[index].selectedProducer = 'nothingConnected';\n this.loggerInformation[index].showProducer = false;\n } else {\n // if logger type is changed to hybrid, then set hasPv and hasBattery to true\n this.loggerInformation[index].hasPv = true;\n this.loggerInformation[index].hasBattery = true;\n }\n\n // if master is changed from hybrid to string, then reset all slave loggers that are hybrid\n if (index === 0 && this.loggerInformation[0].type === 'string') {\n this.loggerInformation.forEach((logger: ILoggerInformation, loggerIndex: number) => {\n if (loggerIndex !== 0 && logger.type === 'hybrid') {\n const object = {\n ...this.defaultLoggerObject,\n hasBattery: false,\n id: logger.id,\n type: '',\n };\n this.loggerInformation[loggerIndex] = object;\n }\n });\n } else {\n // if master is changed from string to hybrid, then set grid measurement to true\n this.hasGridMeasurement = true;\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n handleProducerChange(index: number) {\n // if master logger is changed, then reset all slave loggers\n if (index === 0) {\n this.loggerInformation.forEach((logger: ILoggerInformation, loggerIndex: number) => {\n if (loggerIndex !== 0) {\n if (this.loggerInformation[0].selectedProducer === undefined) {\n // if selected producer is undefined, then set it to nothing connected and also hide the producer selection\n this.loggerInformation[loggerIndex].selectedProducer = 'nothingConnected';\n this.loggerInformation[loggerIndex].showProducer = false;\n } else {\n this.loggerInformation[loggerIndex].selectedProducer = 'nothingConnected';\n }\n }\n });\n }\n }\n\n handleShowProducerChange(index: number) {\n this.loggerInformation[index].selectedProducer = '';\n // if master logger is changed, then reset all slave loggers\n if (index === 0) {\n this.loggerInformation.forEach((logger: ILoggerInformation, loggerIndex: number) => {\n if (loggerIndex !== 0) {\n this.loggerInformation[loggerIndex].showProducer = false;\n this.loggerInformation[loggerIndex].selectedProducer = 'nothingConnected';\n }\n });\n }\n }\n\n async handleNext() {\n // update logger limits (general will currently allways be 1 house 1 grid)\n const limitKeys = ['pv', 'battery', 'generator'];\n limitKeys.forEach((key: string) => {\n solarmanLoggerLimits[key] = this.loggerInformation.length;\n });\n\n this.setLoggerInformation(this.loggerInformation);\n this.setHasGridMeasurement(this.loggerInformation[0].type === 'string' ? this.hasGridMeasurement : true);\n this.handleIncrement();\n }\n\n handleBack() {\n this.handleDecrement();\n }\n\n created() {\n // if none of the two conditions are true, then we dont need to initialize anything\n if (this.project.meta.loggerInformation && this.navigationDirection === NavigationDirection.forward) {\n // case when user has allready finished setup assistant once\n this.loadDataOnRevsitOfWizard();\n } else if (this.getLoggerInformation.length > 0) {\n // case when user goes back to this page from next page\n this.loggerInformation = this.getLoggerInformation;\n }\n }\n\n loadDataOnRevsitOfWizard() {\n this.loggerInformation = [];\n // set logger types and\n // fill array with logger objects that currently only contain logger id\n this.project.meta.loggerInformation.forEach((logger: {id: string; type: string}) => {\n this.loggerInformation.push({ id: logger.id, type: logger.type, hasPv: false, hasBattery: false, selectedProducer: '', showProducer: false });\n });\n\n // fill array with logger objects based on energy view\n // so every logger object contains information about pv, acpv, battery, generator\n const keysToCheck = ['pv', 'battery', 'generator', 'grid'];\n const currentEnergyView: IDevice | undefined = this.allDevices.find((device: IDevice) => device.id === this.energyViewDevice.id);\n keysToCheck.forEach((systemKey: string) => {\n const systemMapping = currentEnergyView?.data.meta.controllerMappings[systemKey].components;\n switch (systemKey) {\n case 'grid': {\n // if systemMapping.count is 0, then there is no grid measurement\n this.hasGridMeasurement = Object.keys(systemMapping).length > 0;\n break;\n }\n case 'battery': {\n // go through all components and check if some logger has a battery\n Object.values(systemMapping).forEach((component: any) => {\n const loggerName = this.getLoggerNameFromVariable(component.power);\n this.updateLoggerInformation(loggerName, 'battery');\n });\n break;\n }\n case 'pv': {\n // go through all components and check if some logger has a pv or acpv\n Object.values(systemMapping).forEach((component: any) => {\n const loggerName = this.getLoggerNameFromVariable(component.power);\n const pvType = component.power.split('.')[2];\n if (pvType === 'PV') {\n this.updateLoggerInformation(loggerName, 'pv');\n } else {\n this.updateLoggerInformation(loggerName, 'acpv');\n }\n });\n break;\n }\n case 'generator': {\n // go through all components and check if some logger has a generator\n Object.values(systemMapping).forEach((component: any) => {\n const loggerName = this.getLoggerNameFromVariable(component.power);\n this.updateLoggerInformation(loggerName, 'generator');\n });\n break;\n }\n }\n });\n\n // fill up logger information with nothing connected info (selectedProducer)\n this.loggerInformation.forEach((loggerInfo: ILoggerInformation, index: number) => {\n if (loggerInfo.selectedProducer === '' || loggerInfo.selectedProducer === 'nothingConnected') {\n this.loggerInformation[index].selectedProducer = 'nothingConnected';\n }\n });\n }\n\n /**\n * Updates different logger information based on the system key\n */\n updateLoggerInformation(loggerId: string, systemKey: string) {\n const loggerIndex = this.loggerInformation.findIndex((logger: ILoggerInformation) => logger.id === loggerId);\n switch (systemKey) {\n case 'battery': {\n this.loggerInformation[loggerIndex].hasBattery = true;\n break;\n }\n case 'pv': {\n this.loggerInformation[loggerIndex].hasPv = true;\n break;\n }\n case 'generator': {\n this.loggerInformation[loggerIndex].selectedProducer = 'generator';\n this.loggerInformation[loggerIndex].showProducer = true;\n break;\n }\n case 'acpv': {\n this.loggerInformation[loggerIndex].selectedProducer = 'acpv';\n this.loggerInformation[loggerIndex].showProducer = true;\n break;\n }\n }\n }\n\n /**\n * Returns the logger name from a variable\n * Variable example: \"solarman.${loggerId}.Battery.power}\"\n */\n getLoggerNameFromVariable(variable: string) {\n const strings = variable.split('.');\n return strings[1];\n }\n\n mounted() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineLoggerIds.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineLoggerIds.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefineLoggerIds.vue?vue&type=template&id=5ac70cb0&scoped=true&\"\nimport script from \"./DefineLoggerIds.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefineLoggerIds.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DefineLoggerIds.vue?vue&type=style&index=0&id=5ac70cb0&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5ac70cb0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard'},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticClass:\"fill-height d-flex flex-column justify-center align-center\"},[_c('v-card',{attrs:{\"elevation\":\"0\"}},[_c('v-toolbar',{attrs:{\"elevation\":\"0\"}},[_c('v-icon',{staticClass:\"mr-6\",attrs:{\"color\":\"accent\",\"size\":\"64\"}},[_vm._v(\"mdi-auto-fix\")]),_c('v-toolbar-title',[_c('h2',[_vm._v(_vm._s(_vm.$t('installationWizard.defineComponents.informationPage.welcome')))])])],1),_c('v-card-text',[_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.LoggerInformation.textParts.1'))+\": \")]),_c('ul',[_c('li',[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.LoggerInformation.listings.1')))]),_c('li',[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.LoggerInformation.listings.2')))])]),_c('div',{staticClass:\"mt-4\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('loggerWizard.pages.LoggerInformation.additionalInformation.loggerProjectInfo')))])])])]),_c('v-card-actions',{staticClass:\"d-flex justify-center\"},[_c('v-btn',{staticClass:\"pl-5\",attrs:{\"color\":\"accent\",\"x-large\":\"\",\"disabled\":_vm.considerProjectStatus && !_vm.isProjectOnline},on:{\"click\":_vm.handleStart}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.start'))+\" \")]),_c('v-icon',{attrs:{\"left\":\"\",\"size\":\"26\"}},[_vm._v(\" mdi-chevron-right \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport WizardContentView\n from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n WizardContentView,\n },\n})\nexport default class LoggerInformation extends Vue {\n @Getter('mqttClient/isProjectOnline') isProjectOnline!: boolean;\n @Getter('loggerWizard/considerProjectStatus') considerProjectStatus !: boolean;\n @Getter('projects/project') project!: IProject;\n @Action('loggerWizard/initDevices') initDevices!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n\n handleStart() {\n // initialise EnergyView and EMS device object in store\n this.initDevices();\n this.handleIncrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoggerInformation.vue?vue&type=template&id=3fe0c272&scoped=true&\"\nimport script from \"./LoggerInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoggerInformation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoggerInformation.vue?vue&type=style&index=0&id=3fe0c272&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fe0c272\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('WizardContentView',{attrs:{\"wizardName\":'loggerWizard',\"valid\":_vm.valid,\"handle-back\":_vm.handleBack,\"handle-next\":_vm.handleNext},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(_vm.dataLoaded)?_c('h1',[_vm._v(\" \"+_vm._s(_vm.$t('installationWizard.defineComponents.componentsPage.title'))+\" \")]):_vm._e()]},proxy:true},{key:\"content\",fn:function(){return [(_vm.dataLoaded)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},_vm._l((_vm.systems),function(system,index){return _c('div',{key:'system'+index,staticClass:\"py-0 my-0\"},[(_vm.localIncludedSystemsTypes[system.includedSystemsTypesKey].isSelected)?_c('v-col',{staticClass:\"py-0\",attrs:{\"sm\":\"12\"}},[_c('v-row',{staticClass:\"d-flex align-center\"},[(system.includedSystemsTypesKey === 'battery' || system.includedSystemsTypesKey === 'generator')?_c('v-col',{staticClass:\"d-flex align-center justify-space-between\",attrs:{\"sm\":\"6\",\"lg\":\"3\"}},[_c('h2',[_vm._v(_vm._s(_vm.$t(`loggerWizard.pages.LoggerComponentsPage.systemTitles.${system.includedSystemsTypesKey}`)))])]):_vm._e()],1)],1):_vm._e(),(_vm.localIncludedSystemsTypes[system.includedSystemsTypesKey].isSelected)?_c('div',{staticStyle:{\"width\":\"100%\"}},[(system.includedSystemsTypesKey === 'battery')?_c('div',{staticStyle:{\"width\":\"100%\"}},_vm._l((_vm.localIncludedSystemsTypes.battery.definition),function(battery,index){return _c('v-row',{key:'battery'+index,staticClass:\"py-0 px-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"2\",\"md\":\"3\",\"sm\":\"6\"}},[_c('div',{staticStyle:{\"overflow\":\"hidden\"}},[_c('h3',{staticClass:\"pt-3\"},[_vm._v(\" \"+_vm._s(battery.loggerName)+\" \")])])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"value\":battery.systemType,\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.selectBatterySystem'),\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"disabled\":\"\",\"rules\":[_vm.rules.notEmptyString]}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-select',{attrs:{\"value\":battery.batteryType,\"items\":Object.values(_vm.localbatteryOptions),\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.selectBatteryType'),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required]},on:{\"change\":function($event){return _vm.handleBatteryChange(index, 'batteryType', $event)}}})],1),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\"}},[(battery.batteryType !== '')?_c('v-select',{attrs:{\"value\":battery.batteryCapacity,\"items\":_vm.getBatteryItems(battery),\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.battery.labels.batteryCapacity'),\"color\":\"accent\",\"rules\":[_vm.rules.notEmptyString, _vm.rules.required]},on:{\"change\":function($event){return _vm.handleBatteryChange(index, 'batteryCapacity', $event)}}}):_vm._e()],1)],1)}),1):_vm._e(),(system.includedSystemsTypesKey === 'generator')?_c('div',_vm._l((_vm.localIncludedSystemsTypes.generator.definition),function(generator,index){return _c('v-row',{key:'generator'+index,staticClass:\"py-0 px-4\"},[_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"2\",\"md\":\"3\",\"sm\":\"6\"}},[_c('div',{staticStyle:{\"overflow\":\"hidden\"}},[_c('h3',{staticClass:\"mt-3\"},[_vm._v(\" \"+_vm._s(generator.loggerName))])])]),_c('v-col',{staticClass:\"py-0\",attrs:{\"cols\":\"12\",\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"item-value\":\"value\",\"item-text\":\"name\",\"hide-selected\":\"\",\"outlined\":\"\",\"min\":0,\"type\":\"number\",\"suffix\":\"W\",\"label\":_vm.$t('installationWizard.defineComponents.componentsPage.systems.generator.labels.power'),\"color\":\"accent\",\"rules\":[_vm.rules.onlyNumbersRule, _vm.rules.required]},model:{value:(_vm.localIncludedSystemsTypes.generator.definition[index].power),callback:function ($$v) {_vm.$set(_vm.localIncludedSystemsTypes.generator.definition[index], \"power\", _vm._n($$v))},expression:\"localIncludedSystemsTypes.generator.definition[index].power\"}})],1)],1)}),1):_vm._e()]):_vm._e(),(system.includedSystemsTypesKey === 'battery' || system.includedSystemsTypesKey === 'generator')?_c('v-col',{staticClass:\"pb-0 pt-4\",attrs:{\"cols\":\"12\"}},[(_vm.localIncludedSystemsTypes[system.includedSystemsTypesKey].isSelected)?_c('v-divider',{attrs:{\"color\":\"blue\"}}):_vm._e()],1):_vm._e()],1)}),0)],1):_vm._e(),(_vm.dataLoaded)?_c('div',{staticClass:\"d-flex justify-center flex-col\"},[_c('div',[_c('EnergyVisualisationPreview',{key:_vm.rerenderKey,staticClass:\"pb-8\",attrs:{\"deviceData\":_vm.energyViewForPreview}})],1)]):_c('div',{staticStyle:{\"height\":\"100%\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('CircleSpinner',{staticClass:\"d-flex justify-center\",attrs:{\"color\":\"accent\",\"size\":\"50\"}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// This File will contain all default Mappings for every Device Type (EnergyView)\n// This Mappings can be used for the Logger Wizard only !!\n\n// EnergyView Functions\nexport function pvMappingEnergyView(loggerName: string, isAcPv: boolean, index: number) {\n return {\n power: !isAcPv ? `solarman.${loggerName}.PV.power` : `solarman.${loggerName}.Gen.power`,\n error: '',\n title: !isAcPv ? `PV DC Total Inverter ${index + 1}` : `PV AC Total Inverter ${index + 1}`,\n energy_counter: !isAcPv ? `solarman.${loggerName}.PV.counter` : `solarman.${loggerName}.Gen.counter`,\n };\n}\n\nexport function generatorMappingEnergyView(loggerName: string, index: number) {\n return {\n energy_counter: `solarman.${loggerName}.Gen.counter`,\n error: '',\n power: `solarman.${loggerName}.Gen.power`,\n title: `Generator Inverter ${index + 1}`,\n };\n}\n\nexport function batteryMappingEnergyView(loggerName: string, index: number) {\n return {\n energy_counter: `solarman.${loggerName}.Battery.reverseCounter`,\n reverse_energy_counter: `solarman.${loggerName}.Battery.counter`,\n error: '',\n power: `solarman.${loggerName}.Battery.power`,\n soc: `solarman.${loggerName}.Battery.soc`,\n title: `Batterie Inverter ${index + 1}`,\n };\n}\n\nexport function gridMappingEnergyView() {\n return {\n energy_counter: 'solarman.Grid.reverseCounter', // only hybrid add .hybrid, if only string add .string, for mixed sytems .string\n reverse_energy_counter: 'solarman.Grid.counter', // only hybrid add .hybrid, if only string add .string, for mixed sytems .string\n error: '',\n power: 'solarman.Grid.power', // only hybrid add .hybrid, if only string add .string, for mixed sytems .hybrid\n title: 'Netz',\n is_on_grid: 'solarman.Grid.isOnGrid',\n };\n}\n\nexport function houseMappingEnergyView() {\n return {\n energy_counter: 'solarman.House.counter', // only hybrid add .hybrid, if only string add .string, for mixed sytems .string\n error: '',\n power: 'solarman.House.power', // only hybrid add .hybrid, if only string add .string, for mixed sytems .hybrid\n title: 'Haus',\n };\n}\n","\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport WizardContentView from '@/ui/components/wizards/baseComponents/WizardContentView.vue';\nimport EnergyVisualisationPreview\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/EnergyVisualisationPreview.vue';\nimport {\n allEnergyCircleTypes,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport { cloneDeep } from 'lodash';\nimport BatteryComponentsSettings\n from '@/ui/components/wizards/installationWizard/steps/defineComponents/singleSystems/BatteryComponentSettings.vue';\nimport { IProject } from '@/types/project.types';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { IDevice } from '@/types/devices.types';\nimport {\n IIncludedSystemsBatteryDefinition,\n NavigationDirection,\n} from '@/types/wizards/installationWizard.types';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport { IIncludedSystemsTypesLogger, ILoggerInformation, ILoggerBatteryDefinition, ILoggerPvDefinition, ILoggerAcPvDefinition, ILoggerGeneratorDefinition } from '@/types/wizards/loggerWizard.types';\nimport { IloggerWizardState } from '@/store/modules/loggerWizard/types';\nimport { plcVersionDate } from '@/utils/versionManagementUtils';\nimport { batteryCapacity, LoggerType, batteryOptions } from '../../wizardSettings/systemTypes';\nimport { gridMappingEnergyView, houseMappingEnergyView, pvMappingEnergyView, batteryMappingEnergyView, generatorMappingEnergyView } from '../../wizardSettings/defaultMappings';\n\n@Component({\n components: {\n CircleSpinner,\n InfoTooltip,\n EnergyVisualisationPreview,\n WizardContentView,\n BatteryComponentsSettings,\n },\n})\nexport default class LoggerComponentsPage extends mixins(Validation) {\n @State('loggerWizard') wizardState!: IloggerWizardState;\n @Getter('projects/batterySystemType') batterySystemType!: LoggerType | undefined;\n @Getter('loggerWizard/loggerInformation') getLoggerInformation !: ILoggerInformation[];\n @Getter('loggerWizard/hasGridMeasurement') hasGridMeasurement!: boolean;\n @Getter('loggerWizard/emsDevice') emsDevice!: IDevice;\n @Getter('projects/project') project!: IProject;\n @Getter('loggerWizard/producerOptionsEnabled') producerOptionsEnabled!: boolean;\n @Getter('loggerWizard/consumerOptionsEnabled') consumerOptionsEnabled!: boolean;\n @Getter('loggerWizard/emsLimits') emsLimits!: Record;\n @Getter('loggerWizard/wasComponentsPageDone') wasComponentsPageDone!: boolean;\n @Getter('loggerWizard/navigationDirection') navigationDirection!: NavigationDirection;\n @Getter('loggerWizard/wasLoggerWizardCompleted') wasLoggerWizardCompleted!: boolean;\n @Getter('loggerWizard/energyViewDevice') energyViewDevice!: IDevice;\n @Mutation('loggerWizard/setWasComponentsPageDone') setWasComponentsPageDone!: () => void;\n @Mutation('loggerWizard/updateEnergyViewDeviceData') updateEnergyViewDeviceData!: (payload: Partial) => void;\n @Mutation('loggerWizard/setIncludedSystemsTypes') setIncludedSystemsTypes!: (payload: IIncludedSystemsTypesLogger) => void;\n @Action('loggerWizard/handleIncrement') handleIncrement!: () => void;\n @Action('loggerWizard/handleDecrement') handleDecrement!: () => void;\n @Action('devices/updateDevice') updateDevice!: (data: {device: IDevice; skipReport: boolean}) => Promise;\n\n localbatteryOptions = batteryOptions;\n localBatteryCapacity: any = batteryCapacity;\n doesHover = false;\n valid = false;\n rerenderKey = 0;\n systems: any = {};\n dataLoaded = false;\n localIncludedSystemsTypes: IIncludedSystemsTypesLogger = {\n battery: {\n isSelected: false,\n count: 0,\n definition: [],\n systems: [],\n },\n pv: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n generator: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n acPV: {\n isSelected: false,\n count: 0,\n definition: [],\n },\n };\n\n get generatorPreviewInfo() {\n return { state: this.localIncludedSystemsTypes.generator.isSelected, count: this.localIncludedSystemsTypes.generator.definition.length };\n }\n /**\n * returns the Energy View device based on the selected systems inside the wizard\n * for pv systems it will also add the ac pv system if its selected and add it to the pv count\n */\n get energyViewForPreview() {\n const deviceObject = cloneDeep(this.energyViewDevice);\n // if grid is selected we add it to the mappings so it will be shown inside the preview\n deviceObject.data.meta.controllerMappings.grid.count = this.hasGridMeasurement ? 1 : 0;\n // if generator is selected we add it to the mappings so it will be shown inside the preview\n deviceObject.data.meta.controllerMappings.generator.count = this.generatorPreviewInfo.state ? this.generatorPreviewInfo.count : 0;\n // contains count of all pv systems (pv + acpv)\n const pvCount = this.localIncludedSystemsTypes.pv.definition.length + this.localIncludedSystemsTypes.acPV.definition.length;\n deviceObject.data.meta.controllerMappings.pv.count = pvCount;\n // if battery is selected we add it to the mappings so it will be shown inside the preview\n deviceObject.data.meta.controllerMappings.battery.count = this.localIncludedSystemsTypes.battery.definition.length;\n return deviceObject;\n }\n /**\n * Returns the logger overall type based on the selected systems\n * if all selected systems are string the overall type will be string\n * if all selected systems are hybrid the overall type will be hybrid\n * if the selected systems are mixed the overall type will be mixed\n */\n get loggerOverallType() {\n if (this.getLoggerInformation.every((logger: ILoggerInformation) => logger.type === 'hybrid')) {\n return 'hybrid';\n }\n if (this.getLoggerInformation.every((logger: ILoggerInformation) => logger.type === 'string')) {\n return 'string';\n }\n return 'mixed';\n }\n get includedSystemsTypes() {\n return this.wizardState.includedSystemsTypes;\n }\n get projectBatteryType() {\n // contains type of system that's selected inside the project settings\n const { batterySystemType } = this.project?.meta?.controller;\n return batterySystemType === undefined ? '' : batterySystemType;\n }\n\n /**\n * Returns Battery items filtered by System Type and availableFrom date\n */\n getBatteryItems(system: IIncludedSystemsBatteryDefinition) {\n if (!system.systemType) return [];\n const batteryCapacityItems = this.getBatteryCapacityItems(system);\n return batteryCapacityItems.filter((capacityElement: { name: string; value: string; availableFrom: Date }) => capacityElement.availableFrom.getTime() < plcVersionDate(this.project).getTime());\n }\n batteryItemValue(system: IIncludedSystemsBatteryDefinition) {\n return this.getBatteryItems(system).map((capacityElement: { name: string; value: string; availableFrom: Date }) => capacityElement.value);\n }\n getBatteryCapacityItems(system: IIncludedSystemsBatteryDefinition) {\n return system.batteryType\n ? this.localBatteryCapacity[system.systemType][system.batteryType]\n : [];\n }\n /**\n * Updates the battery definition based on user input\n * @param index index of the battery definition\n * @param key key of the battery definition\n */\n handleBatteryChange(index: number, key: string, value: string) {\n this.localIncludedSystemsTypes.battery.definition[index][key as keyof ILoggerBatteryDefinition] = value;\n // needed to so changes are detected\n this.localIncludedSystemsTypes = cloneDeep(this.localIncludedSystemsTypes);\n // trigger validation\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n handleRerender() {\n this.rerenderKey++;\n }\n validate() {\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n\n /**\n * Initializes the systems object with the min and max values and the includedSystemsTypesKey\n * Each system that is added here will be shown inside the template\n */\n initSystemRow() {\n this.systems = {\n pv: {\n min: 0,\n max: this.emsLimits.pv,\n includedSystemsTypesKey: 'pv',\n },\n battery: {\n min: 1,\n max: this.emsLimits.battery,\n includedSystemsTypesKey: 'battery',\n },\n generator: {\n min: 0,\n max: this.emsLimits.generator,\n includedSystemsTypesKey: 'generator',\n },\n acPV: {\n min: 0,\n max: this.emsLimits.acPV,\n includedSystemsTypesKey: 'acPV',\n },\n };\n }\n\n /**\n * Fills the included systems types with the selected systems from the previous page\n */\n fillIncludedSystemTypes() {\n // if component page was already done we dont need to fill the included systems types because they are already filled\n if (this.navigationDirection === NavigationDirection.backward) return;\n this.getLoggerInformation.forEach((logger: { id: string; hasPv: boolean; hasBattery: boolean; selectedProducer: string }) => {\n // if logger has PV selected we add it to the included systems types\n if (logger.hasPv) {\n this.localIncludedSystemsTypes.pv.isSelected = true;\n this.localIncludedSystemsTypes.pv.count++;\n this.localIncludedSystemsTypes.pv.definition.push({\n loggerName: logger.id,\n isSelected: true,\n });\n }\n // if logger has battery selected we add it to the included systems types\n if (logger.hasBattery) {\n this.localIncludedSystemsTypes.battery.isSelected = true;\n this.localIncludedSystemsTypes.battery.count++;\n this.localIncludedSystemsTypes.battery.definition.push({\n loggerName: logger.id,\n systemType: this.projectBatteryType,\n batteryType: '',\n batteryCapacity: '',\n });\n }\n // if logger has generator selected we add it to the included systems types\n if (logger.selectedProducer !== '') {\n if (logger.selectedProducer === 'generator') {\n this.localIncludedSystemsTypes.generator.isSelected = true;\n this.localIncludedSystemsTypes.generator.count++;\n this.localIncludedSystemsTypes.generator.definition.push({\n loggerName: logger.id,\n power: 0,\n });\n }\n // if logger has acPV selected we add it to the included systems types\n if (logger.selectedProducer === 'acpv') {\n this.localIncludedSystemsTypes.acPV.isSelected = true;\n this.localIncludedSystemsTypes.acPV.count++;\n this.localIncludedSystemsTypes.acPV.definition.push({\n loggerName: logger.id,\n isSelected: true,\n });\n }\n }\n });\n\n // fill battery & generator definition with information from solarman logger info\n // PV and AC PV are not needed because the dont have any settings\n const solarmanLoggerInfo = this.project.meta?.solarmanLoggerInfo;\n if (this.project.meta?.solarmanLoggerInfo && this.project.meta?.wasInstallationWizardCompleted) {\n this.localIncludedSystemsTypes.battery.definition.forEach((element: ILoggerBatteryDefinition, index: number) => {\n const infoElement = solarmanLoggerInfo?.battery.definition.find((info: ILoggerBatteryDefinition) => info.loggerName === element.loggerName);\n if (infoElement !== undefined) {\n this.localIncludedSystemsTypes.battery.definition[index] = infoElement;\n }\n });\n this.localIncludedSystemsTypes.generator.definition.forEach((element: ILoggerGeneratorDefinition, index: number) => {\n const infoElement = solarmanLoggerInfo?.generator.definition.find((info: ILoggerGeneratorDefinition) => info.loggerName === element.loggerName);\n if (infoElement !== undefined) {\n this.localIncludedSystemsTypes.generator.definition[index] = infoElement;\n }\n });\n }\n }\n\n /**\n * Fills the included systems types with the selected systems from the previous page\n */\n fillOnNavigationBackward() {\n this.localIncludedSystemsTypes = cloneDeep(this.includedSystemsTypes);\n }\n\n async created() {\n this.initSystemRow();\n if (this.navigationDirection === NavigationDirection.backward) {\n // fill included systems types with selected systems from previous page when navigating backwards\n this.fillOnNavigationBackward();\n } else {\n // fill included systems types with selected systems from previous page\n this.fillIncludedSystemTypes();\n }\n // All needed data available\n this.dataLoaded = true;\n }\n async mounted() {\n // trigger inital validation\n await this.$nextTick();\n this.validate();\n }\n\n /**\n * Clears all counts and components of the energy view mappings so we can fill them with the user selected systems\n */\n clearEnergyDevices(mappings: any) {\n allEnergyCircleTypes.forEach((systemType: string) => {\n if (mappings[systemType] === undefined) {\n return;\n }\n mappings[systemType].count = 0;\n mappings[systemType].components = {};\n });\n return mappings;\n }\n\n fillEnergyViewControllerMappings() {\n let energyViewMappings = cloneDeep(this.energyViewDevice.data.meta.controllerMappings);\n\n // clear all energy devices\n energyViewMappings = this.clearEnergyDevices(energyViewMappings);\n\n // House is default 1\n // If has grid measurement was selected on previous page we add the grid to the mappings\n const houseMapping = houseMappingEnergyView();\n const gridMapping = gridMappingEnergyView();\n // based on the logger overall type we add suffix to the mappings\n if (this.loggerOverallType === 'string' || this.loggerOverallType === 'hybrid') {\n // house\n houseMapping.energy_counter = houseMapping.energy_counter.concat(`.${this.loggerOverallType}`);\n houseMapping.power = houseMapping.power.concat(`.${this.loggerOverallType}`);\n // grid\n gridMapping.energy_counter = gridMapping.energy_counter.concat(`.${this.loggerOverallType}`);\n gridMapping.reverse_energy_counter = gridMapping.reverse_energy_counter.concat(`.${this.loggerOverallType}`);\n gridMapping.power = gridMapping.power.concat(`.${this.loggerOverallType}`);\n } else {\n // house\n houseMapping.energy_counter = houseMapping.energy_counter.concat('.string');\n houseMapping.power = houseMapping.power.concat('.hybrid');\n // grid\n gridMapping.energy_counter = gridMapping.energy_counter.concat('.string');\n gridMapping.reverse_energy_counter = gridMapping.reverse_energy_counter.concat('.string');\n gridMapping.power = gridMapping.power.concat('.hybrid');\n }\n energyViewMappings.house.count = 1;\n energyViewMappings.house.components.house1 = houseMapping;\n if (this.hasGridMeasurement) {\n energyViewMappings.grid.count = 1;\n energyViewMappings.grid.components.grid1 = gridMapping;\n }\n\n const keysToFill = ['pv', 'acPV', 'battery', 'generator'];\n // fill controller mappings of energy view\n keysToFill.forEach((systemKey: string) => {\n this.localIncludedSystemsTypes[systemKey as keyof IIncludedSystemsTypesLogger].definition.forEach(\n (systemDefinition: ILoggerBatteryDefinition | ILoggerPvDefinition | ILoggerAcPvDefinition | ILoggerGeneratorDefinition) => {\n const loggerIndex = this.getLoggerInformation.findIndex((logger: ILoggerInformation) => logger.id === systemDefinition.loggerName);\n switch (systemKey) {\n case 'pv': {\n // add pv to pv mappings\n const currentMappingIndex = energyViewMappings[systemKey].count + 1;\n energyViewMappings.pv.components[`pv${currentMappingIndex}`] = pvMappingEnergyView(systemDefinition.loggerName, false, loggerIndex);\n energyViewMappings[systemKey].count++;\n break;\n }\n case 'acPV': {\n // add acpv to pv mappings\n const currentMappingIndex = energyViewMappings.pv.count + 1;\n energyViewMappings.pv.components[`pv${currentMappingIndex}`] = pvMappingEnergyView(systemDefinition.loggerName, true, loggerIndex);\n energyViewMappings.pv.count++;\n break;\n }\n case 'battery': {\n // add battery to battery mappings\n const currentMappingIndex = energyViewMappings[systemKey].count + 1;\n energyViewMappings.battery.components[`battery${currentMappingIndex}`] = batteryMappingEnergyView(systemDefinition.loggerName, loggerIndex);\n energyViewMappings[systemKey].count++;\n break;\n }\n case 'generator': {\n // add generator to generator mappings\n const currentMappingIndex = energyViewMappings[systemKey].count + 1;\n energyViewMappings.generator.components[`generator${currentMappingIndex}`] = generatorMappingEnergyView(systemDefinition.loggerName, loggerIndex);\n energyViewMappings[systemKey].count++;\n break;\n }\n }\n },\n );\n });\n this.updateEnergyViewDeviceData({ data: { meta: { controllerMappings: energyViewMappings } } });\n }\n\n async handleNext() {\n this.fillEnergyViewControllerMappings();\n if (this.energyViewDevice.id) await this.updateDevice({ device: this.energyViewDevice, skipReport: false });\n this.setIncludedSystemsTypes(this.localIncludedSystemsTypes);\n this.setWasComponentsPageDone();\n this.handleIncrement();\n }\n\n handleBack() {\n this.handleDecrement();\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerComponentsPage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerComponentsPage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoggerComponentsPage.vue?vue&type=template&id=f2f9ca3c&scoped=true&\"\nimport script from \"./LoggerComponentsPage.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoggerComponentsPage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoggerComponentsPage.vue?vue&type=style&index=0&id=f2f9ca3c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2f9ca3c\",\n null\n \n)\n\nexport default component.exports","import FinalLoggerPage from '@/ui/components/wizards/loggerWizard/steps/finalPage/FinalLoggerPage.vue';\nimport GeneralInformationsLogger from '@/ui/components/wizards/loggerWizard/steps/generalSettings/GeneralInformations.vue';\nimport InviteUsersToProjectLogger\n from '@/ui/components/wizards/loggerWizard/steps/inviteUsers/InviteUserToProject.vue';\nimport LoggerManualsPage from '@/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerManualsPage.vue';\nimport DefineLoggerIds from '@/ui/components/wizards/loggerWizard/steps/defineComponents/DefineLoggerIds.vue';\nimport LoggerInformation from '@/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerInformation.vue';\nimport LoggerComponentsPage from '@/ui/components/wizards/loggerWizard/steps/defineComponents/LoggerComponentsPage.vue';\nimport CommonEnergyPriceSettings from '@/ui/components/wizards/baseComponents/commonPages/CommonEnergyPriceSettings.vue';\n\nconst loggerWizardImports = {\n DefineLoggerIds,\n LoggerComponentsPage,\n LoggerInformation,\n FinalLoggerPage,\n GeneralInformationsLogger,\n InviteUsersToProjectLogger,\n LoggerManualsPage,\n CommonEnergyPriceSettings,\n};\n\nexport default loggerWizardImports;\n","import installationWizardImports from '@/ui/components/wizards/installationWizard/imports';\nimport tenantWizardImports from '@/ui/components/wizards/tenantWizard/imports';\nimport loggerWizardImports from '@/ui/components/wizards/loggerWizard/imports';\n\nconst imports = {\n ...installationWizardImports,\n ...tenantWizardImports,\n ...loggerWizardImports,\n};\n\nexport default imports;\n","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport imports from '@/ui/components/wizards/imports';\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\n\n@Component({\n components: {\n ...imports,\n },\n})\nexport default class WizardContent extends Vue {\n @Prop() name!: string;\n @Prop() pages!: IWizardPage[];\n @Prop({ default: 0 }) currentPage!: number;\n @Prop({ default: false }) hasToBeOnline!: boolean;\n @Prop({ default: false }) considerProjectStatus!: boolean;\n @Prop({ default: false }) isProjectOnline!: boolean;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WizardContent.vue?vue&type=template&id=1d0044ea&scoped=true&\"\nimport script from \"./WizardContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./WizardContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WizardContent.vue?vue&type=style&index=0&id=1d0044ea&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d0044ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"side-bar\"},[_c('InstallationSteps',{attrs:{\"name\":_vm.name,\"wizard-pages\":_vm.wizardPages,\"steps-count\":_vm.stepsCount,\"active-page\":_vm.activePage,\"active-step\":_vm.activeStep}}),_c('UserInformationField',{attrs:{\"name\":_vm.name,\"active-page\":_vm.activePage,\"active-step\":_vm.activeStep,\"wizard-pages\":_vm.wizardPages}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"stepsContainer\"},[_c('v-stepper',{staticClass:\"stepper\",attrs:{\"value\":_vm.activeStep,\"vertical\":\"\"}},_vm._l((_vm.steps),function(step,index){return _c('div',{key:index},[(_vm.showStep(step))?_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":step,\"complete\":_vm.activeStep > step}},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.name}.steps.${step}.title`))+\" \")]):_vm._e(),(index === _vm.activeStep - 1 && _vm.subSteps.length > 1 && _vm.showStep(step))?_c('div',{staticClass:\"pl-8 subStepper\"},[_c('v-stepper',{staticClass:\"subStepper\",attrs:{\"vertical\":\"\",\"value\":_vm.activeSubStepIndex + 1}},_vm._l((_vm.subSteps),function(subStep,subStepIndex){return _c('div',{key:subStepIndex},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":subStepIndex + 1,\"complete\":_vm.currentPageIndex > subStep.page}},[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.name}.subPages.${_vm.subSteps[subStepIndex].title}`))+\" \")])],1)}),0)],1):_vm._e()],1)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class InstallationSteps extends Vue {\n @Prop() name!: string;\n @Prop({ default: 0 }) activePage!: number;\n @Prop({ default: 1 }) activeStep!: number;\n @Prop() stepsCount!: number;\n @Prop() wizardPages!: IWizardPage[];\n\n steps = Array.from(Array(this.stepsCount).keys()).map((step: number) => step + 1);\n\n get subSteps() {\n return this.wizardPages.filter(\n (page: IWizardPage) => page.step === this.activeStep,\n );\n }\n\n get activeSubStepIndex() {\n const activePage = this.wizardPages[this.activePage];\n return this.subSteps.findIndex(subStep => subStep.page === activePage.page);\n }\n\n get currentPageIndex() {\n return this.wizardPages[this.activePage].page;\n }\n\n /**\n * Checks if any page is available for the current step\n * yes -> show the step\n * no -> hide the step\n */\n showStep(stepIndex: number) {\n const currentItems: any = this.wizardPages.filter(\n (page: IWizardPage) => page.step === stepIndex,\n ) ?? [];\n return currentItems.length > 0;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSteps.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSteps.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationSteps.vue?vue&type=template&id=2515bd44&scoped=true&\"\nimport script from \"./InstallationSteps.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationSteps.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstallationSteps.vue?vue&type=style&index=0&id=2515bd44&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2515bd44\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-4\",attrs:{\"color\":\"accent\"}},[_c('v-card-text',[_c('span',{staticStyle:{\"font-size\":\"18px\"}},[_vm._v(_vm._s(_vm.getTranslation(`${_vm.name}.steps.${_vm.activeStep}.pages.${_vm.currentStep}.description`)))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component({})\nexport default class UserInformation extends Vue {\n @Prop() name!: string;\n @Prop({ default: 1 }) activeStep!: number;\n @Prop({ default: 0 }) activePage!: number;\n @Prop() wizardPages!: IWizardPage[];\n\n get currentStep() {\n return this.wizardPages[this.activePage].page;\n }\n getTranslation(key: string) {\n const translation = this.$t(key);\n const firstStepDescription = this.$t(`${this.name}.steps.${this.activeStep}.pages.0.description`);\n return translation === key ? firstStepDescription : translation;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserInformationField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserInformationField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserInformationField.vue?vue&type=template&id=58f765e0&scoped=true&\"\nimport script from \"./UserInformationField.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserInformationField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58f765e0\",\n null\n \n)\n\nexport default component.exports","\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport InstallationSteps from './InstallationSteps.vue';\nimport UserInformationField from './UserInformationField.vue';\n\n@Component({\n components: {\n InstallationSteps,\n UserInformationField,\n },\n})\nexport default class SideBar extends Vue {\n @Prop() name!: string;\n @Prop() stepsCount!: number;\n @Prop() wizardPages!: IWizardPage[];\n @Prop({ default: 0 }) activePage!: number;\n @Prop({ default: 1 }) activeStep!: number;\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SideBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SideBar.vue?vue&type=template&id=8d48ac58&scoped=true&\"\nimport script from \"./SideBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./SideBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SideBar.vue?vue&type=style&index=0&id=8d48ac58&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d48ac58\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport WizardContent from '@/ui/components/wizards/baseComponents/WizardContent.vue';\nimport SideBar from '@/ui/components/wizards/baseComponents/SideBar.vue';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { Getter, Mutation } from 'vuex-class';\nimport { IReportBox } from '@/types/app.types';\nimport { IWizardPage } from '@/types/wizards/wizard.general.types';\n\n@Component({\n components: { LeaveConfirmationModal, SideBar, WizardContent },\n})\nexport default class Wizard extends Vue {\n @Prop() name!: string;\n @Prop() stepsCount!: number;\n @Prop() pages!: IWizardPage[];\n @Prop({ default: 0 }) currentPage!: number;\n @Prop({ default: 1 }) currentStep!: number;\n @Prop({ default: false }) hasToBeOnline!: boolean;\n @Prop({ default: false }) considerProjectStatus!: boolean;\n @Prop({ default: false }) isProjectOnline!: boolean;\n @Getter('installationWizard/currentStep') activeStep!: number;\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n\n async handleRouteChange() {\n this.$emit('handleRouteChange');\n }\n\n // accessed by ref\n async confirmAction(to: any, next: any) {\n await (this.$refs.confirmationModal as any).confirmAction(to, next);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Wizard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Wizard.vue?vue&type=template&id=6bc3b4e4&scoped=true&\"\nimport script from \"./Wizard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Wizard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Wizard.vue?vue&type=style&index=0&id=6bc3b4e4&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6bc3b4e4\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport Wizard from '@/ui/components/wizards/baseComponents/Wizard.vue';\nimport {\n IInstallationWizardState,\n} from '@/store/modules/installationWizard/types';\nimport { BatteryType } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { IDevice } from '@/types/devices.types';\nimport { IWizardLoadingState, IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { hybridVersionDate, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { IIncludedSystemsTypes } from '@/types/wizards/installationWizard.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n Wizard,\n },\n})\nexport default class InstallationWizard extends Vue {\n @State('installationWizard') wizardState!: IInstallationWizardState;\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('installationWizard/currentStep') activeStep!: number;\n @Getter('installationWizard/wizardBlocked') wizardBlocked!: boolean;\n @Getter('installationWizard/wizardPages') wizardPages!: IWizardPage[];\n @Getter('serialNumber/serialNumbersFromMqtt') serialNumbersFromMqtt!: { [key: string]: string };\n @Getter('mqttClient/isProjectOnline') isProjectOnline !: boolean;\n @Getter('projects/isDeye') isDeye!: boolean;\n @Getter('projects/isSolarmax') isSolarmax!: boolean;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/batterySystemType') batterySystemType!: BatteryType | undefined;\n @Getter('installationWizard/considerProjectStatus') considerProjectStatus !: boolean;\n @Getter('installationWizard/loadingState') loadingState!: IWizardLoadingState;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('mqttClient/createConnection') createConnection!: () => Promise;\n @Action('mqttClient/removeConnection') removeConnection!: () => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n\n loading = true;\n\n get failedHybridInverters() {\n const hybridInverterIndices: number[] = [];\n for (let i = 0; i < this.wizardState.inverterCount; i++) {\n const serialNumberVariable = installationWizardVariables('deyeInverterSerialNumber', 'pilotPage', -1, i);\n const serialNumber = this.serialNumbersFromMqtt[serialNumberVariable.variable];\n if (!serialNumber || [-1, '-1', '#EMPTY#'].includes(serialNumber)) {\n hybridInverterIndices.push(i);\n }\n }\n return hybridInverterIndices;\n }\n\n get failedStringInverters() {\n const stringInverterIndices: number[] = [];\n for (let i = 0; i < this.wizardState.stringInverterCount; i++) {\n const serialNumberVariable = installationWizardVariables('stringInverterSerialNumber', 'pilotPage', -1, i);\n const serialNumber = this.serialNumbersFromMqtt[serialNumberVariable.variable];\n if (!serialNumber || [-1, '-1', '#EMPTY#'].includes(serialNumber)) {\n stringInverterIndices.push(i);\n }\n }\n return stringInverterIndices;\n }\n\n get currentPage() {\n return this.wizardState.currentPageIndex;\n }\n\n get hasBatteryDefined() {\n return !!this.batterySystemType;\n }\n\n get doesEnergyDevicesHaveBattery() {\n const hasEmsBattery = this.allDevices.find((device: IDevice) => device.data.type === 'EMSV2')?.data.meta.controllerMappings.battery.count > 0;\n const hasEnergyViewBattery = this.allDevices.find((device: IDevice) => device.data.type === 'EnergyViewV2')?.data.meta.controllerMappings.battery.count > 0;\n return hasEmsBattery && hasEnergyViewBattery;\n }\n\n get pages() {\n return this.wizardPages;\n }\n\n get isHybridVersion() {\n return plcVersionDate(this.project).getTime() > hybridVersionDate.getTime();\n }\n\n get hasToBeOnline() {\n const systemTestPageIndex = this.wizardPages.findIndex((page: IWizardPage) => page.title === 'SystemTestPage');\n if (this.isDeye && this.isHybridVersion && this.wizardState.currentPageIndex >= systemTestPageIndex) {\n return !this.wizardState.restartSent;\n }\n return true;\n }\n\n reloadPage() {\n window.location.reload();\n }\n\n async mounted() {\n await new Promise((resolve, reject) => setTimeout(() => {\n this.loading = false;\n resolve();\n }, 1000));\n\n if ((plcVersionDate(this.project).getTime() > hybridVersionDate.getTime())) {\n await this.createConnection();\n }\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.all([\n this.fetchDevices(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n ]);\n this.setProjectLoader(false);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationWizard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationWizard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InstallationWizard.vue?vue&type=template&id=33aca55c&scoped=true&\"\nimport script from \"./InstallationWizard.vue?vue&type=script&lang=ts&\"\nexport * from \"./InstallationWizard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InstallationWizard.vue?vue&type=style&index=0&id=33aca55c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"33aca55c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"height\":\"100%\"}},[(_vm.hasBatteryDefined)?_c('Wizard',{ref:\"wizard\",attrs:{\"name\":\"loggerWizard\",\"steps-count\":4,\"pages\":_vm.pages,\"has-to-be-online\":false,\"current-step\":_vm.activeStep,\"current-page\":_vm.currentPage,\"consider-project-status\":_vm.considerProjectStatus,\"is-project-online\":_vm.isProjectOnline}}):_vm._e(),(!_vm.loading)?_c('div',[(!_vm.hasBatteryDefined)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center pt-8\"},[_c('div',{staticClass:\"text-lg-h4 pb-4\"},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.batteryNotDefinedMessage'))+\" \")])]):_vm._e(),(!_vm.hasBatteryDefined)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center\"},[_c('div',{staticClass:\"text-lg-h4 mt-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('loggerWizard.contactSupportMessage'))+\" \")])]):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport Wizard from '@/ui/components/wizards/baseComponents/Wizard.vue';\nimport {\n IloggerWizardState,\n} from '@/store/modules/loggerWizard/types';\nimport { LoggerType } from '@/ui/components/wizards/loggerWizard/wizardSettings/systemTypes';\nimport { IDevice } from '@/types/devices.types';\nimport { IWizardLoadingState, IWizardPage } from '@/types/wizards/wizard.general.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n Wizard,\n },\n})\nexport default class LoggerWizard extends Vue {\n @State('loggerWizard') wizardState!: IloggerWizardState;\n @Getter('devices/allDevices') allDevices!: IDevice[];\n @Getter('loggerWizard/currentStep') activeStep!: number;\n @Getter('loggerWizard/wizardPages') wizardPages!: IWizardPage[];\n @Getter('mqttClient/isProjectOnline') isProjectOnline !: boolean;\n @Getter('projects/batterySystemType') batterySystemType!: LoggerType | undefined;\n @Getter('loggerWizard/considerProjectStatus') considerProjectStatus !: boolean;\n @Getter('loggerWizard/loadingState') loadingState!: IWizardLoadingState;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n\n loading = true;\n\n get currentPage() {\n return this.wizardState.currentPageIndex;\n }\n\n get hasBatteryDefined() {\n return !!this.batterySystemType;\n }\n\n get pages() {\n return this.wizardPages;\n }\n\n async mounted() {\n await new Promise((resolve, reject) => setTimeout(() => {\n this.loading = false;\n resolve();\n }, 1000));\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.all([\n this.fetchDevices(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n ]);\n this.setProjectLoader(false);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerWizard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoggerWizard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LoggerWizard.vue?vue&type=template&id=7eb7ea48&scoped=true&\"\nimport script from \"./LoggerWizard.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoggerWizard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7eb7ea48\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport InstallationWizard from '@/ui/components/wizards/installationWizard/InstallationWizard.vue';\nimport LoggerWizard from '@/ui/components/wizards/loggerWizard/LoggerWizard.vue';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { LoggerType } from '@/ui/components/wizards/loggerWizard/wizardSettings/systemTypes';\nimport { BatteryType } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { AllBatteryTypes } from '@/utils/batteryTypes';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n InstallationWizard,\n LoggerWizard,\n LeaveConfirmationModal,\n },\n})\nexport default class SetupAssistent extends Vue {\n @Getter('projects/batterySystemType') batterySystemType!: BatteryType | LoggerType | undefined | AllBatteryTypes;\n @Getter('loggerWizard/currentStep') activeLoggerWizardStep!: number;\n @Getter('loggerWizard/currentPage') currentLoggerWizardPage!: number;\n @Getter('projects/isMobileDeye') isMobileDeye!: boolean;\n @Mutation('loggerWizard/setCurrentStep') setLoggerWizardStep!: (payload: number) => void;\n @Mutation('loggerWizard/setCurrentPage') setLoggerWizardPage!: (payload: number) => void;\n @Mutation('loggerWizard/reset') resetLoggerWizardWizard!: () => Promise;\n @Getter('installationWizard/currentStep') activeDefaultWizardStep!: number;\n @Getter('installationWizard/currentPage') currentDefaultWizardPage!: number;\n @Mutation('installationWizard/setCurrentStep') setDefaultWizardStep!: (payload: number) => void;\n @Mutation('installationWizard/setCurrentPage') setDefaultWizardPage!: (payload: number) => void;\n @Mutation('installationWizard/reset') resetDefaultWizard!: () => Promise;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n\n showInstallationWizard = false;\n showLoggerWizard = false;\n sendWizardVariables = false;\n\n async created() {\n this.setProjectLoader(true);\n await Promise.all([\n this.fetchDevices(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n ]);\n\n // Switch between installation wizard and logger wizard\n if (this.batterySystemType === 'Solarman Logger (Deye)') {\n this.showLoggerWizard = true;\n this.showInstallationWizard = false;\n this.resetLoggerWizardWizard();\n } else {\n this.showInstallationWizard = true;\n this.showLoggerWizard = false;\n this.resetDefaultWizard();\n\n // On Route change we need to send variables\n this.sendWizardVariables = true;\n }\n this.setProjectLoader(false);\n\n }\n\n /**\n * Set Page and Step to the first page and step\n */\n beforeDestroy() {\n if (this.showInstallationWizard) {\n this.setDefaultWizardStep(1);\n this.setDefaultWizardPage(0);\n } else {\n this.setLoggerWizardStep(1);\n this.setLoggerWizardPage(0);\n }\n }\n\n /**\n * Will reset the wizard store\n */\n handleRouteChange() {\n if (this.showInstallationWizard) {\n this.resetDefaultWizard();\n } else {\n this.resetLoggerWizardWizard();\n }\n }\n\n /**\n * Check if the user is allowed to leave the page without the leave confirmation modal\n */\n async beforeRouteLeave(to: any, from: any, next: any) {\n if (this.isMobileDeye) {\n // for mobile devices we don't need the leave confirmation modal as the wizard never sends any variables to the plc\n next();\n }\n // installation wizard conditions\n if (this.activeDefaultWizardStep === 6 && this.showInstallationWizard) {\n await this.resetDefaultWizard();\n next();\n }\n if (this.activeDefaultWizardStep === 1) {\n if (this.currentDefaultWizardPage < 2 && this.showInstallationWizard) next();\n }\n // logger wizard conditions\n if (this.activeLoggerWizardStep === 4 && this.showLoggerWizard) {\n await this.resetLoggerWizardWizard();\n next();\n }\n if (this.currentLoggerWizardPage < 2 && this.showLoggerWizard) next();\n\n // show leave confirmation modal\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction(to, next);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetupAssistent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SetupAssistent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetupAssistent.vue?vue&type=template&id=5cb5784f&scoped=true&\"\nimport script from \"./SetupAssistent.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetupAssistent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5cb5784f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fill-height\"},[(!_vm.showLoader)?_c('div',{staticClass:\"fill-height\"},[(!_vm.wasTenantDone || _vm.wasTenantRestarted)?_c('div',{staticClass:\"fill-height\"},[_c('TenantWizard')],1):_c('div',[_c('v-container',{staticClass:\"settings-list pa-0\",staticStyle:{\"margin-bottom\":\"20px\"},attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"margin-top\":\"-12px\"}},_vm._l((_vm.navigationOptions),function(item,index){return _c('v-col',{key:index,attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-card',{class:['settings-card', { 'active': _vm.currentViewIndex === index }],attrs:{\"flat\":\"\"},on:{\"click\":function($event){_vm.currentViewIndex = index}}},[_c('div',{staticClass:\"settings-card-title\"},[_vm._v(_vm._s(_vm.$t(item.title)))])])],1)}),1),_c('div',{staticClass:\"lynus-divider\"})],1),_c(_vm.navigationOptions[_vm.currentViewIndex].component,{tag:\"component\",on:{\"tenantModelUpdated\":function($event){return _vm.tenantModelUpdated($event)}}})],1)]):_vm._e(),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t('navigation.appNavigation.tenantWizard'),\"additional-information\":_vm.$t('tenantWizard.routeLeave.text')}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticStyle:{\"height\":\"100%\"}},[_c('Wizard',{ref:\"wizard\",attrs:{\"name\":\"tenantWizard\",\"steps-count\":5,\"pages\":_vm.pages,\"current-step\":_vm.activeStep,\"current-page\":_vm.currentPage,\"hasToBeOnline\":true,\"consider-project-status\":_vm.considerProjectStatus,\"is-project-online\":_vm.isProjectOnline},on:{\"handleRouteChange\":_vm.handleRouteChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport Wizard from '@/ui/components/wizards/baseComponents/Wizard.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { IWizardLoadingState, IWizardPage } from '@/types/wizards/wizard.general.types';\nimport { hybridVersionDate, plcVersionDate, tenantUpdateWagoCounters } from '@/utils/versionManagementUtils';\nimport { IProject } from '@/types/project.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n CircleSpinner,\n Wizard,\n },\n})\nexport default class TenantWizard extends Vue {\n @State('app') appState!: IAppState;\n @State('projects') projectsState!: IProjectsState;\n @State('tenantWizard') wizardState!: ITenantWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('tenantWizard/currentStep') activeStep!: number;\n @Getter('tenantWizard/wizardPages') wizardPages!: IWizardPage[];\n @Getter('tenantWizard/defaultWizardStatePages') defaultWizardStatePages!: IWizardPage[];\n @Getter('mqttClient/isProjectOnline') isProjectOnline !: boolean;\n @Getter('tenantWizard/considerProjectStatus') considerProjectStatus !: boolean;\n @Getter('tenantWizard/loadingState') loadingState!: IWizardLoadingState;\n @Getter('tenantWizard/tenantWithoutLynusBattery') tenantWithoutLynusBattery!: boolean;\n @Action('devices/fetchDevices') fetchDevices!: (projectId: string) => Promise;\n @Mutation('tenantWizard/setCurrentStep') setCurrentStep!: (payload: number) => void;\n @Mutation('tenantWizard/setCurrentPage') setCurrentPage!: (payload: number) => void;\n @Mutation('tenantWizard/reset') resetWizard!: () => Promise;\n @Mutation('tenantWizard/setWasTenantDoneState') setWasTenantDoneState!: (data: boolean) => void;\n @Mutation('tenantWizard/setPages') setPages!: (data: IWizardPage[]) => void;\n @Action('tenantWizard/loadTenant') loadTenant!: (project_id: string) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('members/fetchMember') fetchMember!: (payload: { memberId: string; projectId: string }) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n\n tenantLoad = false;\n\n get currentPage() {\n return this.wizardState.currentPageIndex;\n }\n\n get user() {\n return this.appState.user;\n }\n\n get pages() {\n return this.wizardPages;\n }\n\n get wasInstallationWizardCompleted() {\n return this.project.meta.wasInstallationWizardCompleted ?? false;\n }\n\n mounted() {\n // update pages in store\n let pages = this.defaultWizardStatePages;\n // if user is not super admin, remove AutoMapping page\n if (!this.user.super_admin) {\n pages = pages.filter((page) => page.title !== 'AutoMapping');\n }\n if (plcVersionDate(this.project).getTime() < tenantUpdateWagoCounters.getTime() || plcVersionDate(this.project).getTime() > hybridVersionDate.getTime()) {\n // if project is older than tenantUpdateWagoCounters update, remove SystemInformation page\n // with new update also check if project is younger than hybridVersionDate because on this version hasLynusInverter value is set in installation wizard\n pages = pages.filter((page) => page.title !== 'SystemInformation');\n }\n this.setPages(pages);\n }\n\n beforeDestroy() {\n this.setCurrentStep(1);\n this.setCurrentPage(0);\n }\n\n handleRouteChange() {\n this.resetWizard();\n }\n\n async beforeRouteLeave(to: any, from: any, next: any) {\n if (this.activeStep === 6) {\n await this.resetWizard();\n next();\n }\n await (this.$refs.wizard as any).confirmAction(to, next);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1b5548a0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b5548a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:!_vm.isCurrentMemberAdmin ? 'disableForNonAdmin' : ''},[_c('div',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.basicTenantModelEditor.title'))+\":\")]),_c('div',{staticClass:\"ml-4 mt-3\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.basicTenantModelEditor.toolTips.titleTooltip'))+\" \")]},proxy:true}])})],1)])]),_c('v-form',{ref:\"tariffForm\",model:{value:(_vm.tariffsValid),callback:function ($$v) {_vm.tariffsValid=$$v},expression:\"tariffsValid\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',{staticClass:\"py-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.electricity')))]),_c('div',{staticClass:\"ml-2 mt-3\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.infoTooltips.tariff'))+\" \")]},proxy:true}])})],1)]),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"mt-0 mx-0 mb-2 pa-0\",attrs:{\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},on:{\"change\":_vm.handleTariffSelectionChange},model:{value:(_vm.showAllDayTariffFields),callback:function ($$v) {_vm.showAllDayTariffFields=$$v},expression:\"showAllDayTariffFields\"}}),_c('div',{staticClass:\"ml-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.enableAllDayTariff'))+\" \")])],1),(!_vm.showAllDayTariffFields)?_c('div',[_c('v-row',[_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titlePvTarif')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.productionTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffStartPV')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesProduction.start),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesProduction, \"start\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesProduction.start\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.productionTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffEndPV')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesProduction.end),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesProduction, \"end\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesProduction.end\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.lowTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.lowTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"lowTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.lowTariffProduction\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.highTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.highTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"highTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.highTariffProduction\"}})],1)]),_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.titleGridTarif')))]),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.gridTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffStartGrid')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesGrid.start),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesGrid, \"start\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesGrid.start\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"outlined\":\"\",\"color\":\"blue\",\"rules\":[_vm.rules.required, _vm.rules.timeFormat, _vm.gridTariffsValid],\"label\":_vm.$t('tenantWizard.tariffSettings.tariffEndGrid')},model:{value:(_vm.tariffSettings.electricity.lowTariffTimesGrid.end),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity.lowTariffTimesGrid, \"end\", $$v)},expression:\"tariffSettings.electricity.lowTariffTimesGrid.end\"}})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.lowTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.lowTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"lowTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.lowTariffGrid\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.highTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.highTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"highTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.highTariffGrid\"}})],1)])],1)],1):_c('div',{staticClass:\"mt-2\"},[_c('v-row',[_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"lg\":\"3\",\"md\":\"3\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.allDayTariffPV'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.allDayTariffProduction),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"allDayTariffProduction\", _vm._n($$v))},expression:\"tariffSettings.electricity.allDayTariffProduction\"}})],1),_c('v-col',{staticClass:\"mt-0 pt-0\",attrs:{\"lg\":\"3\",\"md\":\"3\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"suffix\":_vm.tenantState.tenant.general.paymentDetails.currency+'/kWh',\"rules\":[_vm.rules.requiredNumber, _vm.fieldMoreThan(0.001), _vm.rules.threeCommas],\"outlined\":\"\",\"step\":\"0.001\",\"type\":\"number\",\"min\":\"0\",\"label\":_vm.$t('tenantWizard.tariffSettings.allDayTariffGrid'),\"color\":\"accent\"},model:{value:(_vm.tariffSettings.electricity.allDayTariffGrid),callback:function ($$v) {_vm.$set(_vm.tariffSettings.electricity, \"allDayTariffGrid\", _vm._n($$v))},expression:\"tariffSettings.electricity.allDayTariffGrid\"}})],1)],1)],1),(\n _vm.tenantState.tenant.general.billingComponents.coldWater ||\n _vm.tenantState.tenant.general.billingComponents.serviceWater ||\n _vm.tenantState.tenant.general.billingComponents.heating\n )?_c('h3',{staticClass:\"pb-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.tariffSettings.other')))]):_vm._e(),(\n _vm.tenantState.tenant.general.billingComponents.coldWater ||\n _vm.tenantState.tenant.general.billingComponents.serviceWater ||\n _vm.tenantState.tenant.general.billingComponents.heating\n )?_c('v-row',[(_vm.tenantState.tenant.general.billingComponents.coldWater === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceColdWater'),\"suffix\":`${_vm.selectedCurrency} / m^3`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n _vm.fieldMoreThan(0),\n ]},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(_vm.tariffSettings.water.priceColdWater),callback:function ($$v) {_vm.$set(_vm.tariffSettings.water, \"priceColdWater\", _vm._n($$v))},expression:\"tariffSettings.water.priceColdWater\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tariffSettings.infoTooltips.tariff'))+\" \")]},proxy:true}],null,false,3390777879)})],1)],1)]):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.serviceWater === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceServiceWater'),\"suffix\":`${_vm.selectedCurrency} / m^3`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n _vm.fieldMoreThan(0),\n ]},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(_vm.tariffSettings.water.priceServiceWater),callback:function ($$v) {_vm.$set(_vm.tariffSettings.water, \"priceServiceWater\", _vm._n($$v))},expression:\"tariffSettings.water.priceServiceWater\"}})],1):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.heating === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceHeating'),\"suffix\":`${_vm.selectedCurrency} / kWh`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n _vm.fieldMoreThan(0),\n ]},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(_vm.tariffSettings.water.priceHeating),callback:function ($$v) {_vm.$set(_vm.tariffSettings.water, \"priceHeating\", _vm._n($$v))},expression:\"tariffSettings.water.priceHeating\"}})],1):_vm._e(),(_vm.tenantState.tenant.general.billingComponents.cooling === true)?_c('v-col',{staticClass:\"mt-0 py-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('tenantWizard.tariffSettings.priceCooling'),\"suffix\":`${_vm.selectedCurrency} / kWh`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.requiredNumber,\n _vm.fieldMoreThan(0.01),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.tariffSettings.water.priceCooling),callback:function ($$v) {_vm.$set(_vm.tariffSettings.water, \"priceCooling\", _vm._n($$v))},expression:\"tariffSettings.water.priceCooling\"}})],1):_vm._e()],1):_vm._e(),_c('h3',{staticClass:\"mt-3 mb-1\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.periodOptions.title'))+\" \")]),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\",staticStyle:{\"width\":\"20vw\"}},[_c('v-select',{attrs:{\"items\":_vm.periodOptions,\"label\":_vm.$t('tenantWizard.billingAndDocumentOutput.periodOptions.selectOption'),\"color\":\"accent\",\"item-color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":[_vm.rules.required]},model:{value:(_vm.interval),callback:function ($$v) {_vm.interval=$$v},expression:\"interval\"}}),_c('div',{staticClass:\"ml-2 mt-4\"},[(_vm.interval === 'Never')?_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"size\":\"24\",\"color\":\"accent\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.neverTooltip'))+\" \")]},proxy:true}],null,false,1144066075)}):_vm._e()],1)],1)])],1),_c('h3',{staticClass:\"pt-3\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.extraCosts.title')))]),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_vm._l((_vm.sideCosts),function(sideCostObject,index){return _c('div',{key:index,staticClass:\"d-flex\"},[_c('v-text-field',{staticClass:\"mr-3\",attrs:{\"label\":_vm.$t('tenantWizard.extraCosts.labels.nameOfSideCost'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.required]},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(sideCostObject.name),callback:function ($$v) {_vm.$set(sideCostObject, \"name\", $$v)},expression:\"sideCostObject.name\"}}),_c('v-text-field',{staticClass:\"ml-3\",attrs:{\"label\":_vm.$t('tenantWizard.extraCosts.labels.amount'),\"suffix\":`${_vm.selectedCurrency}`,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.required,\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n _vm.fieldMoreThan(0),\n ]},on:{\"input\":function($event){return _vm.handleInput()}},model:{value:(sideCostObject.amount),callback:function ($$v) {_vm.$set(sideCostObject, \"amount\", _vm._n($$v))},expression:\"sideCostObject.amount\"}}),_c('v-btn',{staticClass:\"mx-2 my-2\",attrs:{\"fab\":\"\",\"small\":\"\",\"color\":\"error\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.removeSideCost(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1)}),(_vm.isCurrentMemberAdmin)?_c('v-btn',{staticClass:\"mb-5\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.addSideCost}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.extraCosts.labels.addSideCost'))+\" \")]):_vm._e()],2)],1)],1),(_vm.isCurrentMemberAdmin)?_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.flatsInformation.subTitles.tenantDetails'))+\" :\")]):_vm._e(),(_vm.isCurrentMemberAdmin)?_c('v-row',[_c('v-col',[_c('FlatDetails',{key:_vm.rerenderKey,attrs:{\"showNumberOfFlats\":false,\"showTitle\":false,\"showRenterSwapInfo\":true},on:{\"updateFlats\":function($event){return _vm.handleInput($event)},\"updateValid\":function($event){return _vm.handleFlatValidUpdate($event)}}}),(_vm.isCurrentMemberAdmin)?_c('div',{staticStyle:{\"padding-top\":\"12px !important\",\"padding-bottom\":\"12px !important\"}},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\",\"disabled\":!_vm.tariffsValid && _vm.flatsValid},on:{\"click\":function($event){return _vm.saveTariffSettings()}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")])],1):_vm._e()],1)],1):_vm._e(),(_vm.isCurrentMemberAdmin)?_c('v-row',{staticClass:\"px-3 pb-2\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('modals.manageReport.startDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":_vm.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar,\"min-date\":new Date(_vm.projectCreationTimestamp * 1000).toISOString()},model:{value:(_vm.download.start),callback:function ($$v) {_vm.$set(_vm.download, \"start\", $$v)},expression:\"download.start\"}})],1)],1):_vm._e(),(_vm.isCurrentMemberAdmin)?_c('v-row',{staticClass:\"px-3 pb-2\"},[_c('v-col',{staticClass:\"pa-0\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h4',[_vm._v(_vm._s(_vm.$t('modals.manageReport.endDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":_vm.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar,\"min-date\":new Date(_vm.projectCreationTimestamp * 1000).toISOString()},model:{value:(_vm.download.end),callback:function ($$v) {_vm.$set(_vm.download, \"end\", $$v)},expression:\"download.end\"}})],1)],1):_vm._e(),_c('v-row',{staticClass:\"px-3 pb-2\"},[(_vm.areDownloadDatesValid === false && _vm.areDownloadFieldsFilled)?_c('v-col',{staticClass:\"error--text pa-0 ma-0\",attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.billingAndDocumentOutput.datesNotValid'))+\" \")]):_vm._e()],1),_c('v-row',{staticClass:\"px-3 pb-2\"},[_c('v-col',{staticClass:\"pa-0 ma-0\"},[_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\",\"loading\":_vm.showLoaderSpecificDownload,\"disabled\":_vm.areDownloadDatesValid === false || _vm.areDownloadFieldsFilled === false},on:{\"click\":function($event){return _vm.handleDownload()}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.download'))+\" \")])],1)],1),(_vm.isCurrentMemberAdmin)?_c('v-row',{staticClass:\"pt-4\"},[_c('v-col',{attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('InvoiceHistory')],1)],1):_vm._e(),(_vm.isCurrentMemberAdmin)?_c('v-row',{staticClass:\"px-3 pb-2\"},[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('DeleteModalForm',{attrs:{\"deletedItemName\":_vm.$t('tenantWizard.deleteTextTenant')},on:{\"deleteHandler\":_vm.handleDeleteTenant}},[_c('v-btn',{attrs:{\"color\":\"error\"}},[_vm._v(_vm._s(_vm.$t('tenantWizard.deleteTenant')))])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('div',{staticStyle:{\"width\":\"70%\"}},[_c('div',{staticClass:\"d-flex pt-2\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.invoiceHistory')))])]),_c('div',[_c('v-data-table',{staticClass:\"primary\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.invoiceHistoryItems,\"items-per-page\":10,\"page\":_vm.currentPage,\"hide-default-footer\":\"\"},on:{\"update:page\":function($event){_vm.currentPage=$event}},scopedSlots:_vm._u([{key:\"header\",fn:function({ header }){return [_vm._v(\" \"+_vm._s(header)+\" \")]}},{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item,index){return _c('tr',{key:index},[_c('td',{staticStyle:{\"width\":\"45%\"}},[_vm._v(_vm._s(_vm.convertTimestampToDate(item.startDate)))]),_c('td',{staticStyle:{\"width\":\"45%\"}},[_vm._v(_vm._s(_vm.convertTimestampToDate(item.endDate)))]),_c('td',{staticStyle:{\"width\":\"10%\"}},[_c('v-btn',{staticClass:\"my-2\",attrs:{\"color\":\"accent\",\"loading\":_vm.showLoader && _vm.showLoadingIndex === index,\"disabled\":_vm.showLoader},on:{\"click\":function($event){return _vm.handleDownload(item, index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.download'))+\" \")])],1)])}),0)]}}])})],1),(_vm.invoiceHistoryItems.length === 0)?_c('div',{staticClass:\"d-flex align-center justify-center my-4\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.invoiceHistory.noElementsForInvoiceHistoryFound')))]):_vm._e(),(_vm.numberOfPages > 1)?_c('div',{staticClass:\"primary d-flex justify-center\",staticStyle:{\"min-width\":\"1000px\"}},[_c('v-pagination',{attrs:{\"color\":\"accent\",\"length\":_vm.numberOfPages,\"total-visible\":7},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h1',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.title'))+\":\")]),_c('v-row',[(_vm.isCurrentMemberAdmin || _vm.availableTenants.length > 1)?_c('v-col',{attrs:{\"lg\":\"6\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('v-select',{staticClass:\"mr-1\",staticStyle:{\"width\":\"25%\"},attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"item-text\":\"text\",\"item-value\":\"value\",\"items\":_vm.availableTenants,\"label\":_vm.$t('tenantWizard.tenantStatistics.labels.selectTenant')},on:{\"change\":function($event){return _vm.handleTenantChange()}},model:{value:(_vm.currentSelectedTenant),callback:function ($$v) {_vm.currentSelectedTenant=$$v},expression:\"currentSelectedTenant\"}}),(_vm.selectionOptionsChart.length > 1)?_c('div',{staticClass:\"d-flex\"},[_c('v-select',{staticClass:\"ml-1\",attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"item-text\":\"text\",\"item-value\":\"value\",\"items\":_vm.selectionOptionsChart,\"label\":_vm.$t('tenantWizard.tenantStatistics.labels.chartOptions')},model:{value:(_vm.selectedSeriesOption),callback:function ($$v) {_vm.selectedSeriesOption=$$v},expression:\"selectedSeriesOption\"}}),_c('div',{staticClass:\"mt-4 ml-1\"},[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":'accent',\"size\":\"24\"}})]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tenantStatistics.labels.infoText'))+\" \")]},proxy:true}],null,false,1535427581)})],1)],1):_vm._e()],1)]):_c('v-col',{attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',{staticClass:\"my-2\"},[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.labels.appartment'))+\": \"+_vm._s(_vm.availableTenants[_vm.currentSelectedTenant].text))])])],1),(_vm.showTenantCommunicationStatus && _vm.isCurrentMemberAdmin)?_c('v-row',[_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.tenantCommunicationStatus')))]),_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(_vm.showTenantCommunicationStatus)?_c('v-icon',{staticClass:\"ml-2\",attrs:{\"color\":_vm.tenantCommunicationStatusError ? 'orange' : 'green'}},[_vm._v(\" \"+_vm._s(_vm.tenantCommunicationStatusError ? 'mdi-alert-circle' : 'mdi-check-circle')+\" \")]):_vm._e()]},proxy:true},{key:\"content\",fn:function(){return [(!_vm.tenantCommunicationStatusError)?_c('div',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.connectionOk')))]):_c('div',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.noConnection')))])]},proxy:true}],null,false,2306770219)})],1)])],1):_vm._e(),_c('v-row',[_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.generalInformations')))])]),_vm._l((Object.entries(_vm.energyPrice)),function(tariffInformation,index){return _c('v-col',{key:`info`+index,staticClass:\"mt-1 pt-1\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_c('div',[_vm._v(\" \"+_vm._s(tariffInformation[1].text)+\": \")]),_c('div',{staticClass:\"ml-2\",staticStyle:{\"font-weight\":\"600\"}},[_vm._v(\" \"+_vm._s(tariffInformation[1].value)+\" \")]),_c('div',{staticClass:\"ml-1\",staticStyle:{\"opacity\":\"0.6\"}},[_vm._v(\" \"+_vm._s(tariffInformation[1].unit)+\" \")])])])})],2),(!_vm.consumptionStatDate && !_vm.consumptionStats)?_c('v-row',[_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.consumptionInLastPeriod'))+\":\")])]),_c('v-col',{staticClass:\"mt-1 pt-1\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_vm._v(\" \"+_vm._s(_vm.$t(`tenantWizard.tenantStatistics.consumptionStats.consumptionNotAvailable`))+\" \")])],1):_c('v-row',[_c('v-col',{staticClass:\"mb-0 pb-0\",attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.consumptionInLastPeriod'))+\" (\"+_vm._s(_vm.localConvertTimestampToDate(_vm.consumptionStatDate.start))+\" - \"+_vm._s(_vm.localConvertTimestampToDate(_vm.consumptionStatDate.end))+\"):\")])]),_vm._l((Object.entries(_vm.consumptionStats)),function(consumption,index){return _c('v-col',{key:`info`+index,staticClass:\"mt-1 pt-1\",attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('div',{staticClass:\"d-flex\"},[_vm._v(\" \"+_vm._s(_vm.$t(`tenantWizard.tenantStatistics.consumptionStats.${consumption[0]}`))+\": \"+_vm._s(consumption[1])+\" kWh \")])])})],2),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.charts'))+\" (\"+_vm._s(_vm.$t('tenantWizard.tenantStatistics.labels.flatSpecificCounters'))+\")\")]),_c('div',{key:_vm.currentSelectedTenant},[(_vm.shouldShowChart(false, 'energyCounter'))?_c('div',{staticClass:\"my-3\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.electricityCounters')))]),_c('BaseChartWrapper',{key:`energyCounter${_vm.currentSelectedTenant}`,staticClass:\"px-4 py-6 rounded-lg\",attrs:{\"chart-width\":_vm.chartDataByType('energyCounter').chartWidth,\"settings-wrapper-height\":_vm.chartDataByType('energyCounter').chartHeight,\"chart-data\":_vm.chartDataByType('energyCounter').chartData,\"settingsWrapperHeight\":_vm.chartDataByType('energyCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e(),(_vm.selectedSeriesOption === 'meterReading')?_c('div',{staticClass:\"grid-charts-wrapper\",staticStyle:{\"width\":\"100%\"}},[(_vm.chartSeriesArrays.waterCounter.length !== 0)?_c('div',{staticClass:\"my-3 mr-1\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.waterCounters')))]),_c('BaseChartWrapper',{key:`waterCounter${_vm.currentSelectedTenant}`,staticClass:\"px-4 py-4 rounded-lg\",attrs:{\"chart-width\":_vm.chartDataByType('waterCounter').chartWidth,\"settings-wrapper-height\":_vm.chartDataByType('waterCounter').chartHeight,\"chart-data\":_vm.chartDataByType('waterCounter').chartData,\"settingsWrapperHeight\":_vm.chartDataByType('waterCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e(),(_vm.chartSeriesArrays.heatingCounter.length !== 0)?_c('div',{staticClass:\"my-3 mr-1\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.heatingCounters')))]),_c('BaseChartWrapper',{key:`heatingCounter${_vm.currentSelectedTenant}`,staticClass:\"px-4 py-4 rounded-lg\",attrs:{\"chart-width\":_vm.chartDataByType('heatingCounter').chartWidth,\"settings-wrapper-height\":_vm.chartDataByType('heatingCounter').chartHeight,\"chart-data\":_vm.chartDataByType('heatingCounter').chartData,\"settingsWrapperHeight\":_vm.chartDataByType('heatingCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e()]):_vm._e()])])],1),_c('v-row',[_c('v-col',{attrs:{\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\",\"cols\":\"12\"}},[_c('h3',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.subTitles.charts'))+\" (\"+_vm._s(_vm.$t('tenantWizard.tenantStatistics.labels.overallCounters'))+\")\")]),_c('div',[(_vm.shouldShowChart(true, 'energyCounter'))?_c('div',{staticClass:\"my-3\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.electricityCounters')))]),_c('BaseChartWrapper',{staticClass:\"px-4 py-6 rounded-lg\",attrs:{\"chart-width\":_vm.overallChartDataByType('energyCounter').chartWidth,\"settings-wrapper-height\":_vm.overallChartDataByType('energyCounter').chartHeight,\"chart-data\":_vm.overallChartDataByType('energyCounter').chartData,\"settingsWrapperHeight\":_vm.overallChartDataByType('energyCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e(),(_vm.selectedSeriesOption === 'meterReading')?_c('div',{staticClass:\"grid-charts-wrapper\",staticStyle:{\"width\":\"100%\"}},[(_vm.chartSeriesArraysOverall.waterCounter.length !== 0)?_c('div',{staticClass:\"my-3 mr-1\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.waterCounters')))]),_c('BaseChartWrapper',{staticClass:\"px-4 py-4 rounded-lg\",attrs:{\"chart-width\":_vm.overallChartDataByType('waterCounter').chartWidth,\"settings-wrapper-height\":_vm.overallChartDataByType('waterCounter').chartHeight,\"chart-data\":_vm.overallChartDataByType('waterCounter').chartData,\"settingsWrapperHeight\":_vm.overallChartDataByType('waterCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e(),(_vm.chartSeriesArraysOverall.heatingCounter.length !== 0)?_c('div',{staticClass:\"my-3 mr-1\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('tenantWizard.tenantStatistics.chartText.heatingCounters')))]),_c('BaseChartWrapper',{staticClass:\"px-4 py-4 rounded-lg\",attrs:{\"chart-width\":_vm.overallChartDataByType('heatingCounter').chartWidth,\"settings-wrapper-height\":_vm.overallChartDataByType('heatingCounter').chartHeight,\"chart-data\":_vm.overallChartDataByType('heatingCounter').chartData,\"settingsWrapperHeight\":_vm.overallChartDataByType('heatingCounter').chartHeight,\"navigation-items-to-exclude\":['live', 'hour', 'day'],\"modularDefaultPeriod\":'week'}})],1):_vm._e()]):_vm._e()])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport BaseChartWrapper from '@/ui/components/devices/charts/charts/BaseChartWrapper.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { convertTimestampToDate } from '@/utils/utilsFunctions';\nimport { IMember } from '@/types/members.types';\nimport { IFlatsConfig, ICountersObject } from '@/types/wizards/tenant.types';\nimport { filterNumberFromString } from '@/utils/tenantWizardUtilsFunctions';\nimport { IMeasurements } from '@/types/measurements.types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n BaseChartWrapper,\n InfoTooltip,\n },\n})\nexport default class TenantStatistic extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @State('projects') projectState!: IProjectsState;\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n\n errorTimer: any = null;\n showTenantCommunicationStatus = false;\n tenantCommunicationStatusError = false;\n selectedSeriesOption = 'meterReading';\n currentSelectedTenant = 0;\n chartSeriesArrays: Record = {\n waterCounter: [],\n heatingCounter: [],\n energyCounter: [],\n }\n chartSeriesArraysPower: Record = {\n energyCounter: [],\n }\n chartSeriesArraysOverall: Record = {\n waterCounter: [],\n heatingCounter: [],\n energyCounter: [],\n }\n chartSeriesArraysOverallPower: Record = {\n energyCounter: [],\n }\n availableTenants: any[] = [];\n tenantModel: any = {};\n displayOverallChart = false;\n displayAllDayTariff = false;\n\n get selectionOptionsChart() {\n const powerMappingLength = this.chartSeriesArraysOverallPower.energyCounter.length ?? this.chartSeriesArraysPower.energyCounter.length ?? 0;\n return [\n { text: `${this.$t('tenantWizard.tenantStatistics.chartSelectionOptions.meterReading')} (kWh)`, value: 'meterReading' },\n ...(powerMappingLength > 0 ?\n [{ text: `${this.$t('tenantWizard.tenantStatistics.chartSelectionOptions.power')} (kW)`, value: 'power' }]\n : []\n ),\n ];\n }\n\n // enable filter again\n get isCurrentMemberAdmin() {\n return this.currentMember.role === UserRoleCode.admin;\n }\n\n get consumptionStatDate() {\n if (this.tenantState.tenant.lastPeriod === null) return null;\n if (Object.keys(this.tenantState.tenant.lastPeriod).length === 0) return null;\n return { start: this.tenantState.tenant.lastPeriod.flat_0.start, end: this.tenantState.tenant.lastPeriod.flat_0.end };\n }\n\n get consumptionStats() {\n if (this.tenantState.tenant.lastPeriod === null) return null;\n if (Object.keys(this.tenantState.tenant.lastPeriod).length === 0) return null;\n if (!this.tenantState.tenant.lastPeriod[`flat_${this.currentSelectedTenant}`]) {\n return {\n pv: 0,\n grid: 0,\n };\n }\n return {\n pv: this.tenantState.tenant.lastPeriod[`flat_${this.currentSelectedTenant}`].pv,\n grid: this.tenantState.tenant.lastPeriod[`flat_${this.currentSelectedTenant}`].grid,\n };\n }\n\n get energyPrice() {\n const currentSettings = this.tenantState.tenant.general.tariffSettings.electricity;\n const { currency } = this.tenantState.tenant.general.paymentDetails;\n if (currentSettings.allDayTariffGrid !== 0 && currentSettings.allDayTariffProduction !== 0) {\n // returns all day price of production and grid. with value, unit and text\n return {\n priceProduction: {\n value: currentSettings.allDayTariffProduction,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.productionTariff'),\n },\n priceGrid: {\n value: currentSettings.allDayTariffGrid,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.gridTariff'),\n },\n };\n } else {\n // returns high and low tariff price of production and grid. with value, unit and text\n return {\n highTariffProduction: {\n value: currentSettings.highTariffProduction,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.productionHighTariff'),\n },\n lowTariffProduction: {\n value: currentSettings.lowTariffProduction,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.productionLowTariff'),\n },\n highTariffGrid: {\n value: currentSettings.highTariffGrid,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.gridHighTariff'),\n },\n lowTariffGrid: {\n value: currentSettings.lowTariffGrid,\n unit: `${currency}/kWh`,\n text: this.$t('tenantWizard.tenantStatistics.prices.gridLowTariff'),\n },\n };\n }\n }\n\n localConvertTimestampToDate(timestamp: number) {\n return convertTimestampToDate(timestamp);\n }\n\n created() {\n const currentSettings = this.tenantState.tenant.general.tariffSettings.electricity;\n if (currentSettings.allDayTariffGrid !== 0 && currentSettings.allDayTariffProduction !== 0) {\n this.displayAllDayTariff = true;\n }\n\n // generate available tenants for v-select field (info: field is only visible for admin user)\n this.availableTenants = this.tenantState.tenant.general.flats.flatConfigurations.map((currentFlat: IFlatsConfig, index: number) => {\n return { text: currentFlat.name, value: index };\n });\n this.generateOverallChartOptions();\n }\n\n checkTenantCommunicationStatus() {\n if (this.measurements['prgEM.bErrorEM'] !== undefined) {\n this.showTenantCommunicationStatus = true;\n this.tenantCommunicationStatusError = this.measurements['prgEM.bErrorEM'] === 1;\n }\n }\n\n startErrorTimer() {\n this.errorTimer = setInterval(() => {\n // if variable is defined we can show the tenant communication status\n this.checkTenantCommunicationStatus();\n }, 60000);\n }\n\n mounted() {\n if (this.isCurrentMemberAdmin) {\n // just load first tenant inside of the list\n this.handleTenantChange();\n\n this.checkTenantCommunicationStatus();\n this.startErrorTimer();\n } else {\n // filter out all flats where user is assigned to\n const availableFlats = this.tenantState.tenant.general.flats.flatConfigurations.filter((currentFlat: IFlatsConfig) => currentFlat.mail === this.currentMember.email);\n this.availableTenants = availableFlats.map((currentFlat: IFlatsConfig, index: number) => {\n return { text: currentFlat.name, value: index };\n });\n this.handleTenantChange();\n }\n }\n\n destroyed() {\n clearInterval(this.errorTimer);\n }\n\n /**\n * Generates all series for Energy, Heating, Cold Water and Service Water Charts (flat specific)\n */\n handleTenantChange() {\n this.chartSeriesArrays = {\n waterCounter: [],\n heatingCounter: [],\n energyCounter: [],\n };\n this.chartSeriesArraysPower = {\n energyCounter: [],\n };\n const tenantCounters: any = this.tenantState.tenant.general.flats.flatConfigurations[this.currentSelectedTenant].counters;\n Object.entries(tenantCounters).forEach((value: [string, any]) => {\n // if value or counter list is null, return\n if (!value || tenantCounters[value[0]] === null) return;\n tenantCounters[value[0]].forEach((counter: any, index: number) => {\n const seriesName = counter.name ?? '';\n let unit = '';\n let key = '';\n\n if (value[0] === 'coldWaterCounter' || value[0] === 'serviceWaterCounter') {\n unit = 'm³';\n key = 'waterCounter';\n } else if (value[0] === 'heatingCounter' || value[0] === 'energyCounter' || value[0] === 'coolingCounter') {\n unit = 'kWh';\n if (value[0] === 'heatingCounter' || value[0] === 'coolingCounter') {\n key = 'heatingCounter';\n } else {\n key = 'energyCounter';\n }\n }\n\n this.chartSeriesArrays[key].push({\n agg: 'diff',\n name: seriesName,\n scaling: {\n max: 5,\n min: 0,\n },\n type: 'column',\n unit,\n var: counter.id,\n });\n\n // add power series to the chart (currently only avaliable for electricity counters)\n const counterId = counter.id;\n if (counterId.includes('prgEM.')) {\n const number = filterNumberFromString(counterId);\n this.chartSeriesArraysPower[key].push({\n agg: 'avg',\n name: seriesName,\n scaling: {\n max: null,\n min: null,\n },\n type: 'line',\n unit: 'kW',\n var: `prgEM.lrPower_E_${number}`,\n });\n }\n });\n });\n }\n\n /**\n * Generates chart options (flat specific)\n */\n chartOptionByType(type: string) {\n if (this.selectedSeriesOption === 'power') {\n return {\n name: '',\n data: {\n chartOptions: this.chartSeriesArraysPower[type],\n selectedStackingOptions: null,\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n return {\n name: '',\n data: {\n chartOptions: this.chartSeriesArrays[type],\n selectedStackingOptions: null,\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n /**\n * Generates chart (flat specific)\n */\n chartDataByType(type: string) {\n return {\n chartWidth: null,\n chartHeight: 400,\n chartData: this.chartOptionByType(type),\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n\n /**\n * generates chart options needed for the overall counters chart\n */\n generateOverallChartOptions() {\n this.chartSeriesArraysOverall = {\n waterCounter: [],\n heatingCounter: [],\n energyCounter: [],\n };\n this.chartSeriesArraysOverallPower = {\n energyCounter: [],\n };\n Object.keys(this.chartSeriesArraysOverall).forEach((key: string) => {\n let tenantCounters: any = [];\n switch (key) {\n case 'energyCounter':\n tenantCounters = this.tenantState.tenant.general.overallCounters.energyCounter ?? [];\n break;\n case 'waterCounter':\n tenantCounters = [...this.tenantState.tenant.general.overallCounters.coldWaterCounter ?? [], ...this.tenantState.tenant.general.overallCounters.serviceWaterCounter ?? []];\n break;\n case 'heatingCounter':\n tenantCounters = [...this.tenantState.tenant.general.overallCounters.heatingCounter ?? [], ...this.tenantState.tenant.general.overallCounters.coolingCounter ?? []];\n break;\n }\n tenantCounters.forEach((counter: ICountersObject) => {\n const seriesName = counter.name ?? '';\n let unit = '';\n\n if (key === 'waterCounter') {\n unit = 'm³';\n } else if (key === 'heatingCounter' || key === 'energyCounter') {\n unit = 'kWh';\n }\n\n this.chartSeriesArraysOverall[key].push({\n agg: 'diff',\n name: seriesName,\n scaling: {\n max: 30,\n min: 0,\n },\n type: 'column',\n unit,\n var: counter.id,\n });\n\n // add power series to the chart (currently only avaliable for electricity counters)\n const counterId = counter.id;\n if (counterId.includes('prgEM.')) {\n const number = filterNumberFromString(counterId);\n this.chartSeriesArraysOverallPower[key].push({\n agg: 'avg',\n name: seriesName,\n scaling: {\n max: null,\n min: null,\n },\n type: 'line',\n unit: 'kW',\n var: `prgEM.lrPower_E_${number}`,\n });\n }\n });\n });\n }\n\n /**\n * Generates chart options (flat specific)\n */\n overallChartOptionByType(type: string) {\n if (this.selectedSeriesOption === 'power') {\n return {\n name: '',\n data: {\n chartOptions: this.chartSeriesArraysOverallPower[type],\n selectedStackingOptions: null,\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n return {\n name: '',\n data: {\n chartOptions: this.chartSeriesArraysOverall[type],\n selectedStackingOptions: null,\n selectedWidth: 'full',\n type: 'chart',\n },\n };\n }\n\n /**\n * Generates chart (flat specific)\n */\n overallChartDataByType(type: string) {\n return {\n chartWidth: null,\n chartHeight: 400,\n chartData: this.overallChartOptionByType(type),\n navigationItemsToExclude: ['live', 'hour'],\n };\n }\n\n /**\n * Checks if chart should be shown. based on the amount of series in the chart\n */\n shouldShowChart(isOverall: boolean, key: any) {\n if (isOverall) {\n if (this.selectedSeriesOption === 'power') {\n return this.chartSeriesArraysOverallPower[key].length !== 0;\n } else {\n return this.chartSeriesArraysOverall[key].length !== 0;\n }\n } else {\n if (this.selectedSeriesOption === 'power') {\n return this.chartSeriesArraysPower[key].length !== 0;\n } else {\n return this.chartSeriesArrays[key].length !== 0;\n }\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantStatistic.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TenantStatistic.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TenantStatistic.vue?vue&type=template&id=e727b21a&scoped=true&\"\nimport script from \"./TenantStatistic.vue?vue&type=script&lang=ts&\"\nexport * from \"./TenantStatistic.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TenantStatistic.vue?vue&type=style&index=0&id=e727b21a&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e727b21a\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, State } from 'vuex-class';\nimport TenantWizard from '@/ui/components/wizards/tenantWizard/components/index.vue';\nimport TenantStatistic from '@/ui/components/wizards/tenantWizard/components/TenantStatistic.vue';\nimport BasicTenantModelEditor from '@/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n TenantWizard,\n BasicTenantModelEditor,\n TenantStatistic,\n LeaveConfirmationModal,\n },\n})\nexport default class InvoiceHistory extends Vue {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Action('tenantWizard/downLoadTenant') downLoadTenant!: (data: {start: number; end: number; project_id: string}) => any;\n\n invoiceHistoryItems: {startDate: number; endDate: number}[] = [];\n showLoader = false;\n showLoadingIndex = 0;\n currentPage = 1;\n numberOfPages = 0;\n\n get tableHeaders() {\n return [\n {\n text: this.$t('tenantWizard.invoiceHistory.tableHeaders.startInvoice'),\n sortable: false,\n width: '30%',\n },\n {\n text: this.$t('tenantWizard.invoiceHistory.tableHeaders.endInvoice'),\n sortable: false,\n width: '30%',\n },\n {\n text: this.$t('tenantWizard.invoiceHistory.tableHeaders.actions'),\n sortable: false,\n width: '10%',\n },\n ];\n }\n\n async created() {\n this.fillInvoiceHistoryItems();\n }\n\n async fillInvoiceHistoryItems() {\n const startDate = new Date(this.tenantState.tenant.billingSettings.start * 1000); // Multiply by 1000 to convert from seconds to milliseconds\n const startMonth = startDate.getMonth() + 1; // Months are 0-based, so add 1 to get the actual month\n const startYear = startDate.getFullYear();\n\n const endDate = new Date();\n const endMonth = endDate.getMonth() + 1;\n const endYear = endDate.getFullYear();\n\n // get difference between start and end date in months\n const monthDiff = (endYear - startYear) * 12 + (endMonth - startMonth);\n let monthMuliplicator = 1;\n let monthsToAdd = -1; // number of months to add for the end date\n\n // get multiplicator for month according to billing interval\n switch (this.tenantState.tenant.billingSettings.interval) {\n case 'Month': {\n monthMuliplicator = 1;\n monthsToAdd = -1;\n break;\n }\n case 'QuarterYear': {\n monthMuliplicator = 3;\n monthsToAdd = 1;\n break;\n }\n case 'HalfYear': {\n monthMuliplicator = 6;\n monthsToAdd = 4;\n break;\n }\n case 'Year': {\n monthMuliplicator = 12;\n monthsToAdd = 10;\n break;\n }\n }\n\n // fill invoice history items\n for (let currentIndex = 1; currentIndex <= monthDiff; currentIndex += monthMuliplicator) {\n const currentMonth = startMonth + currentIndex;\n const currentMonthModulo = currentMonth % 12;\n\n const startDateInvoiceItem = new Date(startYear + Math.floor(currentMonth / 12), currentMonthModulo - 2, 1);\n const endDateInvoiceItem = new Date(startYear + Math.floor(currentMonth / 12), currentMonthModulo + monthsToAdd, 1);\n\n const invoiceHistoryItem = {\n startDate: startDateInvoiceItem.getTime() / 1000,\n endDate: endDateInvoiceItem.getTime() / 1000,\n };\n\n // add invoice history item if end date is in the past\n if (invoiceHistoryItem.endDate < new Date().getTime() / 1000) {\n this.invoiceHistoryItems.push(invoiceHistoryItem);\n }\n }\n this.invoiceHistoryItems.reverse();\n\n this.numberOfPages = Math.ceil(this.invoiceHistoryItems.length / 10);\n }\n\n /**\n * Converts timestamp to date format (dd Month yyyy)\n * @param timestamp\n */\n convertTimestampToDate(timestamp: number) {\n const date = new Date(timestamp * 1000);\n\n // Define arrays for month names and day numbers\n const monthNames = [\n this.$t('uiComponents.months.january').toString(),\n this.$t('uiComponents.months.february').toString(),\n this.$t('uiComponents.months.march').toString(),\n this.$t('uiComponents.months.april').toString(),\n this.$t('uiComponents.months.may').toString(),\n this.$t('uiComponents.months.june').toString(),\n this.$t('uiComponents.months.july').toString(),\n this.$t('uiComponents.months.august').toString(),\n this.$t('uiComponents.months.september').toString(),\n this.$t('uiComponents.months.october').toString(),\n this.$t('uiComponents.months.november').toString(),\n this.$t('uiComponents.months.december').toString(),\n ];\n const dayNumbers = ['01', '02', '03', '04', '05', '06', '07', '08', '09'];\n\n // Get day, month, and year components\n const day = dayNumbers[date.getDate() - 1] || date.getDate().toString();\n const month = monthNames[date.getMonth()];\n const year = date.getFullYear();\n\n // Format the date string\n return `${day} ${month} ${year}`;\n }\n\n async handleDownload(item: {startDate: number; endDate: number}, index: number) {\n this.showLoader = true;\n this.showLoadingIndex = index;\n try {\n const file = await this.downLoadTenant({ start: item.startDate, end: item.endDate, project_id: this.$route.params.id });\n // is needed so no empty file is downloaded\n if (!file) {\n this.showLoader = false;\n this.showLoadingIndex = 0;\n return;\n }\n // creates link to download report\n const downloadAnchorNode = document.createElement('a');\n\n const zipBlob = new Blob([file], { type: 'application/zip' });\n // add attributes for download link\n downloadAnchorNode.setAttribute('href', URL.createObjectURL(zipBlob));\n downloadAnchorNode.setAttribute('download', 'report.zip');\n document.body.appendChild(downloadAnchorNode);\n downloadAnchorNode.click();\n downloadAnchorNode.remove();\n this.showLoader = false;\n } catch (error) {\n console.log(error);\n this.showLoader = false;\n this.showLoadingIndex = 0;\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceHistory.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InvoiceHistory.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InvoiceHistory.vue?vue&type=template&id=050deb6a&scoped=true&\"\nimport script from \"./InvoiceHistory.vue?vue&type=script&lang=ts&\"\nexport * from \"./InvoiceHistory.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"050deb6a\",\n null\n \n)\n\nexport default component.exports","\nimport { Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport FlatDetails from '@/ui/components/wizards/tenantWizard/steps/GeneralInformation/FlatsComponents/FlatDetails.vue';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport { cloneDeep } from 'lodash';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { combineHouseNumberAndStreet, downloadDocument } from '@/utils/tenantWizardUtilsFunctions';\nimport InvoiceHistory from '@/ui/components/wizards/tenantWizard/components/InvoiceHistory.vue';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { timeToMinutes } from '@/utils/utilsFunctions';\nimport { IProject } from '@/types/project.types';\nimport { IFlatsConfig, ITenantModel } from '@/types/wizards/tenant.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n FlatDetails,\n InfoTooltip,\n InvoiceHistory,\n DeleteModalForm,\n },\n})\nexport default class BasicTenantView extends mixins(Validation) {\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/projectCreationTimestamp') projectCreationTimestamp!: number;\n @Getter('members/currentMember') currentMember!: any;\n @Mutation('tenantWizard/updateTenantObject') updateTenantObject!: (data: ITenantModel) => void;\n @Mutation('tenantWizard/setWasTenantDoneState') setWasTenantDoneState!: (data: boolean) => void;\n @Action('tenantWizard/updateTenant') updateTenant!: (data: { project_id: string; tenant: ITenantModel}) => void;\n @Action('tenantWizard/downLoadTenant') downLoadTenant!: (data: {start: number; end: number; project_id: string}) => any;\n @Action('tenantWizard/deleteTenant') deleteTenant!: (project_id: string) => any;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n showLoaderSpecificDownload = false;\n tariffsValid = false;\n flatsValid = false;\n rerenderKey = true;\n tariffSettings: ITenantModel['general']['tariffSettings'] = {\n electricity: {\n lowTariffProduction: 0,\n highTariffProduction: 0,\n lowTariffGrid: 0,\n highTariffGrid: 0,\n allDayTariffGrid: 0,\n allDayTariffProduction: 0,\n residualElectricityComposition: [],\n lowTariffTimesProduction: {\n start: '00:00',\n end: '00:00',\n },\n lowTariffTimesGrid: {\n start: '00:00',\n end: '00:00',\n },\n residualElectricityText: '',\n },\n water: {\n priceServiceWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceColdWater: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceHeating: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n priceCooling: 0, // should have same currency like selected inside \"general.paymentDetails.currency\"\n },\n };\n selectedCurrency = '';\n sideCosts = [{ name: '', amount: 0 }];\n download= {\n start: '', // will contain the start date for the accounting period\n end: '', // will contain the end date for the accounting period\n };\n interval = 'Year'\n showAllDayTariffFields = false;\n\n get periodOptions() {\n return [\n { value: 'Year', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Year') },\n { value: 'HalfYear', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.HalfYear') },\n { value: 'QuarterYear', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.QuarterYear') },\n { value: 'Month', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Month') },\n { value: 'Never', text: this.$t('tenantWizard.billingAndDocumentOutput.periodOptions.Never') },\n ];\n }\n\n /* check if time for production tariffs is valid */\n get productionTariffsValid() {\n let valid = true;\n const values: any = this.tariffSettings.electricity.lowTariffTimesProduction;\n valid = timeToMinutes(values.start) < timeToMinutes(values.end);\n if (!valid) return this.$t('modals.manageReport.errorMessages.timeError');\n return valid;\n }\n\n /* check if time for grid tariffs is valid */\n get gridTariffsValid() {\n let valid = true;\n const values: any = this.tariffSettings.electricity.lowTariffTimesGrid;\n valid = timeToMinutes(values.start) < timeToMinutes(values.end);\n if (!valid) return this.$t('modals.manageReport.errorMessages.timeError');\n return valid;\n }\n\n handleTariffSelectionChange() {\n if (!this.showAllDayTariffFields) {\n // clear all day tariff fields\n this.tariffSettings.electricity.allDayTariffGrid = 0;\n this.tariffSettings.electricity.allDayTariffProduction = 0;\n } else {\n // clear high/low tariff fields\n this.tariffSettings.electricity.lowTariffTimesProduction.start = '00:00';\n this.tariffSettings.electricity.lowTariffTimesProduction.end = '00:00';\n this.tariffSettings.electricity.lowTariffTimesGrid.start = '00:00';\n this.tariffSettings.electricity.lowTariffTimesGrid.end = '00:00';\n this.tariffSettings.electricity.lowTariffGrid = 0;\n this.tariffSettings.electricity.highTariffGrid = 0;\n this.tariffSettings.electricity.lowTariffProduction = 0;\n this.tariffSettings.electricity.highTariffProduction = 0;\n }\n this.$nextTick(() => {\n this.validate();\n });\n }\n\n get isCurrentMemberAdmin() {\n return this.currentMember.role === UserRoleCode.admin;\n }\n\n // contains current date string to set max date for calendar\n get maxDateCalendar() {\n return new Date().toDateString();\n }\n\n // checks if the download dates are valid\n get areDownloadDatesValid() {\n const start = new Date(this.download.start).getTime() / 1000;\n const end = new Date(this.download.end).getTime() / 1000;\n return end > start;\n }\n\n get areDownloadFieldsFilled() {\n if (this.download.start !== '' && this.download.end !== '' && this.download.start !== null && this.download.end !== null) {\n return true;\n }\n return false;\n }\n\n async handleDownload() {\n this.showLoaderSpecificDownload = true;\n try {\n await downloadDocument(this.download, this.$route.params.id);\n this.showLoaderSpecificDownload = false;\n } catch (error) {\n console.log(error);\n this.showLoaderSpecificDownload = false;\n }\n }\n\n created() {\n this.tariffSettings = this.tenantState.tenant.general.tariffSettings;\n this.sideCosts = this.tenantState.tenant.general.sideCosts;\n this.selectedCurrency = this.tenantState.tenant.general.paymentDetails.currency;\n this.interval = this.tenantState.tenant.billingSettings.interval;\n\n // if one of the all day tariff fields is not 0, show the all day tariff fields\n if (this.tariffSettings.electricity.allDayTariffGrid !== 0 || this.tariffSettings.electricity.allDayTariffProduction !== 0) {\n this.showAllDayTariffFields = true;\n }\n }\n\n mounted() {\n this.validate();\n }\n\n /**\n * Handles the flat valid update event\n */\n handleFlatValidUpdate(value: { status: boolean }) {\n this.flatsValid = value.status;\n }\n\n addSideCost() {\n this.sideCosts.push({ name: '', amount: 0 });\n }\n\n removeSideCost(index: number) {\n this.sideCosts.splice(index, 1);\n }\n\n /**\n * Saves the tariff settings inside the tenant model\n */\n async saveTariffSettings() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.tariffSettings = this.tariffSettings;\n tenantCopy.general.sideCosts = this.sideCosts;\n tenantCopy.billingSettings.interval = (this.interval as 'Year' | 'HalfYear' | 'QuarterYear' | 'Month');\n this.updateTenantObject(tenantCopy);\n await this.updateTenantModel();\n }\n\n /**\n * Handles the input event inside the FlatDetails component\n */\n handleInput(val: { flats: IFlatsConfig[] }) {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = val.flats;\n this.updateTenantObject(tenantCopy);\n this.$emit('tenantModelUpdated', true);\n }\n\n /**\n * Updates the tenant model in the project meta\n */\n async updateTenantModel() {\n const tenantCopy = cloneDeep(this.tenantState.tenant);\n tenantCopy.general.flats.flatConfigurations = combineHouseNumberAndStreet(tenantCopy.general.flats.flatConfigurations);\n await this.updateTenant({ project_id: this.$route.params.id, tenant: tenantCopy });\n this.$emit('tenantModelUpdated', false);\n }\n\n validate() {\n (this.$refs.tariffForm as any).validate();\n }\n\n async handleUpdateProject() {\n const projectCopy = { ...this.project };\n projectCopy.meta.wasTenantWizardCompleted = false;\n await this.updateProject(projectCopy);\n }\n\n async handleDeleteTenant() {\n this.setWasTenantDoneState(false);\n await this.deleteTenant(this.$route.params.id);\n await this.handleUpdateProject();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicTenantModelEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BasicTenantModelEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BasicTenantModelEditor.vue?vue&type=template&id=9f8ac41c&scoped=true&\"\nimport script from \"./BasicTenantModelEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./BasicTenantModelEditor.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BasicTenantModelEditor.vue?vue&type=style&index=0&id=9f8ac41c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9f8ac41c\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport TenantWizard from '@/ui/components/wizards/tenantWizard/components/index.vue';\nimport BasicTenantModelEditor from '@/ui/components/wizards/tenantWizard/components/BasicTenantModelEditor.vue';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport TenantStatistic from '@/ui/components/wizards/tenantWizard/components/TenantStatistic.vue';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { NavigationGuardNext, Route } from 'vue-router';\nimport { IProject } from '@/types/project.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IMember } from '@/types/members.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n@Component({\n components: {\n TenantWizard,\n BasicTenantModelEditor,\n TenantStatistic,\n LeaveConfirmationModal,\n },\n})\nexport default class Tenant extends Vue {\n @State('tenantWizard') wizardState!: ITenantWizardState;\n @State('app') appState!: IAppState;\n @Getter('projects/project') project!: IProject;\n @Getter('members/currentMember') currentMember!: IMember;\n @Mutation('tenantWizard/setWasTenantDoneState') setWasTenantDoneState!: (data: boolean) => void;\n @Mutation('tenantWizard/resetPageStepIndex') resetPageStepIndex!: () => void;\n @Mutation('tenantWizard/reset') reset!: () => void;\n @Action('tenantWizard/loadTenant') loadTenant!: (project_id: string) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('members/fetchMember') fetchMember!: (payload: { memberId: string; projectId: string }) => Promise;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('devices/fetchDevices') fetchDevices!: (payload: any) => Promise;\n\n currentViewIndex= 0;\n showLoader = true;\n\n /**\n * Returns list of all Navigation Buttons for the User\n */\n get navigationOptions() {\n const items = [\n {\n id: 'basicModelEditor',\n title: this.$t('tenantWizard.basicTenantModelEditor.title') as string,\n component: BasicTenantModelEditor,\n },\n {\n id: 'tenantStatistic',\n title: this.$t('tenantWizard.tenantStatistics.title') as string,\n component: TenantStatistic,\n },\n ];\n return items;\n }\n\n get user() {\n return this.appState.user;\n }\n\n // if this value is true, then we show BasicTenantModelEditor else we show TenantWizard\n get wasTenantDone(): boolean {\n return this.wizardState.wasTenantDone;\n }\n\n get wasTenantRestarted(): boolean {\n return this.wizardState.wasTenantRestarted;\n }\n\n wasModelUpdated = false;\n\n async created() {\n // show loader\n this.setProjectLoader(true);\n this.showLoader = true;\n\n // load/reset data\n this.reset();\n await Promise.allSettled([\n this.fetchMeasurements(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n this.fetchMember({ memberId: this.user.id, projectId: this.$route.params.id }),\n this.loadTenant(this.$route.params.id),\n this.fetchDevices({ projectId: this.$route.params.id }),\n this.fetchRooms(this.$route.params.id),\n ]);\n // disbale loader\n this.showLoader = false;\n this.setProjectLoader(false);\n // check if tenant was done (if yes we show basic editor, if not we show wizard)\n // if tenant was done, we also check if the billing settings are set (for backwards compatibility) or if the wizard was completed is in the project meta\n if (this.wizardState.tenant.billingSettings.mail !== '' || this.project.meta.wasTenantWizardCompleted === true) {\n this.setWasTenantDoneState(true);\n } else {\n this.setWasTenantDoneState(false);\n }\n this.currentViewIndex = 0;\n }\n\n tenantModelUpdated(value: boolean) {\n this.wasModelUpdated = value;\n }\n\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n if (this.wizardState.wasTenantDone) {\n // dont show confirmation modal if we are in stats view\n if (this.currentViewIndex === 1) next();\n // dont show confirmation modal if model wasnt updated inside BasicTenantModelEditor\n if (!this.wasModelUpdated) next();\n }\n const lastStep = this.wizardState.currentStep;\n this.resetPageStepIndex();\n if (lastStep === 5) {\n next();\n }\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction(to, next);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tenant.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tenant.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Tenant.vue?vue&type=template&id=f5511772&scoped=true&\"\nimport script from \"./Tenant.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tenant.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tenant.vue?vue&type=style&index=0&id=f5511772&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f5511772\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary\"},[(!_vm.projectLoader)?_c('v-container',{staticClass:\"navigation-list pb-0 mb-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticStyle:{\"margin-top\":\"-12px\"}},_vm._l((_vm.navigationItems),function(item,index){return _c('v-col',{key:index,attrs:{\"lg\":\"3\",\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-card',{class:['navigation-card', { 'navigation-card__active': _vm.currentComponent === item.component }],attrs:{\"elevation\":\"1\",\"flat\":\"\"},on:{\"click\":function($event){_vm.currentComponent = item.component}}},[_c('div',{staticClass:\"navigation-card-title\"},[_vm._v(_vm._s(_vm.$t(item.locale)))])])],1)}),1),_c('div',{staticClass:\"lynus-divider\"}),_c(_vm.currentComponent,{tag:\"component\"})],1):_vm._e(),(_vm.projectLoader)?_c('div',{staticClass:\"project-index__loader\"},[_c('CircleSpinner',{attrs:{\"size\":80,\"color\":\"accent\"}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-btn',{staticClass:\"mt-3\",attrs:{\"color\":\"accent\"},on:{\"click\":_vm.handleShowSolarCalculator}},[_vm._v(\" \"+_vm._s(_vm.showSolarCalculator ? _vm.$t('partners.partnerWorkspace.pages.solarCalculator.close') : _vm.$t('partners.partnerWorkspace.pages.solarCalculator.show'))+\" \")]),(_vm.showSolarCalculator)?_c('div',{staticClass:\"mt-3\"},[_c('iframe',{staticClass:\"i-frame\",attrs:{\"id\":\"solarCalculatorIframe\",\"frameborder\":\"0\",\"src\":\"https://solarrechner.lynus.io/?save_lead=false\"}})]):_vm._e(),(!_vm.showSolarCalculator)?_c('div',[_c('v-data-table',{staticClass:\"elevation-0 primary solar-calculator-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.solarCalculationList,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.created_at\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.getFormatedDate(item.created_at))+\" \")]}},{key:\"item.fileData\",fn:function({ item }){return [_c('v-btn',{staticClass:\"accent\",on:{\"click\":function($event){return _vm.openResult(item)}}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.solarCalculator.showResult'))+\" \")])]}}],null,false,495069744)})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { IPartnerWorkspace, ISolarCalculationTableItem } from '@/types/partnerWorkspace.types';\nimport { formatDate } from '@/utils/utilsFunctions';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\n\n@Component({\n components: {},\n})\nexport default class SolarCalculator extends Vue {\n @State('app') appState!: IAppState;\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/fetchWorkspaces') fetchWorkspaces!: () => Promise;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n showSolarCalculator = false;\n solarCalculationList: ISolarCalculationTableItem[] = [];\n newSolarCalculatorId = '';\n\n get headers() {\n return [\n {\n text: this.$t('partners.partnerWorkspace.pages.solarCalculator.tableHeaders.project_name'),\n value: 'name',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.solarCalculator.tableHeaders.created_at'),\n value: 'created_at',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.solarCalculator.tableHeaders.created_by'),\n value: 'created_by',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.solarCalculator.tableHeaders.calculatorResult'),\n value: 'fileData',\n sortable: false,\n width: '25%',\n },\n ];\n }\n\n get user() {\n return this.appState.user;\n }\n\n /**\n * Open the result of the solar calculator in a new tab\n */\n openResult(item: ISolarCalculationTableItem) {\n window.open(`https://solarrechner.lynus.io/results/${item.solarcalculator_id}`);\n }\n\n async handleShowSolarCalculator() {\n await this.fetchWorkspaces();\n this.showSolarCalculator = !this.showSolarCalculator;\n }\n\n /**\n * Is triggered when the user is downloading the pdf inside the solar calculator\n */\n messageEvent(event: MessageEvent) {\n if (!event.data) return;\n // when user downloads the pdf inside the iframe we get the id we recieve the id of the new solar calculator result\n if (event.data.type === 'pdfCreated') {\n this.newSolarCalculatorId = event.data.id;\n const newSolarResult = {\n name: event.data.name,\n created_at: new Date().toISOString(),\n created_by: `${this.user.first_name} ${this.user.last_name}`,\n solarcalculator_id: this.newSolarCalculatorId,\n };\n this.solarCalculationList.push(newSolarResult);\n const workspaceCopy = { ...this.workspace };\n this.workspace.meta.solar_calculation_results = this.solarCalculationList;\n\n this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: false });\n this.newSolarCalculatorId = '';\n }\n }\n\n getFormatedDate(date: string) {\n let currentDate: Date | string = new Date(date);\n currentDate = formatDate(currentDate);\n return currentDate;\n }\n\n created() {\n window.addEventListener('message', this.messageEvent, false);\n if (this.workspace.meta.solar_calculation_results) {\n this.solarCalculationList = this.workspace.meta.solar_calculation_results;\n }\n }\n\n beforeDestroy() {\n window.removeEventListener('message', this.messageEvent);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolarCalculator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SolarCalculator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SolarCalculator.vue?vue&type=template&id=07cfe2dd&scoped=true&\"\nimport script from \"./SolarCalculator.vue?vue&type=script&lang=ts&\"\nexport * from \"./SolarCalculator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SolarCalculator.vue?vue&type=style&index=0&id=07cfe2dd&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07cfe2dd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-2\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.partnerInformation.title')))]),_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required, _vm.rules.counter],\"label\":_vm.$t('modals.createPartnerProject.labels.name'),\"counter\":30,\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.project.name),callback:function ($$v) {_vm.$set(_vm.project, \"name\", $$v)},expression:\"project.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.phoneNumber'),\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.project.meta.phone_number),callback:function ($$v) {_vm.$set(_vm.project.meta, \"phone_number\", $$v)},expression:\"project.meta.phone_number\"}}),_c('v-textarea',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.notes'),\"color\":\"accent\",\"outlined\":\"\",\"no-resize\":\"\"},model:{value:(_vm.project.meta.description),callback:function ($$v) {_vm.$set(_vm.project.meta, \"description\", $$v)},expression:\"project.meta.description\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"lg\":\"6\",\"md\":\"12\",\"sm\":\"12\"}},[_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper-partner\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field-partner\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.general.select'),\"hide-details\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\"},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"elevation\":\"1\"},on:{\"click\":_vm.handleFileUpload}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.select')))])])],1),_c('div',{staticStyle:{\"margin-top\":\"30px\"}},[_c('div',[_c('v-autocomplete',{attrs:{\"items\":_vm.placesArr,\"search-input\":_vm.searchPlaces,\"clearable\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"hide-no-data\":\"\",\"no-filter\":\"\",\"hide-selected\":\"\",\"item-text\":\"display_name\",\"item-value\":\"coordinates\",\"return-object\":\"\",\"rules\":[_vm.rules.required],\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.address')},on:{\"update:searchInput\":function($event){_vm.searchPlaces=$event},\"update:search-input\":function($event){_vm.searchPlaces=$event}},model:{value:(_vm.location),callback:function ($$v) {_vm.location=$$v},expression:\"location\"}})],1),_c('v-select',{attrs:{\"value\":_vm.project.meta.type,\"items\":_vm.projectTypes,\"item-value\":\"value\",\"item-text\":\"text\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.projectType')},model:{value:(_vm.project.meta.type),callback:function ($$v) {_vm.$set(_vm.project.meta, \"type\", $$v)},expression:\"project.meta.type\"}})],1)])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"pt-0 mt-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('h3',{staticClass:\"py-2\"},[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.partnerInformation.subTitles.trainedWorkers')))]),_c('ManageWorker',{on:{\"addWorker\":_vm.handleAddWorker}}),_c('v-data-table',{staticClass:\"elevation-0 solar-calculator-table\",staticStyle:{\"background-color\":\"transparent\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.project.meta.workers,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.name\",fn:function({ item }){return [_c('div',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item.actions\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex\"},[_c('ManageWorker',{attrs:{\"handleAsEdit\":true,\"worker\":item},on:{\"editWorker\":_vm.handleEditWorker}}),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleDeleteWorker(item)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1)],1)]}}])})],1)],1),_c('v-row',[_c('v-col',[_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('v-btn',{staticClass:\"lynus-small-btn mt-4\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.valid},on:{\"click\":_vm.handleUpdatePartnerWorkspace}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")]),_c('DeleteModalForm',{attrs:{\"deletedItemName\":_vm.project.name},on:{\"deleteHandler\":_vm.handleDelete}},[_c('v-btn',{staticClass:\"lynus-small-btn mt-4\",attrs:{\"color\":\"error\"}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.partnerInformation.deleteProject'))+\" \")])],1)],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport LocationService from '@/services/LocationService';\nimport { IWeatherLocation, IGetLocationWithDelay } from '@/types/app.types';\nimport { IPartnerWorkspace, IWorker } from '@/types/partnerWorkspace.types';\nimport { Validation } from '@/ui/mixins/validation';\nimport { debounce } from 'lodash';\nimport { mixins } from 'vue-class-component';\nimport { Component, Watch } from 'vue-property-decorator';\nimport ManageWorker from '@/ui/components/modals/Partner/ManageWorker.vue';\nimport { formatIsoDate } from '@/utils/utilsFunctions';\nimport { Action, Getter } from 'vuex-class';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\n\n@Component({\n methods: { formatIsoDate },\n components: {\n ManageWorker,\n DeleteModalForm,\n },\n})\nexport default class PartnerInformation extends mixins(Validation) {\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n @Action('partnerWorkspaces/deleteWorkspace') deleteWorkspace!: (id: string) => Promise;\n @Action('app/postAsset') postAsset!: (asset: any) => Promise;\n\n valid = false;\n project: IPartnerWorkspace = {\n name: 'Partner 1',\n meta: {\n phone_number: '',\n description: '',\n logo: '',\n location: {\n display_name: '',\n lat: '0',\n lon: '0',\n },\n type: '',\n workers: [],\n tasks: [],\n offers: [],\n documentation: [],\n solar_calculation_results: [],\n },\n id: '',\n created_at: '',\n };\n\n headers = [\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.name'),\n value: 'name',\n sortable: false,\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.email'),\n value: 'email',\n sortable: false,\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.actions'),\n value: 'actions',\n sortable: false,\n },\n ];\n\n get projectTypes() {\n return [\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.efh'), value: 'efh' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.mfh'), value: 'mfh' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.ac'), value: 'ac' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.dc'), value: 'dc' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.business'), value: 'business' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.industry'), value: 'industry' },\n ];\n }\n\n // search location start\n location: IWeatherLocation | null = null;\n searchPlaces: string | null = null;\n placesArr: IWeatherLocation[] = [];\n getLocationWithDelay: IGetLocationWithDelay | null = null;\n\n @Watch('searchPlaces')\n async onSearchPlaces(val: string | null) {\n const isEqualToSaved = this.project?.meta?.location?.display_name === val;\n if (val && val.length > 2 && !isEqualToSaved) {\n this.getLocationWithDelay?.(val);\n }\n }\n\n setLocation(location: IWeatherLocation) {\n this.location = { ...location };\n this.placesArr.push({ ...location });\n }\n // search location end\n\n // file upload start\n fileObject = { name: '' };\n\n /**\n * Upload file and update current project\n */\n async handleFileUpload() {\n if (this.fileObject) {\n if (this.fileObject.name.lastIndexOf('.') <= 0) {\n return;\n }\n // upload file\n const result = await this.postAsset(this.fileObject);\n if (result) {\n // save asset id in project\n this.project.meta.logo = result;\n }\n }\n }\n // file upload end\n\n handleDeleteWorker(worker: IWorker) {\n const index = this.project.meta.workers?.findIndex((w: IWorker) => w.id === worker.id);\n if (index !== undefined && index !== -1) {\n this.project.meta.workers?.splice(index, 1);\n }\n }\n\n handleAddWorker(worker: IWorker) {\n this.project.meta.workers?.push(worker);\n }\n\n handleEditWorker(worker: IWorker) {\n const index = this.project.meta.workers?.findIndex((w: IWorker) => w.id === worker.id);\n if (index !== undefined && index !== -1) {\n this.project.meta.workers?.splice(index, 1, worker);\n }\n }\n\n async handleDelete() {\n this.deleteWorkspace(this.project.id);\n this.$router.push({ path: '/partner-workspace' });\n }\n\n async handleUpdatePartnerWorkspace() {\n const project = { ...this.project };\n if (this.location) project.meta.location = this.location;\n await this.updateWorkspace({ project_id: this.project.id, workspace: this.project, showMessage: true });\n }\n\n created() {\n if (this.project) {\n this.project = this.workspace;\n // set location if already saved\n if (this.project.meta?.location) this.setLocation(this.project.meta?.location);\n }\n // fetch location with 1sec delay\n this.getLocationWithDelay = debounce(async (place) => {\n this.placesArr = await LocationService.fetchLocations(place);\n }, 1000);\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerInformation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerInformation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartnerInformation.vue?vue&type=template&id=7b6d600c&\"\nimport script from \"./PartnerInformation.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartnerInformation.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PartnerInformation.vue?vue&type=style&index=0&id=7b6d600c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-2\"},[_c('UploadFileModal',{on:{\"addDocument\":_vm.addDocument}}),_c('v-data-table',{staticClass:\"elevation-0 primary\",attrs:{\"headers\":_vm.headers,\"items\":_vm.documents,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.created_at\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.getFormatedDate(item.created_at))+\" \")]}},{key:\"item.file_id\",fn:function({ item }){return [_c('v-btn',{staticClass:\"lynus-small-btn ml-2\",attrs:{\"elevation\":\"0\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.downloadDocument(`https://static.lynus.io/assets/${item.file_id}`)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.open'))+\" \")]),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteDocument(item)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"800\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"mt-1\",attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.fileupload.openButton'))+\" \")])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.fileupload.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"px-1 py-1\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.fileupload.name'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.required],\"maxLength\":\"30\"},model:{value:(_vm.fileName),callback:function ($$v) {_vm.fileName=$$v},expression:\"fileName\"}})],1),_c('v-col',{staticClass:\"px-1 py-1\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper-partner\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field-partner\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"accept\":\".pdf,.txt,.jpg,.jpeg,.png\",\"label\":_vm.$t('uiComponents.settings.general.select'),\"hide-details\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\"},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}}),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\",\"elevation\":\"1\"},on:{\"click\":_vm.handleFileUpload}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.select')))])])],1)]),_c('v-col',{staticClass:\"px-1 py-1\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"disabled\":!_vm.valid || !_vm.fileSelected,\"color\":\"accent\"},on:{\"click\":_vm.handleCreate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.save'))+\" \")])],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { IAppState } from '@/store/modules/app/types';\n\n@Component({\n components: {\n ModalWindow,\n },\n})\nexport default class ManageOffers extends mixins(Validation) {\n @State('app') appState!: IAppState;\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n @Action('app/postAsset') postAsset!: (asset: any) => Promise;\n\n valid = false;\n fileName = '';\n assetId = '';\n fileSelected = false;\n\n get fullName() {\n return `${this.appState.user.first_name} ${this.appState.user.last_name}`;\n }\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n async onDialogStatusChange(status: boolean) {\n if (status) {\n await this.$nextTick();\n this.validate();\n } else {\n this.fileName = '';\n this.assetId = '';\n this.fileObject = { name: '' };\n }\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n // file upload start\n fileObject = { name: '' };\n\n /**\n * Upload file and update current project\n */\n async handleFileUpload() {\n if (this.fileObject) {\n if (this.fileObject.name.lastIndexOf('.') <= 0) {\n return;\n }\n // upload file\n const result = await this.postAsset(this.fileObject);\n if (result) {\n // save asset id in project\n this.assetId = result;\n this.fileSelected = true;\n }\n }\n }\n // file upload end\n\n handleCreate() {\n this.$emit('addDocument', { name: this.fileName, file_id: this.assetId, upload_by: this.fullName, created_at: new Date().toISOString() });\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadFileModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UploadFileModal.vue?vue&type=template&id=fe1bdfc8&\"\nimport script from \"./UploadFileModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./UploadFileModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UploadFileModal.vue?vue&type=style&index=0&id=fe1bdfc8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport UploadFileModal from '@/ui/components/modals/Partner/UploadFileModal.vue';\nimport { IFile, IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { Getter, Action } from 'vuex-class';\nimport { formatDate } from '@/utils/utilsFunctions';\n\n@Component({\n methods: { formatDate },\n components: {\n UploadFileModal,\n },\n})\nexport default class Offer extends Vue {\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n get documents() {\n return this.workspace.meta?.offers || [];\n }\n\n get headers() {\n return [\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.name'),\n value: 'name',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.created_at'),\n value: 'created_at',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.upload_by'),\n value: 'upload_by',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.file'),\n value: 'file_id',\n sortable: false,\n width: '25%',\n },\n ];\n }\n\n deleteDocument(document: IFile) {\n if (!this.workspace.meta.offers) {\n return;\n }\n this.workspace.meta.offers = this.workspace.meta.offers.filter((item: IFile) => item.file_id !== document.file_id);\n this.updateWorkspace({ project_id: this.workspace.id, workspace: this.workspace, showMessage: true });\n }\n\n downloadDocument(url: string) {\n window.open(url, '_blank');\n }\n\n getFormatedDate(date: string) {\n let currentDate: Date | string = new Date(date);\n currentDate = formatDate(currentDate);\n return currentDate;\n }\n\n addDocument(offer: IFile) {\n const workspaceCopy = { ...this.workspace };\n if (!workspaceCopy.meta.offers) {\n workspaceCopy.meta.offers = [];\n }\n workspaceCopy.meta.offers.push(offer);\n this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: true });\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Offer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Offer.vue?vue&type=template&id=095b811a&scoped=true&\"\nimport script from \"./Offer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Offer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"095b811a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-4\",staticStyle:{\"height\":\"70vh\"}},[(!_vm.showLoading && !_vm.showNoProjectConnected && !_vm.userNotAdmin && !_vm.showUserNotInProject)?_c('div',[_c('div',[_c('v-autocomplete',{staticClass:\"mb-8\",attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"search-input\":_vm.search,\"clearable\":\"\",\"hide-no-data\":\"\",\"item-text\":\"email\",\"item-value\":\"email\",\"color\":\"blue\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.permissions.searchFieldLabel'),\"hide-details\":\"\"},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"blur\":_vm.clearItems},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}},{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}}],null,false,2653870012),model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('div',{staticClass:\"mt-2\"},[_c('v-data-table',{staticClass:\"elevation-0 transparent leads-table\",attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.tableItems,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.name\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}},{key:\"item.role\",fn:function({ item }){return [_c('v-select',{staticStyle:{\"width\":\"50%\"},attrs:{\"items\":_vm.availableMemberRoles,\"color\":\"accent\",\"outlined\":\"\",\"dense\":\"\",\"hide-selected\":\"\",\"hide-details\":\"\",\"disabled\":item.origin.id === _vm.user.id},on:{\"change\":function($event){return _vm.onRoleChange($event, item.origin)}},model:{value:(item.role),callback:function ($$v) {_vm.$set(item, \"role\", $$v)},expression:\"item.role\"}})]}},{key:\"item.notification\",fn:function({ item }){return [(_vm.showMembersNotificationCheckbox(item.email))?_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.membersNotificationMap[item.email],\"color\":\"blue\",\"hide-details\":\"\"},nativeOn:{\"!click\":function($event){return _vm.handleUpdateRules($event, item.email)}}}):_vm._e()]}},{key:\"item.actions\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex\"},[(item.origin.id !== _vm.user.id)?_c('v-btn',{staticClass:\"mr-1\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteMember(item)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1):_vm._e(),(item.role !== _vm.UserRoleCode.admin && item.origin.id !== _vm.user.id)?_c('ManageCollectionsModal',{staticClass:\"ml-2\",attrs:{\"memberObject\":item.origin,\"useCustomProjectId\":_vm.connectedProjectId}}):_vm._e()],1)]}}],null,false,2480004785)})],1)]):_vm._e(),(_vm.showLoading && !_vm.showNoProjectConnected && !_vm.userNotAdmin)?_c('div',{staticClass:\"d-flex flex-column justify-center align-center fill-height\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":80}}),_c('div',{staticClass:\"mt-2\"},[_vm._v(_vm._s(_vm.loadingText))])],1):_vm._e(),(_vm.showNoProjectConnected && !_vm.userNotAdmin)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.permissions.noProjectConnected')))])]):_vm._e(),(_vm.userNotAdmin)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.permissions.userNotAdmin')))])]):_vm._e(),(_vm.showUserNotInProject)?_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.connectWithProject.userNotFound')))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport LynusPopup from '@/ui/components/components/LynusPopup.vue';\nimport UserService from '@/services/UserService';\nimport { IFetchPermissionUserResponse } from '@/types/common.types';\nimport { IMember } from '@/types/members.types';\nimport { UserRoleCode, checkProtocolAccessList } from '@/utils/userRoles';\nimport { defaultRoomIdObject, addDefaultRoomToUser, getIsMemberInRulesAsRecipient, addMemberToRuleActions, deleteRecipientFromRules } from '@/utils/membersUtils';\nimport { IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IRoom } from '@/types/rooms.types';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { IRule } from '@/types/rules.types';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { cloneDeep, has } from 'lodash';\nimport ManageCollectionsModal from '@/ui/components/components/ManageCollectionsAccessModal.vue';\nimport { IAppState } from '@/store/modules/app/types';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { IProject, IProjectConnectivity } from '@/types/project.types';\n\n@Component({\n components: {\n LynusPopup,\n ManageCollectionsModal,\n CircleSpinner,\n },\n computed: {\n checkProtocolAccessList: () => checkProtocolAccessList,\n UserRoleCode: () => UserRoleCode,\n },\n})\nexport default class Permissions extends Vue {\n @State('app') appState!: IAppState;\n @State('rules') rulesState!: IRulesState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('members/members') members!: IMember[];\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Getter('partnerWorkspaces/workspaceById') workspaceById!: (id: string) => any;\n @Getter('projects/projects') projects!: IProject[];\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('members/createMember') createMember!: (data: {member: IMember; showMessage: boolean}) => Promise;\n @Action('members/updateMember') updateMember!: (m: IMember) => Promise;\n @Action('members/deleteMember') deleteMember!: (m: IMember) => Promise;\n @Action('projects/loadProject') loadProject!: (projectId: string) => Promise;\n @Action('devices/fetchDevices') fetchDevices!: () => Promise;\n @Action('mpc/fetchMPCListByProject') fetchMPCListByProject!: () => Promise;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => any;\n @Action('rules/loadRules') loadRules!: (project_id: string) => Promise;\n\n // User Search\n model = null;\n search = '';\n items: IFetchPermissionUserResponse[] = [];\n loading = false;\n selectedUserObject: IMember | null = null;\n conModel: IProjectConnectivity = {\n actions: [],\n enabled: false,\n };\n showLoading = false;\n loadingText = '';\n showNoProjectConnected = false;\n showUserNotInProject = false;\n userNotAdmin = false;\n\n @Watch('model')\n async onSelected(val: IMember | null) {\n if (val === null) return;\n\n // use the first items because there will always\n // only be one result\n const newMember = await this.createMember({ member: this.items[0] as any, showMessage: true });\n if (newMember !== null) {\n this.handleAddDefaultRooms(UserRoleCode.readOnly, newMember);\n }\n\n // clear the autocomplete\n this.model = null;\n this.items = [];\n this.search = '';\n }\n\n @Watch('search')\n async fetchUsers(val?: string) {\n if (this.loading || val == null) return;\n if (!this.isEmailValid(val)) {\n this.items = [];\n return;\n }\n this.loading = true;\n try {\n this.items = await UserService.fetchUserByEmail(val);\n } catch (e) {\n // this.setReport({ type: 'error', message: e.message, value: true });\n } finally {\n this.loading = false;\n }\n }\n\n // clear items @blur, otherwise it will still show\n // the old result when focusing the autocomplete\n clearItems() {\n this.items = [];\n this.search = '';\n }\n\n /**\n * Validates email\n * @param {string} s email\n */\n isEmailValid(s: string): boolean {\n // https://stackoverflow.com/a/574698\n if (s.length < 3 || s.length > 254) return false;\n\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(s.toLowerCase());\n }\n // end user search\n\n // Table\n get connectedProjectId() {\n return this.workspace.meta?.project_id ?? '';\n }\n\n get availableMemberRoles() {\n return [\n { text: 'Admin', value: UserRoleCode.admin },\n { text: 'User', value: UserRoleCode.user },\n { text: 'Readonly', value: UserRoleCode.readOnly },\n ];\n }\n\n get tableHeaders() {\n return [\n {\n text: this.$t('uiComponents.settings.permissions.table.name'),\n value: 'name',\n width: '25%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.email'),\n value: 'email',\n width: '25%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.userRole'),\n value: 'role',\n width: '30%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.notification'),\n value: 'notification',\n width: '10%',\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.actions'),\n value: 'actions',\n width: '10%',\n sortable: false,\n },\n ];\n }\n\n get tableItems() {\n if (this.connectedProjectId === '') {\n return [];\n }\n return this.members.map((member: IMember) => {\n return {\n ...member,\n notification: false,\n origin: member,\n };\n }).filter((member: IMember) => !checkProtocolAccessList.includes(member.email));\n }\n\n get project() {\n return this.projectsState.project;\n }\n\n get rulesList() {\n return this.rulesState.rulesList;\n }\n\n get membersNotificationMap() {\n return this.members.reduce((acc: Record, m: IMember) => {\n return { ...acc, [m.email]: getIsMemberInRulesAsRecipient(m, this.rulesList, this.conModel) };\n }, {});\n }\n get rulesWithEmailAction(): any {\n return this.rulesState.rulesList.map((rule: IRule) => {\n if (rule.actions.some((action) => action.type === 'email')) {\n return rule;\n } else {\n return undefined;\n }\n }).filter((rule) => rule !== undefined);\n }\n get rulesWithNoMailAction() {\n return this.rulesState.rulesList.map((rule: IRule) => {\n if (!rule.actions.some((action) => action.type === 'email')) {\n return rule;\n } else {\n return undefined;\n }\n }).filter((rule) => rule !== undefined);\n }\n get notActiveRules() {\n return this.rulesState.rulesList.filter((rule: IRule) => !rule.active);\n }\n\n get user() {\n return this.appState.user;\n }\n\n get defaultRoomIdObject() {\n return defaultRoomIdObject(this.rooms);\n }\n\n showMembersNotificationCheckbox(key: string) {\n return has(this.membersNotificationMap, key);\n }\n\n /**\n * Adds or removes member from all rules\n */\n async handleUpdateRules(event: any, email: string) {\n event.stopPropagation();\n event.preventDefault();\n this.showLoading = true;\n this.loadingText = this.$t('uiComponents.settings.permissions.notificationsGetUpdated') as string;\n const hasEmail = has(this.membersNotificationMap, email);\n if (hasEmail && this.membersNotificationMap[email]) {\n await deleteRecipientFromRules(email, this.connectedProjectId, this.rulesWithEmailAction, this.conModel);\n } else if (hasEmail && !this.membersNotificationMap[email]) {\n await addMemberToRuleActions(email, this.connectedProjectId, this.rulesWithEmailAction, this.rulesWithNoMailAction, this.conModel);\n }\n this.showLoading = false;\n }\n\n async handleAddDefaultRooms(role: UserRoleCode, newMember: IMember) {\n await addDefaultRoomToUser(role, newMember, this.defaultRoomIdObject, this.connectedProjectId);\n }\n\n /**\n * Updates role\n * @param {number} value v-select (code of user role)\n * @param {object} member current member\n */\n async onRoleChange(value: UserRoleCode, member: IMember) {\n const updatedUser = await this.updateMember({ ...member, ...{ role: value } });\n if (value === UserRoleCode.admin) return;\n this.handleAddDefaultRooms(value, updatedUser);\n }\n\n async created() {\n this.showLoading = true;\n this.loadingText = this.$t('uiComponents.settings.permissions.loadingProjectData') as string;\n // set workspace in store\n const { id } = this.$route.params;\n const workspace = this.workspaceById(id);\n const canUserAccessProject = this.projects.some((project) => project.id === workspace.meta.project_id);\n // display messages if user is not in project or no project is connected\n if (!canUserAccessProject) {\n this.showUserNotInProject = true;\n this.showLoading = false;\n return;\n } else if (this.connectedProjectId === '') {\n this.showNoProjectConnected = true;\n this.showLoading = false;\n return;\n }\n // needs to be loaded first to get the project_id for fetch devices\n await this.loadProject(workspace.meta.project_id);\n // load all the data needed from the project\n await Promise.allSettled([\n this.fetchMembers(workspace.meta.project_id),\n this.fetchDevices(),\n this.fetchMPCListByProject(),\n this.fetchRooms(workspace.meta.project_id),\n this.loadRules(workspace.meta.project_id),\n ]);\n\n // check if current user is admin\n const currentUser = this.members.find((m) => m.id === this.user.id);\n if (currentUser === undefined || currentUser.role !== UserRoleCode.admin) {\n this.userNotAdmin = true;\n return;\n }\n\n this.conModel = cloneDeep(this.project.connectivity);\n this.showLoading = false;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Permissions.vue?vue&type=template&id=38a909f2&scoped=true&\"\nimport script from \"./Permissions.vue?vue&type=script&lang=ts&\"\nexport * from \"./Permissions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38a909f2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-2\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.title')))]),_c('div',{staticClass:\"d-flex justify-space-between py-3\"},[_c('div',{staticClass:\"d-flex\"},_vm._l((_vm.periodOptionButtons),function(option,index){return _c('v-btn',{key:option.value,class:index !== 0 ? 'ml-2' : '',attrs:{\"color\":option.value === _vm.selectedPeriod ? 'accent' : ''},on:{\"click\":function($event){return _vm.changPeriod(option.value)}}},[_vm._v(\" \"+_vm._s(option.text)+\" \")])}),1),_c('div',{staticClass:\"d-flex\"},[_c('TasksTable',{attrs:{\"tasks\":_vm.tasks},on:{\"windowClosed\":_vm.handleManageTasksClosed}})],1)]),(_vm.tasksForGantt.length === 0)?_c('div',{staticClass:\"d-flex justify-center\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.noTasksDefined')))])]):_vm._e(),_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{key:_vm.rerenderSVG,ref:\"ganttContainer\",attrs:{\"id\":\"gantt-container\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"800\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [(!_vm.handleAsEdit)?_c('v-btn',{attrs:{\"color\":\"accent\"}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":20,\"color\":\"white\"}}),(!_vm.handleAsEdit)?_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.createTask'))+\" \")]):_vm._e()],1):_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"settings\",\"color\":\"lynusText\",\"size\":\"20\"}})],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.handleAsEdit ? _vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.editTask') : _vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.createTask'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"px-1 py-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.labels.name'),\"color\":\"accent\",\"outlined\":\"\",\"rules\":[_vm.rules.required],\"maxLength\":\"30\"},model:{value:(_vm.selectedTask.name),callback:function ($$v) {_vm.$set(_vm.selectedTask, \"name\", $$v)},expression:\"selectedTask.name\"}})],1),_c('v-col',{staticClass:\"px-1 py-0\",attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{attrs:{\"items\":_vm.availableDependencies,\"small-chips\":\"\",\"label\":_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.labels.dependencies'),\"multiple\":\"\",\"outlined\":\"\",\"color\":\"blue\",\"hide-selected\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, select, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click\":select,\"click:close\":function($event){return _vm.removeItem(item)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(item.text))])])]}}]),model:{value:(_vm.selectedDependencies),callback:function ($$v) {_vm.selectedDependencies=$$v},expression:\"selectedDependencies\"}})],1)],1),_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('div',{staticClass:\"pl-1 d-flex\"},[_c('DaySelectionModal',{attrs:{\"date\":{ start: _vm.selectedTask.start, end: _vm.selectedTask.end },\"buttonText\":_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.labels.selectDate'),\"emitName\":'dateSelected'},on:{\"dateSelected\":_vm.handleDateSelected}}),_c('div',{staticClass:\"px-2 pt-2\"},[(_vm.selectedTask.start !== '' && _vm.selectedTask.end !== '')?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.selectedDate'))+\": \"+_vm._s(_vm.formatIsoDate(_vm.selectedTask.start))+\" - \"+_vm._s(_vm.formatIsoDate(_vm.selectedTask.end))+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.noDateSelectedYet'))+\" \")])])],1)]),_c('v-row',{staticClass:\"pa-0 ma-0\"},[_c('v-col',{staticClass:\"px-1 pt-3 pb-0\",attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.valid || !_vm.dateSelected},on:{\"click\":_vm.handleClick}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(\" \"+_vm._s(_vm.handleAsEdit ? _vm.$t('uiComponents.buttons.save') : _vm.$t('uiComponents.buttons.create'))+\" \")])])],1)],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"350\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.buttonText)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticStyle:{\"height\":\"455px\"}},[_c('v-container',[_c('div',[_c('v-date-picker',{attrs:{\"color\":\"accent\",\"range\":true},model:{value:(_vm.selectedDate),callback:function ($$v) {_vm.selectedDate=$$v},expression:\"selectedDate\"}})],1),_c('div',{staticClass:\"d-flex justify-center mt-3\"},[_c('v-btn',{attrs:{\"disabled\":_vm.selectedDate.length < 2,\"color\":\"accent\"},on:{\"click\":_vm.emitDate}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.submit'))+\" \")])],1)])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Validation } from '@/ui/mixins/validation';\n\n@Component({\n components: {\n ModalWindow,\n },\n})\nexport default class DayRangeSelectionModal extends mixins(Validation) {\n @Prop({ default: undefined }) date!: { start: string; end: string};\n @Prop({ default: 'Select Date' }) buttonText!: string;\n @Prop({ default: 'dateSelected' }) emitName!: string;\n\n selectedDate: string[] = [];\n showStartDatePicker = true;\n\n switchToEndSelection() {\n this.showStartDatePicker = false;\n }\n\n emitDate() {\n const dates = this.selectedDate;\n // Sorting in ascending order\n dates.sort((a: string, b: string) => +new Date(a) - +new Date(b));\n this.$emit(this.emitName, {\n start: dates[0],\n end: dates[1],\n });\n\n this.resetVariables();\n (this.$refs.ModalWindowInstance as ModalWindow).onConfirmationDialogClose();\n }\n\n async onDialogStatusChange(status: boolean) {\n if (!status) {\n this.resetVariables();\n } else {\n if (this.date) {\n this.selectedDate.push(this.date.start);\n this.selectedDate.push(this.date.end);\n }\n }\n }\n\n resetVariables() {\n // reset values\n this.selectedDate = [];\n this.showStartDatePicker = true;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayRangeSelectionModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayRangeSelectionModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DayRangeSelectionModal.vue?vue&type=template&id=862f6648&\"\nimport script from \"./DayRangeSelectionModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./DayRangeSelectionModal.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DayRangeSelectionModal.vue?vue&type=style&index=0&id=862f6648&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport DaySelectionModal from '@/ui/components/partner/components/DayRangeSelectionModal.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { ITasksObject } from '@/types/partnerWorkspace.types';\nimport { formatIsoDate } from '@/utils/utilsFunctions';\n\n/**\n * Component that allows to create a new Task for the gantt chart\n */\n@Component({\n methods: { formatIsoDate },\n components: {\n ModalWindow,\n DaySelectionModal,\n },\n})\nexport default class ManageTask extends mixins(Validation) {\n @Prop({ default: false }) handleAsEdit!: boolean;\n @Prop({ default: [] }) tasks!: ITasksObject[];\n @Prop({ default: undefined }) task!: ITasksObject;\n\n selectedTask: ITasksObject = {\n id: '',\n name: '',\n start: '',\n end: '',\n progress: 0,\n dependencies: [],\n };\n valid = false;\n availableDependencies: {value: string; text: string}[] = [];\n selectedDependencies: {value: string; text: string}[] = [];\n dateSelected = false;\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n async onDialogStatusChange(status: boolean) {\n if (status) {\n if (this.tasks.length > 0) {\n this.availableDependencies = this.tasks.map((task) => {\n return { value: task.id, text: task.name };\n });\n }\n // if task is given, this means that the user wants to edit the task\n if (this.task) {\n this.selectedTask = this.task;\n // map selected dependencies\n // creates array (key : task_id , value: task_name) for the user to select from the given list of task id's listed in the selected task\n const currentList: {value: string; text: string}[] = [];\n this.task.dependencies.forEach((dependency) => {\n const found = this.availableDependencies.find((obj: {value: string; text: string}) => obj.value === dependency);\n if (found) {\n currentList.push({ value: found.value, text: found.text });\n }\n });\n this.selectedDependencies = currentList;\n\n // remove the task itself from the list of dependencies\n this.availableDependencies = this.availableDependencies.filter((dependency) => dependency.value !== this.task.id);\n this.$emit('passEditId', this.task.id); // pass the id of the task to the parent component\n }\n\n if (this.handleAsEdit) {\n this.dateSelected = true;\n }\n await this.$nextTick();\n this.validate();\n } else {\n this.resetVariables();\n }\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n // contains current date string to set max date for calendar\n get maxDateCalendar() {\n return new Date().toDateString();\n }\n\n handleDateSelected(date: { start: string; end: string }) {\n this.selectedTask.start = date.start;\n this.selectedTask.end = date.end;\n this.dateSelected = true;\n }\n\n removeItem(item: {value: string; text: string}) {\n this.selectedDependencies.splice(this.selectedDependencies.indexOf(item), 1);\n }\n\n handleClick() {\n const objectToEmit = {\n ...this.selectedTask,\n id: this.selectedTask.name + this.selectedTask.start,\n dependencies: this.selectedDependencies.map((dependency) => dependency.value), // map dependencies to an array of strings containing the id's of the dependencies\n };\n this.$emit('taskCreated', objectToEmit);\n this.resetVariables();\n (this.$refs.ModalWindowInstance as ModalWindow).onConfirmationDialogClose();\n }\n\n resetVariables() {\n this.selectedTask = {\n id: '',\n name: '',\n start: '',\n end: '',\n progress: 0,\n dependencies: [],\n };\n this.selectedDependencies = [];\n this.dateSelected = false;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageTask.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageTask.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageTask.vue?vue&type=template&id=6a50669a&\"\nimport script from \"./ManageTask.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageTask.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ManageTask.vue?vue&type=style&index=0&id=6a50669a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1200\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"ml-2\",attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.manageTasks'))+\" \")])]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.manageTasks'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-row',{staticClass:\"pa-0\"},[_c('div',{staticClass:\"pb-2\"},[_c('ManageTask',{attrs:{\"handleAsEdit\":false,\"tasks\":_vm.currentTaskList},on:{\"taskCreated\":_vm.handleTaskCreated}})],1)]),_c('v-data-table',{key:_vm.rerenderKey,staticClass:\"elevation-0 transparent solar-calculator-table\",attrs:{\"headers\":_vm.headers,\"items\":_vm.currentTaskList,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"body\",fn:function(props){return [_c('draggable',{attrs:{\"tag\":\"tbody\",\"disabled\":false},on:{\"end\":_vm.onDropCallback},model:{value:(props.items),callback:function ($$v) {_vm.$set(props, \"items\", $$v)},expression:\"props.items\"}},_vm._l((props.items),function(item,index){return _c('TaskTableRow',{key:index,attrs:{\"item\":item,\"headers\":_vm.headers,\"tasks\":_vm.currentTaskList},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('div',{staticClass:\"d-flex\"},[_c('ManageTask',{attrs:{\"handleAsEdit\":true,\"tasks\":_vm.currentTaskList,\"task\":item},on:{\"taskCreated\":_vm.handleTaskUpdated,\"passEditId\":function($event){_vm.editId = $event}}}),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleDelete(item.id)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1)],1)]},proxy:true}],null,true)})}),1)]}}])})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._l((_vm.headers),function(header,index){return _c('td',{key:index},[_vm._t(_vm.columnName(header),function(){return [(!_vm.rowsWithExtraFormatting.includes(header.value))?_c('div',[_vm._v(\" \"+_vm._s(_vm.valueOfColumn(_vm.item, header.value))+\" \")]):_vm._e(),(header.value === 'dependencies')?_c('div',[(_vm.getLengthOfDependencies(_vm.item[header.value]) === 0)?_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.noDependencies'))+\" \")]):_c('div',[_vm._v(\" \"+_vm._s(_vm.getDependenciesFormatted(_vm.item[header.value]))+\" \")])]):_vm._e(),(header.value === 'start')?_c('div',[_vm._v(\" \"+_vm._s(_vm.formatIsoDate(_vm.item.start))+\" \")]):_vm._e(),(header.value === 'end')?_c('div',[_vm._v(\" \"+_vm._s(_vm.formatIsoDate(_vm.item.end))+\" \")]):_vm._e(),(header.value === 'actions')?_c('div',[_vm._t(\"actions\")],2):_vm._e()]},{\"item\":_vm.item})],2)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { ITasksObject } from '@/types/partnerWorkspace.types';\nimport { formatIsoDate } from '@/utils/utilsFunctions';\n\n/**\n * Displays rows for TasksTable\n */\n@Component({\n methods: { formatIsoDate },\n})\nexport default class DataTableRowHandler extends mixins(Validation) {\n @Prop({ default: () => [] }) tasks!: ITasksObject[];\n @Prop({ default: {} }) item!: any;\n @Prop({ default: () => [] }) headers!: any;\n\n rowsWithExtraFormatting: string[] = ['dependencies', 'start', 'end', 'actions'];\n\n columnName(header: any) {\n return `item.${header.value}`;\n }\n\n valueOfColumn(item: any, header: any) {\n return item[header];\n }\n\n /**\n * Format dependencies to be displayed in the table\n * @param dependencies array of dependencies {value: string; text: string}\n * @returns string of dependencies separated by comma\n */\n getDependenciesFormatted(dependencies: string[]) {\n const strings: string[] = [];\n dependencies.forEach((dependency: string) => {\n const name = this.getNameOfDependenciesByTaskId(dependency) ?? '';\n strings.push(name);\n });\n return strings.join(', ');\n }\n\n /**\n * Get the name of the task by its id\n * @param id id of the task\n */\n getNameOfDependenciesByTaskId(id: string) {\n const task = this.tasks.find((task) => task.id === id);\n return task?.name;\n }\n\n /**\n * Get the length of dependencies\n * @param dependencies dependencies of the task\n */\n getLengthOfDependencies(dependencies: string) {\n return dependencies.length;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TaskTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TaskTableRow.vue?vue&type=template&id=3d5ad3d5&\"\nimport script from \"./TaskTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./TaskTableRow.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport DaySelectionModal from '@/ui/components/partner/components/DayRangeSelectionModal.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport ManageTask from '@/ui/components/modals/Partner/ManageTask.vue';\nimport TaskTableRow from '@/ui/components/modals/Partner/TasksTable/TaskTableRow.vue';\nimport { IPartnerWorkspace, ITasksObject } from '@/types/partnerWorkspace.types';\nimport { formatIsoDate } from '@/utils/utilsFunctions';\nimport { Action, Getter } from 'vuex-class';\nimport draggable from 'vuedraggable';\n\n@Component({\n methods: { formatIsoDate },\n components: {\n ModalWindow,\n DaySelectionModal,\n ManageTask,\n TaskTableRow,\n draggable,\n },\n})\nexport default class TasksTable extends mixins(Validation) {\n @Prop({}) tasks!: ITasksObject[];\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n currentTaskList: ITasksObject[] = [];\n rerenderKey = false;\n editId = ''; // will contain the id of the task as long as it is edited\n\n get headers() {\n return [\n { text: 'Name', value: 'name', width: '20%' },\n { text: 'Dependencies', value: 'dependencies', width: '35%' },\n { text: 'Start', value: 'start', width: '20%' },\n { text: 'End', value: 'end', width: '20%' },\n { text: 'Actions', value: 'actions', width: '5%' },\n ];\n }\n\n /**\n * Callback function for the draggable component\n * @param event event object\n */\n onDropCallback(event: { oldIndex: number; newIndex: number }) {\n const { oldIndex, newIndex } = event;\n const movedTask = this.currentTaskList[oldIndex];\n this.currentTaskList.splice(oldIndex, 1);\n this.currentTaskList.splice(newIndex, 0, movedTask);\n this.saveTaskChanges();\n }\n\n // deletes the task from array and from backend\n handleDelete(id: string) {\n const index = this.currentTaskList.findIndex((task) => task.id === id);\n this.currentTaskList.splice(index, 1);\n this.removeTaskFromDependencies(id);\n this.saveTaskChanges();\n }\n\n // Checks all tasks and removes the given task id from the dependencies\n removeTaskFromDependencies(id: string) {\n this.currentTaskList.forEach((task) => {\n const index = task.dependencies.findIndex((dependency) => dependency === id);\n if (index !== -1) {\n task.dependencies.splice(index, 1);\n }\n });\n }\n\n handleTaskCreated(task: ITasksObject) {\n this.currentTaskList.push(task);\n this.rerenderKey = !this.rerenderKey; // trigger rerender of table\n this.saveTaskChanges();\n }\n\n handleTaskUpdated(task: ITasksObject) {\n const index = this.currentTaskList.findIndex((t) => t.id === this.editId); // find index of task to be updated\n this.currentTaskList.splice(index, 1, task); // replace old task with new task\n this.rerenderKey = !this.rerenderKey; // trigger rerender of table\n if (this.editId !== task.id) {\n this.updateDependenciesWithNewID(this.editId, task.id); // update dependencies with new id\n }\n this.editId = ''; // reset edit id\n this.saveTaskChanges();\n }\n\n // Checks all tasks and updates the given task id with the new id\n // This is needed when a task is edited and the id changes\n updateDependenciesWithNewID(oldId: string, newId: string) {\n this.currentTaskList.forEach((task) => {\n const index = task.dependencies.findIndex((dependency) => dependency === oldId);\n if (index !== -1) {\n task.dependencies.splice(index, 1, newId);\n }\n });\n }\n\n // save changes in backend\n saveTaskChanges() {\n const workspaceCopy = { ...this.workspace };\n workspaceCopy.meta.tasks = this.currentTaskList;\n this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: false });\n }\n\n async onDialogStatusChange(status: boolean) {\n if (!status) {\n // emit close event to trigger refresh of gantt chart\n this.$emit('windowClosed', this.currentTaskList);\n }\n }\n\n created() {\n this.currentTaskList = [...this.tasks];\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d79caba&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3d79caba&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport Gantt from 'frappe-gantt';\nimport ManageTask from '@/ui/components/modals/Partner/ManageTask.vue';\nimport TasksTable from '@/ui/components/modals/Partner/TasksTable/index.vue';\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport { IPartnerWorkspace, ITasksObject } from '@/types/partnerWorkspace.types';\nimport { Getter, Action } from 'vuex-class';\n\n@Component({\n components: {\n ManageTask,\n TasksTable,\n },\n})\nexport default class ProjectPlan extends Vue {\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n get periodOptionButtons() {\n return [\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.periodOptions.day'),\n value: 'Day',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.periodOptions.week'),\n value: 'Week',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.periodOptions.month'),\n value: 'Month',\n },\n ];\n }\n\n selectedPeriod = 'Day';\n // gantt object\n gantt: any = null;\n // tasks visible on the gantt chart\n tasksForGantt: any = [];\n tasks: ITasksObject[] = [];\n rerenderSVG = false;\n\n // options to pass to the gantt constructor\n options = {\n header_height: 50,\n bar_height: 40,\n padding: 20,\n bar_corner_radius: 6,\n };\n\n /**\n * Get the tasks in the format required by the gantt chart\n * dependencies are converted from an array of objects to an array of strings\n */\n formatTasksForGantt(tasks: ITasksObject[]) {\n return tasks.map((task: ITasksObject) => {\n return {\n id: task.id,\n name: task.name,\n start: task.start,\n end: task.end,\n progress: task.progress,\n dependencies: task.dependencies.join(', '), // convert dependencies to string\n };\n });\n }\n\n @Watch('tasksForGantt', { deep: true })\n onTasksChange() {\n if (this.gantt !== null) {\n this.gantt.refresh(this.tasksForGantt); // refresh the gantt in order to display the updated tasks\n }\n }\n\n handleManageTasksClosed(currentTaskList: ITasksObject[]) {\n this.tasks = currentTaskList;\n this.tasksForGantt = this.formatTasksForGantt(currentTaskList);\n\n if (currentTaskList.length === 0) {\n // in case that the user deletes all tasks or it is a new workspace\n this.rerenderSVG = !this.rerenderSVG;\n this.gantt = null;\n return;\n }\n\n if (this.gantt === null) {\n // if the gantt chart has not been initialized yet, initialize it\n this.initGantt();\n this.$nextTick(() => {\n this.gantt.refresh(this.tasksForGantt);\n this.refreshHeight(true);\n });\n } else {\n // if the gantt chart has already been initialized, refresh it\n this.$nextTick(() => {\n this.refreshHeight();\n });\n }\n }\n\n changPeriod(period: string) {\n this.selectedPeriod = period;\n this.gantt.change_view_mode(period);\n this.translateHeader(); // translate the header to the current language\n }\n\n refreshHeight(initialLoad = false) {\n // set height of the gantt container\n this.$nextTick(() => {\n const container: any = this.$refs.ganttContainer;\n const svg: any = document.querySelectorAll('svg.gantt')[0];\n if (container) {\n if (document.querySelectorAll('svg.gantt')[0] !== undefined) {\n const newHeight = (svg.getAttribute('height') - 130).toString();\n document.querySelectorAll('svg.gantt')[0].setAttribute('height', newHeight); // 130 is the size of the empty space under the gantt chart\n }\n if (initialLoad) {\n this.translateHeader();\n }\n }\n });\n }\n\n translateHeader() {\n const container: any = this.$refs.ganttContainer;\n const currentYear = new Date().getFullYear();\n\n container.querySelectorAll('.upper-text, .lower-text').forEach((node: any) => {\n const isUpperText = node.classList.contains('upper-text');\n const textContent = node.innerHTML.toLowerCase();\n\n if (isUpperText && this.selectedPeriod !== 'Month') {\n // for months it is necessary to translate anything because the gantt chart only displays the current year\n node.innerHTML = `${this.$t(`uiComponents.months.${textContent}`)} ${currentYear}`;\n } else if (!isUpperText) {\n // for weeks it is necessary to translate the lower text\n const cleanText = textContent.replace(/[^a-z]/g, '');\n const number = textContent.replace(/\\D/g, '');\n\n if (cleanText) {\n node.innerHTML = `${number} ${this.$t(`uiComponents.months.${cleanText}`)}`;\n }\n }\n });\n }\n\n initGantt() {\n const ganttElement: any = document.getElementById('gantt-container');\n this.gantt = new Gantt(ganttElement, this.tasksForGantt, {\n ...this.options,\n language: 'en',\n // custom popup (currently not visible)\n custom_popup_html(task: any) {\n // custom popup when th user clicks on any task.\n // the task object will contain the updated dates and progress value\n return `\n
\n ${task.name}\n
\n `;\n },\n });\n this.refreshHeight(true);\n }\n\n created() {\n // tasks are by default null in the backend\n this.tasks = this.workspace.meta.tasks !== null ? this.workspace.meta.tasks : [];\n }\n\n mounted() {\n if (this.tasks.length !== 0) {\n this.tasksForGantt = this.formatTasksForGantt(this.tasks);\n this.initGantt();\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectPlan.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectPlan.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectPlan.vue?vue&type=template&id=9916b9e4&\"\nimport script from \"./ProjectPlan.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectPlan.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProjectPlan.vue?vue&type=style&index=0&id=9916b9e4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-2\"},[_c('UploadFileModal',{on:{\"addDocument\":_vm.addDocument}}),_c('v-data-table',{staticClass:\"elevation-0 primary\",attrs:{\"headers\":_vm.headers,\"items\":_vm.documents,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.created_at\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.getFormatedDate(item.created_at))+\" \")]}},{key:\"item.file_id\",fn:function({ item }){return [_c('v-btn',{staticClass:\"lynus-small-btn ml-2\",attrs:{\"elevation\":\"0\",\"color\":\"accent\"},on:{\"click\":function($event){return _vm.downloadDocument(`https://static.lynus.io/assets/${item.file_id}`)}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.open'))+\" \")]),_c('v-btn',{staticClass:\"ml-2\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteDocument(item)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport UploadFileModal from '@/ui/components/modals/Partner/UploadFileModal.vue';\nimport { formatDate } from '@/utils/utilsFunctions';\nimport { IFile, IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { Getter, Action } from 'vuex-class';\n\n@Component({\n components: {\n UploadFileModal,\n },\n})\nexport default class Documentation extends Vue {\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n get documents() {\n return this.workspace.meta?.documentation || [];\n }\n\n get headers() {\n return [\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.name'),\n value: 'name',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.created_at'),\n value: 'created_at',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.upload_by'),\n value: 'upload_by',\n sortable: false,\n width: '25%',\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.offers.tableHeaders.file'),\n value: 'file_id',\n sortable: false,\n width: '25%',\n },\n ];\n }\n\n getFormatedDate(date: string) {\n let currentDate: Date | string = new Date(date);\n currentDate = formatDate(currentDate);\n return currentDate;\n }\n\n deleteDocument(document: IFile) {\n if (!this.workspace.meta.documentation) {\n return;\n }\n this.workspace.meta.documentation = this.workspace.meta.documentation.filter((item: IFile) => item.file_id !== document.file_id);\n this.updateWorkspace({ project_id: this.workspace.id, workspace: this.workspace, showMessage: true });\n }\n\n addDocument(document: { name: string; file_id: string; upload_by: string; created_at: string }) {\n const workspaceCopy = { ...this.workspace };\n if (!workspaceCopy.meta.documentation) {\n workspaceCopy.meta.documentation = [];\n }\n workspaceCopy.meta.documentation.push(document);\n this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: true });\n }\n\n downloadDocument(url: string) {\n window.open(url, '_blank');\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Documentation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Documentation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Documentation.vue?vue&type=template&id=00cc574c&scoped=true&\"\nimport script from \"./Documentation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Documentation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00cc574c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-2\"},[_c('h3',{staticClass:\"mb-2\"},[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.connectWithProject.title')))]),(!_vm.userNotInProject)?_c('div',[(_vm.selectedProjectId === '')?_c('div',[_c('v-autocomplete',{attrs:{\"items\":_vm.projectSelectionItems,\"item-value\":\"value\",\"item-text\":\"text\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('partners.partnerWorkspace.pages.connectWithProject.selectProject')},on:{\"change\":function($event){return _vm.setProject($event)}}})],1):_vm._e(),(_vm.selectedProjectId !== '')?_c('div',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.connectWithProject.connectedWith'))+\":\")])]),_c('div',{staticClass:\"d-flex justify-center\"},[_c('v-card',{staticClass:\"ma-1 rounded-lg project-card\",attrs:{\"link\":\"\",\"color\":\"projectBackground\"},on:{\"click\":function($event){return _vm.enterProject()}}},[_c('div',{staticClass:\"pa-3 d-flex flex-column\"},[_c('div',{staticClass:\"d-flex justify-center title\"},[_vm._v(\" \"+_vm._s(_vm.getProjectNameById(_vm.selectedProjectId))+\" \")]),(_vm.currentProject.meta.logo !== '')?_c('div',[_c('v-img',{staticClass:\"image\",attrs:{\"src\":`https://static.lynus.io/assets/${_vm.currentProject.meta.imageId}`,\"alt\":\"project-logo\",\"position\":\"center center\",\"height\":'200',\"contain\":\"\"}})],1):_c('PlaceHolderImage',{staticStyle:{\"width\":\"100%\"},attrs:{\"height\":'200'}}),_c('div',{staticClass:\"content d-flex justify-space-between mt-4 mx-2\"},[_c('div',{staticClass:\"information\"},[_c('div',[_c('lynus-icon',{attrs:{\"name\":\"location\",\"size\":22,\"color\":\"theme\"}})],1),_c('div',{staticClass:\"pl-2 mt-1\"},[_vm._v(_vm._s(_vm.getProjectLocationName(_vm.currentProject)))])]),_c('div',{staticClass:\"information\"},[_c('lynus-icon',{attrs:{\"name\":_vm.statusIcons[_vm.status[1]].icon,\"color\":\"theme\",\"size\":\"22\"}}),_c('div',{staticClass:\"pl-2 mt-1\"},[_vm._v(\" \"+_vm._s(_vm.statusIcons[_vm.status[1]].text)+\" \")])],1)])],1)])],1)]):_vm._e(),(_vm.selectedProjectId !== '')?_c('v-btn',{staticClass:\"lynus-small-btn ml-2 mt-4\",attrs:{\"color\":\"error\"},on:{\"click\":function($event){return _vm.handleDelete()}}},[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.connectWithProject.removeConnection'))+\" \")]):_vm._e()],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('partners.partnerWorkspace.pages.connectWithProject.userNotFound'))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { buildCommaSeparatedString } from '@/utils/utilsFunctions';\nimport { IProject, IProjectStats } from '@/types/project.types';\nimport { envProjectOpenSubpage } from '@/utils/env';\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\n\n@Component({\n components: {},\n})\nexport default class ConnectWithProject extends Vue {\n @Getter('projects/projects') projects!: IProject[];\n @Getter('partnerWorkspaces/workspace') workspace!: IPartnerWorkspace;\n @Action('partnerWorkspaces/updateWorkspace') updateWorkspace!: (data: {project_id: string; workspace: IPartnerWorkspace; showMessage: boolean}) => Promise;\n\n selectedProjectId = '';\n userNotInProject = false;\n currentProject: null | IProject = null;\n\n get projectSelectionItems() {\n return this.projects.map((project: IProject) => ({\n text: project.name,\n value: project.id,\n }));\n }\n\n get statusIcons() {\n return {\n ok: {\n icon: 'ok',\n text: 'ok',\n },\n warning: {\n icon: 'warning',\n text: 'warning',\n },\n error: {\n icon: 'fault',\n text: 'error',\n },\n };\n }\n\n /**\n * Checks projects warnings, errors and define status according to them\n * @return {array} current status\n */\n get status(): string {\n if (!this.currentProject) return 'ok';\n const { errors, warnings } = this.currentProject?.stats as IProjectStats;\n const arr: any = [[errors, 'error'], [warnings, 'warning']];\n return arr.find((el: any) => el[0]) || [null, 'ok'];\n }\n\n /**\n * get project name by id\n */\n getProjectNameById(id: string) {\n const project = this.projects.find((p: IProject) => p.id === id);\n return project ? project.name : '';\n }\n\n /**\n * update workspace with selected project_id\n */\n async setProject(event: any) {\n const workspaceCopy = {\n ...this.workspace,\n };\n workspaceCopy.meta.project_id = event;\n await this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: true });\n // update selectedProjectId so project card will be visible\n const project = this.projects.find((p: IProject) => p.id === event);\n if (project) {\n this.currentProject = project;\n }\n this.selectedProjectId = this.workspace.meta.project_id ?? '';\n }\n\n /**\n * Defines current project city name\n * @return {string} city name\n */\n getProjectLocationName(project: IProject): string {\n if (!project.meta.location) return '';\n const displayName = project.meta.location.display_name;\n if (displayName) {\n const partsOfName = displayName.split(',');\n return buildCommaSeparatedString(partsOfName, 4);\n }\n return '';\n }\n\n /**\n * navigate to connected project\n */\n enterProject() {\n this.$router.push(`/projects/${this.selectedProjectId}${envProjectOpenSubpage}`);\n }\n\n /**\n * reset selectedProjectId and update workspace\n */\n async handleDelete() {\n // reset selectedProjectId so project selection will be visible\n this.selectedProjectId = '';\n const workspaceCopy = {\n ...this.workspace,\n };\n workspaceCopy.meta.project_id = this.selectedProjectId;\n await this.updateWorkspace({ project_id: this.workspace.id, workspace: workspaceCopy, showMessage: true });\n }\n\n created() {\n // if workspace has a project_id, set it as selected\n if (this.workspace.meta.project_id) {\n const project = this.projects.find((p: IProject) => p.id === this.workspace.meta.project_id);\n // if project_id is not found this means that the user is not inside the connected project\n if (!project) {\n this.userNotInProject = true;\n return;\n }\n this.selectedProjectId = this.workspace.meta.project_id;\n }\n\n const project = this.projects.find((p: IProject) => p.id === this.selectedProjectId);\n if (project) {\n this.currentProject = project;\n }\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectWithProject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConnectWithProject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConnectWithProject.vue?vue&type=template&id=04c03412&scoped=true&\"\nimport script from \"./ConnectWithProject.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConnectWithProject.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConnectWithProject.vue?vue&type=style&index=0&id=04c03412&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04c03412\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SolarCalculator from '@/ui/components/partner/workspace/pages/SolarCalculator.vue';\nimport PartnerInformation from '@/ui/components/partner/workspace/pages/PartnerInformation.vue';\nimport Offer from '@/ui/components/partner/workspace/pages/Offer.vue';\nimport Permissions from '@/ui/components/partner/workspace/pages/Permissions.vue';\nimport ProjectPlan from '@/ui/components/partner/workspace/pages/ProjectPlan.vue';\nimport Documentation from '@/ui/components/partner/workspace/pages/Documentation.vue';\nimport ConnectWithProject from '@/ui/components/partner/workspace/pages/ConnectWithProject.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { IPartner } from '@/types/partner.types';\nimport { IPartnerWorkspace } from '@/types/partnerWorkspace.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IProject } from '@/types/project.types';\n\n@Component({\n components: {\n SolarCalculator,\n Offer,\n PartnerInformation,\n Permissions,\n ProjectPlan,\n Documentation,\n ConnectWithProject,\n CircleSpinner,\n },\n})\nexport default class PartnerProjectView extends Vue {\n @State('app') appState!: IAppState;\n @Getter('projects/projects') projects!: IProject[];\n @Getter('partnerWorkspaces/workspaceById') workspaceById!: (id: string) => any;\n @Mutation('partnerWorkspaces/setWorkspace') setWorkspace!: (workspace: IPartnerWorkspace) => void;\n @Action('partners/fetchPartners') fetchPartners!: () => IPartner[];\n @Action('partnerWorkspaces/fetchWorkspaces') fetchWorkspaces!: () => Promise;\n @Action('projects/loadProjects') loadProjects!: () => Promise;\n\n currentComponent = 'SolarCalculator';\n projectLoader = false;\n\n get navigationItems() {\n return [\n {\n title: 'Solar Calculator',\n locale: 'partners.partnerWorkspace.navigation.solarCalculator',\n component: 'SolarCalculator',\n },\n {\n title: 'Offer/AB/Contract',\n locale: 'partners.partnerWorkspace.navigation.offer',\n component: 'Offer',\n },\n {\n title: 'Documentation',\n locale: 'partners.partnerWorkspace.navigation.documentation',\n component: 'Documentation',\n },\n {\n title: 'Project Plan',\n locale: 'partners.partnerWorkspace.navigation.projectPlan',\n component: 'ProjectPlan',\n },\n {\n title: 'Permissions',\n locale: 'partners.partnerWorkspace.navigation.permissions',\n component: 'Permissions',\n },\n {\n title: 'ConnectWithProject',\n locale: 'partners.partnerWorkspace.navigation.connectWithProject',\n component: 'ConnectWithProject',\n },\n {\n title: 'Partner Information',\n locale: 'partners.partnerWorkspace.navigation.partnerInformation',\n component: 'PartnerInformation',\n },\n ];\n }\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n async created() {\n this.projectLoader = true;\n await this.fetchWorkspaces();\n await this.fetchPartners();\n await this.loadProjects();\n\n // set workspace in store\n const { id } = this.$route.params;\n const workspace = this.workspaceById(id);\n if (workspace) {\n this.setWorkspace(workspace);\n }\n this.projectLoader = false;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=534157aa&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=534157aa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"534157aa\",\n null\n \n)\n\nexport default component.exports","import {\n envDocumentationTabs,\n envMainMenuEntries,\n envPartnerProjectMenuEntries,\n envProjectMenuEntries,\n envProjectSettingsEnteries,\n} from '@/utils/env';\nimport store from '@/store';\nimport { checkProtocolAccessList } from '@/utils/userRoles';\n\n/**\n * When adding a new Route to \"MAIN_MENU_ROUTES\", \"DOCUMENTATION_ROUTES\", \"PROJECT_MENU_ROUTES\", \"PROJECT_SETTINGS_ROUTES\".\n * Check that the name is the same inside the \"router/index.ts\" and the \"default-config.ts\".\n * Otherwise, the route will not open correctly.\n */\nconst MAIN_MENU_ROUTES = [\n 'Home',\n 'Billing',\n 'Documentation',\n 'Changelog',\n 'Ticket',\n 'PartnerManagement',\n 'PartnerWorkspace',\n 'SerialNumberManagement',\n];\nconst DOCUMENTATION_ROUTES = [\n 'UserManual',\n 'APIDocs',\n 'DeviceConnectivity',\n];\nconst PROJECT_MENU_ROUTES = [\n 'Favorites',\n 'Areas',\n 'Devices Library',\n 'Variables',\n 'AI/ML Library',\n 'Workbench',\n 'Settings',\n 'Rules',\n 'Event List',\n 'Report',\n 'InstallationWizard',\n 'TenantWizard',\n];\nconst PROJECT_SETTINGS_ROUTES = [\n 'General',\n 'EnergyPrice',\n 'Notification',\n 'MQTT',\n 'Permissions',\n 'SettingsVariables',\n 'CheckProtocol',\n];\nconst PARTNER_PROJECT_MENU_ROUTES = [\n 'PartnerProjectView',\n];\n\nexport const canAccessRoute = (routeName: string) => {\n const user = store.getters['app/getUser'];\n if (MAIN_MENU_ROUTES.includes(routeName)) return true;\n if (DOCUMENTATION_ROUTES.includes(routeName)) return true;\n if (PROJECT_MENU_ROUTES.includes(routeName)) return store.getters['members/canMemberAccess']('ProjectMenuEntries', routeName);\n if (PARTNER_PROJECT_MENU_ROUTES.includes(routeName)) return true;\n if (PROJECT_SETTINGS_ROUTES.includes(routeName)) {\n if (!checkProtocolAccessList.includes(user.email) && routeName === 'CheckProtocol') {\n return false;\n }\n const isSettingsEnabled = store.getters['members/canMemberAccess']('ProjectMenuEntries', 'Settings');\n if (!isSettingsEnabled) return false;\n else return store.getters['members/canMemberAccess']('ProjectSettingsEntries', routeName);\n } else return null;\n};\n\nexport const isRouteEnabled = (routeName: string) => {\n const user = store.getters['app/getUser'];\n if (MAIN_MENU_ROUTES.includes(routeName)) return envMainMenuEntries.includes(routeName);\n if (DOCUMENTATION_ROUTES.includes(routeName)) return envDocumentationTabs.includes(routeName);\n if (PROJECT_MENU_ROUTES.includes(routeName)) return envProjectMenuEntries.includes(routeName);\n if (PARTNER_PROJECT_MENU_ROUTES.includes(routeName)) return envPartnerProjectMenuEntries.includes(routeName);\n if (PROJECT_SETTINGS_ROUTES.includes(routeName)) {\n const isSettingsEnabled = envProjectMenuEntries.includes('Settings');\n if (!isSettingsEnabled) return false;\n else {\n // block route mqtt for not super admins\n if (!user.super_admin && routeName === 'MQTT') return false;\n else return envProjectSettingsEnteries.includes(routeName);\n }\n } else return null;\n};\n","import Vue from 'vue';\nimport VueRouter, { Route, RouteConfig } from 'vue-router';\nimport Page404 from '@/ui/views/404.vue';\nimport Home from '@/ui/views/Home.vue';\nimport Workbench from '@/ui/views/Project/Workbench.vue';\nimport SerialNumberManagement from '@/ui/views/SerialNumberManagement.vue';\nimport Favorites from '@/ui/views/Project/Favorites.vue';\nimport Measurements from '@/ui/views/Project/Measurements.vue';\nimport Rooms from '@/ui/views/Project/Rooms.vue';\nimport DevicesLibrary from '@/ui/views/Project/DevicesLibrary.vue';\nimport AIML from '@/ui/views/Project/AIML.vue';\nimport Settings from '@/ui/views/Project/Settings/index.vue';\nimport EventList from '@/ui/views/Project/EventList.vue';\nimport Rules from '@/ui/views/Project/Rules.vue';\nimport Report from '@/ui/views/Project/Report.vue';\nimport SetupAssistent from '@/ui/views/Project/WizardViews/SetupAssistent.vue';\nimport Tenant from '@/ui/views/Project/WizardViews/Tenant.vue';\nimport PartnerProjectView from '@/ui/components/partner/workspace/index.vue';\nimport store from '@/store';\nimport { canAccessRoute, isRouteEnabled } from '@/router/utils';\nimport { SearchType } from '@/utils/searchUtils';\n\nVue.use(VueRouter);\n\nconst routes: Array = [\n {\n path: '*',\n name: '404 - Page not found',\n component: Page404,\n },\n {\n path: '/',\n name: 'Home',\n component: Home,\n meta: {\n appNavigation: true,\n search: true,\n searchType: SearchType.projects,\n addProject: true,\n navigation: 'appNavigation',\n locale: 'navigation.appNavigation.home',\n displayChangelog: true,\n },\n },\n {\n path: '/projects/:id',\n component: () => import('@/ui/views/Project/index.vue'),\n children: [\n {\n path: 'workbench',\n name: 'Workbench',\n component: Workbench,\n meta: {\n search: true,\n searchType: SearchType.devices,\n workbenchButtons: true,\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.workbench',\n displayChangelog: true,\n },\n },\n {\n path: 'favorites',\n name: 'Favorites',\n component: Favorites,\n meta: {\n dndSwitch: true,\n search: true,\n searchType: SearchType.devices,\n mqtt: true,\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.favorites',\n displayChangelog: true,\n },\n },\n {\n path: 'variables',\n name: 'Variables',\n component: Measurements,\n meta: {\n search: true,\n searchType: SearchType.measurements,\n advancedTitle: 'numberOfMeasurements',\n mqtt: true,\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.variables',\n displayChangelog: true,\n },\n },\n {\n path: 'areas',\n name: 'Areas',\n component: Rooms,\n meta: {\n dndSwitch: true,\n search: true,\n searchType: SearchType.devices,\n addAreaButton: true,\n toggleAreasViewButton: true,\n mqtt: true,\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.areas',\n displayChangelog: true,\n },\n },\n {\n path: 'devices',\n name: 'Devices Library',\n component: DevicesLibrary,\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.devicesLibrary',\n displayChangelog: true,\n },\n },\n {\n path: 'aiml',\n name: 'AI/ML Library',\n component: AIML,\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.aimlLibrary',\n displayChangelog: true,\n },\n },\n {\n path: 'settings',\n name: 'Settings',\n component: Settings,\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n children: [\n {\n path: 'general',\n name: 'General',\n component: () => import('@/ui/views/Project/Settings/General.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'mqtt',\n name: 'MQTT',\n component: () => import('@/ui/views/Project/Settings/MQTT.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'permissions',\n name: 'Permissions',\n component: () => import('@/ui/views/Project/Settings/Permissions.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'downloads',\n name: 'Downloads',\n component: () => import('@/ui/views/Project/Settings/Downloads.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'notification',\n name: 'Notification',\n component: () => import('@/ui/views/Project/Settings/Notification.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'variables',\n name: 'SettingsVariables',\n component: () => import('@/ui/views/Project/Settings/Variables.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n mqtt: true,\n search: true,\n searchType: SearchType.measurements,\n displayChangelog: false,\n },\n },\n {\n path: 'energy-price',\n name: 'EnergyPrice',\n component: () => import('@/ui/views/Project/Settings/EnergyPrice.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n {\n path: 'check-protocol',\n name: 'CheckProtocol',\n component: () => import('@/ui/views/Project/Settings/CheckProtocol.vue'),\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.settings',\n displayChangelog: false,\n },\n },\n ],\n },\n {\n path: 'eventlist',\n name: 'Event List',\n component: EventList,\n meta: {\n search: true,\n searchType: SearchType.events,\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.eventList',\n displayChangelog: true,\n },\n },\n {\n path: 'rules',\n name: 'Rules',\n component: Rules,\n meta: {\n navigation: 'projectNavigation',\n addRuleButton: true,\n search: true,\n searchType: SearchType.rules,\n locale: 'navigation.appNavigation.rules',\n advancedTitle: 'numberOfRules',\n displayChangelog: true,\n },\n },\n {\n path: 'report',\n name: 'Report',\n component: Report,\n meta: {\n navigation: 'projectNavigation',\n createReportButton: true,\n locale: 'navigation.appNavigation.report',\n search: true,\n searchType: SearchType.reports,\n displayChangelog: true,\n },\n },\n {\n path: 'installation-wizard',\n name: 'InstallationWizard',\n component: SetupAssistent,\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.installationWizard',\n mqtt: true,\n displayChangelog: false,\n },\n },\n {\n path: 'tenant-wizard',\n name: 'TenantWizard',\n component: Tenant,\n meta: {\n navigation: 'projectNavigation',\n locale: 'navigation.appNavigation.tenantWizard',\n restartWizardButton: true,\n displayChangelog: false,\n },\n },\n ],\n },\n {\n path: '/ticket',\n name: 'Ticket',\n component: () => import('@/ui/views/Ticket.vue'),\n meta: {\n appNavigation: true,\n navigation: 'appNavigation',\n locale: 'navigation.appNavigation.ticket',\n displayChangelog: true,\n },\n },\n {\n path: '/changelog',\n name: 'Changelog',\n component: () => import('@/ui/views/Changelog.vue'),\n meta: {\n appNavigation: true,\n navigation: 'appNavigation',\n locale: 'navigation.appNavigation.changelog',\n },\n beforeEnter: (to, from, next) => {\n const superAdmin = store.getters['app/getUser'].super_admin;\n if (!superAdmin) next({ name: from.name as string });\n else next();\n },\n },\n {\n path: '/partner-management',\n name: 'PartnerManagement',\n component: () => import('@/ui/views/PartnerManagement.vue'),\n meta: {\n appNavigation: true,\n navigation: 'appNavigation',\n locale: 'navigation.appNavigation.PartnerManagement',\n displayChangelog: true,\n },\n beforeEnter: (to, from, next) => {\n // if the user is super admin, he can access the route\n // else the user must be a partner to access the route\n const superAdmin = store.getters['app/getUser'].super_admin;\n if (superAdmin) {\n next();\n } else {\n const partner = store.getters['app/getUser']?.partner ?? false;\n if (!partner) next({ name: from.name as string });\n else next();\n }\n },\n },\n {\n path: '/partner-workspace',\n name: 'PartnerWorkspace',\n component: () => import('@/ui/views/PartnerView.vue'),\n meta: {\n searchType: SearchType.workspaces,\n search: true,\n appNavigation: true,\n navigation: 'appNavigation',\n locale: 'navigation.appNavigation.PartnerWorkspace',\n createPartnerProjectButton: true,\n },\n beforeEnter: (to, from, next) => {\n // if the user is super admin, he can access the route\n // else the user must be a partner to access the route\n const superAdmin = store.getters['app/getUser'].super_admin;\n if (superAdmin) {\n next();\n } else {\n const partner = store.getters['app/getUser']?.partner ?? false;\n if (!partner) next({ name: from.name as string });\n else next();\n }\n },\n },\n {\n path: '/serial-number-management',\n name: 'SerialNumberManagement',\n component: SerialNumberManagement,\n meta: {\n appNavigation: true,\n navigation: 'appNavigation',\n search: true,\n searchType: SearchType.serialNumbers,\n locale: 'navigation.appNavigation.serialNumberManagement',\n },\n beforeEnter: (to, from, next) => {\n // if the user is super admin, he can access the route\n // else the user must be a partner to access the route\n const superAdmin = store.getters['app/getUser'].super_admin && store.getters['app/getUser'].email === 'support@lynus.io';\n if (superAdmin) {\n next();\n }\n },\n },\n {\n path: '/partner-workspace/:id',\n name: 'PartnerProjectView',\n component: PartnerProjectView,\n meta: {\n navigation: 'partnerNavigation',\n locale: 'navigation.appNavigation.PartnerWorkspace',\n displayChangelog: true,\n },\n },\n];\n\nconst router: VueRouter = new VueRouter({\n base: process.env.BASE_URL,\n routes,\n});\n\n/**\n * Access check for project routes\n */\nrouter.beforeEach((to, from, next) => {\n const routeEnabled = isRouteEnabled(to.name as string);\n const routeAccess = canAccessRoute(to.name as string);\n if (!routeAccess || !routeEnabled) next({ name: from.name as string });\n else next();\n});\n\nexport default router;\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=style&index=0&id=3fe78a78&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f5c412ae&prod&lang=scss&\"","import api from '@/services/api';\nimport { IRoom } from '@/types/rooms.types';\n\nexport default {\n async fetchCollections(projectId: string) {\n return api.fetch(`/projects/${projectId}/collections`, 'GET');\n },\n\n async createCollection(projectId: string, collection: Partial) {\n return api.fetch(`/projects/${projectId}/collections`, 'POST', collection);\n },\n\n async updateCollection(projectId: string, collectionId: string, collection: Partial) {\n return api.fetch(`/projects/${projectId}/collections/${collectionId}`, 'PUT', collection);\n },\n\n async deleteCollection(projectId: string, collectionId: string) {\n return api.fetch(`/projects/${projectId}/collections/${collectionId}`, 'DELETE');\n },\n};\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=3d79caba&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/MpcEnergyView.761c093b.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=style&index=0&id=75ebaa48&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicatorLine.vue?vue&type=style&index=0&id=6c301239&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"trigger-actions\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.triggerActionTitle'))+\":\")]),_c('div',[_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageReport.startDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar},model:{value:(_vm.startDateActionTrigger),callback:function ($$v) {_vm.startDateActionTrigger=$$v},expression:\"startDateActionTrigger\"}})],1),_c('div',[_c('div',[_vm._v(_vm._s(_vm.$t('modals.manageReport.endDateText')))]),_c('VueCtkDateTimePicker',{attrs:{\"format\":\"YYYY-MM-DD HH:mm\",\"output-format\":\"YYYY-MM-DDTHH:mm:ss.sssZ\",\"locale\":\"de\",\"right\":false,\"dark\":_vm.$vuetify.theme.dark,\"color\":this.$vuetify.theme.currentTheme.accent,\"max-date\":_vm.maxDateCalendar},model:{value:(_vm.endDateActionTrigger),callback:function ($$v) {_vm.endDateActionTrigger=$$v},expression:\"endDateActionTrigger\"}})],1),(_vm.report.actions.length)?_c('v-btn',{staticClass:\"mt-6\",attrs:{\"loading\":_vm.loading,\"disabled\":!_vm.isTriggerActionValidToRun},on:{\"click\":_vm.manualTriggerAction}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.triggerActionsButton'))+\" \")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { ITriggerReportActionsPayload } from '@/types/report.types';\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport { Action } from 'vuex-class';\n\n@Component\nexport default class TriggerActions extends Vue {\n @Prop() report!: any;\n @Action('report/triggerReportActions') triggerReportActions!: (payload: ITriggerReportActionsPayload) => Promise;\n\n startDateActionTrigger = '';\n endDateActionTrigger = '';\n maxDateCalendar = '';\n loading = false;\n\n get isTriggerActionValidToRun() {\n return !!this.startDateActionTrigger && !!this.endDateActionTrigger && this.isTriggerActionTimesRight;\n }\n\n get isTriggerActionTimesRight() {\n if (this.startDateActionTrigger && this.endDateActionTrigger) {\n const dateStart = new Date(this.startDateActionTrigger);\n const dateEnd = new Date(this.endDateActionTrigger);\n const unixStart = Math.trunc(dateStart.getTime() / 1000);\n const unixEnd = Math.trunc(dateEnd.getTime() / 1000);\n return !(unixStart >= unixEnd || this.startDateActionTrigger === '' || this.endDateActionTrigger === null);\n } else {\n return false;\n }\n }\n\n async manualTriggerAction() {\n this.loading = true;\n const dateStart = new Date(this.startDateActionTrigger);\n const dateEnd = new Date(this.endDateActionTrigger);\n const unixStart = Math.trunc(dateStart.getTime() / 1000);\n const unixEnd = Math.trunc(dateEnd.getTime() / 1000);\n await this.triggerReportActions({\n id: this.$route.params.id,\n report_id: this.report.id,\n reportModel: this.report,\n start: unixStart,\n end: unixEnd,\n format: 'pdf',\n });\n this.loading = false;\n }\n\n updateMaxDateCalendar() {\n const yourDate = new Date();\n let currentTimeStamp: any = Date.now();\n const timeZoneOffset = (yourDate.getTimezoneOffset() * -1) / 60;\n currentTimeStamp += (timeZoneOffset * 3600000);\n\n this.maxDateCalendar = new Date(currentTimeStamp).toISOString().split('.')[0] as string;\n }\n\n created() {\n this.updateMaxDateCalendar();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriggerActions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TriggerActions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TriggerActions.vue?vue&type=template&id=5374de11&\"\nimport script from \"./TriggerActions.vue?vue&type=script&lang=ts&\"\nexport * from \"./TriggerActions.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropDownInputFieldWithVariable.vue?vue&type=style&index=0&id=372b92ea&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"show-event-dot-mock\",style:(`background: ${_vm.warningColor}; width: ${_vm.size}px; height: ${_vm.size}px`)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class ShowEventDotMock extends Vue {\n @Prop() color!: string;\n @Prop() isActive!: number;\n @Prop({ default: 20 }) size!: number | string;\n\n get warningColor() {\n return this.isActive ? this.color : '#bebebe';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotMock.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotMock.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShowEventDotMock.vue?vue&type=template&id=509cd3e7&scoped=true&\"\nimport script from \"./ShowEventDotMock.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShowEventDotMock.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShowEventDotMock.vue?vue&type=style&index=0&id=509cd3e7&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"509cd3e7\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ebc15b0c&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB8CAMAAABJ96foAAAAwFBMVEUxMTFISEg4NTRNUE/Gxsb///9SUlIXFxfExMTe3t6+vr74+vmpqqns7OuKioq3t7fV1dWgoKDz8/FNRDl4eHhlZWXRlBjq/v89Pj7MzMwbbrT//+k7RlAZGTHR//8xMT1qs+e1bBfotGsXGZU4GRfj4+MZldFWkcXNnGFaWlr/+8360Zm35vlhHRfDw8P95rSX0v7iu4tsOxsXMlgXF3KEud3Y7PmZcEeVHBcxXJaDHhfx5syQx/HFxcUXhMWZV4XDIj2qAAAGt0lEQVR42u2ce0OiShjGB2W8MNyDjErrmGZ2oa22bWu3c77/tzozgyjqoG7ZAvo8f7AEvrq9P94bTJImVCKRD1sedw43Ogb9KY7XW0apdXX3QRxPvzvCfAAcW8Fx3Ll/GTw9sxs1j0t6uBLH99vr1FyJ4/zkn+kWWovj++39G9/rPovr+wM4/qVXqTlwfB7Hv53+9Mfu6Aelv16E+67/4yns12PznHL1mxe9h+cOd+kxf4E/l5gyuI47V88desLxXPT6k1PfhP1hsm020/dP3w5axHGeufpH7ErknUNx9OTq8bV3k7r7okdvHoXDHx6756yfwXHcOXl4GUx22c3L07frtwyOuejg5nf8/M/07aBlHLOL9PvtzWCylUe73+7vpjgeBvLA22Q7S0ziime/XmTEiLi55KY5OH5zUs3XXn/ydtBKHIkTudN+8mT1k+9lcfQTXmk5yNSJ7qvJifTT2pGPY4o7/SRoFY7jpIyc5+K46Ekcl/M4ZLP8Y3osHwdPUVLAsaKU0/4no2Na0TeIjvlPgpZwXPTuZVEdXQ3SZMIhzHAkPk78l9aO60zteDIT82UcXdklXEocl9NaBByrx8ARHwObT3z7mO2spjh45R0cDSb+U3RWow4v40+jH9x8hoODvTv9LXtbXt+7B5PtiHHzEe90gWPNTRL/4S6dO0R7NMPRHXXo9Vvqv+W5IzV/bGZwiHbr5EFETJPjpfd3yVa+v/gk4NjyLUQIOIADAg7ggIADAg7ggIADOKAt4CBQCZTigCdKoVqCowZPlCY+CGKjTDyAAzgg4AAOaMdwhLZptFQyTDvcqhFwrFXgtN7fW2rxE06wNSPgWKu62Vons74VI+BYr7Gx1rFxbIy3YFSItDalkVYZHPX1jpXloP5po2LkisWxcWVwmBs5thWbnzYqRnKtslUVHEEr3tC1wSeNgGMDOQonRn6kOOqsNlLLKfwX1AUOpyI4QhUNRpmKR7jKKE/Fzx+O75tV6axsJQ2q4vFuq40i38381LZyjNDofqiQcxp+y1fxMNVGFmUzHryrbKuNCowOqzLRYShptJQ8jBwjf8aD0xjmGBX2G1apduTQUPPIM5ryWKYxMypKrEqdlZFDQ8UjLzpa8YSHikbh0VGpRtfMo6HgYeYXHPlaFY3ia0elpvK5Jike0szEEfnz3tXt/HZMxIeShl54Z9Xg/y+3KvesFkaIdjYeovYfzB0+VdEow9xRpUZ3YcCONxuwFVN57CtpFD+VkyCKgsrgCDaer4M1Ru4ao4LkidphVwXH1u7oqp4MluGOrsiidFgZHLv+vKNad3Q3erDHHTveglEhGgocUXVw7PizcptnKyusEA65KGTlQ4tga0YFSAvD6jS66Sixw+usarXK4dgzAQdwQGtx1PIEHxWA46zeUOsAPgIO4Gio0tIpcAAHcABH2XBoCtWBA6UcOM5OGw1VcNSBo5Ax8EzkpcUJEKWjSBynC4mqVj4cYiklW1oPsxc46gclxGERErCldSAOm+wwZ3dwVKDPFTiI66pOucauRUd9XrUS42gx6tuEhMlaPs+Siyw9YnmE2Fayvo/aQ/ka1I4vT1YOC4hJA6K7WiMKBI4kOjgOjRna2Io4Dj8gblRdHGdH8yprKW9pZChqhGWSeCgffWdx2JT/a/ocBz9luMDx1ckqcbsEoEWMJclqikPsk4BWH0dFkpVQGh1coeXsZnRUpZTLzjapHZ6pNdoJDr1NtPnaUXEciydLjIPESWcV8C6qnSSrwKfufGeFZAXt1VS+TzhwC7FUOI4W7q8jWaF2AIfEwYNhIToOaqcacBSDAwIOCDjKIjuObeAoixo6VwM4SqJQ4AiB4+uud5dRJm4yB5ObZlqbMvEgwHQVr645uu7UgOPLZA7HxKQ20ZiuhRZHYAw1m46Jpn5CfGQHR6gdXyzqEY9q4jsuxvIJDMfjtNFZFaSAu18+BAj5jsThaUz5p9MGLx0FfBdi6MV67IV7gsO10nVHPEzitkhWhmv7ihUtopI7fx2HrSey94KGIb6DZ4ojtChzxiwYxsSxlirNewE4wgmN9/d9iA+PikZqmqyk4kjUD7GUYkFOATg8PZW3LzRmpVxejywUOOyvwKF/Ru1d1QKNWaMrXRYTwpNVPASOv4xDfvenWJmajoGi02Jj+eU8itEDyaqAxje3hRGlfKnT/VulfPn2zH6otibTFNTotmwCLY2BuoExsMzCTRLggIADOCDgAA4IOIADAg7ggIADAg7ggIADOKCP4QCP8tAQOMCjHKo1ExzgUZLYmOCAyqL/AfPm9ENwSz0oAAAAAElFTkSuQmCC\"","import * as math from 'mathjs';\n\n// define limitedEvaluate and limitedParse for increased security\n// disable all other features\nconst m = math.create(math.all);\nconst limitedEvaluate = m.evaluate;\nconst limitedParse = m.parse;\n\nm.import({\n 'import': () => { throw new Error('Function import is disabled'); },\n 'createUnit': () => { throw new Error('Function createUnit is disabled'); },\n 'evaluate': () => { throw new Error('Function evaluate is disabled'); },\n 'parse': () => { throw new Error('Function parse is disabled'); },\n 'simplify': () => { throw new Error('Function simplify is disabled'); },\n 'derivative': () => { throw new Error('Function derivative is disabled'); },\n}, { override: true });\n\n// --------------------- end of security stuff ---------------------\n\n// override isAlpha check of parser, to allow dots ('.') in variable names\nlimitedParse.isAlpha = (c, cPrev, cNext) => math.parse.isAlpha(c, cPrev, cNext) || (c === '.') || (c === '@');\n\n/**\n * @param {string} expression\n * @returns a list of variables in the order they appear within the expression.\n */\nexport function getVariableNames(expression) {\n // variable that starts with letter (or @ sign), followed by arbitrarily many letters, digits, underscores or dots.\n // \"\\w\" = \"a-z\", \"A-Z\", \"0-9\", \"_\"\n return expression.match(/^$|\\b(?!min\\b|max\\b)[a-zA-Z@][\\w.]*/g) ?? [];\n}\n\n/**\n * @param {string} expression\n * @returns the count of variables appearing within the expression.\n */\nexport function getVariableCount(expression) {\n return getVariableNames(expression).length;\n}\n\n/**\n * Calculates the result of the expression using the given variable scope.\n * If the expression or the scope are not valid, 0 is returned.\n * @param {string} expression The expression string.\n * @param {Object} scope Object containing a mapping from each variable to a value.\n * @returns The result of the calculation, or 0 if there was an error.\n */\nexport function calculate(expression, scope) {\n try {\n // remove possible newlines from expression, as they are not wanted\n const exprWithoutNewlines = expression.replace(/\\r?\\n|\\r/g, ' ');\n const result = limitedEvaluate(exprWithoutNewlines, scope);\n\n if (!(typeof result === 'number')) throw new Error('Result is not a number.');\n\n return result;\n } catch (_) {\n // expression contains some error or scope is erroneous -> return 0\n return 0;\n }\n}\n\n/**\n * Checks if the expression can be parsed.\n * @param {string} expression\n * @returns true if the expression can be parsed successfully.\n */\nexport function canBeParsed(expression) {\n try {\n limitedParse(expression);\n return true;\n } catch (_) {\n return false;\n }\n}\n\n/**\n * Creates a scope object for using in a calculation.\n * @param {number} index the index of the datapoint in the chart series that should be treated\n * @param {string[]} variableNames array of variables names appearing in the expression\n * @param {string[]} aggregations array of aggregations corresponding to each variable within variableNames\n * @param {Object} variableValues\n * @returns an object containing a mapping -> value, of current point in time (index)\n */\nexport function getScope(index, variableNames, aggregations, variableValues) {\n const scope = {};\n variableNames.forEach((v, i) => {\n const key = `${v}_${aggregations[i]}`;\n scope[key] = variableValues[key]?.[index]?.[1] ?? 0;\n });\n return scope;\n}\n\n/**\n * Takes the given expression and adds the suffix \"_\" to each variable.\n * @param {string} expression the expression string\n * @param {string[]} aggregations the array of aggregations in the order of appearence of the variables\n * @returns the new expression string with the replaced names.\n */\nexport function addAggsToExpression(expression, aggregations) {\n const variableNames = getVariableNames(expression);\n let newExpression = '';\n variableNames.forEach((v, i) => {\n // look for next occurrence of variable\n const foundIndex = expression.indexOf(v);\n // take part before found index\n newExpression += expression.substring(0, foundIndex);\n // add \"_\"\n newExpression += `${v}_${aggregations[i]}`;\n // set expression to remaining part\n expression = expression.substring(foundIndex + v.length);\n });\n newExpression += expression;\n\n return newExpression;\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContent.vue?vue&type=style&index=0&id=1d0044ea&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AdditionalIndicator.vue?vue&type=style&index=0&id=dd0f0c40&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectPlan.vue?vue&type=style&index=0&id=9916b9e4&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=style&index=0&id=e0c07694&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RangeDatePicker.vue?vue&type=style&index=0&id=4443e28a&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfflineChart.vue?vue&type=style&index=0&id=c209c9aa&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrightnessSensor.vue?vue&type=style&index=0&id=54a95976&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=a70ae0f6&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"simple-base-chart-wrapper deviceBackground\",style:(`height: 100%`),attrs:{\"elevation\":\"0\"}},[_c('BaseChart',{attrs:{\"chart-data\":_vm.chartData,\"chart-width\":_vm.chartWidth,\"show-device-actions\":false,\"navigation-items-to-exclude\":_vm.navigationItemsToExclude,\"parent-component-width\":_vm.parentComponentWidth,\"customApproximationValue\":_vm.customApproximationValue,\"chartHeight\":_vm.settingsWrapperHeight,\"chartScores\":_vm.chartScores,\"modularDefaultPeriod\":_vm.modularDefaultPeriod},on:{\"onDataLoaded\":_vm.onDataLoaded,\"chartRangeChange\":_vm.chartRangeChange,\"handleAutarkiegrad\":function($event){return _vm.$emit('handleAutarkiegrad', $event)}}}),_vm._t(\"additional-content\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { Chart } from 'highcharts';\nimport BaseChart from '@/ui/components/devices/charts/charts/BaseChart.vue';\nimport { ApproximationValue, ChartData } from '@/types/chart.types';\n\n/**\n * Component that represent simple wrapper for chart with one slot for additional content.\n * Used in MPC devices.\n */\n@Component({\n components: {\n BaseChart,\n },\n})\nexport default class BaseChartWrapper extends Vue {\n @Prop() chartData!: ChartData;\n @Prop() chartWidth!: number;\n @Prop() settingsWrapperHeight!: number; // is used to get the height of the modal window in order to size the height of the chart right\n @Prop({ default: undefined }) chartWrapperHeight!: number; // important for ems\n @Prop({ default: null }) navigationItemsToExclude!: null | string[];\n @Prop({ default: 0 }) parentComponentWidth!: number;\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: ApproximationValue;\n @Prop({ default: null }) chartScores!: Record;\n @Prop({ default: undefined }) modularDefaultPeriod!: string\n\n onDataLoaded(data: [number, number][], chart: Chart, period: string) {\n this.$emit('onDataLoaded', data, chart, period);\n }\n chartRangeChange(params: { start: number; end: number; period: string }) {\n this.$emit('chartRangeChange', params);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChartWrapper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseChartWrapper.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BaseChartWrapper.vue?vue&type=template&id=1fa6d338&\"\nimport script from \"./BaseChartWrapper.vue?vue&type=script&lang=ts&\"\nexport * from \"./BaseChartWrapper.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=style&index=0&id=0c13e448&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=style&index=0&id=528f31a6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=style&index=0&id=3c6e56b6&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WarmWater.vue?vue&type=style&index=0&id=f35573e0&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"primary project-measurements\"},[(_vm.measurementsDataLoaded)?_c('div',{staticClass:\"measurements-table-wrapper\"},[_c('v-data-table',{staticClass:\"elevation-0 primary measurements-table\",staticStyle:{\"min-width\":\"768px\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredMeasurements,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"body\",fn:function({ items }){return [_c('tbody',_vm._l((items),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.variable))]),_c('td',{staticClass:\"d-flex\"},[_c('v-lazy',{staticStyle:{\"width\":\"70%\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\",\"open-delay\":\"1000\",\"max-width\":\"500\",\"open-on-click\":item.alias !== null,\"open-on-focus\":item.alias !== null,\"open-on-hover\":item.alias !== null},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',[_c('v-text-field',_vm._g({staticClass:\"px-2 mt-2\",attrs:{\"label\":_vm.$t('uiComponents.measurementsTable.textFields.description'),\"outlined\":\"\",\"dense\":\"\",\"flat\":\"\",\"height\":20,\"color\":\"accent\",\"minLength\":0,\"maxLength\":250,\"hide-details\":\"\"},model:{value:(item.alias),callback:function ($$v) {_vm.$set(item, \"alias\", $$v)},expression:\"item.alias\"}},on))],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.alias))])])],1),_c('v-lazy',[_c('v-btn',{staticClass:\"mt-3\",attrs:{\"depressed\":\"\",\"color\":\"accent\",\"small\":true,\"height\":32},on:{\"click\":function($event){return _vm.updateAlias(item)}}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)],1),_c('td',[_vm._v(_vm._s(_vm.measurementValue(_vm.measurements[item.variable])))])])}),0)]}}],null,false,4141200809)})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { IVariable } from '@/types/variables.types';\n\n/**\n * Measurements page that shows measurements list\n */\n@Component\nexport default class Measurements extends Vue {\n @State('measurements') measurementsState!: IVariablesState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('variables/variables') variables!: IVariable[];\n @Mutation('measurements/setMeasurementsFilterCount') setMeasurementsCount!: (count: number) => void;\n @Mutation('projects/setProjectLoader') setProjectLoader!: (status: boolean) => void;\n @Action('measurements/fetchMeasurements') fetchMeasurements!: (projectId: string) => Promise;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('variables/modifyVariableAlias') modifyVariableAlias!: (variable: any) => Promise;\n\n measurementsDataLoaded = false;\n /**\n * Header for measurements table\n */\n get headers() {\n return [\n { text: this.$t('uiComponents.measurementsTable.headers.name'), value: 'variable' },\n { text: this.$t('uiComponents.measurementsTable.headers.description'), value: 'description' },\n { text: this.$t('uiComponents.measurementsTable.headers.value'), value: 'value', sortable: false },\n ];\n }\n\n /**\n * set value rounded if it has to many numbers after comma,\n * if the value is a string and is longer than 30 characters, truncates it\n */\n measurementValue(value: any) {\n const roundedValue = (value: any) => {\n return Math.round(value * 1e2) / 1e2;\n };\n if (typeof value === 'number') return roundedValue(value);\n if (typeof value === 'string') return value.slice(0, 30);\n return value;\n }\n\n get measurementsFilter() {\n return this.measurementsState.measurementsFilter;\n }\n\n get joinedMeasurements() {\n return this.variables.map((variable: any) => {\n return Object.values(variable).join().toLowerCase();\n });\n }\n\n get filteredMeasurements() {\n let filteredList = this.measurementsFilter\n ? this.variables\n .filter((variable: any, index: number) => this.joinedMeasurements[index].includes(this.measurementsFilter.toLowerCase()))\n : this.variables;\n\n // filter out heartbeat variables from list\n const additionalVariablesToFilter = ['$hb', '$hb2'];\n filteredList = filteredList.filter((element: IVariable) => !additionalVariablesToFilter.includes(element.variable));\n\n this.setMeasurementsCount(filteredList.length);\n return filteredList;\n }\n\n async updateAlias(item: any) {\n await this.modifyVariableAlias({ projectId: this.$route.params.id, variable: item });\n }\n\n async created() {\n this.setProjectLoader(true);\n await Promise.allSettled([\n this.fetchMeasurements(this.$route.params.id),\n this.fetchVariables(this.$route.params.id),\n ]).finally(() => {\n this.setProjectLoader(false);\n this.measurementsDataLoaded = true;\n });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Measurements.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Measurements.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Measurements.vue?vue&type=template&id=3ad18df2&scoped=true&\"\nimport script from \"./Measurements.vue?vue&type=script&lang=ts&\"\nexport * from \"./Measurements.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Measurements.vue?vue&type=style&index=0&id=3ad18df2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3ad18df2\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cooling.vue?vue&type=style&index=0&id=011405f6&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargingStationButton.vue?vue&type=style&index=0&id=a776ac3c&prod&lang=scss&scoped=true&\"","import { envUserRolesAccessBlockList } from '@/utils/env';\n\nexport enum UserRoleCode {\n admin = 1000,\n user = 1001,\n readOnly = 1002,\n}\n\nexport enum UserRoleName {\n admin = 'Admin',\n user = 'User',\n readOnly = 'ReadOnly',\n}\n\nexport const userRolesKeys: Record = {\n [UserRoleCode.admin]: UserRoleName.admin,\n [UserRoleCode.user]: UserRoleName.user,\n [UserRoleCode.readOnly]: UserRoleName.readOnly,\n};\n\nexport const checkProtocolAccessList = ['support@lynus.io', 'technik@rehl-energy.de'];\n\n/**\n * Checks whether the given role can access the given permissionName, found in the permissionCategory.\n * @param role the role as number (1000, 1001, 1002)\n * @param permissionCategory the permission category, e.g. CreateModals for all modals permissions\n * @param permissionName name of the actual permission within the category\n * @returns true if the permission can be accessed\n */\nexport function canAccess(role: number, permissionCategory: string, permissionName: string): boolean {\n return !envUserRolesAccessBlockList[userRolesKeys[role]][permissionCategory].includes(permissionName);\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=fe926552&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-combobox',{ref:\"customField\",staticClass:\"custom-combobox-field\",attrs:{\"items\":_vm.items,\"rules\":[_vm.customRules],\"label\":_vm.label,\"disabled\":_vm.disabled,\"color\":\"accent\",\"hide-selected\":\"\",\"outlined\":\"\",\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false,\"value\":_vm.value,\"dense\":_vm.dense},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":\"500\",\"open-delay\":\"1000\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-list-item',_vm._g(_vm._b({attrs:{\"two-line\":\"\"}},'v-list-item',attrs,false),on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.value))]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(item.alias)+\" \")])],1)],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.text))])])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { IVariable } from '@/types/variables.types';\nimport VueI18n from 'vue-i18n';\n\n/**\n * Combobox field component which used in manage modal forms\n */\n@Component\nexport default class ComboboxField extends Vue {\n @Prop() value!: string | number;\n @Prop({ default: null }) items!: IVariable[] | null;\n @Prop({ default: null }) label!: null | string | VueI18n.TranslateResult;\n @Prop({ default: true }) optional!: boolean;\n @Prop() disabled!: boolean;\n @Prop({ default: false }) dense!: boolean;\n\n get customRules() {\n if (!this.optional) return (value: number) => (value === 0 || !!value) || this.$t('validationRules.required');\n else return true;\n }\n\n mounted() {\n (this.$refs.customField as any).validate(true);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComboboxField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComboboxField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComboboxField.vue?vue&type=template&id=252ba4d4&scoped=true&\"\nimport script from \"./ComboboxField.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComboboxField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ComboboxField.vue?vue&type=style&index=0&id=252ba4d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"252ba4d4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PVSystem.vue?vue&type=style&index=0&id=14d802a6&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB7CAMAAABU8pdQAAAAnFBMVEUxMTE/Pz/GxsZJSUlSUlL///9OTk4XFxdFRUW9vb05OTk1NTX/0pf/6bfS/f9nZ2e36f7+/NRtFxeY0v4XGJVttOjq7O8XF24Ydbns/v+2trb8/fCVGBetr648FxdSl8yhpKXPkhzLnG2lZC8lJSWVkZHjrmCAf4UoVph6Ohfg19IXKEmOvuNINBcXFzIiQGf2xYUXF4XZvaCXRG/pYY+UAAAE8UlEQVR42u2c6VbiQBBG6YQOoYMBBomEyCK7oIzOvP+7TVUnaFhEtkA7+e45bhj40ZevqyqJFkrAIApYgh+io1l/PO+1G3e/sMBH67j3K/H3Lfn2vY7fL6GU9UF3c+mjJ+i4rI4v05E64qFWH3ZJSaW7/YSH2vr6Q0fmOlpyQp+XLwPoyHyzCmnDWfZCGc35oWb9byOUd8/0uJQyWdqWfPpwRFvbu08xeahVuuTu3qfDSOGyF9DXIeuY1qSsPGOVT9fRiwavvBmRDknfznjR0+kIoz9DnYwFv/lbIa37zJ/oKCXpiF+BNDaoxry2wglW+WQd8ZLS+53TQe/wJS96ejvrUQaiORvh3zfn/lOpFQ1TOj63rAYpiV8KnKiD3+kfOh6TArBWXZazPm1Gky4f/lAbNGijokM+ddz7k3TtgI5zdMR7yz4dzKxGgXj331r1x1797+rgWMfn7gQdZ+u49w/RUepRRafi8VLpzvwBPwXpyKh28ESxoSO1pL87zysdpWYUTEhKQEmJD16tfxc6LthZ0Zgn13RQDp4Xr3Eswrthd9HzuUrrtorM8Krrg6m402HcWS10ZwUdJ+mQTDSM545mKOvj9XRQgZerkyCzGk0h0R/OiB46SrPwbTUzzmjMmCRzB82J0HGKjh28Yw0N0dEaFEuL5o4TguAWOnoBbUbBrlNS4FabFYAOAB3QAaADOgB0/A86RgVwc0aJDsgwA2+kdWAhTIF1IBwG7VcFhMOkeEAHdADogA4AHdABoOOHY8+ltGzoMIQ530xlQYch6HvbAuiADrCNxTra0GEK7SDoo7NCowuQDtMpo3aYRITOCo0uwFT+EyiSjznOWaHRBbuYWtYUOkyhz7VjDB2GEKCzQqML9qUDja4xlZzG8qAKHabgVqtodDNACeHuQgi193meBx2Xl+HuQ2EMvCaecPcjvMx12I4NEbEN93u8rHU4RQcmUjaq40653BlXz/cBHeegd6pqv5zQ3y1EZKTDdbw1HZ7joopXyymqZ9bzY3SIYqLB+fhaFHnWsWXjKx/ZpMMuFu240VbpH3Mdjv66jv558TiudiRx8HT39hGWPFeOjXB8EQ+RjQ6POlyPQkHYHvW7Xu51jDd1jK+oo+BxJhJEId82dOnobOronFU8jm10XQ6G8ARHJN9tVayjvMVVdCSnuxTVi7guKaojKv0r6LiiDq7btuBmatUlKO6rhJ3jZlccvFldvHa4unwX0q0tqSnosu7mWMeNSrniHLgqHQUKjHI5MyqnOtTBjW5Gc0eiw7XdRAdq+UFjYCFTHfFJEuhQB54kURnpSESkP2Muv9xMfrQOV8dDixAYPOLrHd+eYM/oeodyhKencdbB07knHAUfqctP4npXA/lcVWxB60i88LmrXPu40bVyFQ8eetqIddjJNCLyHZAb3UnixEFY08GRwXXaU++zOkuHUqtZnLYo/rDTD4OLcPStC/bHCXbc3GOADtdZ4WL1bq8DmKZDb1VYOuiAjl3VnMHSoXb8V/M8/pDZJIoWUYQOQ6iyDvxtoCmotmW1FXSYgphOBWoHOiuwgzKVjg50mAJX8jZ0mEIHOoyiDR3QAaADOsDxpXyr04WOWza6Fv69mEljoFWGDpOBDugA0AEdADqgA0AHdADogA4AHQA6oANAxw/SMcIqmMKIdCAepuCVWAfiYUw4Sv8A/L9uxYBrtBYAAAAASUVORK5CYII=\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=e766fcb8&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectronicBoiler.vue?vue&type=style&index=0&id=6e667a86&prod&lang=scss&scoped=true&\"","export default {\n red: '#fc0202',\n blue: '#003cff',\n green: '#29810e',\n yellow: '#f3db04',\n};\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventDotBase.vue?vue&type=style&index=0&id=30d4872e&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=style&index=0&id=0f5f6ff9&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB8CAMAAACiwBzrAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADAFBMVEXy8vJ7e3twcHDX19dvb2+AgIB+fn7////V1dWoqKiXl5cWFhYWW6vf39/29vYWNYLh4eGTk5OrWxbw8PDp6enU///k5OQaFhb//9SCNRbj4+P6+vra2tr5//////lycnJ1dXW8vLzUgjXZ2dk0Fhb//6sWFhkWFlvs7OydnZ2MjIzo6OhbFhbPz8/z8/P8/Px6enqr////1ILNzc2lpaVbrP8dJTzq6ur2//+xsbGsrKyFhYX/+PDw+f8WKXQ6GBgfFhbDw8MWFhv6z4HE//////bP+f/r//+Wlpbc3NyDg4PIyMiYmJjLy8slFiPFxcWSkpIWFzQWFzpZPCPh9v8mFhf//s86c7d8MRbkkENFLx9cq+vShTsWFyKAzvo1gtT//+qCgoKfn5/t7e3AwMDv/////+8XT57rq1z/75xOFhjrwInbpW3Xl1BOnO/2y5P7574kW6tgotaf7v8WGVC+9f8fMUBpuv9Dkd/9qVk2Snk6gs4WIGYYFykhabuG2f+C1P/GdSrvnU4kGxbY2Nj//7qioqJoIBaJiYnAdUKcTha3t7fS0tJQl9JtpNn/xHPD3fCzzez/9tdZjL4aPHD/9uEfNHYaITFtRTHZpGMjN1QnJ1AWNX2Xy+lHJBZjpdv/uWenXSrf//+a2f9BFhb/4o61+f8XJEsWP4xDkORjKhcyfc/58MyxaCr8smKgUBmO4v99Nxe5gj5WFxf//8fPfTKQQxZfGRYWFj+r/PyamprlyJf2160nVY2CWTyCgquXeJD/+eVaLx+cX0v525zw3cOMy/bszbhosOXdt4JFbaKvjXdLJxmYgmLGjEdPPCPNol+MvOUsUJA8Jh/X9v9OnOtFYoJWpflZgphtja/l+f+GOhn/76+CwOtzxP+ibUWt1/YvHxnSl1VzKRaMWTy33fD55bB4RSP/+aXvr1//2YYWFkP2y3kWKWvL16J4rdK75P9Ql9cWVqW6//+1aDCw5fnK//+Xq1spFjpltaur+eQWQ5Apc8Q1GVs/PxYZVlsTOW2HAAAG7klEQVR42u2cd1RTVxzHXyPkAiExEBrQEJIgRgQhlL1UwKKWJdhiteCqE6zUumedpVqt21atWu3Qat1bu/fee++99x73viSQhIjB42vu6ft+/nh57yXvcM7vw72/3+++d55AWie2y3nkrBDe/lwCToNAyIQPF6qKNj5nPAMbq995T2Wdujzb4/TWgith48xsvLlr7UfG3duss4y+2ejcLdS5G/XGjs3Z6w5WX9Gn5YVRHdzDDxs+2Rg05236OeyBh0mbbWwtaKDbmCWPGmHjLNmIrRrSdHT5hZHWzBtZbMc59piNYdv6DyExl10SOXjmTyQ1TqVSOSI7Q/WKU9ExOjdddfWYUWTAwFBjalxG5270Z/RadlnRxreYja/XFxQ93xshb9XG3oLM11ba/7l79bz4ouLx1dPte/lP33AzszHsRyqDfFbxXfbuAz1+dh0bt95S9eoqMWmMvoYKWlE9eRKpq2+gxjKcY2NsxbXd1+25bgoJt+74pvuXcTsR8lZtxGyg/+3Xv/wunXLCe5xv38aEz97unKlO1M6poTPZ0dtuImRFxTRXG2TckyrV4JmbqctBVMT8fw5lkL1V81xsRHVgl4kz1VdTCBs4CHnrNRUpfuQpOgvV0NCJsRrUf25Uh++NThu/VNSI2eJ2uq2r3+lmg8Q89MQzkawAWFGdcXhgzb5Q4xFqtNmG/bKmvOH4C6AVG2LG2DJ7uyPOM6rmNUc81so8EfJ5T5XIUHcbjI93Hd9Pc8afqX+dWNDl96P022YbqXFDYaPtNsiRqnmOeYSOjeYZJdY6aw9LG3X1Q1vWVA5mqDJo4vjj4JhRdfW/HWtwtfHpIdhok40J94jdwvwv9jvzxuwf7HuOCnfAgU29yeEPQo3O0rUpoqvvFUukBYOnUYfH/26gTqb+Otduwxl+WmbBhs82Ymoj71ppzH82jrZw7jVV8Xh7TUUP6He1cyZ2z39/5rdk9L5NvfO7ixePrV67Kjv/sS3tqZRecTSPkwUqplG0MX/yJPozVlPdt4TVVLDhU011x/qFKmvmmted/cbEbHu/ocpc08fe/dVaXyLFG15wfPfg/ZFsMDDuvHshrccef5E4mg1a87I1EdHGhE8ii6aL/YZ16nIjbLQpbwDYALABGwA2YAPABmwA2IAN8F/ZsGmSBeBnkjU20YYBoeADA7VhQxh4wUYEDaLACxoiIGfwkzsIYsARsAEbADZgA8AGbIA2kTg8wJQDG5xQEkCxwAYXXMBkBPSFDY5slMEGHyQwG+WwwQe6S1OUacjiqHCBt7GRlwQbnNAXeYMfOqKm4oho9Bs8EYhenCP0gQGKXGRxVLigJUFl6XrY4IRcmjbMatjgggixpuoKG6hwgQc6M7ORAxt8UGoKCEjQwQYnjNDqUeGi3wCw8b+2kXOON3IQQr/YCDaHtMQcjBD6x0ag/TMthA6JEMcN9kDYEBLVnYK80UmdKLWN8hTT4kZL42JTSjlsMPTtgk5NO72kNhoVZSPs1XKZohE2hPjooNaJjpfORrCpX9NxP1Ow7G1kiRHX6gyEGHRa7z6ypLKRpBjpcmKkIknmNuJZtNUa54sQNGqvOuIlspGQ4HaGHsrbBpumtK4vpvA6PKKlsaFWuD+OlaRQy9qGno0M9/eEeB0deklsLDV7nDIvlbUNVk1p3G1ovFZWktgQq6pF5pQIISLFvEisqORsI9FznjrlXJUomY1ChSJaiFYoCmVvg81KOk8bOm821FLYyFWyTwtr+wqZDEGZK2cbrAM3eNoweO3KpbBRqtC6ndEqSuVsg8W55fu+vBa5klS4HmuEuWYBNvxnI8dEizV9BD2IYDumHNnb8G2mksaGriRPEMKYgOAwQcgr0Qlyzxu+ZXFJ8gYdDstcbCzTy3udSu1zhauWxgajyYYgyNsG6zd86v6k6TfYNs2SV2mxWCrzLGlytyH24r6sjEjSiyu1Wq0QZnbcEDeHCfRYKfd1Kh9WDaVZp1JQ7POUYJ+r2AnZr+GefkVdkjXcCK04NlxssBMRcrYRH+TD3SZp7m+45HDBJY/Lmqyg0yPNvT+HjRDHTghsCH68L26nn+mk+HnSVA4XYir3zzMjDspNLHkrIKO57/DH81RNCwKVKZaUyk6wIAFn8FR0YbqQXojIcWIDnBXSA4eXwwYnlCuVyhLY4ISR1IYyHjY4qcTylMquGBvcNCqWUh1soKYCnnQMpGkDb0TihGiWxJE3OCErATZ4AjZgA8AGbIA2ZvHh6bDBT4WrTIANfro/ZRhscAxswAaADdgAsAEbADZgA8AGbADYgA0AG8DTRjKCwAvJRNAgCrygIYINUeAFGxGIAWHgAwOhNohNg9zh/5yhsRHRBuAG2OCJfwEdCVH+Z/NecgAAAABJRU5ErkJggg==\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricityMeter.vue?vue&type=style&index=0&id=637edbff&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FeedbackProvider.vue?vue&type=style&index=0&id=8283cebe&prod&lang=scss&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryComponentSettings.vue?vue&type=style&index=0&id=2b9e7670&prod&lang=css&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=style&index=0&id=0c3f7679&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/Batterie.f9bc6a04.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineChart.vue?vue&type=style&index=0&id=6c54c6e9&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'ConsumptionService' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"house-consumption\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"consumption-service-device\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.actualPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"2,56 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedEnergy`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kWh\")])]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"consumption-service-charts-content\"},[_c('SettingsCharts')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-settings-charts-preview\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c('div',[_c(item.component,{tag:\"component\"})],1)])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700,\"showNavigationButtons\":false}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Forecast extends Vue {\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n const lang: any = this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast');\n\n currentChartOptions = [\n {\n agg: 'first',\n name: lang.predictedEnergy,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: lang.predictedPower,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=e4a88568&scoped=true&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Forecast.vue?vue&type=style&index=0&id=e4a88568&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e4a88568\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"consumption-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Chart extends Vue {\n tab: any = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.actualPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.calculatedPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n get settingsViewLang() {\n return 'mlModel.ConsumptionService.settingsView';\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Chart.vue?vue&type=template&id=4fa1630e&\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts&\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Chart.vue?vue&type=style&index=0&id=4fa1630e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/previews/mpc/ConsumptionService/Forecast.vue';\nimport Chart from '@/ui/components/devices/previews/mpc/ConsumptionService/Chart.vue';\n\n@Component({\n components: {\n Forecast,\n Chart,\n },\n})\nexport default class SettingsCharts extends Vue {\n tab: any = null\n\n get settingsViewLang() {\n return 'mlModel.ConsumptionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'Chart',\n locale: this.settingsViewLang,\n component: 'Chart',\n },\n {\n title: 'Forecast',\n locale: this.settingsViewLang,\n component: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsCharts.vue?vue&type=template&id=2dcc274a&\"\nimport script from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsCharts.vue?vue&type=style&index=0&id=2dcc274a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport SettingsCharts from '@/ui/components/devices/previews/mpc/ConsumptionService/SettingsCharts.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n SettingsCharts,\n MPCLayout,\n },\n})\nexport default class ConsumptionServicePreview extends Vue {\n series = [\n {\n name: 'Valve Position',\n type: 'line',\n yAxis: 0,\n color: '#3450ae',\n data: [\n [1583100000000, 23],\n [1583103600000, 26],\n [1583107200000, 22],\n [1583110800000, 28],\n [1583114400000, 28],\n [1583118000000, 29],\n [1583121600000, 29],\n ],\n },\n {\n name: 'Temperature',\n type: 'line',\n yAxis: 1,\n color: '#50ab7e',\n data: [\n [1583100000000, 22],\n [1583103600000, 25],\n [1583107200000, 22],\n [1583110800000, 23],\n [1583114400000, 24],\n [1583118000000, 28],\n [1583121600000, 29],\n ],\n },\n ]\n yAxis = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#3450ae',\n labels: {\n format: '{value} °C',\n style: {\n color: '#3450ae',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#50ab7e',\n labels: {\n format: '{value}',\n style: {\n color: '#50ab7e',\n },\n },\n },\n ]\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get tabs() {\n return [\n {\n title: 'Forecast',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n {\n title: 'Chart',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n ];\n }\n get mainViewLang() {\n return 'mlModel.ConsumptionService.mainView';\n }\n get previewNameLang() {\n return this.$t('mlModel.ConsumptionService.previewName');\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44d96a40&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44d96a40&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('SystemDialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', false)}},scopedSlots:_vm._u([{key:\"title-text\",fn:function(){return [_vm._v(_vm._s(_vm.$t(`mlModel.${_vm.deviceData.data.type}.systems.${_vm.openedSystem}.title`)))]},proxy:true},{key:\"body\",fn:function(){return [_c('SystemDialogView',{attrs:{\"circles-display-data\":_vm.systemDialogCircles,\"lines-display-data\":_vm.systemDialogLines,\"openedSystem\":_vm.openedSystem,\"deviceData\":_vm.deviceData,\"view\":\"ActualView\"}})]},proxy:true}])}),(_vm.showSystemSettingsDialog)?_c('ActualViewSystemSettingsDialog',{attrs:{\"device-data\":_vm.deviceData,\"opened-system\":_vm.openedSystem,\"circle-data\":_vm.openedSettingsSystemData},model:{value:(_vm.showSystemSettingsDialog),callback:function ($$v) {_vm.showSystemSettingsDialog=$$v},expression:\"showSystemSettingsDialog\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Provide } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport { has } from 'lodash';\nimport EnergyComponent\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyComponent';\nimport {\n energyCircleIconForType,\n EnergyCircleType,\n isSystemWithAlternativeValue,\n} from '@/types/energyVisualisation/EnergyCircleType';\nimport {\n EnergyCircleDisplayData,\n} from '@/types/energyVisualisation/EnergyCircleDisplayData';\nimport SystemDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialog.vue';\nimport SystemDialogView\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/SystemDialogView.vue';\nimport {\n getDefaultArrowDirection,\n getDefaultLineColors,\n getDefaultSpinnerColor,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/EnergyVisualisationUtils';\nimport {\n EnergyLineDisplayData,\n} from '@/types/energyVisualisation/EnergyLineDisplayData';\nimport ActualViewSystemSettingsDialog\n from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/ActualView/ActualViewSystemSettingsDialog.vue';\nimport {\n externalEnergyMeasurementsSelected,\n SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/utils/systemDialog';\nimport { IDevice } from '@/types/devices.types';\nimport {\n energyGreyColors,\n} from '@/ui/components/devices/components/EnergyParts/EnergyVisualisation/constants';\n\n/**\n * Actual view for EnergyView/EMS\n */\n@Component({\n components: {\n SystemDialog,\n SystemDialogView,\n ActualViewSystemSettingsDialog,\n },\n})\nexport default class ActualViewSystemDialog extends mixins(EnergyComponent) {\n // whether the dialog is currently shown (v-model)\n @Prop() value!: boolean;\n @Prop({ default: null }) deviceData!: IDevice;\n @Prop() openedSystem!: EnergyCircleType;\n @Prop({ default: () => [] }) devicesWithDynamicBottomValue!: string;\n @Prop({ default: false }) isHybridSystem!: boolean; // if the system is a hybrid system (normal components and pv components)\n @Prop() actualViewCiclesDisplayData!: EnergyCircleDisplayData[];\n\n showSystemSettingsDialog = false;\n openedSettingsSystemData?: EnergyCircleDisplayData;\n previousHouseValue = -1;\n\n @Provide('onSingleCircleClick') onSingleCircleClick = this.onSingleCircleClickCallback;\n onSingleCircleClickCallback(circleData: EnergyCircleDisplayData) {\n const isSettingsActive = SYSTEMS_WHERE_SETTINGS_WINDOW_ACTIVE.includes(this.deviceData.data.type);\n const isExternalEnergyMeasurements = externalEnergyMeasurementsSelected({\n system: this.openedSystem,\n systemInstance: circleData.id,\n device: this.deviceData,\n });\n if (!isSettingsActive || isExternalEnergyMeasurements) return;\n\n this.showSystemSettingsDialog = true;\n this.openedSettingsSystemData = circleData;\n }\n\n @Provide('onDialogLineAnimationEnd') onDialogLineAnimationEnd =\n this.onDialogLineAnimationEndCallback;\n onDialogLineAnimationEndCallback(id: string) {\n if (has(this.electricHeatingInstancesAnimationStatus, id)) {\n this.electricHeatingInstancesAnimationStatus[id] = !this.electricHeatingInstancesAnimationStatus[id];\n } else {\n this.$set(this.electricHeatingInstancesAnimationStatus, id, false);\n }\n }\n electricHeatingInstancesAnimationStatus: Record = {};\n\n get systemDialogCircles(): EnergyCircleDisplayData[] {\n if (!this.openedSystem) return [];\n\n const systems = this.getSystemComponents(this.deviceData, this.openedSystem);\n return Object.entries(systems).map(([key, systemComponent]) => {\n let bottomValue: any;\n let unit;\n let bottomDynamicValue;\n let disableSpinner;\n let additionalContent: any = {};\n\n if (this.openedSystem === EnergyCircleType.house) {\n const houseSystemCount = this.getSystemCount(this.deviceData, EnergyCircleType.house);\n // get display data for house\n const houseCircleData = this.actualViewCiclesDisplayData.find(\n (circleData: EnergyCircleDisplayData) => circleData.id === EnergyCircleType.house,\n );\n if (this.previousHouseValue < 0 && houseSystemCount === 1) {\n // if previous value is negative (only initialy) use calculated value (positive and negative)\n bottomValue = houseCircleData?.bottomValue;\n // if there is a hybrid system and the house value is negative, show the loading animation until the house value is positive or 0\n additionalContent = {\n showLoadingAnimationHouseCircle: this.isHybridSystem && bottomValue < 0 && this.previousHouseValue < 0,\n };\n } else if (this.previousHouseValue >= 0 && houseSystemCount === 1) {\n // if the previous value is positive and there is a hybrid system, show 0 else show the calculated value (if positive)\n bottomValue = (houseCircleData?.bottomValue as number) < 0 ? this.previousHouseValue : houseCircleData?.bottomValue;\n additionalContent = {\n showLoadingAnimationHouseCircle: false,\n };\n } else {\n // if there is no hybrid system, show the normal house value from plc\n bottomValue = this.getHouseValue(\n this.measurements[systemComponent.power],\n this.sumOfAllEnabledExternalMeasurementsSystemsValues,\n );\n }\n if ((bottomValue as number) < 0) {\n // if the house value is negative, show 0 or the previous value if it was positive\n if (this.previousHouseValue < 0) {\n bottomValue = 0;\n } else {\n bottomValue = this.previousHouseValue;\n }\n }\n const defaultHouseValue = this.getHouseValue(\n this.measurements[systemComponent.power],\n this.sumOfAllEnabledExternalMeasurementsSystemsValues,\n );\n this.previousHouseValue = bottomValue;\n if (!this.isHybridSystem) {\n // if there is no hybrid system we never show the loading animation\n additionalContent = {\n showLoadingAnimationHouseCircle: false,\n };\n }\n } else if (this.openedSystem === EnergyCircleType.electric_heating) {\n if (this.devicesWithDynamicBottomValue.includes(this.deviceData.data.type)) {\n const { v, u, isTemperature } = this.getElectricHeatingValue({\n power: this.measurements[systemComponent.power],\n temperature: this.measurements[systemComponent.temperature],\n status: this.electricHeatingInstancesAnimationStatus?.[key],\n });\n bottomValue = v;\n unit = u;\n bottomDynamicValue = isTemperature;\n const power = this.measurements[systemComponent.power];\n\n // if the power is negative and the temperature is visible, disable the spinner\n disableSpinner = isTemperature && power <= 0;\n } else {\n bottomValue = this.measurements[systemComponent.power];\n }\n } else {\n bottomValue = this.measurements[systemComponent.power];\n }\n\n // consumers (except house) look on target_power, if power is not mapped, for arrow animation\n let alternativeValue;\n if (isSystemWithAlternativeValue(this.openedSystem) && !bottomValue) {\n alternativeValue = this.measurements[systemComponent.target_power];\n }\n\n let currentSpinnerColor = getDefaultSpinnerColor(this.openedSystem, bottomValue ?? alternativeValue);\n if (this.openedSystem === EnergyCircleType.electric_heating && this.devicesWithDynamicBottomValue.includes(this.deviceData.data.type) && !disableSpinner) {\n // if the boiler temperature is visible, the spinner color is dependent on the power value not the temperature value\n // we then also force the animations to be visible\n const power: any = this.measurements[systemComponent.power];\n currentSpinnerColor = getDefaultSpinnerColor(this.openedSystem, power);\n additionalContent.forceAnimation = power > 0;\n } else {\n additionalContent.forceAnimation = false;\n }\n\n if ((bottomValue as number) >= 0.01 && (bottomValue as number) < 0.1) {\n // if value is between 0.01 and 0.1, but the bottom value is 0, show 0.1\n bottomValue = 0.1;\n }\n\n return {\n id: key,\n centerContent:\n this.openedSystem === EnergyCircleType.battery\n ? { type: 'soc', value: this.measurements[systemComponent.soc] }\n : { type: 'icon', value: energyCircleIconForType(this.openedSystem) },\n bottomValue,\n errorWarningMode: this.measurements[systemComponent.error],\n title: systemComponent.title,\n spinnerColor: currentSpinnerColor,\n alternativeValue,\n unit,\n bottomDynamicValue,\n disableSpinner,\n additionalDisplayData: additionalContent,\n } as EnergyCircleDisplayData;\n });\n }\n\n get systemDialogLines(): Partial[] {\n if (!this.openedSystem) return [];\n\n return this.systemDialogCircles.map(\n (displayData: EnergyCircleDisplayData) => {\n let arrowDirection;\n let colors;\n\n // if the temperature is visible and the power is negative, the arrow should not be visible else it should be visible (currently only for electric_heating systems)\n if (this.openedSystem === EnergyCircleType.electric_heating && displayData.bottomDynamicValue === true && displayData.disableSpinner) {\n arrowDirection = 0;\n colors = energyGreyColors;\n } else {\n arrowDirection = getDefaultArrowDirection(this.openedSystem, displayData);\n colors = getDefaultLineColors(this.openedSystem, displayData);\n }\n\n return {\n id: displayData.id,\n arrowDirection,\n colors,\n } as Partial;\n },\n );\n }\n\n beforeDestroy() {\n this.electricHeatingInstancesAnimationStatus = {};\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActualViewSystemDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActualViewSystemDialog.vue?vue&type=template&id=67157bdb&\"\nimport script from \"./ActualViewSystemDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActualViewSystemDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.exportData}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fa-file-download\")])],1)]}}])},[_c('span',[_vm._v(\"Download CSV\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent data export button\n */\n@Component\nexport default class DataExport extends Vue {\n @Prop() dataToExport!: any;\n @Prop({\n default: () => ({ picker: '', currentPeriod: false }),\n }) navigator?: any;\n @Prop({\n default: () => ({ data: { type: '' } }),\n }) chartData?: any;\n\n /**\n * Preparation of data for export into csv\n */\n exportData() {\n let fileName = '';\n const doc = 'data:text/csv;charset=utf-8,';\n let tableHeader = 'time';\n this.dataToExport.forEach((item: any) => {\n fileName += item.name;\n tableHeader += `;${item.name}`;\n });\n let table = doc + tableHeader;\n\n const isDay = this.navigator.picker === 'day';\n const isColumn = this.chartData.data.type === 'ColumnChart';\n\n let datePeriod = this.dataToExport[0].data.map((item: any) => [item[0]]);\n\n // add current time into the end of period if column chart and current day\n if (isColumn && this.navigator.currentPeriod) {\n const d = new Date();\n d.setSeconds(0, 0);\n let copy = [...this.dataToExport[0].data];\n copy.reverse();\n const idx = copy.findIndex((val: any) => typeof val[1] === 'number');\n copy[idx][0] = d.getTime();\n copy = copy.map(item => [item[0]]).reverse();\n datePeriod = copy;\n }\n\n const handleDateFormat = (date: any) => {\n if (isDay) {\n return new Date(date).toLocaleString('de-GE');\n }\n return new Date(date).toLocaleDateString('de-GE');\n };\n // hide time for week, month, year\n datePeriod = isColumn\n ? this.dataToExport[0].data.map((item: any) => [handleDateFormat(item[0])])\n : this.dataToExport[0].data.map((item: any) => [new Date(item[0]).toLocaleString('de-GE')]);\n\n this.dataToExport.forEach((serie: any) => {\n serie.data.forEach((item: any, index: any) => {\n datePeriod[index] = [...datePeriod[index], Intl.NumberFormat('de-GE').format(item[1])];\n });\n });\n\n // convert date periods for table\n datePeriod.forEach((item: any) => {\n table += `\\n${item.join(';')}`;\n });\n\n const data = encodeURI(table);\n // create link to download data\n const link = document.createElement('a');\n link.setAttribute('href', data);\n link.setAttribute('download', `${fileName}.csv`);\n link.click();\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataExport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataExport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DataExport.vue?vue&type=template&id=4a392777&\"\nimport script from \"./DataExport.vue?vue&type=script&lang=ts&\"\nexport * from \"./DataExport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingBufferInput.vue?vue&type=style&index=0&id=c21d2662&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=44d96a40&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextInputField.vue?vue&type=style&index=0&id=e934bec4&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"maxWidth\":\"1750\",\"width\":\"100%\",\"isConfirmationDialog\":!_vm.isFormUnchanged},on:{\"dialogStatus\":_vm.onDialogChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_vm._t(\"default\")]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"manage-chart-content\",staticStyle:{\"height\":\"80vh\",\"overflow-y\":\"auto\"}},[_c('v-stepper',{staticClass:\"fill-height d-flex flex-column\",attrs:{\"flat\":\"\"},model:{value:(_vm.stage),callback:function ($$v) {_vm.stage=$$v},expression:\"stage\"}},[_c('v-stepper-header',{staticClass:\"deviceBackground\"},[_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 1,\"step\":\"1\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCharts.stepperHeader.stage1'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"complete\":_vm.stage > 2,\"step\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCharts.stepperHeader.stage2'))+\" \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"accent\",\"step\":\"3\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCharts.stepperHeader.stage3'))+\" \")])],1),_c('v-stepper-items',{staticClass:\"deviceBackground flex-grow-1\"},[_c('v-stepper-content',{staticClass:\"fill-height\",attrs:{\"step\":\"1\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"p-0\",attrs:{\"cols\":\"6\",\"offset\":\"3\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.name'),\"autocomplete\":\"off\",\"outlined\":\"\",\"color\":\"accent\",\"maxLength\":\"30\"},model:{value:(_vm.localDeviceData.name),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"name\", $$v)},expression:\"localDeviceData.name\"}})],1)],1)],1)],1),_c('div',[_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.nameTypeValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.nameTypeValidation,\"elevation\":\"0\"},on:{\"click\":function($event){_vm.stage = 2}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\" fa-chevron-right \")])],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageCharts.tooltips.name')))])])],1)]),_c('v-stepper-content',{staticClass:\"fill-height\",attrs:{\"step\":\"2\"}},[_c('div',{staticClass:\"step-content\"},[(!_vm.showLoadingSpinner)?_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',_vm._l((_vm.localDeviceData.data.chartOptions),function(item,index){return _c('v-col',{key:index,staticClass:\"p-0\",attrs:{\"md\":\"4\"}},[_c('div',[(Object.keys(_vm.localDeviceData.data.chartOptions).length < 9)?_c('v-btn',{staticClass:\"accent lynus-small-btn\",style:({ visibility: _vm.addButtonVisibility(index) }),attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.addVariable}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"fa-plus\")]),_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageCharts.addVariable')))])],1):_vm._e()],1),_c('div',{staticClass:\"mt-2\"},[(Object.keys(_vm.localDeviceData.data.chartOptions).length > 1)?_c('v-btn',{staticClass:\"error lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.deleteVariable(index)}}},[_vm._v(\" delete \")]):_vm._e()],1),_c('div',{staticClass:\"pt-6\"},[_c('v-select',{ref:`Select${index}`,refInFor:true,attrs:{\"value\":item.seriesType,\"items\":_vm.selectionTypes,\"label\":_vm.$t('modals.manageCharts.form.exec'),\"rules\":[_vm.rules.required],\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"hide-details\":\"\",\"type\":\"number\",\"item-value\":\"value\",\"item-text\":\"text\"},on:{\"change\":function($event){return _vm.changeOptions($event, index)}}}),(item.seriesType === 'View')?_c('ManageChartsView',{attrs:{\"data\":item,\"aggregation-methods\":_vm.aggregationMethods,\"chart-types\":_vm.chartTypes,\"scaling-methods\":_vm.scalingMethods}}):_vm._e(),(item.seriesType === 'Calculation')?_c('ManageChartsCalculation',{attrs:{\"data\":item,\"aggregation-methods\":_vm.aggregationMethods,\"chart-types\":_vm.chartTypes,\"scaling-methods\":_vm.scalingMethods}}):_vm._e()],1)])}),1)],1):_c('div',[_c('div',{staticStyle:{\"display\":\"flex\",\"margin-left\":\"auto\",\"margin-right\":\"auto\"}},[_c('div',{staticClass:\"pr-8\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCharts.loadingText'))+\" \")]),_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":80}})],1)])],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 1}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.optionsValid},on:{\"click\":function($event){_vm.stage = 3}}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.next'))+\" \"),_c('v-icon',{staticClass:\"pl-2\",attrs:{\"small\":\"\"}},[_vm._v(\"fa-chevron-right\")])],1)],1)]),_c('v-stepper-content',{staticClass:\"fill-height\",attrs:{\"step\":\"3\"}},[_c('div',{staticClass:\"step-content\"},[_c('v-container',{staticClass:\"py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"p-0\",attrs:{\"cols\":\"6\",\"offset\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.rooms,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('modals.manageCharts.form.areas'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.collection_id),callback:function ($$v) {_vm.$set(_vm.localDeviceData, \"collection_id\", $$v)},expression:\"localDeviceData.collection_id\"}}),_c('v-select',{staticStyle:{\"padding-top\":\"10px\"},attrs:{\"items\":_vm.chartWidthOptions,\"item-value\":\"value\",\"item-text\":\"text\",\"label\":_vm.$t('modals.manageCharts.form.width'),\"color\":\"accent\",\"hide-selected\":\"\",\"hide-details\":\"\",\"outlined\":\"\"},model:{value:(_vm.localDeviceData.data.selectedWidth),callback:function ($$v) {_vm.$set(_vm.localDeviceData.data, \"selectedWidth\", $$v)},expression:\"localDeviceData.data.selectedWidth\"}})],1)],1)],1)],1),_c('div',[_c('v-btn',{staticClass:\"white--text mr-4 lynus-small-btn\",attrs:{\"elevation\":\"0\",\"color\":\"#C4C4C4\"},on:{\"click\":function($event){_vm.stage = 2}}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"small\":\"\",\"color\":\"#ffffff\"}},[_vm._v(\" fa-chevron-left \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.previous'))+\" \")],1),_c('v-tooltip',{attrs:{\"top\":\"\",\"disabled\":_vm.settingsValidation},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticStyle:{\"display\":\"inline-block\"}},'div',attrs,false),on),[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"disabled\":!_vm.settingsValidation,\"elevation\":\"0\"},on:{\"click\":_vm.sendForm}},[_c('v-icon',{staticClass:\"pr-2\",attrs:{\"color\":\"#ffffff\",\"size\":\"15\"}},[_vm._v(\" fa-paper-plane \")]),_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.send'))+\" \")],1)],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('modals.manageCharts.tooltips.areaFields')))])])],1)])],1)],1)],1)]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-combobox',{staticClass:\"pt-7\",attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageCharts.form.variable'),\"rules\":[_vm.rules.required],\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false},model:{value:(_vm.data.var),callback:function ($$v) {_vm.$set(_vm.data, \"var\", $$v)},expression:\"data.var\"}}),_c('v-select',{attrs:{\"items\":_vm.chartTypes,\"item-text\":\"text\",\"item-value\":\"value\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('modals.manageCharts.form.type')},model:{value:(_vm.data.type),callback:function ($$v) {_vm.$set(_vm.data, \"type\", $$v)},expression:\"data.type\"}}),_c('v-select',{attrs:{\"items\":_vm.aggregationMethods,\"item-text\":\"state\",\"item-value\":\"abbr\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('modals.manageCharts.form.aggregation')},model:{value:(_vm.data.agg),callback:function ($$v) {_vm.$set(_vm.data, \"agg\", $$v)},expression:\"data.agg\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.unit'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"10\",\"autocomplete\":\"off\"},model:{value:(_vm.data.unit),callback:function ($$v) {_vm.$set(_vm.data, \"unit\", $$v)},expression:\"data.unit\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.displayName'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"30\",\"autocomplete\":\"off\"},model:{value:(_vm.data.name),callback:function ($$v) {_vm.$set(_vm.data, \"name\", $$v)},expression:\"data.name\"}}),_c('v-select',{attrs:{\"value\":_vm.scaling,\"items\":_vm.scalingMethods,\"label\":_vm.$t('modals.manageCharts.form.yAxisScaling'),\"item-text\":\"text\",\"item-value\":\"value\",\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\"},on:{\"change\":_vm.handleScaling}}),(_vm.data.scaling.min !== null && _vm.data.scaling.max !== null)?_c('div',{staticClass:\"mt-2 d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.min'),\"color\":\"accent\",\"autocomplete\":\"off\",\"outlined\":\"\",\"rules\":_vm.scaling === 'manual' ? [_vm.rules.requiredNumber] : []},on:{\"input\":_vm.onScalingInput},model:{value:(_vm.data.scaling.min),callback:function ($$v) {_vm.$set(_vm.data.scaling, \"min\", $$v)},expression:\"data.scaling.min\"}}),_c('v-text-field',{staticClass:\"ml-2\",attrs:{\"label\":_vm.$t('modals.manageCharts.form.max'),\"color\":\"accent\",\"autocomplete\":\"off\",\"outlined\":\"\",\"rules\":_vm.scaling === 'manual' ? [_vm.rules.requiredNumber] : []},on:{\"input\":_vm.onScalingInput},model:{value:(_vm.data.scaling.max),callback:function ($$v) {_vm.$set(_vm.data.scaling, \"max\", $$v)},expression:\"data.scaling.max\"}})],1):_vm._e(),_c('div',{staticClass:\"mt-2\"},[_c('v-select',{attrs:{\"items\":_vm.chartColors,\"label\":_vm.$t('modals.manageCharts.form.color'),\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_c('div',{style:(`background-color: ${item}; width:20px; height:20px; color: transparent`)})]}},{key:\"item\",fn:function({ item }){return [_c('div',{style:(`background-color: ${item}; width:20px; height:20px; color: transparent`)},[_vm._v(\" \"+_vm._s(item)+\" \")])]}}]),model:{value:(_vm.data.seriesColor),callback:function ($$v) {_vm.$set(_vm.data, \"seriesColor\", $$v)},expression:\"data.seriesColor\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport { isNil, toNumber } from 'lodash';\nimport { defaultChartColors } from '@/ui/components/devices/charts/charts/LynusChart';\nimport { IVariable } from '@/types/variables.types';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Component that contains manage charts form\n */\n@Component\nexport default class ManageChartsView extends mixins(Validation) {\n @Prop() data!: any;\n @Prop() aggregationMethods!: any[];\n @Prop() chartTypes!: any[];\n @Prop() scalingMethods!: any[];\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n\n scaling = 'automatic';\n chartColors = defaultChartColors;\n valid = true;\n\n handleScaling(value: string) {\n this.scaling = value;\n if (value === 'automatic') {\n this.data.scaling.min = null;\n this.data.scaling.max = null;\n } else {\n this.data.scaling.min = 0;\n this.data.scaling.max = 1;\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n onScalingInput() {\n this.setScaling();\n }\n setScaling() {\n const { min, max } = this.data.scaling;\n if (min !== '' && max !== '' || min !== '0' && max !== '0') {\n this.scaling = 'manual';\n }\n if (min === '' && max === '' || min === '0' && max === '0' || isNil(min) && isNil(max)) {\n this.scaling = 'automatic';\n }\n }\n\n async created() {\n this.setScaling();\n }\n\n async mounted() {\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageChartsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageChartsView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageChartsView.vue?vue&type=template&id=7f1085e4&\"\nimport script from \"./ManageChartsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageChartsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-select',{staticClass:\"pt-7\",attrs:{\"label\":_vm.$t('modals.manageCharts.form.type'),\"items\":_vm.chartTypes,\"item-text\":\"text\",\"item-value\":\"value\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.data.type),callback:function ($$v) {_vm.$set(_vm.data, \"type\", $$v)},expression:\"data.type\"}}),_c('v-select',{attrs:{\"items\":_vm.aggregationMethods,\"label\":_vm.$t('modals.manageCharts.form.aggregation'),\"item-text\":\"state\",\"item-value\":\"abbr\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.data.agg),callback:function ($$v) {_vm.$set(_vm.data, \"agg\", $$v)},expression:\"data.agg\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.unit'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"10\",\"autocomplete\":\"off\"},model:{value:(_vm.data.unit),callback:function ($$v) {_vm.$set(_vm.data, \"unit\", $$v)},expression:\"data.unit\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.displayName'),\"color\":\"accent\",\"outlined\":\"\",\"maxLength\":\"30\",\"autocomplete\":\"off\"},model:{value:(_vm.data.name),callback:function ($$v) {_vm.$set(_vm.data, \"name\", $$v)},expression:\"data.name\"}}),_c('v-select',{attrs:{\"value\":_vm.scaling,\"items\":_vm.scalingMethods,\"label\":_vm.$t('modals.manageCharts.form.yAxisScaling'),\"item-text\":\"text\",\"item-value\":\"value\",\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\"},on:{\"change\":_vm.handleScaling}}),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.data.scaling.min !== null && _vm.data.scaling.max !== null)?_c('div',{staticClass:\"mt-2 d-flex\"},[_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageCharts.form.min'),\"color\":\"accent\",\"autocomplete\":\"off\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":_vm.scaling === 'manual' ? [_vm.rules.requiredNumber] : []},on:{\"input\":_vm.onScalingInput},model:{value:(_vm.data.scaling.min),callback:function ($$v) {_vm.$set(_vm.data.scaling, \"min\", $$v)},expression:\"data.scaling.min\"}}),_c('v-text-field',{staticClass:\"ml-2\",attrs:{\"label\":_vm.$t('modals.manageCharts.form.max'),\"color\":\"accent\",\"autocomplete\":\"off\",\"hide-details\":\"\",\"outlined\":\"\",\"rules\":_vm.scaling === 'manual' ? [_vm.rules.requiredNumber] : []},on:{\"input\":_vm.onScalingInput},model:{value:(_vm.data.scaling.max),callback:function ($$v) {_vm.$set(_vm.data.scaling, \"max\", $$v)},expression:\"data.scaling.max\"}})],1):_vm._e()]),_c('div',{staticClass:\"mt-2\"},[_c('v-select',{attrs:{\"items\":_vm.chartColors,\"label\":_vm.$t('modals.manageCharts.form.color'),\"color\":\"accent\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_c('div',{style:(`background-color: ${item}; width:20px; height:20px; color: transparent`)})]}},{key:\"item\",fn:function({ item }){return [_c('div',{style:(`background-color: ${item}; width:20px; height:20px; color: transparent`)},[_vm._v(\" \"+_vm._s(item)+\" \")])]}}]),model:{value:(_vm.data.seriesColor),callback:function ($$v) {_vm.$set(_vm.data, \"seriesColor\", $$v)},expression:\"data.seriesColor\"}})],1),_c('ExpressionTextArea',{attrs:{\"expressionVariable\":_vm.data.calculation.expression},on:{\"expressionChange\":_vm.onExpressionChange}}),_c('CalculationAggregationWindow',{attrs:{\"aggregations\":_vm.data.calculation.aggregations,\"expression\":_vm.data.calculation.expression,\"aggregation-methods\":_vm.aggregationMethods}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"800\",\"overlay-opacity\":\"0.8\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"accent lynus-small-btn\"},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"white\",\"size\":\"18\"}},[_vm._v(\" fa-info \")]),_c('span',{staticClass:\"pl-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.manageChartsExtraButtons.showAggOptions')))])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"calc-overView\"},[_c('div',{staticClass:\"calc-overView-header\"},[_c('div',[_vm._v(\"Aggregation Options\")]),_c('div',[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"calc-overView-body\"},_vm._l((_vm.aggregations),function(_,index){return _c('div',{key:index},[_c('div',{staticClass:\"py-2 font-weight-bold\"},[_vm._v(_vm._s(_vm.variablesList[index]))]),_c('v-select',{attrs:{\"items\":_vm.aggregationMethods,\"item-text\":\"state\",\"item-value\":\"abbr\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('modals.manageCharts.form.aggregation')},model:{value:(_vm.aggregations[index]),callback:function ($$v) {_vm.$set(_vm.aggregations, index, $$v)},expression:\"aggregations[index]\"}})],1)}),0)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { getVariableNames } from '@/ui/components/devices/charts/charts/ChartMath';\n\n/**\n * Component that manage calculation, aggregation\n */\n@Component\nexport default class CalculationAggregationWindow extends Vue {\n @Prop() aggregations!: string[];\n @Prop() expression!: string;\n @Prop() aggregationMethods!: any[];\n\n dialog = false;\n\n get variablesList() {\n return getVariableNames(this.expression);\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationAggregationWindow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationAggregationWindow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CalculationAggregationWindow.vue?vue&type=template&id=ff7473e0&\"\nimport script from \"./CalculationAggregationWindow.vue?vue&type=script&lang=ts&\"\nexport * from \"./CalculationAggregationWindow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CalculationAggregationWindow.vue?vue&type=style&index=0&id=ff7473e0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mt-6\"},[_c('div',{staticStyle:{\"width\":\"100%\",\"display\":\"table\",\"align-content\":\"end\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({staticStyle:{\"z-index\":\"999999999!important\",\"width\":\"30px\",\"margin-left\":\"auto\",\"margin-right\":\"10px\"},on:{\"mouseenter\":function($event){_vm.doesHover = true},\"mouseleave\":function($event){_vm.doesHover = false}}},on),[_c('lynus-icon',_vm._g({staticStyle:{\"z-index\":\"9!important\"},attrs:{\"name\":\"info-in-circle\",\"color\":_vm.doesHover ? 'accent' : 'theme',\"size\":\"24\"}},on))],1)]}}])},[_c('div',{staticStyle:{\"max-width\":\"200px\"}},[_c('div',{staticStyle:{\"font-weight\":\"bold\",\"padding-bottom\":\"4px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageCharts.form.expressionDescriptionTitle'))+\" \")]),_c('ul',_vm._l((_vm.$t('modals.manageCharts.form.expressionDescriptionItems')),function(item,index){return _c('li',{key:index},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)])])],1),_c('Mentionable',{attrs:{\"keys\":['@'],\"items\":_vm.listItems,\"offset\":\"5\",\"omitKey\":\"\",\"insertSpace\":\"\",\"limit\":100},on:{\"close\":function($event){return _vm.setFocusOnField()}}},[_c('v-textarea',{ref:\"textArea\",staticStyle:{\"font-family\":\"monospace\"},attrs:{\"label\":_vm.$t('modals.manageCharts.form.mathExpression'),\"height\":400,\"no-resize\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"rules\":[\n _vm.rules.required,\n _vm.rulesForExpressionField.variableNameRule,\n _vm.rulesForExpressionField.parenthesisRule,\n _vm.rulesForExpressionField.allowedCharsRule,\n _vm.rulesForExpressionField.variableCountRule,\n _vm.rulesForExpressionField.generalEpressionRule\n ]},on:{\"input\":function($event){return _vm.emitChanges()}},model:{value:(_vm.localExpressionVariable),callback:function ($$v) {_vm.localExpressionVariable=$$v},expression:\"localExpressionVariable\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator';\nimport { Getter, State } from 'vuex-class';\nimport CalculationAggregationWindow from '@/ui/components/modals/ManageChart/CalculationAggregationWindow.vue';\nimport { canBeParsed, getVariableCount, getVariableNames } from '@/ui/components/devices/charts/charts/ChartMath';\nimport { Mentionable } from 'vue-mention';\nimport { clone } from 'lodash';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\n\n/**\n * Expression Text Area component\n */\n@Component({\n components: {\n CalculationAggregationWindow,\n Mentionable,\n },\n})\nexport default class ExpressionTextArea extends mixins(Validation) {\n @Prop() expressionVariable !: any;\n @State('variables') variablesState!: any;\n @Getter('measurements/measurementsKeys') measurementsKeys!: any;\n\n listItems: any[] = [];\n doesHover = false;\n localExpressionVariable: string = clone(this.expressionVariable);\n\n rulesForExpressionField = {\n variableNameRule: () => this.checkVariableNames(),\n parenthesisRule: () => this.checkParenthesis(),\n allowedCharsRule: () => this.checkAllowedChars(),\n variableCountRule: () => this.checkVariableCount(),\n generalEpressionRule: () => this.checkGeneralExpression() || this.$t('modals.manageCharts.form.errorMessagesExpression.checkGeneralExpressionError'),\n }\n\n @Watch('expressionVariable')\n onExpressionVariableChange() {\n this.localExpressionVariable = clone(this.expressionVariable);\n }\n\n setFocusOnField() {\n setTimeout(() => {\n (this.$refs.textArea as any).focus();\n }, 100);\n }\n\n get allChecksOk() {\n return this.checkNotNull() === true\n && this.checkParenthesis() === true\n && this.checkAllowedChars() === true\n && this.checkVariableCount() === true\n && this.checkGeneralExpression() === true\n && this.checkVariableNames() === true;\n }\n\n /**\n * if there is an Error in the Expression Field the status gets emited to disable next button\n * @param allOk status of check\n */\n @Watch('allChecksOk')\n changeErrorHandling(allOk: boolean) {\n this.$emit('changeDisable', { val: !allOk });\n }\n\n async created() {\n const testCharacters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n // make list of {value: , label: } out of measurementKeys list\n this.listItems = this.variablesState.variables\n // filter elements that start with number\n .filter((e: any) => !testCharacters.includes(e.variable.charAt(0)))\n .map((e: any) => {\n if (e.alias !== null) {\n return { value: e.variable, label: `${e.variable} (${e.alias})` };\n } else {\n return { value: e.variable, label: e.variable };\n }\n });\n\n if (!this.checkNotNull) {\n this.$emit('changeDisable', { val: true });\n }\n\n await this.$nextTick();\n (this.$refs.textArea as any).validate(true);\n }\n\n /**\n * returns the new Math Expression to the childcomponent (ManageChartsCalculation)\n */\n emitChanges() {\n this.$emit('expressionChange', {\n varNames: getVariableNames(this.localExpressionVariable),\n fullExpression: this.localExpressionVariable,\n });\n }\n\n /**\n * Checks if variable names exist and are allowed to be used in expression.\n */\n checkVariableNames(): boolean | string {\n if (this.localExpressionVariable === '') return true;\n\n const variableNames = getVariableNames(this.localExpressionVariable);\n const availableVariables = this.listItems.map(e => e.value);\n\n for (let v of variableNames) {\n if (!availableVariables.includes(v)) {\n return `${v} ${this.$t('modals.manageCharts.form.errorMessagesExpression.variableNameError')}`;\n }\n }\n return true;\n }\n\n /**\n * Checks if the expression's parenthesis setting is correct.\n */\n checkParenthesis(): any {\n let count = 0;\n this.localExpressionVariable.split('').forEach(c => {\n if (c === '(') {\n count++;\n }\n if (c === ')') {\n count--;\n }\n });\n\n if (count > 0) {\n return this.$t('modals.manageCharts.form.errorMessagesExpression.parenthesisErrorNegativeValue');\n } else if (count < 0) {\n return this.$t('modals.manageCharts.form.errorMessagesExpression.parenthesisErrorPositiveValue');\n } else {\n return true;\n }\n }\n\n /**\n * Checks if expression only contains allowed chars.\n */\n checkAllowedChars(): boolean | string {\n const notAllowedChars = this.localExpressionVariable.match(/[^\\w\\.\\,@\\s\\+\\-\\*\\/\\(\\)]/g);\n return notAllowedChars === null || `${this.$t('modals.manageCharts.form.errorMessagesExpression.checkAllowedCharsError')} ${notAllowedChars}`;\n }\n\n /**\n * Counts the number of variables appearing in the expression.\n */\n checkVariableCount(): boolean | string {\n const variableCount = getVariableCount(this.localExpressionVariable);\n\n return variableCount <= 10 || `${variableCount} ${this.$t('modals.manageCharts.form.errorMessagesExpression.checkVariableCount')}`;\n }\n\n /**\n * Checks if the expression can be parsed.\n */\n checkGeneralExpression(): boolean {\n return canBeParsed(this.localExpressionVariable);\n }\n\n checkNotNull() {\n return this.localExpressionVariable !== '' && this.localExpressionVariable !== undefined;\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpressionTextArea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExpressionTextArea.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ExpressionTextArea.vue?vue&type=template&id=403fe204&\"\nimport script from \"./ExpressionTextArea.vue?vue&type=script&lang=ts&\"\nexport * from \"./ExpressionTextArea.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ExpressionTextArea.vue?vue&type=style&index=0&id=403fe204&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Getter } from 'vuex-class';\nimport CalculationAggregationWindow from '@/ui/components/modals/ManageChart/CalculationAggregationWindow.vue';\nimport ExpressionTextArea from '@/ui/components/modals/ManageChart/ExpressionTextArea.vue';\nimport { defaultChartColors } from '@/ui/components/devices/charts/charts/LynusChart';\nimport { IVariable } from '@/types/variables.types';\nimport { getVariableNames } from '@/ui/components/devices/charts/charts/ChartMath';\nimport { Validation } from '@/ui/mixins/validation';\nimport { mixins } from 'vue-class-component';\nimport { is } from 'immutable';\nimport { isNil } from 'lodash';\n\n/**\n * Manage charts calculation form\n */\n@Component({\n components: {\n CalculationAggregationWindow,\n ExpressionTextArea,\n },\n})\nexport default class ManageChartsCalculation extends mixins(Validation) {\n @Prop() data!: any;\n @Prop() aggregationMethods!: any[];\n @Prop() chartTypes!: any[];\n @Prop() scalingMethods!: any[];\n @Getter('variables/variablesForComboBox') variablesForComboBox!: IVariable[];\n\n scaling = 'automatic';\n chartColors = defaultChartColors;\n valid = true;\n\n handleScaling(value: string) {\n this.scaling = value;\n if (value === 'automatic') {\n this.data.scaling.min = null;\n this.data.scaling.max = null;\n } else {\n this.data.scaling.min = 0;\n this.data.scaling.max = 1;\n }\n this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n onScalingInput() {\n this.setScaling();\n }\n setScaling() {\n const { min, max } = this.data.scaling;\n if (min !== '' && max !== '' || min !== '0' && max !== '0') {\n this.scaling = 'manual';\n }\n if (min === '' && max === '' || min === '0' && max === '0' || isNil(min) && isNil(max)) {\n this.scaling = 'automatic';\n }\n }\n\n onExpressionChange(expression: { varNames: string[]; fullExpression: string }) {\n this.data.calculation.expression = expression.fullExpression;\n this.defineAggregations(expression.fullExpression);\n }\n defineAggregations(expression: string) {\n // TODO: Currently getVariableNames when remove completely expression return array with empty string, need to find best place to fix this\n const variablesList = getVariableNames(expression).filter((el: string) => el.length);\n const diff = variablesList.length - this.data.calculation.aggregations.length;\n if (diff > 0) {\n this.data.calculation.aggregations.splice(this.data.calculation.aggregations.length, diff, 'last');\n }\n if (diff < 0) {\n const removeCount = Math.abs(diff);\n const start = this.data.calculation.aggregations.length - removeCount;\n this.data.calculation.aggregations.splice(start, removeCount);\n }\n }\n\n created() {\n this.setScaling();\n }\n\n async mounted() {\n await this.$nextTick(() => {\n (this.$refs.form as any).validate();\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageChartsCalculation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageChartsCalculation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ManageChartsCalculation.vue?vue&type=template&id=01102013&\"\nimport script from \"./ManageChartsCalculation.vue?vue&type=script&lang=ts&\"\nexport * from \"./ManageChartsCalculation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport { cloneDeep, toNumber } from 'lodash';\nimport VueI18n from 'vue-i18n';\nimport ManageChartsView from '@/ui/components/modals/ManageChart/ManageChartsView.vue';\nimport ManageChartsCalculation from '@/ui/components/modals/ManageChart/ManageChartsCalculation.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { FormUpdateTracker } from '@/ui/mixins/formUpdateTracker';\nimport { Validation } from '@/ui/mixins/validation';\nimport { defaultChartColors } from '@/ui/components/devices/charts/charts/LynusChart';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IMember } from '@/types/members.types';\n\n/**\n * A component that allows to create or modify charts\n */\n@Component({\n components: {\n ManageChartsView,\n ManageChartsCalculation,\n CircleSpinner,\n ModalWindow,\n },\n})\nexport default class ManageCharts extends mixins(FormUpdateTracker, Validation) {\n @Prop() formTitle?: string | VueI18n.TranslateResult;\n @Prop({ default: '' }) activeRoomId!: string;\n @Prop({\n default: () => ({\n name: '',\n data: {\n type: 'chart',\n selectedWidth: '',\n selectedStackingOptions: '',\n chartOptions: [],\n },\n collection_id: '',\n }),\n }) deviceData!: any;\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('measurements/measurementsKeys') measurementsKeys!: string[];\n @Getter('members/currentMember') currentMember!: IMember;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n\n isTooltip = false;\n stage = 1;\n showLoadingSpinner = false;\n localDeviceData: any = {\n name: '',\n data: {\n type: 'chart',\n chartOptions: [],\n },\n collection_id: '',\n };\n\n get isEditModalProp() {\n return !!this.localDeviceData?.name?.length;\n }\n get selectionTypes() {\n return [\n { text: this.$t('modals.manageCharts.form.selectionTypes.view'), value: 'View' },\n { text: this.$t('modals.manageCharts.form.selectionTypes.calc'), value: 'Calculation' },\n ];\n }\n get chartWidthOptions() {\n return [\n { text: this.$t('modals.manageCharts.form.widthOptions.full'), value: 'full' },\n { text: this.$t('modals.manageCharts.form.widthOptions.half'), value: 'half' },\n ];\n }\n get scalingMethods() {\n return [\n { text: this.$t('modals.manageCharts.form.scalingMethods.auto'), value: 'automatic' },\n { text: this.$t('modals.manageCharts.form.scalingMethods.manual'), value: 'manual' },\n ];\n }\n get chartTypes() {\n return [\n { text: this.$t('modals.manageCharts.form.chartTypes.line'), value: 'line' },\n { text: this.$t('modals.manageCharts.form.chartTypes.area'), value: 'area' },\n { text: this.$t('modals.manageCharts.form.chartTypes.column'), value: 'column' },\n ];\n }\n get aggregationMethods() {\n return [\n { state: this.$t('modals.manageCharts.form.aggregationMethods.averageOfPeriod'), abbr: 'avg' },\n { state: this.$t('modals.manageCharts.form.aggregationMethods.minimumOfPeriod'), abbr: 'min' },\n { state: this.$t('modals.manageCharts.form.aggregationMethods.maximumOfPeriod'), abbr: 'max' },\n { state: this.$t('modals.manageCharts.form.aggregationMethods.lastOfPeriod'), abbr: 'last' },\n { state: this.$t('modals.manageCharts.form.aggregationMethods.firstOfPeriod'), abbr: 'first' },\n { state: this.$t('modals.manageCharts.form.aggregationMethods.difference'), abbr: 'diff' },\n ];\n }\n\n // modal steps validation\n get nameTypeValidation() {\n return !!(this.localDeviceData.name.length);\n }\n get optionsValid() {\n if (!this.localDeviceData.data.chartOptions) return false;\n const list = this.localDeviceData.data.chartOptions.map((option: any) => {\n if (!option?.seriesType?.length) return false;\n else {\n if (option.seriesType === 'View') return !!option?.var?.length;\n else return !!option?.calculation?.expression;\n }\n });\n return list.every((el: boolean) => el);\n }\n get settingsValidation() {\n return !!this.localDeviceData.collection_id.length;\n }\n\n addButtonVisibility(inx: number | string) {\n return Object.keys(this.localDeviceData.data.chartOptions).length - 1 === inx ? 'visible' : 'hidden';\n }\n // changes the options based on the index given and the selected item\n changeOptions(value: 'View' | 'Calculation', index: number | string) {\n if (value === 'View') {\n this.localDeviceData.data.chartOptions.splice(index, 1, {\n scaling: {\n min: null,\n max: null,\n },\n unit: '',\n type: 'line',\n agg: 'last',\n name: '',\n seriesType: 'View',\n var: '',\n seriesColor: defaultChartColors[Number(index)],\n });\n } else {\n this.localDeviceData.data.chartOptions.splice(index, 1, {\n scaling: {\n min: null,\n max: null,\n },\n unit: '',\n type: 'line',\n name: '',\n seriesType: 'Calculation',\n agg: 'last',\n seriesColor: defaultChartColors[Number(index)],\n calculation: {\n expression: '',\n aggregations: [],\n },\n });\n }\n }\n async addVariable() {\n const count = this.localDeviceData.data.chartOptions.length;\n this.localDeviceData.data.chartOptions.splice(count, 1, {\n scaling: {\n min: null,\n max: null,\n },\n unit: '',\n type: 'line',\n agg: 'last',\n name: '',\n seriesColor: defaultChartColors[count] });\n\n await this.$nextTick();\n this.validateSelects();\n }\n\n /**\n * Removes selected chart variable\n * @param index number, index of variable\n */\n async deleteVariable(index: number | string) {\n this.showLoadingSpinner = true;\n this.localDeviceData.data.chartOptions.splice(index, 1);\n\n // TODO: check if we need this timeout\n const timeOutLength = this.localDeviceData.data.chartOptions.length * 300;\n await new Promise(resolve => {\n setTimeout(() => {\n this.showLoadingSpinner = false;\n resolve(null);\n }, timeOutLength);\n });\n\n await this.$nextTick();\n this.validateSelects();\n }\n\n /**\n * Parses the scalings to numbers\n */\n parseScalings() {\n this.localDeviceData.data.chartOptions.forEach((option: any, index: number) => {\n if (option.scaling.min !== null) {\n this.localDeviceData.data.chartOptions[index].scaling.min = toNumber(option.scaling.min);\n }\n if (option.scaling.max !== null) {\n this.localDeviceData.data.chartOptions[index].scaling.max = toNumber(option.scaling.max);\n }\n });\n }\n\n sendForm() {\n if (this.localDeviceData.name && Object.keys(this.localDeviceData.data.chartOptions).length > 0 && this.localDeviceData.collection_id.length > 0) {\n // if nothing is selected the default width Value will be full\n if (this.localDeviceData.data.selectedWidth === '') {\n this.localDeviceData.data.selectedWidth = 'full';\n }\n // sets default value for stacking options\n this.localDeviceData.data.selectedStackingOptions = 'normal';\n\n this.parseScalings();\n\n this.stage = 1;\n this.$emit('handleControl', this.localDeviceData);\n\n if (!this.isEditModalProp) {\n // delete chart instance here\n this.localDeviceData = {\n name: '',\n data: {\n type: 'chart',\n selectedWidth: '',\n chartOptions: [],\n },\n collection_id: '',\n };\n // adds the default Variable\n // when you create more than 1 Chart in a row in the Workbench without leaving\n this.addVariable();\n }\n (this.$refs.ModalWindowInstance as ModalWindow).onConfirmationDialogClose();\n }\n }\n\n validateSelects() {\n this.localDeviceData.data.chartOptions.forEach((_: any, inx: number) => {\n (this.$refs[`Select${inx}`] as any)[0].validate(true);\n });\n }\n\n async initData() {\n this.localDeviceData = cloneDeep(this.deviceData);\n if (this.activeRoomId.length) this.localDeviceData.collection_id = this.activeRoomId;\n\n // set one default variable for new Charts\n if (Object.keys(this.localDeviceData.data.chartOptions).length === 0) {\n this.addVariable();\n }\n\n this.dataSnapshot = cloneDeep(this.localDeviceData);\n }\n reset() {\n this.stage = 1;\n }\n\n async onDialogChange(isOpen: boolean) {\n if (isOpen) {\n await this.fetchVariables(this.$route.params.id);\n await this.initData();\n } else {\n this.reset();\n }\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=3d4d2b16&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=3d4d2b16&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=style&index=0&id=770f2668&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rooms.vue?vue&type=style&index=0&id=326fe835&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=36c3ff32&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsView.vue?vue&type=style&index=0&id=e8dda2f0&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.superAdmin === true)?_c('div',[_c('v-combobox',{attrs:{\"items\":_vm.projectTagsLists,\"small-chips\":\"\",\"label\":_vm.$t('uiComponents.projectTags.projectFieldLabel'),\"multiple\":\"\",\"outlined\":\"\",\"color\":\"blue\",\"hide-selected\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, select, selected }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"close\":\"\"},on:{\"click\":select,\"click:close\":function($event){return _vm.removeChip(item)}}},'v-chip',attrs,false),[_c('strong',[_vm._v(_vm._s(item))])])]}}],null,false,3252162754),model:{value:(_vm.chips),callback:function ($$v) {_vm.chips=$$v},expression:\"chips\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { IAppState } from '@/store/modules/app/types';\nimport { IProject, IProjectFilters } from '@/types/project.types';\nimport { Vue, Component, Watch, Prop } from 'vue-property-decorator';\nimport { Getter, Mutation, State, Action } from 'vuex-class';\n\n/**\n * Home page that shows projects\n */\n@Component({\n components: {},\n})\nexport default class ProjectChips extends Vue {\n @Prop({ default: false }) isInsideSettings?: boolean;\n @Prop({ default: false }) isInsideAppbar?: boolean;\n @State('app') appState!: IAppState;\n @Getter('projects/projects') projects!: IProject[];\n @Getter('projects/project') project!: IProject;\n @Getter('projects/projectTagsLists') projectTagsLists!: string[];\n @Getter('projects/projectFilters') projectFilters!: IProjectFilters;\n @Mutation('projects/setProjectFilter') setProjectFilter!: (data: { type: keyof IProjectFilters; value: any }) => any;\n @Action('projects/getProjectTagsLists') getProjectTagsLists!: (projectList: IProject[]) => string[];\n\n chips: string[] = [];\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get projectFilterTags() {\n return this.projectFilters.projectTags;\n }\n\n @Watch('chips')\n handleChipsChange(value: string[]) {\n if (this.isInsideAppbar === true) {\n this.setProjectFilter({ type: 'projectTags', value });\n }\n this.$emit('selectedChips', value);\n }\n\n mounted() {\n // add Project specific Tags that are inside the Project Meta when entering General Settings\n if (this.isInsideSettings) {\n this.chips = this.project.meta?.tags ? [...this.project.meta.tags] : [];\n }\n // add selected tags again after returning back to Home Page from any Project\n if (this.isInsideAppbar) {\n this.chips = this.projectFilterTags;\n }\n }\n\n removeChip(item: string) {\n this.chips.splice(this.chips.indexOf(item), 1);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectTagsField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectTagsField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectTagsField.vue?vue&type=template&id=42ebf84a&\"\nimport script from \"./ProjectTagsField.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectTagsField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=60408580&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=style&index=0&id=8a59a2fc&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/SurveyClient.80783cce.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-img',{staticClass:\"preview-image-styles\",attrs:{\"max-width\":_vm.maxWidth,\"max-height\":_vm.maxHeight,\"src\":_vm.src,\"contain\":\"\",\"alt\":\"preview-image\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent Preview Image\n */\n@Component\nexport default class PreviewImage extends Vue {\n @Prop({ default: '' }) src!: string;\n @Prop({ default: null }) maxWidth!: any;\n @Prop({ default: null }) maxHeight!: any;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewImage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewImage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PreviewImage.vue?vue&type=template&id=2dc29a64&scoped=true&\"\nimport script from \"./PreviewImage.vue?vue&type=script&lang=ts&\"\nexport * from \"./PreviewImage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PreviewImage.vue?vue&type=style&index=0&id=2dc29a64&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2dc29a64\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=style&index=0&id=794a8e7a&prod&lang=scss&scoped=true&\"","import { EnergyLineColors } from '@/types/energyVisualisation/EnergyLineDisplayData';\n\nexport const energyYellow = '#FFC800';\nexport const energyGreen = '#218608';\nexport const energyOrange = '#ff9900';\nexport const energyRed = '#D70827';\nexport const energyBlue = '#0F72BA';\nexport const energyGrey = '#707070';\nexport const coolingBlue = '#0953f3';\nexport const heatingRed = '#c02530';\n\nexport const energyProducerColors: EnergyLineColors = {\n colorAtCenter: energyBlue,\n colorAtCircle: energyYellow,\n};\nexport const energyHybridColors: EnergyLineColors = {\n colorAtCenter: energyBlue,\n colorAtCircle: energyRed,\n};\nexport const energyConsumerColors: EnergyLineColors = {\n colorAtCenter: energyBlue,\n colorAtCircle: energyGreen,\n};\nexport const energyGreyColors: EnergyLineColors = {\n colorAtCenter: energyGrey,\n colorAtCircle: energyGrey,\n};\nexport const energyHeatingColors: EnergyLineColors = {\n colorAtCenter: energyBlue,\n colorAtCircle: heatingRed,\n};\nexport const energyCoolingColors: EnergyLineColors = {\n colorAtCenter: energyBlue,\n colorAtCircle: coolingBlue,\n};\n","module.exports = __webpack_public_path__ + \"img/EMSV2.e44b9afe.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceActions.vue?vue&type=style&index=0&id=594a5318&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/EnergyViewV2.d43ceeff.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c('v-switch',{staticClass:\"basic-control-switch2v\",attrs:{\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\",\"input-value\":_vm.state,\"disabled\":_vm.isDisabled},nativeOn:{\"!click\":function($event){return _vm.handleState.apply(null, arguments)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl, { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\n/**\n * Component that represent Switch2V Basic Control\n */\n@Component({\n components: {\n FeedbackProvider,\n },\n})\nexport default class Switch2VBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: defaultFeedbackTimeoutMilliSeconds }) feedBackTimeout!: number;\n\n timer?: NodeJS.Timeout;\n localState?: boolean;\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.onOff === ''\n || this.mappingsClean.state === '';\n }\n\n get state() {\n if (this.mappingsClean.onOff === '' && this.mappingsClean.state === '') {\n return false;\n }\n if (this.mappingsClean) return this.measurements.get(this.mappingsClean.state) === 1;\n return false;\n }\n\n @Watch('state')\n onStateChange(val: boolean) {\n if (this.sendingState === SendingState.Sending && this.localState === val) {\n this.onSendSuccess();\n clearTimeout(this.timer);\n }\n }\n\n async handleState(event: MouseEvent) {\n event.stopPropagation();\n event.preventDefault();\n\n // new desired local state is opposite of current state\n this.localState = !this.state;\n this.onSendStart();\n this.send([{ v: +(!(this.state)), n: this.mappingsClean.onOff, u: '' }]);\n this.timer = setTimeout(async () => {\n // state was not updated -> reset\n // send opposite of original state\n this.onSendError();\n this.send([{ v: +(!!(this.localState)), n: this.mappingsClean.onOff, u: '' }]);\n\n // 500ms delay until we send second reset message\n await new Promise((resolve) => setTimeout(() => {\n this.send([{ v: +(!this.localState), n: this.mappingsClean.onOff, u: '' }]);\n resolve();\n }, 500));\n }, this.feedBackTimeout);\n }\n\n destroyed() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Switch2VBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Switch2VBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Switch2VBase.vue?vue&type=template&id=58733c80&\"\nimport script from \"./Switch2VBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./Switch2VBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Switch2VBase.vue?vue&type=style&index=0&id=58733c80&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainsConnection.vue?vue&type=style&index=0&id=2bae1bff&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PreviewMQTTControls.vue?vue&type=style&index=0&id=6028d6d4&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryLevel.vue?vue&type=style&index=0&id=2f6f7662&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex\"},[_c('DefaultCalendar',{attrs:{\"period-name\":\"day\",\"calendar-min\":_vm.calendarMin,\"calendar-max\":_vm.calendarMax},model:{value:(_vm.date),callback:function ($$v) {_vm.date=$$v},expression:\"date\"}}),_c('v-time-picker',{ref:\"timePicker\",staticClass:\"ml-4\",attrs:{\"color\":\"accent\",\"format\":\"24hr\",\"max\":_vm.timePickerMax,\"ampm-in-title\":false,\"use-seconds\":false,\"disabled\":!_vm.date,\"width\":\"340px\",\"scrollable\":\"\",\"elevation\":\"1\"},model:{value:(_vm.time),callback:function ($$v) {_vm.time=$$v},expression:\"time\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { fromDatePickerString, toSecondsSinceEpoch } from '@/utils/utilsFunctions';\nimport DefaultCalendar from '@/ui/components/devices/charts/components/DefaultCalendar.vue';\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport moment from 'moment';\n\n/**\n * Component that represent hour picker in charts\n */\n@Component({\n components: {\n DefaultCalendar,\n },\n})\nexport default class HourPicker extends Vue {\n @Prop() calendarMin?: string;\n @Prop() calendarMax?: string;\n\n // date model, stored as array of numbers\n date: number[] = [];\n time = '';\n\n @Watch('fullDateTime')\n onDateTimeChange(date?: Date) {\n this.$emit('input', [toSecondsSinceEpoch(date)]);\n }\n\n /**\n * Define full date - time string\n * @return {array} time in format [YYYY-MM-DD-HH-MM]\n */\n get fullDateTime() {\n if (this.date && this.time) {\n const date = new Date(this.date[0] * 1000);\n const [hour, minute] = this.time.split(':');\n date.setHours(parseInt(hour, 10));\n date.setMinutes(parseInt(minute, 10));\n return date;\n } else {\n return undefined;\n }\n }\n\n get isToday(): boolean {\n if (!this.date) return false;\n\n const today = new Date();\n const d = new Date(this.date[0] * 1000);\n\n return d.getDate() === today.getDate() &&\n d.getMonth() === today.getMonth() &&\n d.getFullYear() === today.getFullYear();\n }\n\n /**\n * Define maximum value for hour picker\n * @return {string} time in format HH:MM\n */\n get timePickerMax(): string | undefined {\n // allow now - 1h as max time\n const d: any = moment().subtract(1, 'h').toDate();\n\n return this.isToday ? `${d.getHours()}:${d.getMinutes()}` : undefined;\n }\n\n reset() {\n // TODO: re-check! doesn't work yet completely\n this.date = [];\n this.time = '';\n // set current active picker to \"hour\". 1 corresponds to Hour option\n // for possible changes check:\n // https://github.com/vuetifyjs/vuetify/blob/8bb752b210d25fbebcea12cd073d2ce4986f5e12/packages/vuetify/src/components/VTimePicker/SelectingTimes.ts\n (this.$refs.timePicker as any).selecting = 1;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HourPicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HourPicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HourPicker.vue?vue&type=template&id=c3a3e36e&\"\nimport script from \"./HourPicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./HourPicker.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=style&index=0&id=3d83e1d9&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=style&index=0&id=497bc0d1&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChargeStationMinPowerSelection.vue?vue&type=style&index=0&id=72031e03&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HistoryAnomalyDetection.vue?vue&type=style&index=0&id=0ed7d3ca&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowInBase.vue?vue&type=style&index=0&id=fd254b16&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationPage.vue?vue&type=style&index=0&id=7ab2df32&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AirHumiditySensor.vue?vue&type=style&index=0&id=7ceae2d8&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app',[_c('AppBar'),_c('AppDrawer'),_c('AppView'),_c('ReportMessage')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-app-bar',{class:['primary', 'app-bar', { 'app-bar-home': _vm.$route.name === 'Home' }],attrs:{\"height\":_vm.$vuetify.breakpoint.mobile ? 120 : 60,\"flat\":\"\",\"app\":\"\"}},[_c('v-container',{staticClass:\"pa-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{class:[\n 'd-flex',\n 'align-center',\n 'justify-space-between',\n 'left-section',\n 'section',\n { 'vertical-border pr-3': !_vm.$vuetify.breakpoint.mobile },\n ],staticStyle:{\"height\":\"60px\"},attrs:{\"lg\":\"5\",\"md\":\"12\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('div',{staticClass:\"project-page-title\"},[_vm._v(_vm._s(_vm.appBarTitle))]),_c('div',[(_vm.superAdmin &&_vm.$route.name === 'SerialNumberManagement')?_c('CreateSerialNumber'):_vm._e(),(_vm.superAdmin && _vm.$route.meta.addProject)?_c('CreateProject'):_vm._e(),(_vm.$route.meta.createPartnerProjectButton)?_c('CreatePartnerProject'):_vm._e()],1),(!_vm.$route.meta.appNavigation && _vm.$route.name !== 'PartnerProjectView')?_c('div',{staticClass:\"d-flex align-center overflow-hidden\"},[_c('OfflineTimer',{on:{\"offlineTimerMessage\":_vm.handleOfflineTimerMessage}}),(_vm.isNavigation === 'projectNavigation' && _vm.showInternetStatus)?_c('InternetStatusIndicator',{staticClass:\"mx-6\"}):_vm._e(),(_vm.isNavigation === 'projectNavigation' && _vm.showProjectStatus)?_c('StatusIndicator',{staticClass:\"mx-2\",attrs:{\"status\":_vm.projectStatus}}):_vm._e(),_c('span',{staticClass:\"project-name\"},[_vm._v(_vm._s(_vm.projectName))])],1):_vm._e()]),_c('v-col',{class:[\n 'd-flex',\n 'align-center',\n _vm.$route.meta.search ? 'justify-space-between' : 'justify-end',\n 'right-section',\n 'section',\n { 'pl-3': !_vm.$vuetify.breakpoint.mobile },\n ],staticStyle:{\"height\":\"60px\"},attrs:{\"lg\":\"7\",\"md\":\"12\",\"sm\":\"12\",\"xs\":\"12\"}},[(_vm.$route.meta.search)?_c('div',{staticClass:\"d-flex\"},[_c('Search',{staticClass:\"mr-2\"}),(_vm.$route.name !== 'PartnerWorkspace')?_c('ProjectFilterPopup'):_vm._e(),_c('PartnerProjectFilter')],1):_vm._e(),_c('div',{staticClass:\"d-flex align-center\"},[(_vm.$route.meta.addAreaButton && !_vm.disableActionButtons)?_c('div',{staticClass:\"pr-3\"},[(_vm.currentMember)?_c('ManageRoom',{attrs:{\"form-title\":_vm.$t('modals.manageAreas.createArea')},on:{\"handleRoom\":_vm.createRoom}},[(_vm.canMemberAccess('CreateModals', 'CreateArea'))?_c('v-btn',{attrs:{\"color\":\"accent lynus-small-btn\",\"rounded\":\"\",\"elevation\":\"0\",\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),(!_vm.$vuetify.breakpoint.xsOnly)?_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.addArea'))+\" \")]):_vm._e()],1):_vm._e()],1):_c('v-btn',{attrs:{\"color\":\"accent lynus-small-btn\",\"rounded\":\"\",\"disabled\":\"\",\"elevation\":\"0\",\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),(!_vm.$vuetify.breakpoint.xsOnly)?_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.addArea'))+\" \")]):_vm._e()],1)],1):_vm._e(),(_vm.$route.meta.toggleAreasViewButton)?_c('div',{staticClass:\"pr-2\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"width\":\"35\",\"height\":\"35\",\"fab\":\"\",\"icon\":\"\"},on:{\"click\":_vm.handleAreasView}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.isAreasMiniView ? 'accent' : null}},[_vm._v(\"fa-arrows-alt-v\")])],1)]}}],null,false,2830730922)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.tooltips.areasSize')))])])],1):_vm._e(),(_vm.isDNDButtonVisible)?_c('div',{staticClass:\"pr-2\"},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"width\":\"35\",\"height\":\"35\",\"fab\":\"\",\"icon\":\"\"},on:{\"click\":_vm.handleDnd}},'v-btn',attrs,false),on),[_c('lynus-icon',{attrs:{\"name\":\"drag\",\"color\":_vm.dndStatus ? 'accent' : 'theme'}})],1)]}}],null,false,4174326730)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.tooltips.dnd')))])])],1):_vm._e(),(_vm.$route.meta.workbenchButtons)?_c('div',{staticClass:\"workbench-button-wrapper pr-3\"},[(_vm.workbenchButtons[_vm.workbenchCurrentTab].visible)?[(_vm.currentMember)?_c(_vm.workbenchButtons[_vm.workbenchCurrentTab].form,{tag:\"component\",attrs:{\"form-title\":_vm.workbenchButtons[_vm.workbenchCurrentTab].formTitle},on:{\"handleControl\":_vm.handleWorkbenchButton}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"rounded\":\"\",\"elevation\":\"0\",\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),(!_vm.$vuetify.breakpoint.xsOnly)?_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.workbenchButtons[_vm.workbenchCurrentTab].btnTitle)+\" \")]):_vm._e()],1)],1):_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"rounded\":\"\",\"elevation\":\"0\",\"x-small\":_vm.$vuetify.breakpoint.mobile,\"disabled\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),(!_vm.$vuetify.breakpoint.xsOnly)?_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.workbenchButtons[_vm.workbenchCurrentTab].btnTitle)+\" \")]):_vm._e()],1)]:_vm._e()],2):_vm._e(),(_vm.$route.meta.addRuleButton)?_c('div',{staticClass:\"pr-4\"},[(_vm.canMemberAccess('ProjectActions', 'CreateRule'))?_c('ModalWindow',{ref:\"RuleModalWindowInstance\",attrs:{\"width\":\"100%\",\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"rounded\":\"\",\"elevation\":\"0\",\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.rules.addRule')))])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.rules.addRule'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('ManageRule',{on:{\"closeRuleDialog\":_vm.closeRuleDialog}})]},proxy:true}],null,false,828350403)}):_vm._e()],1):_vm._e(),(_vm.$route.meta.createReportButton)?_c('div',{staticClass:\"pr-4\"},[(_vm.canMemberAccess('ProjectActions', 'CreateReport'))?_c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"rounded\":\"\",\"elevation\":\"0\",\"disabled\":_vm.currentMember?.role !== _vm.UserRoleCode.admin}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.iconsSize,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.report.createReport')))])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.headerText'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('NewReport',{on:{\"handleClose\":_vm.closeReportDialog}})]},proxy:true}],null,false,3627271811)}):_vm._e()],1):_vm._e(),(_vm.$route.meta.restartWizardButton && _vm.currentMember?.role === _vm.UserRoleCode.admin)?_c('div',{staticClass:\"pr-4\"},[(_vm.tenantState.wasTenantDone && !_vm.tenantState.wasTenantRestarted)?_c('InfoTooltip',{attrs:{\"position\":'bottom'},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"accent lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":_vm.handleRestartWizard}},[_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.basicTenantModelEditor.buttons.restartWizard'))+\" \")])]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('tenantWizard.basicTenantModelEditor.toolTips.restartTenantWizardInfo'))+\" \")]},proxy:true}],null,false,1053881448)}):_vm._e()],1):_vm._e(),_c('ToggleThemesButton'),_c('Localisation'),_c('UserProfile')],1)])],1),_c('div',{staticClass:\"app-bar-border\",staticStyle:{\"width\":\"100%\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"search\"},[_c('v-text-field',{attrs:{\"value\":_vm.value,\"color\":\"accent\",\"hide-details\":\"\",\"outlined\":\"\",\"placeholder\":_vm.$t('uiComponents.search.placeholder'),\"clearable\":true,\"clear-icon\":\"fa-times\"},on:{\"input\":function($event){return _vm.onInput($event)}},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"fa-search\")])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { State, Mutation } from 'vuex-class';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IDevicesState } from '@/store/modules/devices/types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { IEventState } from '@/store/modules/events/types';\nimport { IReportState } from '@/store/modules/report/types';\nimport { SearchType } from '@/utils/searchUtils';\nimport { IProjectFilters } from '@/types/project.types';\nimport { IPartnerWorkspacesState } from '@/store/modules/partnerWorkspaces/types';\nimport { IInvertersState } from '@/store/modules/serialNumber';\n\n/**\n * Component that represent search\n * Used in AppBar.vue\n * Give possibility to filter devices, projects...\n */\n@Component\nexport default class Search extends Vue {\n @State('projects') projectsState!: IProjectsState;\n @State('devices') devicesState!: IDevicesState;\n @State('measurements') measurementsState!: IVariablesState;\n @State('events') eventsState!: IEventState;\n @State('rules') rulesState!: IRulesState;\n @State('report') reportState!: IReportState;\n @State('serialNumber') serialNumbersState!: IInvertersState;\n @State('partnerWorkspaces') partnerWorkspacesState!: IPartnerWorkspacesState;\n @Mutation('projects/setProjectFilter') setProjectFilter!: (data: { type: keyof IProjectFilters; value: any }) => void;\n @Mutation('devices/setDevicesFilter') setDevicesFilter!: (name: string) => void;\n @Mutation('measurements/setMeasurementsFilter') setMeasurementsFilter!: (name: string) => void;\n @Mutation('events/setEventListFilter') setEventListFilter!: (name: string) => void;\n @Mutation('rules/setRulesFilter') setRulesFilter!: (name: string) => void;\n @Mutation('report/setReportFilter') setReportFilter!: (name: string) => void;\n @Mutation('partnerWorkspaces/setWorkspaceFilter') setWorkspaceFilter!: (filter: string) => IPartnerWorkspacesState;\n @Mutation('serialNumber/setInverterFilter') setInverterFilter!: (filter: string) => IInvertersState;\n\n get value() {\n switch (this.$route.meta?.searchType) {\n case SearchType.devices: return this.devicesState.devicesFilter;\n case SearchType.measurements: return this.measurementsState.measurementsFilter;\n case SearchType.reports: return this.reportState.reportFilter;\n case SearchType.rules: return this.rulesState.rulesFilter;\n case SearchType.projects: return this.projectsState.projectFilters.projectName;\n case SearchType.events: return this.eventsState.eventListFilter;\n case SearchType.workspaces: return this.partnerWorkspacesState.workspaceFilter;\n case SearchType.serialNumbers: return this.serialNumbersState.inverterFilter;\n default: return '';\n }\n }\n\n onInput(value: string) {\n switch (this.$route.meta?.searchType) {\n case SearchType.devices:\n this.setDevicesFilter(value);\n break;\n case SearchType.projects:\n this.setProjectFilter({ type: 'projectName', value });\n break;\n case SearchType.measurements:\n this.setMeasurementsFilter(value);\n break;\n case SearchType.events:\n this.setEventListFilter(value);\n break;\n case SearchType.rules:\n this.setRulesFilter(value);\n break;\n case SearchType.reports:\n this.setReportFilter(value);\n break;\n case SearchType.workspaces:\n this.setWorkspaceFilter(value);\n break;\n case SearchType.serialNumbers:\n this.setInverterFilter(value);\n break;\n default: throw new Error(`Invalid searchType: ${this.$route.meta?.searchType}`);\n }\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=0979930e&\"\nimport script from \"./Search.vue?vue&type=script&lang=ts&\"\nexport * from \"./Search.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Search.vue?vue&type=style&index=0&id=0979930e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-card',_vm._g({staticStyle:{\"background-color\":\"transparent\",\"z-index\":\"9999\"},attrs:{\"max-width\":\"250\",\"flat\":\"\"}},on),[_c('v-list-item',[(!_vm.hideNameWhenEqual)?_c('v-list-item-title',{staticClass:\"lynusText--text mr-2\"},[_c('span',[_vm._v(_vm._s(_vm.user.first_name))]),_c('span',{staticClass:\"ml-1\"},[_vm._v(_vm._s(_vm.user.last_name))])]):_vm._e(),_c('lynus-icon',{attrs:{\"name\":\"avatar\",\"color\":\"theme\",\"size\":\"35\"}})],1)],1)]}}])},[_c('v-list',{staticClass:\"primary\"},_vm._l((_vm.items),function(item,index){return _c('v-list-item',_vm._g(_vm._b({key:index},'v-list-item',{...item.bind},false),{...item.on}),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.title))])],1)],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\nimport { envRealm, envKeycloakURL } from '@/utils/env';\nimport { IProject } from '@/types/project.types';\n\n/**\n * Component that represent UserProfile\n * Shows list of user actions. Logout, User keycloak settings\n */\n@Component\nexport default class UserProfile extends Vue {\n @State('app') appState!: IAppState;\n @Getter('projects/project') projectModel!: IProject;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n get items() {\n return [\n {\n title: this.$t('uiComponents.userProfile.edit'),\n bind: {\n href: `${envKeycloakURL}/realms/${envRealm}/account`,\n target: '_blank',\n },\n on: {},\n },\n {\n title: this.$t('uiComponents.userProfile.logout'),\n bind: {},\n on: {\n click: this.handleLogout,\n },\n },\n ];\n }\n\n /**\n * Logout from project\n */\n async handleLogout() {\n if (Object.keys(this.projectModel).length === 0) {\n Vue.prototype.$keycloak.logoutFn();\n return;\n }\n if (this.$route.name !== 'Home') {\n if (!this.projectModel?.meta) {\n Vue.prototype.$keycloak.logoutFn();\n return;\n }\n if (this.projectModel?.meta.isDNDActive && this.projectModel !== undefined) {\n await this.updateProject({\n ...this.projectModel,\n meta: {\n ...this.projectModel.meta,\n isDNDActive: false,\n },\n });\n }\n }\n Vue.prototype.$keycloak.logoutFn();\n }\n\n get hideNameWhenEqual() {\n return this.$vuetify.breakpoint.width < 1600;\n }\n\n get user() {\n return this.appState.user;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserProfile.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UserProfile.vue?vue&type=template&id=2c6f80a0&\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticStyle:{\"max-width\":\"120px\",\"background-color\":\"transparent\",\"z-index\":\"9999\"},attrs:{\"flat\":\"\"}},[_c('v-menu',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"left\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: onMenu }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: onTooltip }){return [_c('v-btn',_vm._g({attrs:{\"fab\":\"\",\"width\":\"35\",\"height\":\"35\",\"icon\":\"\"}},{ ...onMenu, ...onTooltip }),[_c('lynus-icon',{attrs:{\"name\":\"language\",\"color\":\"theme\"}})],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.tooltips.languages')))])])]}}])},[_c('v-list',{attrs:{\"color\":\"primary\",\"flat\":\"\"}},_vm._l((_vm.languages),function(item,index){return _c('v-list-item',{key:index,attrs:{\"link\":\"\"},on:{\"click\":function($event){return _vm.handleLocale(index)}}},[_c('v-list-item-title',{class:[{ 'accent--text': index === _vm.selectedLanguage }]},[_vm._v(\" \"+_vm._s(_vm.$t(item.title))+\" \")])],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\n\n/**\n * Component that represent Localisation\n * Navigation where possible to switch languages\n */\n@Component\nexport default class Localisation extends Vue {\n @State('app') appState!: IAppState\n\n selectedLanguage = 0\n get languages() {\n return [\n { title: 'uiComponents.localisationLanguagesList.en', locale: 'en' },\n { title: 'uiComponents.localisationLanguagesList.de', locale: 'de' },\n { title: 'uiComponents.localisationLanguagesList.it', locale: 'it' },\n ];\n }\n\n get user() {\n return this.appState.user;\n }\n\n /**\n * Save current locale in browser local storage\n */\n saveLocale() {\n const currentLocales: any = localStorage.getItem('lynusLocales');\n const obj = { [this.user.id]: this.$i18n.locale };\n const res = currentLocales ? { ...JSON.parse(currentLocales), ...obj } : { ...obj };\n\n localStorage.setItem('lynusLocales', JSON.stringify(res));\n }\n\n /**\n * Load current locale from browser local storage\n */\n loadLocale() {\n const lynusLocales = localStorage.getItem('lynusLocales');\n\n if (lynusLocales) {\n const locale = JSON.parse(lynusLocales)[this.user.id];\n if (locale) {\n this.$i18n.locale = locale;\n }\n }\n }\n\n handleLocale(index: number) {\n this.$i18n.locale = this.languages[index].locale;\n this.selectedLanguage = index;\n this.saveLocale();\n }\n\n mounted() {\n this.loadLocale();\n this.selectedLanguage = this.languages.findIndex((el: any) => el.locale === this.$i18n.locale);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Localisation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Localisation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Localisation.vue?vue&type=template&id=216c30c5&scoped=true&\"\nimport script from \"./Localisation.vue?vue&type=script&lang=ts&\"\nexport * from \"./Localisation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"216c30c5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex\"},[(_vm.offlineTimerMessage !== '' || _vm.showLoading)?_c('v-tooltip',{attrs:{\"bottom\":\"\",\"max-width\":250},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({on:{\"mouseenter\":function($event){_vm.doesHover = true},\"mouseleave\":function($event){_vm.doesHover = false}}},on),[_c('div',{staticClass:\"ml-2\"},[(!_vm.projectStatus)?_c('div',[(!_vm.showLoading)?_c('div',[_vm._v(\" \"+_vm._s(_vm.offlineTimerMessage)+\" \")]):_vm._e()]):_vm._e(),(_vm.showLoading)?_c('CircleSpinner',{staticClass:\"mr-2\",attrs:{\"color\":\"accent\",\"size\":35}}):_vm._e()],1)])]}}],null,false,1541455423)},[_c('div',{staticClass:\"last-online-timestamp\"},[(!_vm.showLoading)?_c('div',[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.offlineTimerAppBar.dataConnectionMissing')))]),_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.offlineTimerAppBar.headerText')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.offlineTimerMessageTooltip))]),(_vm.internetConnected)?_c('div',{staticClass:\"pt-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.offlineTimerAppBar.internetConnected')))]):_vm._e()]):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.offlineTimerAppBar.loadingText'))+\" \")])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport class Time extends Vue {\n /**\n * Convert seconds to days - hours - minutes\n * @param seconds number of seconds\n * @return object with properties days, hours, minutes converted from seconds\n */\n getDateFromSeconds(seconds: number) {\n let delta = seconds;\n\n const days = Math.floor(delta / 86400);\n delta -= days * 86400;\n\n const hours = Math.floor(delta / 3600) % 24;\n delta -= hours * 3600;\n\n const minutes = Math.floor(delta / 60) % 60;\n\n return { days, hours, minutes };\n }\n}\n","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { Time } from '@/ui/mixins/time';\nimport { mixins } from 'vue-class-component';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\n\n/**\n * Component that represent offline timer.\n * Shows how much time has passed since last mqtt connection of project.\n */\n@Component({\n components: {\n CircleSpinner,\n },\n})\nexport default class OfflineTimer extends mixins(Time) {\n @State('projects') projectsState!: IProjectsState;\n @State('mqttClient') mqttState!: any;\n\n doesHover = false;\n timer: any = null;\n offlineTimerMessage = '';\n offlineTimerMessageTooltip = '';\n delay = 10000;\n showLoading = false;\n\n @Watch('projectName')\n onRouteChange(val: string | undefined) {\n if (val) this.loadOfflineTimer();\n else {\n this.offlineTimerMessage = '';\n this.offlineTimerMessageTooltip = '';\n clearInterval(this.timer);\n }\n }\n\n @Watch('projectStatus')\n onProjectStatusChange(val: boolean) {\n if (val) {\n // if project is online, dont need to show loading animation\n this.$emit('offlineTimerMessage', true);\n this.showLoading = false;\n } else {\n if (this.showLoading === false) {\n this.loadOfflineTimer(false);\n }\n }\n }\n\n get projectName() {\n return this.projectsState.project.name;\n }\n\n get lastHeartbeatMessage() {\n return this.mqttState.lastHeartbeatMessage;\n }\n\n get projectStatus() {\n return this.mqttState.online;\n }\n\n get internetConnected() {\n return this.mqttState.internet;\n }\n\n /**\n * Converts time to short note\n * @param time seconds\n * @return {string} Example: 2 Day/s...\n */\n getDateShort(time: number): string {\n const { days, hours, minutes } = this.getDateFromSeconds(time);\n\n const hoursStr = hours ? `${hours} ${this.$t('uiComponents.offlineTimerAppBar.hourTranslation')}` : '';\n const minutesStr = minutes ? `${minutes} ${this.$t('uiComponents.offlineTimerAppBar.minuteTranslation')}` : '';\n\n if (days) {\n return `${days} ${this.$t('uiComponents.offlineTimerAppBar.dayTranslation')}`;\n } else if (hours) {\n return hoursStr;\n } else {\n return minutesStr;\n }\n }\n\n /**\n * Converts time to long note\n * @param time seconds\n * @return {string} Example: 2 Day/s 2 Hour/s 2 Minute/s\n */\n getDateLong(time: number): string {\n const { days, hours, minutes } = this.getDateFromSeconds(time);\n\n const dayStr = days ? `${days} ${this.$t('uiComponents.offlineTimerAppBar.dayTranslation')}, ` : '';\n const hoursStr = hours ? `${hours} ${this.$t('uiComponents.offlineTimerAppBar.hourTranslation')}, ` : '';\n const minutesStr = minutes ? `${minutes} ${this.$t('uiComponents.offlineTimerAppBar.minuteTranslation')}` : '';\n\n return `${dayStr}${hoursStr}${minutesStr}`;\n }\n\n /**\n * Loads offline timer value according to last heartbeat message\n */\n loadOfflineTimer(handleLoading = true) {\n if (handleLoading) {\n // this will make StatusIndicator for Project Online state invisible\n this.$emit('offlineTimerMessage', false);\n this.showLoading = true;\n }\n this.timer = setInterval(() => {\n const current = Math.trunc(new Date().getTime() / 1000);\n const lastHB = Math.trunc(this.lastHeartbeatMessage / 1000);\n\n if (!this.lastHeartbeatMessage) this.offlineTimerMessage = '';\n else {\n const timeDifference = current - lastHB;\n this.offlineTimerMessage = timeDifference > 60 ? this.getDateShort(timeDifference) : '';\n this.offlineTimerMessageTooltip = timeDifference > 60 ? this.getDateLong(timeDifference) : '';\n }\n if (handleLoading) {\n this.showLoading = false;\n // this will make StatusIndicator for Project Online state visible again after 5 seconds\n this.$emit('offlineTimerMessage', true);\n }\n }, this.delay);\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfflineTimer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OfflineTimer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OfflineTimer.vue?vue&type=template&id=b925bc4e&scoped=true&\"\nimport script from \"./OfflineTimer.vue?vue&type=script&lang=ts&\"\nexport * from \"./OfflineTimer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b925bc4e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"new-report\"},[_c('v-container',{attrs:{\"fluid\":\"\"}},[(_vm.currentMember.role === _vm.UserRoleCode.admin)?_c('v-row',[_c('v-col',{attrs:{\"lg\":\"4\",\"md\":\"6\",\"sm\":\"12\"}},[_c('h2',{staticClass:\"pb-3\"},[_vm._v(_vm._s(_vm.$t('modals.manageReport.subTitles.selectTypeTitle')))]),_c('v-select',{attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"items\":_vm.reportTypesList,\"item-text\":\"state\",\"item-value\":\"abbr\",\"label\":_vm.$t('modals.manageReport.textFields.newTypeField')},model:{value:(_vm.reportType),callback:function ($$v) {_vm.reportType=$$v},expression:\"reportType\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c(_vm.currentReport.component,{ref:\"CurrentReport\",tag:\"component\",attrs:{\"is-new-report\":true},on:{\"onFormValidStatusChange\":function($event){_vm.isFormValid = $event}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('h1',[_vm._v(_vm._s(_vm.$t('modals.manageReport.headerText')))])]},proxy:true}])})],1)],1)],1),(_vm.reportType)?_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.$emit('handleClose')}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.close'))+\" \")]),_c('v-btn',{staticClass:\"accent lynus-small-btn ml-6\",attrs:{\"disabled\":!_vm.isFormValid,\"elevation\":\"0\"},on:{\"click\":_vm.createReport}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageReport.buttons.createReport'))+\" \")])],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator';\nimport NormalReport from '@/ui/components/modals/ManageReport/NormalReport.vue';\nimport ZevReport from '@/ui/components/modals/ManageReport/ZevReport.vue';\nimport { Action, Getter } from 'vuex-class';\nimport { IReport } from '@/types/report.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { IMember } from '@/types/members.types';\n\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n NormalReport,\n ZevReport,\n },\n})\nexport default class NewReport extends Vue {\n @Action('report/addReport') addReport!: ({ id, reportModel }: { id: string; reportModel: IReport }) => Promise;\n @Getter('members/currentMember') currentMember!: IMember;\n\n dialog = false;\n reportType = '';\n isFormValid = false;\n\n get reportTypesList() {\n const translations: any = this.$t('modals.manageReport.newReportListItems');\n return [\n { state: translations[0], abbr: 'zev' },\n { state: translations[1], abbr: 'heatingReport' },\n { state: translations[2], abbr: 'coldWaterReport' },\n { state: translations[3], abbr: 'hotWaterReport' },\n { state: translations[4], abbr: 'electricityReport' },\n { state: translations[5], abbr: 'otherReport' },\n ];\n }\n\n get reportsList(): { [key: string]: any } {\n return {\n zev: {\n component: 'ZevReport',\n },\n heatingReport: {\n component: 'NormalReport',\n },\n coldWaterReport: {\n component: 'NormalReport',\n },\n hotWaterReport: {\n component: 'NormalReport',\n },\n electricityReport: {\n component: 'NormalReport',\n },\n otherReport: {\n component: 'NormalReport',\n },\n '': {\n component: '',\n },\n };\n }\n\n get currentReport() {\n return this.reportsList[this.reportType];\n }\n\n async createReport() {\n const { reportDataToSend } = this.$refs.CurrentReport as any;\n if (reportDataToSend?.meta === undefined) {\n reportDataToSend.meta = {};\n }\n reportDataToSend.meta.showInList = this.reportType;\n await this.addReport({\n id: this.$route.params.id,\n reportModel: (this.$refs.CurrentReport as any).reportDataToSend,\n });\n this.$emit('handleClose');\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./NewReport.vue?vue&type=template&id=102a65e4&\"\nimport script from \"./NewReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewReport.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./NewReport.vue?vue&type=style&index=0&id=102a65e4&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1000\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"accent\"}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":20,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createPartnerProject.createButton'))+\" \")])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.createPartnerProject.title'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-container',[_c('v-form',{ref:\"form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',[_c('v-col',{staticClass:\"py-0 my-0\",attrs:{\"cols\":\"12\",\"lg\":\"6\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.rules.required, _vm.rules.counter],\"label\":_vm.$t('modals.createPartnerProject.labels.name'),\"counter\":30,\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.project.name),callback:function ($$v) {_vm.$set(_vm.project, \"name\", $$v)},expression:\"project.name\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.phoneNumber'),\"color\":\"accent\",\"outlined\":\"\"},model:{value:(_vm.project.meta.phone_number),callback:function ($$v) {_vm.$set(_vm.project.meta, \"phone_number\", $$v)},expression:\"project.meta.phone_number\"}}),(_vm.appState.user.super_admin)?_c('v-select',{attrs:{\"items\":_vm.partnerItems,\"label\":_vm.$t('partners.partnerManagement.leads.manageLeads.labels.partnerAssignment'),\"item-text\":\"text\",\"item-value\":\"value\",\"color\":\"accent\",\"hide-selected\":\"\",\"outlined\":\"\",\"clearable\":true,\"rules\":[_vm.rules.required]},model:{value:(_vm.selectedPartner),callback:function ($$v) {_vm.selectedPartner=$$v},expression:\"selectedPartner\"}}):_vm._e()],1),_c('v-col',{staticClass:\"py-0 my-0\",attrs:{\"cols\":\"12\",\"lg\":\"6\",\"md\":\"12\",\"sm\":\"12\"}},[_c('div',{staticStyle:{\"height\":\"86px\"}},[_c('v-autocomplete',{attrs:{\"items\":_vm.placesArr,\"search-input\":_vm.searchPlaces,\"clearable\":\"\",\"color\":\"accent\",\"outlined\":\"\",\"hide-no-data\":\"\",\"no-filter\":\"\",\"hide-selected\":\"\",\"item-text\":\"display_name\",\"item-value\":\"coordinates\",\"return-object\":\"\",\"label\":_vm.$t('uiComponents.settings.general.form.city')},on:{\"update:searchInput\":function($event){_vm.searchPlaces=$event},\"update:search-input\":function($event){_vm.searchPlaces=$event}},model:{value:(_vm.location),callback:function ($$v) {_vm.location=$$v},expression:\"location\"}})],1),_c('v-select',{attrs:{\"items\":_vm.projectTypes,\"item-value\":\"value\",\"item-text\":\"text\",\"hide-selected\":\"\",\"outlined\":\"\",\"color\":\"accent\",\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.projectType')},model:{value:(_vm.project.meta.type),callback:function ($$v) {_vm.$set(_vm.project.meta, \"type\", $$v)},expression:\"project.meta.type\"}})],1),_c('v-col',{staticClass:\"py-0 my-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-textarea',{attrs:{\"label\":_vm.$t('partners.partnerWorkspace.pages.partnerInformation.labels.notes'),\"color\":\"accent\",\"outlined\":\"\",\"no-resize\":\"\"},model:{value:(_vm.project.meta.description),callback:function ($$v) {_vm.$set(_vm.project.meta, \"description\", $$v)},expression:\"project.meta.description\"}})],1),_c('v-col',{staticClass:\"pt-0 mt-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('h3',{staticClass:\"py-2\"},[_vm._v(_vm._s(_vm.$t('partners.partnerWorkspace.pages.partnerInformation.subTitles.trainedWorkers')))]),_c('ManageWorker',{on:{\"addWorker\":_vm.handleAddWorker}}),_c('v-data-table',{staticClass:\"elevation-0 solar-calculator-table\",staticStyle:{\"background-color\":\"transparent\"},attrs:{\"headers\":_vm.headers,\"items\":_vm.project.meta.workers,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"item.name\",fn:function({ item }){return [_c('div',[_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")])]}},{key:\"item.actions\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex\"},[_c('ManageWorker',{attrs:{\"handleAsEdit\":true,\"worker\":item,\"index\":item.index},on:{\"editWorker\":_vm.handleEditWorker}}),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.handleDeleteWorker(item)}}},[_c('lynus-icon',{attrs:{\"color\":\"red\",\"name\":\"trash\",\"size\":\"20\"}})],1)],1)]}}])})],1),_c('v-col',{staticClass:\"py-0 my-0\",attrs:{\"cols\":\"12\",\"lg\":\"12\",\"md\":\"12\",\"sm\":\"12\"}},[_c('v-btn',{attrs:{\"color\":\"accent\"},on:{\"click\":_vm.createProject}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createPartnerProject.createButton'))+\" \")])],1)],1)],1)],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IGetLocationWithDelay, IWeatherLocation } from '@/types/app.types';\nimport { debounce } from 'lodash';\nimport LocationService from '@/services/LocationService';\nimport { IPartner } from '@/types/partner.types';\nimport { IPartnerWorkspace, IWorker } from '@/types/partnerWorkspace.types';\nimport ManageWorker from '@/ui/components/modals/Partner/ManageWorker.vue';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\n\n/**\n * Component that allows to create a new partner project\n */\n@Component({\n components: {\n ModalWindow,\n ManageWorker,\n },\n})\nexport default class CreatePartnerProject extends mixins(Validation) {\n @State('app') appState!: IAppState;\n @Getter('partners/partners') partners!: IPartner[];\n @Action('partnerWorkspaces/createWorkspace') createWorkspace!: (data: {workspace: IPartnerWorkspace; id: string}) => Promise;\n\n project: IPartnerWorkspace = {\n name: '',\n meta: {\n phone_number: '',\n description: '',\n logo: '',\n location: {\n display_name: '',\n lat: '0',\n lon: '0',\n },\n type: '',\n workers: [],\n tasks: [],\n offers: [],\n documentation: [],\n solar_calculation_results: [],\n },\n id: '',\n created_at: '',\n };\n selectedPartner = '';\n valid = false;\n\n // search location start\n location: IWeatherLocation | null = null;\n searchPlaces: string | null = null;\n placesArr: IWeatherLocation[] = [];\n getLocationWithDelay: IGetLocationWithDelay | null = null;\n\n headers = [\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.name'),\n value: 'name',\n sortable: false,\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.email'),\n value: 'email',\n sortable: false,\n },\n {\n text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.headers.actions'),\n value: 'actions',\n sortable: false,\n },\n ];\n\n /*\n * Returns the partner items for the partner select\n */\n get partnerItems() {\n const mappings = this.partners.map((partner) => {\n return { value: partner.id, text: partner.data.name };\n });\n return mappings;\n }\n\n get projectTypes() {\n return [\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.efh'), value: 'efh' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.mfh'), value: 'mfh' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.ac'), value: 'ac' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.dc'), value: 'dc' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.business'), value: 'business' },\n { text: this.$t('partners.partnerWorkspace.pages.projectPlan.manageTasks.projectTypes.industry'), value: 'industry' },\n ];\n }\n\n handleDeleteWorker(worker: IWorker) {\n const index = this.project.meta.workers?.findIndex((w: IWorker) => w.id === worker.id);\n if (index !== undefined && index !== -1) {\n this.project.meta.workers?.splice(index, 1);\n }\n }\n\n handleAddWorker(worker: IWorker) {\n this.project.meta.workers?.push(worker);\n }\n\n handleEditWorker(worker: IWorker) {\n const index = this.project.meta.workers?.findIndex((w: IWorker) => w.id === worker.id);\n if (index !== undefined && index !== -1) {\n this.project.meta.workers?.splice(index, 1, worker);\n }\n }\n\n @Watch('searchPlaces')\n async onSearchPlaces(val: string | null) {\n const isEqualToSaved = this.project?.meta?.location?.display_name === val;\n if (val && val.length > 2 && !isEqualToSaved) {\n this.getLocationWithDelay?.(val);\n }\n }\n\n setLocation(location: IWeatherLocation) {\n this.location = { ...location };\n this.placesArr.push({ ...location });\n }\n // search location end\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n async onDialogStatusChange(status: boolean) {\n if (status) {\n await this.$nextTick();\n this.validate();\n } else {\n this.resetToDefault();\n }\n }\n\n resetToDefault() {\n this.project = {\n name: '',\n meta: {\n phone_number: '',\n description: '',\n logo: '',\n location: {\n display_name: '',\n lat: '0',\n lon: '0',\n },\n type: '',\n workers: [],\n tasks: [],\n offers: [],\n documentation: [],\n solar_calculation_results: [],\n },\n id: '',\n created_at: '',\n };\n this.selectedPartner = '';\n this.valid = false;\n this.location = null;\n this.searchPlaces = null;\n this.placesArr = [];\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n createProject() {\n let partnerId = '';\n if (this.appState.user.super_admin) {\n // select field\n partnerId = this.selectedPartner;\n } else {\n partnerId = this.appState.user.partner ?? '';\n }\n this.project.meta.location = this.location as IWeatherLocation;\n this.createWorkspace({ workspace: this.project, id: partnerId });\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n created() {\n // fetch location with 1sec delay\n this.getLocationWithDelay = debounce(async (place) => {\n this.placesArr = await LocationService.fetchLocations(place);\n }, 1000);\n }\n\n mounted() {\n this.$nextTick(() => {\n this.validate();\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreatePartnerProject.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreatePartnerProject.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreatePartnerProject.vue?vue&type=template&id=7b928378&\"\nimport script from \"./CreatePartnerProject.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreatePartnerProject.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$route.meta.navigation === 'appNavigation')?_c('div',{staticStyle:{\"height\":\"30px\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ props }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: onTooltip }){return [_c('v-badge',{attrs:{\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.badgeValue,\"value\":_vm.badgeValue !== 0}},[_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"height\":36,\"width\":36},on:{\"click\":function($event){_vm.menu = true}}},'v-btn',props,false),{ ...onTooltip }),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" fa-filter \")])],1)],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.projectTags.popupButtonTitle')))])])]}}],null,false,2586608005),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-card',{staticClass:\"flex flex-col justify-center\",attrs:{\"width\":\"400\"}},[_c('div',{staticClass:\"px-4 pt-6\"},[_c('ProjectTags',{attrs:{\"isInsideAppbar\":true}}),_c('v-select',{staticClass:\"pb-6\",attrs:{\"label\":_vm.$t('uiComponents.filterComponents.filterByProjectStatus'),\"items\":_vm.projectStatusList,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"outlined\":\"\",\"flat\":\"\",\"color\":\"accent\",\"clearable\":\"\"},on:{\"click:clear\":function($event){return _vm.setProjectFilter({ type: 'projectStatus', value: '' })},\"input\":function($event){return _vm.setProjectFilter({ type: 'projectStatus', value: _vm.selectByProjectStatus })}},model:{value:(_vm.selectByProjectStatus),callback:function ($$v) {_vm.selectByProjectStatus=$$v},expression:\"selectByProjectStatus\"}}),_c('v-select',{attrs:{\"items\":_vm.allSystemTypes,\"label\":_vm.$t('uiComponents.settings.general.form.control.batterySystem'),\"color\":\"accent\",\"outlined\":\"\",\"hide-selected\":\"\",\"clearable\":\"\"},on:{\"click:clear\":_vm.handleClearSystemTypeFilter,\"input\":function($event){return _vm.setProjectFilter({ type: 'systemType', value: _vm.selectedSystemType })}},model:{value:(_vm.selectedSystemType),callback:function ($$v) {_vm.selectedSystemType=$$v},expression:\"selectedSystemType\"}}),(_vm.deyeBatteryTypes.includes(_vm.selectedSystemType))?_c('v-select',{attrs:{\"items\":_vm.allDeyeTypes,\"label\":_vm.$t('uiComponents.settings.general.form.control.selectedBatteryStorageType'),\"color\":\"accent\",\"outlined\":\"\",\"hide-selected\":\"\",\"clearable\":\"\"},on:{\"click:clear\":function($event){return _vm.setProjectFilter({ type: 'batterySystemType', value: '' })},\"input\":function($event){return _vm.setProjectFilter({ type: 'batterySystemType', value: _vm.selectedBatterySystemType })}},model:{value:(_vm.selectedBatterySystemType),callback:function ($$v) {_vm.selectedBatterySystemType=$$v},expression:\"selectedBatterySystemType\"}}):_vm._e()],1)])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Watch } from 'vue-property-decorator';\nimport ProjectTags from '@/ui/components/components/ProjectTagsField.vue';\nimport { AllBatteryTypes } from '@/utils/batteryTypes';\nimport { deyeTypes, deyeBatteryTypes } from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport { IProject, IProjectFilters } from '@/types/project.types';\nimport { IProjectAmountByStatus } from '@/types/common.types';\n\n@Component({\n components: {\n ProjectTags,\n },\n})\nexport default class TagsFilterPopup extends Vue {\n @State('projects') projectsState!: any;\n @Getter('projects/projects') projects!: IProject[];\n @Getter('projects/projectFilters') projectFilters!: IProjectFilters;\n @Mutation('projects/setProjectFilter') setProjectFilter!: (data: { type: keyof IProjectFilters; value: any }) => any;\n\n selectByProjectStatus = '';\n selectedSystemType = '';\n selectedBatterySystemType = '';\n\n // will contain the amount of projects by status\n projectAmountByStatus: IProjectAmountByStatus = {\n ok: 0,\n warning: 0,\n error: 0,\n };\n\n get filterProjectByStatus() {\n return this.projectsState.projectFilters.projectStatus;\n }\n\n get projectFilterTags() {\n return this.projectFilters.projectTags;\n }\n\n get badgeValue() {\n let additional = 0;\n if (this.selectByProjectStatus !== '' && this.selectByProjectStatus !== undefined) {\n additional = 1;\n }\n return this.projectFilterTags.length + additional;\n }\n\n get projectStatusList() {\n return [\n { name: `Ok (${this.projectAmountByStatus.ok})`, value: 'ok' },\n { name: `Warning (${this.projectAmountByStatus.warning})`, value: 'suspend' },\n { name: `Error (${this.projectAmountByStatus.error})`, value: 'error' },\n ];\n }\n\n get allSystemTypes() {\n // convert enum to array with all system types\n return Object.values(AllBatteryTypes);\n }\n\n get allDeyeTypes() {\n // convert enum to array with all battery system types\n return Object.values(deyeTypes);\n }\n\n get deyeBatteryTypes() {\n // convert enum to array with all battery system types\n return Object.values(deyeBatteryTypes);\n }\n\n handleClearSystemTypeFilter() {\n // reset system type and battery type filter because battery type is dependent on system type\n this.setProjectFilter({ type: 'systemType', value: '' });\n this.setProjectFilter({ type: 'batterySystemType', value: '' });\n this.selectedBatterySystemType = '';\n }\n\n @Watch('projects')\n handleProjectsChange() {\n // update project amount by status\n Object.keys(this.projectAmountByStatus).forEach((status: string) => {\n this.projectAmountByStatus[status as keyof IProjectAmountByStatus] = this.projects.filter((project: IProject) => {\n if (!project.stats) return false;\n if (status === 'ok') {\n return project.stats.errors === 0 && project.stats.warnings === 0;\n }\n if (status === 'warning') {\n return project.stats.errors === 0 && project.stats.warnings > 0;\n }\n if (status === 'error') {\n return project.stats.errors > 0;\n }\n return false;\n }).length;\n });\n }\n\n mounted() {\n // set filter if some is already selected\n if (this.filterProjectByStatus !== '' && this.filterProjectByStatus !== undefined) {\n this.selectByProjectStatus = this.filterProjectByStatus;\n }\n }\n\n menu = false;\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectFilterPopup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProjectFilterPopup.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProjectFilterPopup.vue?vue&type=template&id=095ac0d9&\"\nimport script from \"./ProjectFilterPopup.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProjectFilterPopup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$route.name === 'PartnerWorkspace')?_c('div',{staticStyle:{\"height\":\"30px\"}},[_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ props }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on: onTooltip }){return [_c('v-badge',{attrs:{\"overlap\":\"\",\"color\":\"error\",\"content\":_vm.badgeValue,\"value\":_vm.badgeValue !== 0}},[_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"height\":36,\"width\":36},on:{\"click\":function($event){_vm.menu = true}}},'v-btn',props,false),{ ...onTooltip }),[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\" fa-filter \")])],1)],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.filterPartnerProjects')))])])]}}],null,false,1932197035),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-card',{staticClass:\"flex flex-col justify-center\",attrs:{\"width\":\"400\"}},[_c('div',{staticClass:\"px-4 pt-6\"},[_c('v-select',{attrs:{\"items\":_vm.partnerItems,\"label\":\"Select Partner\",\"outlined\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"clearable\":\"\"},on:{\"change\":function($event){return _vm.setFilterByPartner(_vm.selectedPartner)},\"click:clear\":function($event){return _vm.setFilterByPartner('')}},model:{value:(_vm.selectedPartner),callback:function ($$v) {_vm.selectedPartner=$$v},expression:\"selectedPartner\"}})],1)])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ProjectTags from '@/ui/components/components/ProjectTagsField.vue';\nimport { IPartner } from '@/types/partner.types';\nimport { Getter, Mutation } from 'vuex-class';\nimport { IPartnerWorkspacesState } from '@/store/modules/partnerWorkspaces/types';\n\n@Component({\n components: {\n ProjectTags,\n },\n})\nexport default class PartnerProjectFilter extends Vue {\n @Getter('partners/partners') partners!: IPartner[];\n @Mutation('partnerWorkspaces/setFilterByPartner') setFilterByPartner!: (filter: string) => IPartnerWorkspacesState;\n\n menu = false;\n selectedPartner = '';\n\n get partnerItems() {\n return this.partners.map((partner) => ({\n text: partner.data.name,\n value: partner.id,\n }));\n }\n\n get badgeValue() {\n return this.selectedPartner ? 1 : 0;\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerProjectFilter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerProjectFilter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PartnerProjectFilter.vue?vue&type=template&id=595af074&\"\nimport script from \"./PartnerProjectFilter.vue?vue&type=script&lang=ts&\"\nexport * from \"./PartnerProjectFilter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"theme-switcher\",on:{\"click\":_vm.toggleTheme}},[_c('v-btn',{staticClass:\"toggle-button\",style:(_vm.alignment),attrs:{\"icon\":\"\",\"outlined\":\"\",\"color\":\"theme\"}},[_c('v-icon',{staticClass:\"theme-icon\",style:(_vm.night),attrs:{\"size\":\"20\",\"color\":\"theme\"}},[_vm._v(\"mdi-weather-night\")]),_c('v-icon',{staticClass:\"theme-icon\",style:(_vm.sunny),attrs:{\"size\":\"20\",\"color\":\"theme\"}},[_vm._v(\"mdi-weather-sunny\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\n\n@Component\nexport default class ToggleThemesButton extends Vue {\n @State('app') appState!: IAppState\n\n visible = true;\n\n get user() {\n return this.appState.user;\n }\n\n get isDark() {\n return this.$vuetify.theme.dark;\n }\n\n set isDark(value: boolean) {\n this.$vuetify.theme.dark = value;\n this.saveTheme();\n }\n\n get night() {\n return { opacity: this.isDark ? 1 : 0 };\n }\n\n get sunny() {\n return { opacity: this.isDark ? 0 : 1 };\n }\n\n saveTheme() {\n const currentLynusTheme: any = localStorage.getItem('lynusTheme');\n const theme = this.$vuetify.theme.dark ? 'dark' : 'light';\n const obj = { [this.user.id]: theme };\n const res = currentLynusTheme ? { ...JSON.parse(currentLynusTheme), ...obj } : { ...obj };\n localStorage.setItem('lynusTheme', JSON.stringify(res));\n }\n\n loadTheme() {\n const currentLynusTheme: any = localStorage.getItem('lynusTheme');\n if (currentLynusTheme) {\n const theme = JSON.parse(currentLynusTheme)[this.user.id];\n if (theme) {\n this.$vuetify.theme.dark = theme === 'dark';\n }\n }\n }\n\n get alignment() {\n return { left: this.isDark ? '0px' : '28px' };\n }\n\n toggleTheme() {\n this.$vuetify.theme.dark = !this.$vuetify.theme.dark;\n this.saveTheme();\n }\n\n mounted() {\n this.loadTheme();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleThemesButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleThemesButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ToggleThemesButton.vue?vue&type=template&id=36cbe6d4&scoped=true&\"\nimport script from \"./ToggleThemesButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./ToggleThemesButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ToggleThemesButton.vue?vue&type=style&index=0&id=36cbe6d4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36cbe6d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('InfoTooltip',{attrs:{\"position\":\"bottom\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-icon',{style:(_vm.internetStatus ? 'color: green' : 'color: red'),attrs:{\"size\":28}},[_vm._v(_vm._s(_vm.icon))])]},proxy:true},{key:\"content\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t(`uiComponents.tooltips.internetStatus.${_vm.internetStatus ? 'online' : 'offline'}`))+\" \")]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport { State } from 'vuex-class';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\n\n/**\n * Component that represent InternetStatusIndicator of the project\n * Used in AppBar.vue\n * Shows current internet connection by watching hb2 mqtt variable\n */\n@Component({\n components: { InfoTooltip },\n})\nexport default class InternetStatusIndicator extends Vue {\n @State('mqttClient') mqttState!: IMQTTState;\n\n get internetStatus() {\n return this.mqttState.internet;\n }\n\n get icon() {\n return this.internetStatus ? 'mdi-access-point-network' : 'mdi-access-point-network-off';\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InternetStatusIndicator.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InternetStatusIndicator.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InternetStatusIndicator.vue?vue&type=template&id=1b7b8333&scoped=true&\"\nimport script from \"./InternetStatusIndicator.vue?vue&type=script&lang=ts&\"\nexport * from \"./InternetStatusIndicator.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InternetStatusIndicator.vue?vue&type=style&index=0&id=1b7b8333&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b7b8333\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalWindow',{ref:\"ModalWindowInstance\",attrs:{\"width\":\"100%\",\"maxWidth\":\"1000\"},on:{\"dialogStatus\":_vm.onDialogStatusChange},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"x-small\":_vm.$vuetify.breakpoint.mobile}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":_vm.$vuetify.breakpoint.mobile ? 13 : 20,\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text ml-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.add')))])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('modals.createSerialNumber.createSerialNumberTitle'))+\" \")]},proxy:true},{key:\"body\",fn:function(){return [_c('div',[_c('v-overlay',{attrs:{\"value\":_vm.loading,\"absolute\":\"\",\"opacity\":0.8,\"color\":\"deviceBackground\"}},[_c('v-progress-circular',{staticClass:\"mx-auto\",attrs:{\"indeterminate\":\"\",\"color\":\"accent\",\"size\":\"50\"}})],1),_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('div',[_c('div',{staticClass:\"pb-4\",staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createSerialNumber.form.info'))+\" \")]),_c('div',{staticClass:\"d-flex align-center justify-space-between upload-file-wrapper-partner\"},[_c('v-file-input',{staticClass:\"pa-0 ma-0 upload-file-field-partner\",attrs:{\"color\":\"accent\",\"outlined\":\"\",\"label\":_vm.$t('modals.createSerialNumber.form.uploadCSVorExcel'),\"persistent-hint\":\"\",\"prepend-inner-icon\":\"fas fa-paperclip\",\"multiple\":\"\",\"dense\":\"\",\"accept\":\".csv, .xls, .xlsx, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"},on:{\"change\":function($event){return _vm.handleFileSelect()}},model:{value:(_vm.fileObject),callback:function ($$v) {_vm.fileObject=$$v},expression:\"fileObject\"}})],1),(_vm.fileObject.length > 0)?_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.createSerialNumber.form.search'),\"outlined\":\"\",\"color\":\"accent\",\"dense\":\"\",\"hide-details\":\"\"},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}}):_vm._e(),_c('v-data-table',{staticClass:\"elevation-1 mb-4\",attrs:{\"headers\":_vm.headers,\"items\":_vm.filteredItems,\"items-per-page\":10,\"item-key\":\"id\"},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_c('tr',[_c('td',[_c('span',[_vm._v(_vm._s(item.id)+\" \"),_vm._l((_vm.rowStyle(item, 'id')),function(style){return _c('strong',{key:style,staticClass:\"pa-2 ma-2 rounded-lg\",class:style},[_vm._v(\" \"+_vm._s(_vm.$t(`modals.createSerialNumber.form.${style}`))+\" \")])})],2)]),_c('td',{staticClass:\"pl-6\"},[_c('span',[_vm._v(\" \"+_vm._s(item.description)+\" \"),_vm._l((_vm.rowStyle(item, 'description')),function(style){return _c('strong',{key:style,staticClass:\"pa-2 ma-2 rounded-lg\",class:style},[_vm._v(\" \"+_vm._s(_vm.$t(`modals.createSerialNumber.form.${style}`))+\" \")])})],2)])])]}}])})],1),_c('div',{staticClass:\"d-flex\"},[_c('v-checkbox',{staticClass:\"mr-4\",attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.createSerialNumber.form.showDuplicates'),\"dense\":\"\"},model:{value:(_vm.showDuplicates),callback:function ($$v) {_vm.showDuplicates=$$v},expression:\"showDuplicates\"}}),_c('v-checkbox',{attrs:{\"color\":\"accent\",\"label\":_vm.$t('modals.createSerialNumber.form.showOnlyFaulty')},model:{value:(_vm.showOnlyFaulty),callback:function ($$v) {_vm.showOnlyFaulty=$$v},expression:\"showOnlyFaulty\"}})],1),_c('div',[(_vm.duplicates)?_c('div',[_c('v-alert',{attrs:{\"type\":\"warning\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createSerialNumber.form.duplicates'))+\" \")])],1):_vm._e(),(_vm.modelTypeFormatError)?_c('div',[_c('v-alert',{attrs:{\"type\":\"error\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createSerialNumber.form.modelTypeFormatError'))+\" \")])],1):_vm._e(),(_vm.serialNumberFormatError)?_c('div',[_c('v-alert',{attrs:{\"type\":\"error\",\"dense\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.createSerialNumber.form.serialNumberFormatError'))+\" \")])],1):_vm._e(),_c('v-btn',{attrs:{\"disabled\":!_vm.fileObject.length || !_vm.valid || _vm.modelTypeFormatError || _vm.serialNumberFormatError,\"elevation\":\"0\",\"color\":\"accent lynus-small-btn\"},on:{\"click\":_vm.createNewSerialNumber}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.create'))+\" \")])],1)])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport { mixins } from 'vue-class-component';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport { Validation } from '@/ui/mixins/validation';\nimport { IInverter, SerialNumberType } from '@/types/serialNumber.types';\nimport { IReportBox } from '@/types/app.types';\nimport { TranslateResult } from 'vue-i18n';\nimport * as XLSX from 'xlsx';\n\n/**\n * Component that allows to create a new project\n */\n@Component({\n components: {\n ModalWindow,\n },\n})\nexport default class CreateSerialNumber extends mixins(Validation) {\n @Action('serialNumber/createInverters') createInverters!: (inverter: {\n id: string;\n description: string;\n }[]) => Promise;\n @Action('serialNumber/deleteInverter') deleteInverter!: (inverter: IInverter) => Promise;\n @Action('serialNumber/fetchInverters') fetchInverters!: () => Promise;\n @Getter('serialNumber/inverters') inverters!: IInverter[];\n @Mutation('app/setReport') setReport!: (report: IReportBox) => void;\n\n valid = false;\n isTooltip = false;\n loading = false;\n serialNumberFormatError = false;\n modelTypeFormatError = false;\n duplicates = false;\n\n showDuplicates = false;\n showOnlyFaulty = false;\n\n fileObject: any = [];\n inverterArray: { id: string; description: string; type: SerialNumberType }[] = [];\n\n search = '';\n\n serialNumberTypeItems = [\n {\n key: this.$t('modals.createSerialNumber.form.inverter'),\n value: 0,\n },\n {\n key: this.$t('modals.createSerialNumber.form.chargeStation'),\n value: SerialNumberType.ChargeStation,\n },\n ]\n serialNumberType: { key: string | TranslateResult; value: number } | null = null;\n\n get currentLang() {\n return this.$i18n.locale;\n }\n\n @Watch('currentLang', { deep: true })\n handleLangChange() {\n this.validate();\n }\n\n get filteredItems() {\n const items = [...this.inverterArray];\n let filteredBySearchItems: { id: string; description: string; type: SerialNumberType }[] = [];\n\n if (!this.search || this.search.length === 0) {\n filteredBySearchItems = items;\n } else {\n filteredBySearchItems = items.filter((inverter: {\n id: string;\n description: string;\n type: SerialNumberType;\n }) => {\n return (\n inverter.id.toLowerCase().includes(this.search.toLowerCase()) ||\n inverter.description?.toLowerCase().includes(this.search.toLowerCase())\n );\n });\n }\n\n if (this.showOnlyFaulty || this.showDuplicates) {\n filteredBySearchItems = filteredBySearchItems.filter((inverter: {\n id: string;\n description: string;\n type: SerialNumberType;\n }) => {\n const styles = [...this.rowStyle(inverter, 'id'), ...this.rowStyle(inverter, 'description')];\n if (this.showOnlyFaulty && this.showDuplicates) {\n return styles.length > 0;\n } else if (this.showOnlyFaulty) {\n return styles.filter((style: string) => style !== 'duplicate').length > 0;\n } else if (this.showDuplicates) {\n return styles.includes('duplicate');\n }\n return true;\n });\n }\n\n return filteredBySearchItems;\n }\n\n serialNumbersCheck() {\n this.serialNumberFormatError = false;\n this.modelTypeFormatError = false;\n this.duplicates = false;\n this.inverterArray.forEach((inverter: {\n id: string;\n description: string;\n type: SerialNumberType;\n }) => {\n // checks for format on serial number\n if (inverter.id.length !== 10) this.serialNumberFormatError = true;\n if (this.inverters.some((inverter2: IInverter) => inverter2.id === inverter.id && inverter2.type === inverter.type)) this.duplicates = true;\n });\n }\n\n async onDialogStatusChange(status: boolean) {\n // clean local project + projectFilterTags when close dialog\n if (!status) {\n this.resetForm();\n } else {\n await this.$nextTick();\n this.validate();\n }\n }\n\n rowStyle(item: { id: string; description: string; type: SerialNumberType }, property: string) {\n const styles = [];\n\n if (property === 'id') {\n if (this.inverters.some((inverter: IInverter) => inverter.id === item.id && inverter.type === item.type)) {\n styles.push('duplicate');\n }\n if (item.id.length !== 10) {\n styles.push('serial-number-format-error');\n }\n } else {\n if (item.description === '') {\n styles.push('empty-model');\n }\n }\n\n return styles;\n }\n\n validate() {\n (this.$refs.form as any)?.validate();\n }\n\n isHybrid(modelType: string) {\n return modelType.toLowerCase().includes('hybrid inverter');\n }\n\n async createNewSerialNumber() {\n if (this.inverterArray.length === 0) return;\n await this.createInverters(this.inverterArray);\n\n this.resetForm();\n await (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n resetForm() {\n this.inverterArray = [];\n this.fileObject = [];\n this.serialNumberType = null;\n }\n\n async handleFileSelect() {\n const files = this.fileObject as File[];\n this.loading = true;\n const readFilesPromises = files.map(file => {\n if (file.type === 'text/csv' || file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.name.endsWith('.csv') || file.name.endsWith('.xls') || file.name.endsWith('.xlsx')) {\n // Process csv and excel files\n return this.readFile(file);\n }\n return Promise.resolve(); // Return a resolved promise for other files\n });\n\n // Wait for all readFile promises to complete\n const result: any = await Promise.all(readFilesPromises);\n this.inverterArray = [];\n result.forEach((res: any) => {\n this.inverterArray = [...this.inverterArray, ...res.inverterArray];\n });\n this.serialNumbersCheck();\n this.loading = false;\n }\n\n readFile(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n const text = e.target.result;\n let lines: string[] = [];\n let headers: string[] = [];\n let isFirstSheet = true;\n\n if (file.type === 'text/csv' || file.name.endsWith('.csv')) {\n lines = text.split('\\n').map((line: string) => line.replace(/\\r/g, ''));\n headers = lines[0].split(';');\n lines = lines.slice(1); // Remove the header line\n } else if (file.type === 'application/vnd.ms-excel' || file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.name.endsWith('.xls') || file.name.endsWith('.xlsx')) {\n const workbook = XLSX.read(text, { type: 'binary' });\n workbook.SheetNames.forEach((sheetName: string) => {\n const worksheet = workbook.Sheets[sheetName];\n const sheetLines = XLSX.utils.sheet_to_csv(worksheet).split('\\n').map((line: string) => line.replace(/\\r/g, ''));\n if (isFirstSheet) {\n headers = sheetLines[0].split(',');\n lines = [...lines, ...sheetLines.slice(1)]; // Remove the header line from the first sheet\n isFirstSheet = false;\n } else {\n lines = [...lines, ...sheetLines.slice(1)]; // Remove the header line from subsequent sheets\n }\n });\n } else {\n reject(new Error('Unsupported file format'));\n return;\n }\n\n const separator = file.type === 'text/csv' || file.name.endsWith('.csv') ? ';' : ',';\n const mTypeIndex = headers.indexOf('M_Type');\n const mSnCodeIndex = headers.indexOf('M_SnCode');\n const systemTypeIndex = headers.indexOf('SystemType');\n\n if (mTypeIndex === -1) {\n this.setReport({\n type: 'error',\n message: 'File does not contain \"M_SnCode\" columns',\n value: true,\n timeout: 20000,\n });\n return;\n }\n\n if (systemTypeIndex === -1) {\n this.setReport({\n type: 'error',\n message: 'File does not contain \"SystemType\" column',\n value: true,\n timeout: 20000,\n });\n return;\n }\n\n const inverterArray: { id: string; description: string; type: SerialNumberType }[] = [];\n let type = SerialNumberType.HybridInverter;\n lines.forEach((line: any, index: number) => {\n if (line.trim() && line.split(separator).filter(Boolean).length > 1) {\n const values = line.split(separator);\n if (index === 0) {\n const systemtype = values[systemTypeIndex];\n if (systemtype === 'Hybrid Inverter') type = SerialNumberType.HybridInverter;\n else if (systemtype === 'String Inverter') type = SerialNumberType.StringInverter;\n else if (systemtype === 'Ladestation') type = SerialNumberType.ChargeStation;\n else type = -1;\n }\n if (values.length !== headers.length) return;\n const description = values[mTypeIndex];\n const id = values[mSnCodeIndex];\n inverterArray.push({\n id,\n description,\n type,\n });\n }\n });\n\n resolve({ inverterArray, filename: file.name });\n };\n reader.onerror = reject; // Reject the promise on error\n reader.readAsBinaryString(file);\n });\n }\n\n get headers() {\n return [\n { text: 'M_SnCode', align: 'start', value: 'number', width: '45%' },\n { text: 'M_Type', align: 'start', value: 'number', width: '45%' },\n ];\n }\n\n created() {\n this.validate();\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateSerialNumber.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateSerialNumber.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateSerialNumber.vue?vue&type=template&id=6216b182&scoped=true&\"\nimport script from \"./CreateSerialNumber.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateSerialNumber.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateSerialNumber.vue?vue&type=style&index=0&id=6216b182&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6216b182\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { INavigationState } from '@/store/modules/navigation/types';\nimport Search from '@/ui/components/components/Search.vue';\nimport UserProfile from '@/ui/components/components/UserProfile.vue';\nimport Localisation from '@/ui/components/components/Localisation.vue';\nimport StatusIndicator from '@/ui/components/components/StatusIndicator.vue';\nimport CreateProject from '@/ui/components/modals/CreateProject.vue';\nimport ManageRoom from '@/ui/components/modals/ManageRoom.vue';\nimport ManageDevice from '@/ui/components/modals/ManageDevice/index.vue';\nimport ManageAnomalyDetection from '@/ui/components/modals/ManageAnomalyDetection/index.vue';\nimport ManageCharts from '@/ui/components/modals/ManageChart/index.vue';\nimport ManageMLModel from '@/ui/components/modals/ManageMLModel/index.vue';\nimport OfflineTimer from '@/ui/components/components/OfflineTimer.vue';\nimport NewReport from '@/ui/components/modals/ManageReport/NewReport.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport ManageRule from '@/ui/components/modals/ManageRule/index.vue';\nimport CreatePartnerProject from '@/ui/components/modals/Partner/CreatePartnerProject.vue';\nimport { displayProjectOfflineStatus, plcVersionDate } from '@/utils/versionManagementUtils';\nimport { envWorkbenchButtons } from '@/utils/env';\nimport { mapMeasurementsList } from '@/utils/utilsFunctions';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IAnomalyDetectionState } from '@/store/modules/anomalyDetection/types';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IMPCState } from '@/store/modules/mpc/types';\nimport { IMQTTState } from '@/store/modules/mqtt/types';\nimport ProjectFilterPopup from '@/ui/components/components/ProjectFilterPopup.vue';\nimport PartnerProjectFilter from '@/ui/components/components/PartnerProjectFilter.vue';\nimport { IProject } from '@/types/project.types';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport { ITenantWizardState } from '@/store/modules/tenantWizard/types';\nimport InfoTooltip from '@/ui/components/components/InfoTooltip.vue';\nimport { IDevice } from '@/types/devices.types';\nimport ToggleThemesButton from '@/ui/components/components/ToggleThemesButton.vue';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { CanAccessCheck, IMember } from '@/types/members.types';\nimport InternetStatusIndicator from '@/ui/components/components/InternetStatusIndicator.vue';\nimport CreateSerialNumber from '@/ui/components/modals/CreateSerialNumber.vue';\n\n/**\n * Component that represent control panel on the top of dashboard\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n CreateSerialNumber,\n InternetStatusIndicator,\n ToggleThemesButton,\n ManageMLModel,\n ManageDevice,\n ManageCharts,\n ManageAnomalyDetection,\n Search,\n UserProfile,\n Localisation,\n StatusIndicator,\n CreateProject,\n ManageRoom,\n OfflineTimer,\n NewReport,\n ModalWindow,\n ProjectFilterPopup,\n ManageRule,\n InfoTooltip,\n CreatePartnerProject,\n PartnerProjectFilter,\n },\n})\nexport default class AppBar extends Vue {\n @State('navigation') navigation!: INavigationState;\n @State('projects') projectsState!: IProjectsState;\n @State('anomalyDetection') anomalyDetectionState!: IAnomalyDetectionState;\n @State('app') appState!: IAppState;\n @State('mpc') mpcState!: IMPCState;\n @State('measurements') measurementsState!: IVariablesState;\n @State('mqttClient') mqttState!: IMQTTState;\n @State('tenantWizard') tenantState!: ITenantWizardState;\n @Getter('projects/project') project!: IProject;\n @Getter('rules/rulesLength') rulesLength!: number;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Getter('members/currentMember') currentMember!: IMember;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n @Getter('measurements/measurementsFilterCount') measurementsFilterCount!: number;\n @Mutation('navigation/handleDrawer') handleDrawer?: (payload: boolean) => void;\n @Mutation('tenantWizard/setWasTenantRestarted') setWasTenantRestarted!: (data: boolean) => void;\n @Action('rooms/createRoom') createRoomState!: (roomName: string) => void;\n @Action('devices/createDevice') createDevice!: (control: IDevice) => void;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n @Action('mpc/createMCCInstance') createMCCInstance!: (mpc: any) => void;\n @Action('projects/loadProject') loadCurrentProject!: (projectId: string) => void;\n\n showProjectStatus = false;\n showInternetStatus = false;\n\n handleOfflineTimerMessage(value: boolean) {\n this.showProjectStatus = value;\n\n let isLoggerProject = false;\n // check if the project was created from the date of 14.03.2024\n if (this.project.meta?.controller?.batterySystemType) {\n isLoggerProject = this.project.meta?.controller?.batterySystemType.toString() === 'Solarman Logger (Deye)';\n }\n this.showInternetStatus = !isLoggerProject && this.showProjectStatus && (plcVersionDate(this.project).getTime() > displayProjectOfflineStatus.getTime());\n }\n\n get disableActionButtons() {\n return this.currentMember?.role !== UserRoleCode.admin;\n }\n\n get drawer() {\n return this.navigation.drawer;\n }\n\n get projectStatus() {\n return this.mqttState.online;\n }\n\n get projectName() {\n return this.projectsState.project.name;\n }\n\n get dndStatus() {\n if (this.project) {\n return this.project.meta?.isDNDActive;\n }\n return false;\n }\n\n get isAreasMiniView() {\n if (this.project) {\n return this.project.meta?.isAreasMiniView;\n }\n return false;\n }\n\n get workbenchCurrentTab() {\n return this.appState.workbenchCurrentTab;\n }\n\n get isNavigation() {\n return (this.$route.meta as any).navigation;\n }\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get iconsSize() {\n return this.$vuetify.breakpoint.mobile ? 13 : 20;\n }\n\n /**\n * Collection of Workbench buttons\n */\n get workbenchButtons() {\n return [\n {\n id: 'device',\n form: 'ManageDevice',\n formTitle: this.$t('modals.manageDevice.createDeviceTitle'),\n btnTitle: this.$t('uiComponents.buttons.addDevice'),\n visible: true,\n },\n {\n id: 'aiml',\n form: 'ManageAnomalyDetection',\n formTitle: this.$t('modals.manageAnomalyDetection.createAnomalyDetectionTitle'),\n btnTitle: this.$t('uiComponents.buttons.addAnomalyDetection'),\n visible: true,\n },\n {\n id: 'charts',\n form: 'ManageCharts',\n formTitle: this.$t('modals.manageCharts.createChartTitle'),\n btnTitle: this.$t('uiComponents.buttons.addChart'),\n visible: true,\n },\n {\n id: 'mpc',\n form: 'ManageMLModel',\n formTitle: this.$t('modals.manageMLModel.createDeviceTitle'),\n btnTitle: this.$t('uiComponents.buttons.addMlModel'),\n visible: this.isWeatherServiceActive,\n },\n ].filter(e => envWorkbenchButtons.includes(e.form));\n }\n\n get isWeatherServiceActive() {\n return this.mpcState.isWeatherServiceActive;\n }\n\n get mlModelTypes() {\n return Object.keys(this.mpcState.mlModelTypes);\n }\n\n get anomalyDetectionTypes() {\n return Object.keys(this.anomalyDetectionState.anomalyDetectionTypes);\n }\n\n get measurementsList() {\n return mapMeasurementsList(this.measurements);\n }\n\n get measurementsFilter() {\n return this.measurementsState.measurementsFilter;\n }\n\n get isDNDButtonVisible() {\n return (this.$route.meta as any).dndSwitch\n && !this.$vuetify.breakpoint.mobile\n && this.canMemberAccess('ProjectActions', 'DragAndDrop');\n }\n\n get appBarTitle() {\n switch (this.$route?.meta?.advancedTitle) {\n case 'numberOfMeasurements':\n return `${this.$t(this.$route?.meta?.locale)} (${this.measurementsFilterCount})`;\n case 'numberOfRules':\n return `${this.$t(this.$route?.meta?.locale)} (${this.rulesLength})`;\n default:\n return this.$t(this.$route?.meta?.locale);\n }\n }\n\n /**\n * Toggle area view between mini view and default view\n */\n async handleAreasView() {\n await this.updateProject({\n ...this.project,\n meta: {\n ...this.project.meta,\n isAreasMiniView: !this.isAreasMiniView,\n },\n });\n }\n\n /**\n * Toggle drag and drop\n */\n async handleDnd() {\n await this.updateProject({\n ...this.project,\n meta: {\n ...this.project.meta,\n isDNDActive: !this.dndStatus,\n },\n });\n }\n\n closeRuleDialog() {\n (this.$refs.RuleModalWindowInstance as any).closeDialog();\n }\n\n closeReportDialog() {\n (this.$refs.ModalWindowInstance as any).closeDialog();\n }\n\n createRoom(payload: any) {\n this.createRoomState(payload);\n }\n\n /**\n * Launch creation method according to device type.\n * @param payload device, MPC data\n */\n handleWorkbenchButton(payload: IDevice | any) {\n const mpcApiTypes: string[] = [...this.mlModelTypes, ...this.anomalyDetectionTypes];\n const isMpc: boolean = mpcApiTypes.some((type: string) => type === payload.data.type);\n if (isMpc) {\n this.createMCCInstance(payload);\n } else {\n this.createDevice(payload);\n }\n }\n\n handleRestartWizard() {\n this.setWasTenantRestarted(true);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppBar.vue?vue&type=template&id=8906c68e&\"\nimport script from \"./AppBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppBar.vue?vue&type=style&index=0&id=8906c68e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-navigation-drawer',{class:[{ 'navigation-drawer-home': _vm.$route.name === 'Home' }, 'app-drawer', 'sideBarColor'],attrs:{\"mini-variant\":_vm.$vuetify.breakpoint.xs ? true : _vm.isMini,\"permanent\":\"\",\"stateless\":\"\",\"app\":\"\"},model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('div',{staticClass:\"d-flex justify-space-between\",staticStyle:{\"height\":\"100%\",\"overflow\":\"hidden\"}},[_c('div',{staticStyle:{\"overflow\":\"auto\",\"width\":\"100%\"}},[_c('div',{staticClass:\"d-flex justify-space-around align-center\"},[_c('v-list-item',{staticClass:\"py-6\"},[(!_vm.isMini && !_vm.$vuetify.breakpoint.xs)?_c('img',{staticStyle:{\"display\":\"block\",\"cursor\":\"pointer\",\"max-width\":\"100%\"},attrs:{\"height\":\"55\",\"src\":_vm.getLogo(),\"alt\":\"logo\"},on:{\"click\":function($event){return _vm.handleLogoClick()}}}):_vm._e()])],1),(_vm.isBackToHomeButtonVisible)?_c('v-list-item',{staticClass:\"back-to-home-btn navigation-list-item\",attrs:{\"to\":_vm.homeNavigationRoute}},[_c('v-list-item-action',[_c('lynus-icon',{attrs:{\"name\":\"home\",\"size\":_vm.iconSizes,\"color\":\"accent\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('navigation.appNavigation.home'))+\" \")])],1)],1):_vm._e(),_c('v-list',{staticClass:\"pt-0\",attrs:{\"dense\":\"\",\"flat\":\"\"}},[_c('v-list-item-group',_vm._l((_vm.currentNavigation),function(item,index){return _c('v-list-item',{key:index,staticClass:\"navigation-list-item my-1\",attrs:{\"to\":item.path}},[_c('v-list-item-action',[[(!_vm.isCustomLib(item.icon))?_c('lynus-icon',{attrs:{\"name\":item.icon,\"size\":_vm.iconSizes,\"color\":item.accepted && _vm.canMemberAccess('ProjectMenuEntries',item.name) ? 'red' : 'accent',\"animation\":item.animation && _vm.canMemberAccess('ProjectMenuEntries',item.name)}}):_c('v-icon',{attrs:{\"color\":\"accent\",\"size\":_vm.iconSizes}},[_vm._v(\" \"+_vm._s(item.icon)+\" \")])]],2),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(item.locale))+\" \")])],1)],1)}),1)],1)],1),_c('div',[_c('div',{style:(`height: ${_vm.$vuetify.breakpoint.mobile ? 120 : 60}px !important`)}),_c('div',{staticClass:\"side-border\"})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-icon',{attrs:{\"dense\":\"\",\"color\":_vm.activeColor}},[_vm._v(\" icon-\"+_vm._s(_vm.icon)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n@Component\nexport default class IconLights extends Vue {\n @Prop() icon: any;\n activeColor = '';\n timer: any = null;\n destroyed(): void {\n clearInterval(this.timer);\n }\n\n mounted() {\n this.timer = setInterval(() => {\n this.activeColor = this.activeColor ? '' : 'red';\n }, 1000);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconLights.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconLights.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconLights.vue?vue&type=template&id=e55aaa98&scoped=true&\"\nimport script from \"./IconLights.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconLights.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e55aaa98\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator';\nimport { Getter, Mutation, State } from 'vuex-class';\nimport IconLights from '@/ui/components/components/IconLights.vue';\nimport { envLogoURLDark, envLogoURLLight } from '@/utils/env';\nimport {\n INavigationState,\n} from '@/store/modules/navigation/types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IMemberState } from '@/store/modules/members/types';\nimport { IProjectNavigation, IAppNavigation } from '@/types/navigation.types';\nimport { CanAccessCheck } from '@/types/members.types';\nimport { BatteryType } from '../wizards/installationWizard/wizardSettings/systemTypes';\n\n/**\n * Component that represent navigation drawer\n */\n@Component({\n components: {\n IconLights,\n },\n})\nexport default class AppDrawer extends Vue {\n @State('navigation') navigationState!: INavigationState;\n @State('app') appState!: IAppState;\n @State('members') membersState!: IMemberState;\n @Getter('app/getIsAllAccepted') getIsAllAccepted!: boolean;\n @Getter('navigation/projectNavigation') projectNavigation!: IProjectNavigation[];\n @Getter('navigation/partnerNavigation') partnerNavigation!: any[];\n @Getter('navigation/appNavigationFiltered') appNavigationFiltered!: IAppNavigation[];\n @Getter('projects/batterySystemType') batterySystemType!: BatteryType;\n @Mutation('navigation/handleDrawer') handleDrawer!: (payload: boolean) => void;\n @Mutation('navigation/handleMiniVariant') handleMiniVariant!: (payload: boolean) => void;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n\n get isBackToHomeButtonVisible() {\n return this.currentNavigationType !== 'appNavigation';\n }\n\n get currentNavigationType() {\n return (this.$route.meta as any).navigation;\n }\n\n get superAdmin() {\n return this.appState.user.super_admin;\n }\n\n get partner() {\n const partner = this.appState.user?.partner ?? '';\n return partner !== '';\n }\n\n get isLynusSupport() {\n return this.appState.user.email === 'support@lynus.io' && this.superAdmin;\n }\n\n /**\n * Returns different navigation lists\n * @return {array} navigation list\n */\n get navigations(): any {\n return { appNavigation: this.appNavigationFiltered, projectNavigation: this.projectNavigation, partnerNavigation: this.partnerNavigation };\n }\n get currentNavigation() {\n const fullNavigationList = this.currentNavigationType ? this.navigations[this.currentNavigationType] : [];\n // filter out all super admin only navigation items if user is not super admin\n let navigationList = this.superAdmin\n ? fullNavigationList\n : fullNavigationList.filter((item: any) => !item?.superAdminOnly);\n if (!this.superAdmin) {\n // filter out all partner only navigation items if user is not partner\n // if the user is a super admin this filter is not needed\n navigationList = this.partner\n ? navigationList\n : navigationList.filter((item: any) => !item?.partnerOnly);\n }\n // only apply filter if the current navigation is project navigation to avoid errors\n if (this.currentNavigationType === 'projectNavigation') {\n if (this.batterySystemType === BatteryType.MobileBatteryDeye) {\n // filter some navigation items for mobile battery deye as they are not needed\n return navigationList\n .filter((item: any) => this.canMemberAccess('ProjectMenuEntries', item.name) && item.filterForMobileBatteryDeye !== true);\n }\n }\n\n // filter out item only accessible for lynus support\n navigationList = this.isLynusSupport\n ? navigationList\n : navigationList.filter((item: any) => !item?.lynusSupportOnly);\n\n return navigationList\n .filter((item: any) => this.canMemberAccess('ProjectMenuEntries', item.name));\n }\n\n /**\n * Returns home route\n * @return {string} home route\n */\n get homeNavigationRoute() {\n if (this.currentNavigationType === 'partnerNavigation') {\n // set partner workspace as home route if partner navigation is active\n return '/partner-workspace';\n }\n // set default home route for every other navigation type\n return '/';\n }\n\n get isMini() {\n return this.navigationState.isMini;\n }\n set isMini(value: boolean) {\n this.handleMiniVariant(value);\n }\n\n get drawer() {\n return this.navigationState.drawer;\n }\n set drawer(value: boolean) {\n this.handleDrawer(value);\n }\n\n /**\n * Defines icon size\n * @return {number} size\n */\n get iconSizes(): number {\n return { 'xs': 16, 'sm': 16, 'md': 20, 'lg': 22, 'xl': 22 }[this.$vuetify.breakpoint.name];\n }\n\n handleLogoClick() {\n this.$router.push(this.homeNavigationRoute);\n }\n\n getLogo() {\n const isLight = (this.$vuetify.theme as any).isDark;\n return isLight ? envLogoURLLight : envLogoURLDark;\n }\n\n /**\n * Defines what icon lib to use for navigation item\n * @param {string} icon icon name\n * @return {boolean} if true use Font-Awesome icon lib\n */\n isCustomLib(icon: string): boolean {\n const reg = /^fa-|mdi-/g;\n if (!icon.length) return false;\n return reg.test(icon);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDrawer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppDrawer.vue?vue&type=template&id=85d8615c&\"\nimport script from \"./AppDrawer.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppDrawer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppDrawer.vue?vue&type=style&index=0&id=85d8615c&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-main',{staticClass:\"primary elevation-1\"},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n/**\n * Component that represent general page view\n */\n@Component\nexport default class AppView extends Vue {}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppView.vue?vue&type=template&id=1051ba2e&scoped=true&\"\nimport script from \"./AppView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1051ba2e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-snackbar',{staticClass:\"report-message\",attrs:{\"timeout\":_vm.getReportMessageAndType.timeout,\"color\":_vm.getReportMessageAndType.type},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.closeReport}},'v-btn',attrs,false),[_c('lynus-icon',{attrs:{\"name\":\"x\",\"color\":\"white\"}})],1)]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_vm._v(\" \"+_vm._s(_vm.getReportMessageAndType.message)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { State, Mutation, Getter } from 'vuex-class';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IReportBox } from '@/types/app.types';\n\n/**\n * Component that represent notification message\n * Usually see when do some request to API\n */\n@Component\nexport default class ReportMessage extends Vue {\n @State('app') app!: IAppState;\n @Getter('app/getReportMessageAndType') getReportMessageAndType!: IReportBox;\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n\n get value() {\n return this.app.reportBox.shouldShow && this.app.reportBox.value;\n }\n set value(val) {\n this.setReport({ message: '', value: val });\n }\n\n closeReport() {\n this.setReport({ message: '', value: false });\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportMessage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportMessage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ReportMessage.vue?vue&type=template&id=402f749d&\"\nimport script from \"./ReportMessage.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportMessage.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ReportMessage.vue?vue&type=style&index=0&id=402f749d&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Vue, Component, Watch } from 'vue-property-decorator';\nimport { ILocales } from '@/types/common.types';\nimport { debounce } from 'lodash';\n\n@Component\nexport class ReleasesNotes extends Vue {\n sleekScriptTag: HTMLScriptElement | null = null;\n initialLoadDone = false;\n debouncedLoadSleekplan: any;\n\n @Watch('$i18n.locale')\n async onLocaleChange(val: ILocales) {\n if (!this.isLynusLatestReleasesNotesSeen() && this.$route.meta?.displayChangelog !== false && this.initialLoadDone) {\n await this.clear();\n await this.debouncedLoadSleekplan(val);\n }\n }\n\n @Watch('$route', { deep: true })\n async onRouteChange(val: any) {\n const button = document.getElementById('sleek-button');\n if (!button) return;\n if (val.meta.displayChangelog === false) {\n // set button style display: none\n if (button) {\n button.style.display = 'none';\n }\n } else {\n // show button\n if (button) {\n button.style.display = 'block';\n }\n }\n }\n\n clear(): Promise {\n return new Promise((resolve) => {\n if ((window as any)?.$sleek?.shutdown) {\n (window as any).$sleek.shutdown();\n }\n\n if (this.sleekScriptTag) {\n document.head.removeChild(this.sleekScriptTag);\n this.sleekScriptTag = null;\n }\n\n (window as any).$sleek = undefined;\n (window as any).sleek = undefined;\n (window as any).SLEEK_PRODUCT_ID = undefined;\n this.initialLoadDone = false;\n\n resolve();\n });\n }\n\n isLynusLatestReleasesNotesSeen(): boolean {\n const localVersion: string | undefined = process.env.VUE_APP_VERSION;\n const lynusLatestReleasesNotesSeen: any = localStorage.getItem('lynusLatestReleasesNotesSeen');\n\n if (!localVersion) return false;\n else return lynusLatestReleasesNotesSeen === String(localVersion);\n }\n\n getSleekplanId(locale: ILocales) {\n switch (locale) {\n case 'en': return '397729427';\n case 'de': return '135604594';\n case 'it': return '814476426';\n default: return undefined;\n }\n }\n\n onSleekClose() {\n // Save seen version in local storage\n localStorage.setItem('lynusLatestReleasesNotesSeen', String(process.env.VUE_APP_VERSION));\n // Remove sleekplan popup, button\n this.clear();\n }\n\n loadSleekplan(locale: ILocales): Promise {\n return new Promise((resolve, reject) => {\n if ((window as any).$sleek) {\n resolve();\n return;\n }\n\n this.sleekScriptTag = document.createElement('script');\n this.sleekScriptTag.type = 'text/javascript';\n this.sleekScriptTag.async = true;\n this.sleekScriptTag.src = 'https://client.sleekplan.com/sdk/e.js';\n this.sleekScriptTag.onload = () => {\n this.initSleekplanListeners();\n resolve();\n };\n this.sleekScriptTag.onerror = () => {\n reject(new Error('Failed to load Sleekplan script'));\n };\n\n document.head.appendChild(this.sleekScriptTag);\n (window as any).$sleek = [];\n (window as any).SLEEK_PRODUCT_ID = this.getSleekplanId(locale);\n this.initialLoadDone = true;\n });\n }\n\n initSleekplanListeners() {\n if (this.sleekScriptTag === null) return;\n (window as any).$sleek.on('close', this.onSleekClose);\n }\n\n mounted() {\n if (!this.isLynusLatestReleasesNotesSeen() && this.$route.meta?.displayChangelog === true) {\n this.debouncedLoadSleekplan = debounce((val: any) => this.loadSleekplan(val), 500);\n setTimeout(() => this.debouncedLoadSleekplan(this.$i18n.locale as ILocales), 500);\n }\n }\n}\n","\nimport { Component } from 'vue-property-decorator';\nimport { mixins } from 'vue-class-component';\nimport AppBar from '@/ui/components/core/AppBar.vue';\nimport AppDrawer from '@/ui/components/core/AppDrawer.vue';\nimport AppView from '@/ui/components/core/AppView.vue';\nimport ReportMessage from '@/ui/components/components/ReportMessage.vue';\nimport { ReleasesNotes } from '@/ui/mixins/releasesNotes';\n\n@Component({\n components: {\n AppBar,\n AppDrawer,\n AppView,\n ReportMessage,\n },\n})\nexport default class App extends mixins(ReleasesNotes) {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=2ee8a2a3&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { envDefaultsToDarkmode, envThemes } from '@/utils/env';\nimport Vue from 'vue';\nimport Vuetify from 'vuetify/lib';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n icons: {\n iconfont: 'fa',\n },\n theme: {\n options: {\n customProperties: true,\n },\n themes: envThemes,\n dark: envDefaultsToDarkmode,\n },\n});\n","import VueKeyCloak from '@dsb-norge/vue-keycloak-js';\nimport '@fortawesome/fontawesome-free/css/all.css';\nimport '@mdi/font/css/materialdesignicons.css';\nimport 'material-design-icons-iconfont/dist/material-design-icons.css';\nimport HighchartsVue from 'highcharts-vue';\nimport Vue from 'vue';\nimport LynusIcon from '@/ui/components/components/LynusIcon.vue';\nimport VueCtkDateTimePicker from 'vue-ctk-date-time-picker';\nimport { VueEditor } from 'vue2-editor';\nimport VueKonva from 'vue-konva';\nimport VueGauge from 'vue-gauge';\nimport ResizeObserver from 'v-resize-observer';\nimport VueQrcode from '@chenfengyuan/vue-qrcode';\nimport i18n from '@/ui/plugins/i18n';\nimport App from '@/ui/App.vue';\nimport router from '@/router';\nimport store from '@/store';\nimport vuetify from '@/ui/plugins/vuetify';\nimport 'leaflet/dist/leaflet.css';\nimport 'roboto-fontface/css/roboto/roboto-fontface.css';\nimport {\n envClientId,\n envFaviconURL,\n envRealm,\n envTitle,\n envProjectOpenSubpage,\n envKeycloakURL,\n} from '@/utils/env';\nimport 'vue-ctk-date-time-picker/dist/vue-ctk-date-time-picker.css';\nimport '@fontsource/clear-sans';\nimport '@/ui/scss/main.scss';\n\nVue.config.productionTip = false;\n\nVue.component('lynus-icon', LynusIcon);\n\nVue.use(VueKonva);\nVue.use(HighchartsVue);\nVue.use(ResizeObserver);\nVue.component(VueQrcode.name, VueQrcode);\nVue.component('VueCtkDateTimePicker', VueCtkDateTimePicker);\nVue.component('VueGauge', VueGauge);\nVue.component('VueEditor', VueEditor);\n\nVue.mixin({\n // make important env variables accessible throughout whole app\n data() {\n return {\n title: envTitle,\n projectOpenSubpage: envProjectOpenSubpage,\n };\n },\n created() {\n // set title and favicon\n document.title = envTitle;\n const favicon = document.getElementById('favicon');\n favicon?.setAttribute('href', envFaviconURL);\n },\n});\n\nVue.use(VueKeyCloak, {\n config: {\n realm: envRealm,\n url: envKeycloakURL,\n clientId: envClientId,\n },\n init: {\n onLoad: 'login-required',\n checkLoginIframe: false,\n },\n logout: {\n redirectUri: document.location.origin,\n },\n // vue-keycloak has no typings...\n onReady: (k: any) => {\n // getting everything from the k.tokenParsed attribute (the JWT content)\n store.commit('app/setUser', {\n id: k.tokenParsed.sub,\n email: k.tokenParsed.email,\n first_name: k.tokenParsed.given_name,\n last_name: k.tokenParsed.family_name,\n super_admin: k.tokenParsed.staff === 'true' || k.tokenParsed.staff === true,\n partner: k.tokenParsed?.partner, // if the user is assigned to a patner, the partner id will be stored else it will be undefined or empty string\n } as any, { root: true });\n\n new Vue({\n router,\n store,\n vuetify,\n i18n,\n render: h => h(App),\n }).$mount('#app');\n },\n});\n","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=d6156a66&prod&lang=scss&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=233546e0&prod&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightPushButton.vue?vue&type=style&index=0&id=0b2d8659&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/MotorWithoutVFD.c5f9ad5e.png\";","module.exports = \"data:image/png;base64,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\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'HppProductionService' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"heating\",\"device-size\":\"x2h\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"consumption-service-device\"},[_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.actualPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"2,56 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedPower`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kW\")])]),_c('div',{staticClass:\"field\"},[_c('div',{class:['label', { 'label-it': _vm.isITLocale }]},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.calculatedEnergy`)))]),_c('div',{class:['value', { 'value-it': _vm.isITLocale }]},[_vm._v(\"5,77 kWh\")])]),_c('div',{staticClass:\"field\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.service`)))])],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('div',{staticClass:\"consumption-service-charts-content\"},[_c('SettingsCharts')],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c('div',[_c(item.component,{tag:\"component\"})],1)])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hpp-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700,\"showNavigationButtons\":false}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Forecast extends Vue {\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n const lang: any = this.$t('mlModel.HppProductionService.settingsView.chartLabels.forecast');\n\n currentChartOptions = [\n {\n agg: 'first',\n name: lang.predictedEnergy,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: lang.predictedPower,\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=528f31a6&scoped=true&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Forecast.vue?vue&type=style&index=0&id=528f31a6&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"528f31a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hpp-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class Chart extends Vue {\n tab: any = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.actualPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n }, {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.power.calculatedPower`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n get settingsViewLang() {\n return 'mlModel.HppProductionService.settingsView';\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Chart.vue?vue&type=template&id=465d0b73&\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts&\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Chart.vue?vue&type=style&index=0&id=465d0b73&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"hpp-service-charts-mqtt\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour','day'],\"chartHeight\":700,\"customApproximationValue\":{day: 1, week: 1, month: 1, year: 1}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class EnergyChart extends Vue {\n tab: any = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.energy.actualEnergy`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t(`${this.settingsViewLang}.chartLabels.energy.calculatedEnergy`),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'column',\n unit: 'kWh',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n get settingsViewLang() {\n return 'mlModel.HppProductionService.settingsView';\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyChart.vue?vue&type=template&id=4efb8ad6&\"\nimport script from \"./EnergyChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyChart.vue?vue&type=style&index=0&id=4efb8ad6&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport Forecast from '@/ui/components/devices/previews/mpc/HeatingProduction/Forecast.vue';\nimport Chart from '@/ui/components/devices/previews/mpc/HeatingProduction/Chart.vue';\nimport EnergyChart from '@/ui/components/devices/previews/mpc/HeatingProduction/EnergyChart.vue';\n\n@Component({\n components: {\n Forecast,\n Chart,\n EnergyChart,\n },\n})\nexport default class SettingsCharts extends Vue {\n tab: any = null\n\n get settingsViewLang() {\n return 'mlModel.HppProductionService.settingsView.chartTabs';\n }\n\n get tabs() {\n return [\n {\n title: 'Chart',\n locale: this.settingsViewLang,\n component: 'Chart',\n },\n {\n title: 'energyChart',\n locale: this.settingsViewLang,\n component: 'EnergyChart',\n },\n {\n title: 'Forecast',\n locale: this.settingsViewLang,\n component: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsCharts.vue?vue&type=template&id=6a0b26ca&\"\nimport script from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport SettingsCharts from '@/ui/components/devices/previews/mpc/HeatingProduction/SettingsCharts.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n@Component({\n components: {\n ShowEventDotMock,\n SettingsCharts,\n MPCLayout,\n },\n})\nexport default class HppProductionServicePreview extends Vue {\n series = [\n {\n name: 'Valve Position',\n type: 'line',\n yAxis: 0,\n color: '#3450ae',\n data: [\n [1583100000000, 23],\n [1583103600000, 26],\n [1583107200000, 22],\n [1583110800000, 28],\n [1583114400000, 28],\n [1583118000000, 29],\n [1583121600000, 29],\n ],\n },\n {\n name: 'Temperature',\n type: 'line',\n yAxis: 1,\n color: '#50ab7e',\n data: [\n [1583100000000, 22],\n [1583103600000, 25],\n [1583107200000, 22],\n [1583110800000, 23],\n [1583114400000, 24],\n [1583118000000, 28],\n [1583121600000, 29],\n ],\n },\n ]\n yAxis = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#3450ae',\n labels: {\n format: '{value} °C',\n style: {\n color: '#3450ae',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#50ab7e',\n labels: {\n format: '{value}',\n style: {\n color: '#50ab7e',\n },\n },\n },\n ]\n\n get isITLocale() {\n return this.$i18n.locale === 'it';\n }\n\n get tabs() {\n return [\n {\n title: 'Forecast',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n {\n title: 'Chart',\n chartType: 'line',\n chartWidth: null,\n series: this.series,\n yAxis: this.yAxis,\n },\n ];\n }\n get mainViewLang() {\n return 'mlModel.ConsumptionService.mainView';\n }\n get previewNameLang() {\n return this.$t('mlModel.HppProductionService.previewName');\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=a5a52454&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=a5a52454&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLine.vue?vue&type=style&index=0&id=aa607158&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{attrs:{\"sendingState\":_vm.sendingState}},[_c(_vm.pushButtonBaseType,_vm._b({tag:\"component\",on:{\"down\":_vm.down,\"up\":function($event){return _vm.trigger(_vm.up)},\"sendSingleValue\":function($event){return _vm.trigger(_vm.sendSingleValue)},\"sendConfirmed\":function($event){return _vm.trigger(_vm.sendConfirmed)},\"playPauseUp\":function($event){return _vm.trigger(_vm.playPauseUp)},\"leave\":_vm.mouseLeave},scopedSlots:_vm._u([{key:\"buttonText\",fn:function(){return [_vm._t(\"buttonText\")]},proxy:true}],null,true)},'component',{\n icon: _vm.icon,\n buttonSize: _vm.buttonSize,\n iconSize: _vm.iconSize,\n buttonWidth: _vm.buttonWidth,\n buttonHeight: _vm.buttonHeight,\n iconColor: _vm.iconColor,\n defaultButtonCurrentState: _vm.state,\n currentState: _vm.isStateEqualToCustomButtonDisabledValue,\n isNotMapped: _vm.isNotMapped,\n },false))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{ref:\"default-button\",class:['push-button-base', { active: _vm.defaultButtonCurrentState }],attrs:{\"width\":_vm.buttonSize,\"height\":_vm.buttonSize,\"outlined\":true,\"disabled\":_vm.isDisabled,\"icon\":\"\"},on:{\"mousedown\":function($event){return _vm.$emit('down')},\"mouseup\":function($event){return _vm.$emit('up')},\"mouseleave\":_vm.handleLeave}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":_vm.defaultButtonCurrentState ? 'white': 'theme',\"size\":_vm.iconSize}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent DefaultButton type for PushButton base control\n */\n@Component\nexport default class DefaultButton extends BasicControl {\n @Prop({ default: null }) defaultButtonCurrentState!: number | null;\n @Prop({ default: 'push_button' }) icon!: string;\n @Prop({ default: 40 }) buttonSize!: string | number;\n @Prop() iconSize?: number | string;\n\n handleLeave() {\n const buttonComponent = this.$refs['default-button'] as Vue;\n const buttonElement = buttonComponent.$el as HTMLElement;\n buttonElement.blur();\n this.$emit('leave');\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DefaultButton.vue?vue&type=template&id=d2ef7fe4&scoped=true&\"\nimport script from \"./DefaultButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./DefaultButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DefaultButton.vue?vue&type=style&index=0&id=d2ef7fe4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d2ef7fe4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-btn',{attrs:{\"width\":_vm.buttonWidth,\"height\":_vm.buttonHeight,\"disabled\":_vm.isDisabled,\"color\":!_vm.$vuetify.theme.dark ? '#215B28' : '#424242'},on:{\"click\":function($event){_vm.dialogActive = true}}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":'push_button',\"color\":!_vm.currentState ? _vm.iconColor : 'theme',\"size\":_vm.iconSize}}),_vm._t(\"buttonText\")],2)]),_c('v-dialog',{attrs:{\"width\":\"300\"},model:{value:(_vm.dialogActive),callback:function ($$v) {_vm.dialogActive=$$v},expression:\"dialogActive\"}},[_c('v-card',{attrs:{\"color\":\"#e6f5e8\"}},[_c('div',{staticClass:\"py-2 d-flex justify-center\"},[_vm._v(\"Wollen Sie wirklich Abbrechen?\")]),_c('div',{staticClass:\"pa-4 d-flex justify-space-between\"},[_c('v-btn',{attrs:{\"color\":\"green\",\"width\":\"60\"},on:{\"mousedown\":_vm.handleEvent}},[_vm._v(\" Ja \")]),_c('v-btn',{attrs:{\"color\":\"error\",\"width\":\"60\"},on:{\"click\":function($event){_vm.dialogActive = false}}},[_vm._v(\" Nein \")])],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent RonovatecConfirmationDialogButton type for PushButton base control\n */\n@Component\nexport default class RonovatecConfirmationDialogButton extends BasicControl {\n @Prop({ default: null }) currentState!: number | null;\n @Prop({ default: 150 }) buttonWidth!: number;\n @Prop({ default: 36 }) buttonHeight!: number;\n @Prop({ default: 'theme' }) iconColor !: string;\n @Prop() iconSize?: number | string;\n\n dialogActive = false\n\n handleEvent() {\n this.$emit('sendConfirmed');\n this.dialogActive = false;\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecConfirmationDialogButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecConfirmationDialogButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RonovatecConfirmationDialogButton.vue?vue&type=template&id=fe36ab80&scoped=true&\"\nimport script from \"./RonovatecConfirmationDialogButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./RonovatecConfirmationDialogButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"fe36ab80\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{attrs:{\"width\":_vm.buttonWidth,\"disabled\":_vm.isDisabled,\"height\":_vm.buttonHeight,\"color\":!_vm.$vuetify.theme.dark ? _vm.buttonColor : '#424242'},on:{\"mousedown\":function($event){return _vm.$emit('playPauseUp')}}},[_c('span',[_c('lynus-icon',{attrs:{\"name\":_vm.playPauseIcon.icon,\"color\":!_vm.currentState ? _vm.iconColor: 'theme',\"size\":_vm.iconSize}}),_c('span',[_vm._v(_vm._s(_vm.playPauseIcon.text))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent RonovatecPlayPauseButton type for PushButton base control\n */\n@Component\nexport default class RonovatecPlayPauseButton extends BasicControl {\n @Prop({ default: null }) currentState!: number | null; // TODO: check if expected type correct, can be that it boolean\n @Prop({ default: 150 }) buttonWidth!: number;\n @Prop({ default: 36 }) buttonHeight!: number;\n @Prop({ default: 'theme' }) iconColor !: string;\n @Prop() iconSize?: number | string;\n @Prop({ default: 'white' }) buttonColor!: string;\n\n get playPauseIcon() {\n // TODO: check if expected type correct, can be that it always boolean\n const isValid: boolean = this.currentState === 0 || this.currentState === -1;\n return isValid ? {\n icon: 'ronova_pause',\n text: 'Anhalten',\n } : {\n icon: 'ronova_play',\n text: 'Fortsetzen',\n };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecPlayPauseButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecPlayPauseButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RonovatecPlayPauseButton.vue?vue&type=template&id=03e17bca&scoped=true&\"\nimport script from \"./RonovatecPlayPauseButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./RonovatecPlayPauseButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e17bca\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{ref:\"static-icon-and-text-button\",attrs:{\"width\":_vm.buttonWidth,\"height\":_vm.buttonHeight,\"disabled\":_vm.isDisabled,\"color\":!_vm.$vuetify.theme.dark ? _vm.buttonColor : '#424242'},on:{\"mousedown\":function($event){return _vm.$emit('down')},\"mouseup\":function($event){return _vm.$emit('up')},\"mouseleave\":_vm.handleLeave}},[_vm._t(\"buttonText\"),_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":!_vm.currentState ? _vm.iconColor: 'theme',\"size\":_vm.iconSize}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent StaticIconAndTextButton type for PushButton base control\n */\n@Component\nexport default class StaticIconAndTextButton extends BasicControl {\n @Prop({ default: null }) currentState!: number | null;\n @Prop({ default: 150 }) buttonWidth!: number;\n @Prop({ default: 36 }) buttonHeight!: number;\n @Prop({ default: 'theme' }) iconColor !: string;\n @Prop() iconSize?: number | string;\n @Prop({ default: 'white' }) buttonColor!: string;\n @Prop({ default: 'push_button' }) icon!: string;\n\n handleLeave() {\n const buttonComponent = this.$refs['static-icon-and-text-button'] as Vue;\n const buttonElement = buttonComponent.$el as HTMLElement;\n buttonElement.blur();\n this.$emit('leave');\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticIconAndTextButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StaticIconAndTextButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./StaticIconAndTextButton.vue?vue&type=template&id=5f054511&scoped=true&\"\nimport script from \"./StaticIconAndTextButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./StaticIconAndTextButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f054511\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{ref:\"ronovatec-up-down-button\",attrs:{\"icon\":\"\",\"rounded\":\"\",\"width\":_vm.buttonSize,\"height\":_vm.buttonSize,\"disabled\":_vm.isDisabled},on:{\"mousedown\":function($event){return _vm.$emit('down')},\"mouseup\":function($event){return _vm.$emit('up')},\"mouseleave\":_vm.handleLeave}},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":_vm.currentState ? 'white': 'theme',\"size\":_vm.iconSize}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent RonovatecUpDownButton type for PushButton base control\n */\n@Component\nexport default class RonovatecUpDownButton extends BasicControl { // RonovatecUpDownButton\n @Prop({ default: null }) currentState!: number | null;\n @Prop({ default: 'push_button' }) icon!: string;\n @Prop({ default: 40 }) buttonSize!: string | number;\n @Prop() iconSize?: number | string;\n\n handleLeave() {\n const buttonComponent = this.$refs['ronovatec-up-down-button'] as Vue;\n const buttonElement = buttonComponent.$el as HTMLElement;\n buttonElement.blur();\n this.$emit('leave');\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecUpDownButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecUpDownButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RonovatecUpDownButton.vue?vue&type=template&id=54e53183&scoped=true&\"\nimport script from \"./RonovatecUpDownButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./RonovatecUpDownButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54e53183\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-btn',{attrs:{\"width\":_vm.buttonWidth,\"height\":_vm.buttonHeight,\"disabled\":_vm.isDisabled,\"color\":!_vm.$vuetify.theme.dark ? _vm.buttonColor : '#424242'},on:{\"mousedown\":function($event){return _vm.$emit('sendSingleValue')}}},[_c('span',{staticClass:\"d-flex flex-column\"},[_c('lynus-icon',{attrs:{\"name\":_vm.icon,\"color\":!_vm.currentState ? _vm.iconColor: 'theme',\"size\":_vm.iconSize}}),_vm._t(\"buttonText\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent RonovatecOverEachOtherButton type for PushButton base control\n */\n@Component\nexport default class RonovatecOverEachOtherButton extends BasicControl {\n @Prop({ default: null }) currentState!: number | null;\n @Prop({ default: 150 }) buttonWidth!: number;\n @Prop({ default: 36 }) buttonHeight!: number;\n @Prop({ default: 'theme' }) iconColor !: string;\n @Prop() iconSize?: number | string;\n @Prop({ default: 'white' }) buttonColor!: string;\n @Prop({ default: 'push_button' }) icon!: string;\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecOverEachOtherButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RonovatecOverEachOtherButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RonovatecOverEachOtherButton.vue?vue&type=template&id=61d5bc4c&scoped=true&\"\nimport script from \"./RonovatecOverEachOtherButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./RonovatecOverEachOtherButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61d5bc4c\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\nimport DefaultButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/DefaultButton.vue';\nimport RonovatecConfirmationDialogButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecConfirmationDialogButton.vue';\nimport RonovatecPlayPauseButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecPlayPauseButton.vue';\nimport StaticIconAndTextButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/StaticIconAndTextButton.vue';\nimport RonovatecUpDownButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecUpDownButton.vue';\nimport RonovatecOverEachOtherButton\n from '@/ui/components/devices/devices/base/PushButtonBase/ButtonTypes/RonovatecOverEachOtherButton.vue';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\n\n/**\n * Component that represent PushButton Basic Control\n */\n@Component({\n components: {\n FeedbackProvider,\n DefaultButton,\n RonovatecConfirmationDialogButton,\n RonovatecPlayPauseButton,\n StaticIconAndTextButton,\n RonovatecUpDownButton,\n RonovatecOverEachOtherButton,\n },\n})\nexport default class PushButtonBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() instance!: string;\n @Prop({ default: 'push_button' }) icon!: string;\n // pushButtonBaseType can be: DefaultButton, RonovatecConfirmationDialogButton, RonovatecPlayPauseButton,\n // StaticIconAndTextButton, RonovatecOverEachOtherButton, RonovatecUpDownButton\n @Prop({ default: 'DefaultButton' }) pushButtonBaseType!: string;\n @Prop({ default: null }) iconSize!: null | number | string;\n @Prop({ default: 40 }) buttonSize!: string | number;\n @Prop({ default: 150 }) buttonWidth!: number;\n @Prop({ default: 36 }) buttonHeight!: number;\n @Prop({ default: 'theme' }) iconColor !: string;\n @Prop({ default: 'white' }) buttonColor!: string;\n @Prop({ default: 0 }) singleSendValue !: number;\n @Prop({ default: -1 }) customButtonDisabledValue!: number;\n @Prop({ default: false }) isSendSingleValue !: boolean;\n\n sendUpValue = false;\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.onOff === '' || this.mappingsClean.state === '';\n }\n get state() {\n return !!this.measurements.get(this.mappingsClean.state);\n }\n get isStateEqualToCustomButtonDisabledValue() {\n return this.measurements.get(this.mappingsClean.state) === this.customButtonDisabledValue;\n }\n get checkForMouseLeave() {\n const buttonTypesToCheck = ['DefaultButton', 'RonovatecUpDownButton', 'StaticIconAndTextButton'];\n return buttonTypesToCheck.includes(this.pushButtonBaseType);\n }\n\n down() {\n if (this.isSendSingleValue) this.send([{ v: this.singleSendValue, n: this.mappingsClean.onOff, u: '' }]);\n else this.send([{ v: 1, n: this.mappingsClean.onOff, u: '' }]);\n this.sendUpValue = true;\n }\n up() {\n if (!this.sendUpValue && this.checkForMouseLeave) return;\n if (this.isSendSingleValue) return;\n\n this.send([{ v: 0, n: this.mappingsClean.onOff, u: '' }]);\n this.sendUpValue = false;\n }\n mouseLeave() {\n if (this.sendUpValue && this.checkForMouseLeave) {\n this.up();\n }\n }\n playPauseUp() {\n const isZero: boolean = this.measurements.get(this.mappingsClean.state) === 0;\n if (isZero) this.send([{ v: 0, n: this.mappingsClean.onOff, u: '' }]);\n else this.send([{ v: 1, n: this.mappingsClean.onOff, u: '' }]);\n }\n sendConfirmed() {\n this.send([{ v: 0, n: this.mappingsClean.onOff, u: '' }]);\n }\n sendSingleValue() {\n this.send([{ v: this.singleSendValue, n: this.mappingsClean.onOff, u: '' }]);\n }\n\n trigger(fn: any) {\n if (!this.sendUpValue && this.checkForMouseLeave) return;\n this.onSendStart();\n fn();\n this.onSendSuccess();\n this.$emit('sent', this.sendingState);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=165ba0e4&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=165ba0e4&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"165ba0e4\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeyeConsumerComponentSettings.vue?vue&type=style&index=0&id=b74c6fac&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary permissions-settings\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"permissions-settings-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.permissions.title'))+\" \")]),(!_vm.showLoader)?_c('div',{staticClass:\"permissions-settings-content\"},[_c('div',{staticClass:\"user-search-wrapper\"},[_c('v-autocomplete',{staticClass:\"mb-8\",attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"search-input\":_vm.search,\"clearable\":\"\",\"hide-no-data\":\"\",\"item-text\":\"email\",\"item-value\":\"email\",\"color\":\"blue\",\"outlined\":\"\",\"label\":_vm.$t('uiComponents.settings.permissions.searchFieldLabel'),\"hide-details\":\"\"},on:{\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event},\"blur\":_vm.clearItems},scopedSlots:_vm._u([{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}},{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.first_name)+\" \"+_vm._s(item.last_name)+\" \")]}}],null,false,2653870012),model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('div',{staticStyle:{\"overflow\":\"auto\"}},[_c('v-data-table',{staticClass:\"elevation-0 primary\",staticStyle:{\"min-width\":\"1000px\"},attrs:{\"headers\":_vm.tableHeaders,\"items\":_vm.tableItems,\"sort-by\":\"owner\",\"sort-desc\":true,\"disable-pagination\":\"\",\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"header.role\",fn:function({ header }){return [_c('span',{staticClass:\"d-flex align-center\"},[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('ModalWindow',{attrs:{\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-information-outline\")])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.table.description.title')))])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"info-box\"},[_c('div',{staticClass:\"roles\"},[_c('div',{staticClass:\"role-box\"},[_c('div',{staticClass:\"role\"},[_c('h4',[_vm._v(\"Admin:\")]),_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.table.description.admin')))])]),_c('div',{staticClass:\"role\"},[_c('h4',[_vm._v(\"Project Owner:\")]),_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.table.description.projectOwner')))])]),_c('div',{staticClass:\"role\"},[_c('h4',[_vm._v(\"User:\")]),_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.table.description.user')))])]),_c('div',{staticClass:\"role\"},[_c('h4',[_vm._v(\"ReadOnly:\")]),_c('span',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.table.description.readOnly')))])])])])])]},proxy:true}],null,true)})],1)]}},{key:\"header.notification\",fn:function({ header }){return [_c('span',{staticClass:\"d-flex align-center\"},[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('ModalWindow',{attrs:{\"max-width\":\"400\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"mdi-information-outline\")])],1)]},proxy:true},{key:\"title-text\",fn:function(){return [_c('div',[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.notificationInfoWindow.title')))])]},proxy:true},{key:\"body\",fn:function(){return [_c('div',{staticClass:\"info-box\"},[_c('div',{staticClass:\"notification\"},[_c('div',{staticClass:\"role-box\"},[_c('div',{staticClass:\"role\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.permissions.notificationInfoWindow.text'))+\" \")])])])])]},proxy:true}],null,true)})],1)]}},{key:\"item.owner\",fn:function({ item }){return [_c('v-switch',{staticClass:\"ma-0\",attrs:{\"input-value\":item.owner,\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\",\"disabled\":item.origin.id !== _vm.user.id},nativeOn:{\"!click\":function($event){return _vm.onOwnerChange($event, item.origin)}}})]}},{key:\"item.role\",fn:function({ item }){return [_c('v-select',{staticClass:\"mt-0 pt-0\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"value\":item.role,\"items\":_vm.userRoleItems,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"disabled\":item.role === _vm.UserRoleCode.admin && !_vm.isCurrentMemberAdmin},on:{\"change\":function($event){return _vm.onRoleChange($event, item.origin)}}})]}},{key:\"item.notification\",fn:function({ item }){return [(_vm.showMembersNotificationCheckbox(item.email))?_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"input-value\":_vm.membersNotificationMap[item.email],\"color\":\"blue\",\"hide-details\":\"\",\"disabled\":_vm.currentMember.role !== _vm.UserRoleCode.admin || _vm.notificationCheckboxLoading || (item.email === 'support@lynus.io' && (_vm.currentMember.email !== 'support@lynus.io'))},nativeOn:{\"!click\":function($event){return _vm.handleUpdateRules($event, item.email)}}}):_vm._e()]}},{key:\"item.actions\",fn:function({ item }){return [_c('div',{staticClass:\"d-flex\"},[_c('DeleteModalForm',{attrs:{\"deletedItemName\":item.name,\"disabled\":item.role === _vm.UserRoleCode.admin && !_vm.isCurrentMemberAdmin},on:{\"deleteHandler\":function($event){return _vm.deleteMember(item.origin)}}},[_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"trash\",\"size\":\"20\"}})],1)],1),(item.role !== _vm.UserRoleCode.admin && item.origin.id !== _vm.user.id)?_c('ManageCollectionsModal',{attrs:{\"memberObject\":item.origin}}):_vm._e()],1)]}}],null,false,3690376395)})],1)]):_c('div',{staticClass:\"d-flex flex-column justify-center align-center fill-height\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\",\"size\":80}}),_c('div',{staticClass:\"mt-2\"},[_vm._v(_vm._s(_vm.$t('uiComponents.settings.permissions.notificationsGetUpdated')))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation, State } from 'vuex-class';\nimport { cloneDeep, has } from 'lodash';\nimport UserService from '@/services/UserService';\nimport { UserRoleCode } from '@/utils/userRoles';\nimport ManageCollectionsModal from '@/ui/components/components/ManageCollectionsAccessModal.vue';\nimport ModalWindow from '@/ui/components/components/ModalWindow.vue';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { IProjectsState } from '@/store/modules/projects/types';\nimport { IRule } from '@/types/rules.types';\nimport { IAppState } from '@/store/modules/app/types';\nimport { IRulesState } from '@/store/modules/rules/types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IDevice } from '@/types/devices.types';\nimport { IReportBox } from '@/types/app.types';\nimport { IFetchPermissionUserResponse } from '@/types/common.types';\nimport { IMember } from '@/types/members.types';\nimport { defaultRoomIdObject, addDefaultRoomToUser, getIsMemberInRulesAsRecipient, addMemberToRuleActions, deleteRecipientFromRules } from '@/utils/membersUtils';\n\n/**\n * Permissions view is responsible for managing users and their\n * permissions. It uses the members api\n */\n@Component({\n computed: {\n UserRoleCode: () => UserRoleCode,\n },\n components: {\n ModalWindow,\n ManageCollectionsModal,\n DeleteModalForm,\n CircleSpinner,\n },\n})\nexport default class Permissions extends Vue {\n @Prop({ default: false }) isInWizard!: boolean;\n\n @State('rules') rulesState!: IRulesState;\n @State('app') appState!: IAppState;\n @State('projects') projectsState!: IProjectsState;\n @Getter('members/members') members!: IMember[];\n @Getter('rooms/rooms') rooms!: IRoom[];\n @Getter('devices/devicesByRoom') devicesByRoom!: (roomId: string) => IDevice[];\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n @Action('members/createMember') createMember!: (data: {member: IMember; showMessage: boolean}) => Promise;\n @Action('members/updateMember') updateMember!: (m: IMember) => Promise;\n @Action('members/deleteMember') deleteMember!: (m: IMember) => Promise;\n @Action('members/fetchMembers') fetchMembers!: (projectId: string) => Promise;\n @Action('rooms/fetchRooms') fetchRooms!: (projectId: string) => Promise;\n @Action('rules/loadRules') loadRules!: (project_id: string) => Promise;\n @Action('rules/modifyRule') modifyRule!: (payload: { id: string; rule_id: string; ruleModel: IRule }) => Promise;\n @Action('projects/updateProject') updateProject!: (project: any) => Promise;\n\n model = null;\n search = '';\n items: IFetchPermissionUserResponse[] = [];\n loading = false;\n rerenderKey = false;\n conModel: any = {\n actions: [],\n enabled: false,\n };\n showLoader = false;\n notificationCheckboxLoading = false;\n\n get userRoleItems() {\n return [\n { name: 'Admin', value: UserRoleCode.admin, disabled: !this.isCurrentMemberAdmin },\n { name: 'User', value: UserRoleCode.user },\n { name: 'Readonly', value: UserRoleCode.readOnly },\n ];\n }\n\n get defaultRoomIdObject() {\n return defaultRoomIdObject(this.rooms);\n }\n\n @Watch('model')\n async onSelected(val: IMember | null) {\n if (val === null) return;\n\n // use the first items because there will always\n // only be one result\n const newMember = await this.createMember({ member: this.items[0] as any, showMessage: true });\n if (newMember !== null) {\n this.handleAddDefaultRooms(UserRoleCode.readOnly, newMember);\n }\n\n // clear the autocomplete\n this.model = null;\n this.items = [];\n this.search = '';\n }\n\n async handleAddDefaultRooms(role: UserRoleCode, newMember: IMember) {\n await addDefaultRoomToUser(role, newMember, this.defaultRoomIdObject, this.$route.params.id);\n }\n\n @Watch('search')\n async fetchUsers(val?: string) {\n if (this.loading || val == null) return;\n if (!this.isEmailValid(val)) {\n this.items = [];\n return;\n }\n\n this.loading = true;\n try {\n this.items = await UserService.fetchUserByEmail(val);\n } catch (e) {\n this.setReport({ type: 'error', message: e.message, value: true });\n } finally {\n this.loading = false;\n }\n }\n\n get tableHeaders() {\n return [\n {\n text: this.$t('uiComponents.settings.permissions.table.name'),\n value: 'name',\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.email'),\n value: 'email',\n },\n ...(this.isCurrentMemberAdmin ? [{\n text: this.$t('uiComponents.settings.permissions.table.owner'),\n value: 'owner',\n }] : []),\n {\n text: this.$t('uiComponents.settings.permissions.table.userRole'),\n value: 'role',\n tooltip: true,\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.notification'),\n value: 'notification',\n tooltip: true,\n sortable: false,\n },\n {\n text: this.$t('uiComponents.settings.permissions.table.actions'),\n value: 'actions',\n sortable: false,\n },\n ];\n }\n get tableItems() {\n return this.members.map((m: any) => {\n const { first_name, last_name, email, owner, role } = m;\n return {\n name: `${first_name.trim()} ${last_name.trim()}`,\n email,\n owner,\n role,\n notification: false,\n origin: m,\n };\n });\n }\n\n get user() {\n return this.appState.user;\n }\n get currentMember() {\n return this.members.find((m) => m.id === this.user.id) as IMember;\n }\n get isCurrentMemberAdmin() {\n return this.currentMember?.role === UserRoleCode.admin;\n }\n get rulesList() {\n return this.rulesState.rulesList;\n }\n get project() {\n return this.projectsState.project;\n }\n\n /**\n * Updates role\n * @param {number} value v-select (code of user role)\n * @param {object} member current member\n */\n async onRoleChange(value: UserRoleCode, member: IMember) {\n const updatedUser = await this.updateMember({ ...member, ...{ role: value } });\n if (value === UserRoleCode.admin) return;\n this.handleAddDefaultRooms(value, updatedUser);\n }\n\n /**\n * Updates owner\n * @param {object} event event object of v-switch\n * @param {object} member current member\n */\n onOwnerChange(event: MouseEvent, member: IMember) {\n event.stopPropagation();\n event.preventDefault();\n\n this.updateMember({ ...member, ...{ owner: !member.owner } });\n }\n\n // clear items @blur, otherwise it will still show\n // the old result when focusing the autocomplete\n clearItems() {\n this.items = [];\n this.search = '';\n }\n\n /**\n * Validates email\n * @param {string} s email\n */\n isEmailValid(s: string): boolean {\n // https://stackoverflow.com/a/574698\n if (s.length < 3 || s.length > 254) return false;\n\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(s.toLowerCase());\n }\n\n get membersNotificationMap() {\n return this.members.reduce((acc: Record, m: IMember) => {\n return { ...acc, [m.email]: getIsMemberInRulesAsRecipient(m, this.rulesList, this.conModel) };\n }, {});\n }\n get rulesWithEmailAction(): any {\n return this.rulesState.rulesList.map((rule: IRule) => {\n if (rule.actions.some((action) => action.type === 'email')) {\n return rule;\n } else {\n return undefined;\n }\n }).filter((rule) => rule !== undefined);\n }\n get rulesWithNoMailAction() {\n return this.rulesState.rulesList.map((rule: IRule) => {\n if (!rule.actions.some((action) => action.type === 'email')) {\n return rule;\n } else {\n return undefined;\n }\n }).filter((rule) => rule !== undefined);\n }\n get notActiveRules() {\n return this.rulesState.rulesList.filter((rule: IRule) => !rule.active);\n }\n\n get isNotificationForSomeMembersEnabled() {\n return this.members.some((m) => getIsMemberInRulesAsRecipient(m, this.rulesList, this.conModel));\n }\n\n async handleUpdateRules(event: MouseEvent, email: string) {\n event.stopPropagation();\n event.preventDefault();\n this.showLoader = true;\n const hasEmail = has(this.membersNotificationMap, email);\n if (hasEmail && this.membersNotificationMap[email]) {\n this.notificationCheckboxLoading = true;\n await deleteRecipientFromRules(email, this.project.id, this.rulesWithEmailAction, this.conModel);\n } else if (hasEmail && !this.membersNotificationMap[email]) {\n this.notificationCheckboxLoading = true;\n await addMemberToRuleActions(email, this.project.id, this.rulesWithEmailAction, this.rulesWithNoMailAction, this.conModel);\n }\n this.notificationCheckboxLoading = false;\n this.showLoader = false;\n\n if (this.isInWizard) {\n this.$emit('updateRules', { someUserSelected: this.isNotificationForSomeMembersEnabled });\n }\n }\n\n showMembersNotificationCheckbox(key: string) {\n return has(this.membersNotificationMap, key);\n }\n\n async created() {\n this.notificationCheckboxLoading = true;\n await Promise.allSettled([\n this.loadRules(this.$route.params.id),\n this.fetchRooms(this.$route.params.id),\n this.fetchMembers(this.$route.params.id),\n ]).finally(() => {\n this.conModel = cloneDeep(this.project.connectivity);\n this.notificationCheckboxLoading = false;\n });\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Permissions.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Permissions.vue?vue&type=template&id=34a837e0&\"\nimport script from \"./Permissions.vue?vue&type=script&lang=ts&\"\nexport * from \"./Permissions.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Permissions.vue?vue&type=style&index=0&id=34a837e0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralInfoBanner.vue?vue&type=style&index=0&id=4939389b&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/PVProductionService.80dda4fd.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"primary notifications-settings\",attrs:{\"flat\":\"\"}},[(!_vm.isWizard)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"energyPrice-settings-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.energyPrice.title'))+\" \")]),_c('div',{staticClass:\"ml-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.settings.energyPrice.description'))+\" \")])]):_vm._e(),_c('div',{staticClass:\"d-flex\"},[_c('v-form',{ref:\"form\",staticClass:\"general-form\",model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{staticClass:\"px-0 content\",attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-select',{attrs:{\"items\":_vm.currencySelectionItems,\"label\":_vm.$t('modals.manageReport.textFields.currencyField'),\"color\":\"accent\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"item-value\":\"value\",\"item-text\":\"name\",\"rules\":[\n _vm.rules.required,\n _vm.rules.noEmptyString\n ]},model:{value:(_vm.selectedCurrency),callback:function ($$v) {_vm.selectedCurrency=$$v},expression:\"selectedCurrency\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"md\":\"6\",\"sm\":\"12\",\"xs\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.energyPrice.form.buyPrice'),\"prefix\":_vm.selectedCurrency === '' ? '€' : _vm.selectedCurrency,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.required,\n _vm.fieldMoreThan(0),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.energyPrice.buyPrice),callback:function ($$v) {_vm.$set(_vm.energyPrice, \"buyPrice\", _vm._n($$v))},expression:\"energyPrice.buyPrice\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('uiComponents.settings.energyPrice.form.sellPrice'),\"prefix\":_vm.selectedCurrency === '' ? '€' : _vm.selectedCurrency,\"color\":\"accent\",\"outlined\":\"\",\"type\":\"number\",\"step\":\"0.01\",\"min\":\"0\",\"rules\":[\n _vm.rules.required,\n _vm.fieldMoreThan(0),\n _vm.rules.twoCommas,\n _vm.rules.onlyNumbersRule,\n ]},model:{value:(_vm.energyPrice.sellPrice),callback:function ($$v) {_vm.$set(_vm.energyPrice, \"sellPrice\", _vm._n($$v))},expression:\"energyPrice.sellPrice\"}}),(!_vm.isWizard)?_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"accent\",\"elevation\":\"0\",\"disabled\":!_vm.valid},on:{\"click\":_vm.handleGeneralSettings}},[_c('span',{staticClass:\"btn-text\"},[_vm._v(_vm._s(_vm.$t('uiComponents.buttons.save')))])]):_vm._e()],1)],1)],1)],1)],1),_c('LeaveConfirmationModal',{ref:\"confirmationModal\",staticStyle:{\"height\":\"0\"},attrs:{\"page-about-to-leave\":_vm.$t('uiComponents.settings.energyPrice.title'),\"additional-information\":_vm.$t('uiComponents.routeLeave.text')}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter } from 'vuex-class';\nimport { NavigationGuardNext, Route } from 'vue-router';\nimport { mixins } from 'vue-class-component';\nimport { isEqual } from 'lodash';\nimport { Validation } from '@/ui/mixins/validation';\nimport LeaveConfirmationModal from '@/ui/components/modals/LeaveConfirmationModal.vue';\nimport { IProject, IEnergyPrice } from '@/types/project.types';\n\nComponent.registerHooks(['beforeRouteLeave']);\n\n/**\n * Component that shows Notification settings tab\n */\n@Component({\n components: {\n LeaveConfirmationModal,\n },\n})\nexport default class EnergyPrice extends mixins(Validation) {\n @Prop({ default: false }) isWizard!: boolean;\n @Getter('projects/project') project!: IProject;\n @Getter('projects/projectCurrency') projectCurrency!: '€' | 'CHF' | undefined;\n @Action('projects/updateProject') updateProject!: (project: IProject) => Promise;\n\n energyPrice: IEnergyPrice = {\n buyPrice: 0.4,\n sellPrice: 0.1,\n };\n currencySelectionItems = ['€', 'CHF'];\n selectedCurrency: '€' | 'CHF' | '' = '';\n valid = false;\n\n /**\n * If the energy price was not saved previously,\n * a confirmation dialog will be displayed,\n * because local energy price has default values.\n */\n get isLocalOriginEnergyPriceEqual() {\n return isEqual(this.project.meta?.energyPrice, this.energyPrice);\n }\n\n @Watch('energyPrice', { deep: true })\n handleEnergyPriceChange() {\n this.$emit('validationChange', { isValid: this.valid, energyPrice: this.energyPrice });\n }\n\n @Watch('valid')\n handleValidationChange() {\n this.$emit('validationChange', { isValid: this.valid, energyPrice: this.energyPrice });\n }\n\n /**\n * Updates current project\n */\n async handleGeneralSettings() {\n await this.updateProject({\n ...this.project,\n meta: {\n ...this.project.meta,\n energyPrice: {\n buyPrice: this.energyPrice.buyPrice,\n sellPrice: this.energyPrice.sellPrice,\n },\n projectCurrency: this.selectedCurrency,\n },\n });\n }\n\n async beforeRouteLeave(to: Route, from: Route, next: NavigationGuardNext) {\n if (from.name === 'EnergyPrice' && !this.isLocalOriginEnergyPriceEqual) {\n await (this.$refs.confirmationModal as LeaveConfirmationModal).confirmAction(to, next);\n } else next();\n }\n\n created() {\n if (this.project.meta?.energyPrice) {\n this.energyPrice = { ...this.project.meta?.energyPrice };\n }\n if (this.projectCurrency !== undefined) {\n this.selectedCurrency = this.projectCurrency;\n }\n }\n\n mounted() {\n (this.$refs.form as any).validate();\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyPrice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyPrice.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EnergyPrice.vue?vue&type=template&id=32ef92ec&scoped=true&\"\nimport script from \"./EnergyPrice.vue?vue&type=script&lang=ts&\"\nexport * from \"./EnergyPrice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EnergyPrice.vue?vue&type=style&index=0&id=32ef92ec&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"32ef92ec\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/HppProductionService.57844e81.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FeedbackProvider',{staticStyle:{\"width\":\"100%\"},attrs:{\"sendingState\":_vm.sendingState}},[_c('v-slider',{staticClass:\"slider-base\",attrs:{\"value\":_vm.sliderValue,\"min\":_vm.minSliderValue,\"max\":_vm.maxSliderValue,\"step\":_vm.customStepSize,\"color\":\"accent\",\"hide-details\":\"\",\"track-color\":\"#dedede\",\"disabled\":!_vm.isActive || _vm.isDisabled,\"append-icon\":_vm.appendIcon,\"prepend-icon\":_vm.prependIcon},on:{\"input\":_vm.handleStateDragging,\"change\":_vm.handleStateEnd},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [(_vm.showOutput)?_c('div',{staticClass:\"pt-1\"},[(_vm.isSliderValueChanging || _vm.sendingState === 'Sending')?_c('div',{staticClass:\"d-flex\"},[_c('span',[_vm._v(_vm._s(_vm.sliderValue)+_vm._s(_vm.unit))])]):_c('div',{staticClass:\"d-flex\"},[_c('span',[_vm._v(_vm._s(_vm.state)+_vm._s(_vm.unit))])])]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport BasicControl, { SendingState } from '@/ui/components/devices/devices/BasicControl';\nimport FeedbackProvider from '@/ui/components/devices/components/FeedbackProvider.vue';\nimport { throttle } from 'lodash';\nimport { defaultFeedbackTimeoutMilliSeconds } from '@/utils/constants';\n\n/**\n * Component that represent Slider Basic Control\n */\n@Component({\n components: { FeedbackProvider },\n})\nexport default class SliderBase extends BasicControl {\n @Prop() isActive?: boolean;\n @Prop() state!: number;\n @Prop() variableData!: string;\n @Prop() instance!: string;\n @Prop({ default: null }) appendIcon!: string;\n @Prop({ default: null }) prependIcon!: string;\n @Prop({ default: 250 }) sendingTimeout?: number;\n @Prop({ default: 0 }) minSliderValue!: number;\n @Prop({ default: 100 }) maxSliderValue!: number;\n @Prop({ default: 1 }) customStepSize!: any;\n @Prop({ default: '%' }) unit!: any;\n @Prop({ default: true }) showOutput!: any;\n @Prop({ default: defaultFeedbackTimeoutMilliSeconds }) feedBackTimeout!: number;\n\n timer?: NodeJS.Timeout;\n valueChangingTimer: any;\n\n sliderValue?: number;\n previousState = this.state;\n isSliderValueChanging = false;\n\n @Watch('state')\n onStateChange(val: number) {\n if (!this.isSliderValueChanging) {\n // slider not being dragged -> update slider value\n this.sliderValue = val;\n }\n\n // check if we got correct state update after sending\n if (this.sendingState === SendingState.Sending && val === this.sliderValue) {\n // successful send\n this.onSendSuccess();\n clearTimeout(this.timer);\n }\n }\n\n @Watch('isActive')\n onIsActiveChange(val: boolean) {\n if (val) {\n this.sliderValue = this.state;\n }\n if (!val) {\n clearInterval(this.valueChangingTimer);\n this.isSliderValueChanging = false;\n this.sliderValue = 0;\n }\n }\n\n sendValue(value: number) {\n if (typeof this.state === 'number' && this.state !== this.sliderValue) {\n this.send([{ v: value, n: this.mappingsClean.targetValue, u: '' }]);\n }\n }\n\n get throttledSendValue() {\n return throttle(this.sendValue, this.sendingTimeout, { leading: false });\n }\n\n handleStateDragging(value: number) {\n if (!this.isSliderValueChanging) {\n // slider drag start\n this.previousState = this.state;\n this.isSliderValueChanging = true;\n }\n\n this.sliderValue = value;\n this.throttledSendValue(value);\n }\n\n handleStateEnd(value: number) {\n this.sliderValue = value;\n\n this.onSendStart();\n this.sendValue(value);\n\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n // no state update after timeout, reset slider\n this.isSliderValueChanging = false;\n this.sliderValue = this.previousState;\n this.onSendError();\n }, this.feedBackTimeout);\n }\n\n /**\n * Used to disable the Base component if there is no variable set in the mappings of the device.\n */\n get isNotMapped() {\n return this.mappingsClean.targetValue === '' || this.state === undefined;\n }\n\n beforeDestroy() {\n clearInterval(this.timer);\n }\n\n created() {\n this.sliderValue = this.state;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SliderBase.vue?vue&type=template&id=3687edec&\"\nimport script from \"./SliderBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./SliderBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SliderBase.vue?vue&type=style&index=0&id=3687edec&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/PumpWithoutVFD.fbc91f0c.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=style&index=0&id=4efb8ad6&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForwardBase.vue?vue&type=style&index=0&id=1b79bf9a&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/TSGModulLadestation.caad197b.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGModulLadestation.vue?vue&type=style&index=0&id=40fb9872&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldNumber.vue?vue&type=style&index=0&id=fd8e211c&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VariableTextOutputField.vue?vue&type=style&index=0&id=5a84f792&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticStyle:{\"z-index\":\"3\"},attrs:{\"width\":\"100\",\"height\":\"100\",\"elevation\":\"1\",\"rounded\":\"circle\"}},[_c('img',{staticStyle:{\"max-width\":\"100%\"},attrs:{\"src\":require(\"../../../../assets/logo.svg\"),\"alt\":\"logo\"}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n/**\n * Component represent central circle which used in EMS, EnergyView...\n */\n@Component\nexport default class CentralEndpoint extends Vue {}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CentralEndpoint.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CentralEndpoint.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CentralEndpoint.vue?vue&type=template&id=c65ba646&\"\nimport script from \"./CentralEndpoint.vue?vue&type=script&lang=ts&\"\nexport * from \"./CentralEndpoint.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/EMS.12d74f12.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=534157aa&prod&lang=scss&scoped=true&\"","// Contains all battery types that can be selected inside the Project Settings\n// (Combination from Types in Installation Wizard and Logger Wizard)\nexport enum AllBatteryTypes {\n AZZURRO = 'AIOS (Azzurro)',\n DEYE = 'AIOS (Deye)',\n STANDALONE = 'Standalone (Deye)',\n SolarmanLogger = 'Solarman Logger (Deye)',\n Solarmax = 'Solarmax',\n MobileBatteryDeye = 'Mobiler Speicher Deye'\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"overlay-opacity\":\"0.8\",\"persistent\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"width\":\"30\",\"height\":\"30\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"color\":\"accent\",\"size\":\"18\"}},[_vm._v(\" fa-info \")])],1)]}}]),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"device-description\"},[_c('div',{staticClass:\"device-description-header\"},[_c('div',[_vm._v(_vm._s(_vm.description.title))]),_c('div',[_c('v-btn',{attrs:{\"fab\":\"\",\"width\":\"30\",\"height\":\"30\",\"outlined\":\"\",\"color\":\"#525252\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('lynus-icon',{attrs:{\"name\":\"x-in-circle\",\"color\":\"white\"}})],1)],1)]),_c('div',{staticClass:\"device-description-body\"},[_c('div',{staticClass:\"device-description-body__content\"},[_c('div',{staticClass:\"header\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.description.overview)}})]),_c('div',{staticClass:\"table\"},[_c('v-simple-table',{staticClass:\"primary\",scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.deviceDescriptionTable.name'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.deviceDescriptionTable.description'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.deviceDescriptionTable.allowedValues'))+\" \")])])]),_c('tbody',_vm._l((_vm.description.table),function(item,index){return _c('tr',{key:index},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',{domProps:{\"innerHTML\":_vm._s(item.description)}}),_c('td',{domProps:{\"innerHTML\":_vm._s(item.allowedValues)}})])}),0)]},proxy:true}])})],1)])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent device preview description\n */\n@Component\nexport default class DeviceDescription extends Vue {\n @Prop() description: any;\n @Prop({ default: false }) isOverviewCentered!: any;\n\n dialog = false\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceDescription.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeviceDescription.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeviceDescription.vue?vue&type=template&id=8dba99f8&\"\nimport script from \"./DeviceDescription.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeviceDescription.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeviceDescription.vue?vue&type=style&index=0&id=8dba99f8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Favorites.vue?vue&type=style&index=0&id=384bf3fb&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/logo.df199801.svg\";","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=style&index=0&id=a1ffbbb2&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputFieldExternal.vue?vue&type=style&index=0&id=4297d408&prod&lang=scss&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyFlowViewSystemDialog.vue?vue&type=style&index=0&id=6e26df32&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ComboboxField.vue?vue&type=style&index=0&id=252ba4d4&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","import { IDevice } from '@/types/devices.types';\nimport { allEnergyDevicesCircleTypes } from '@/types/energyVisualisation/EnergyCircleType';\nimport i18n from '@/ui/plugins/i18n';\nimport installationWizardVariables\n from '@/ui/components/wizards/installationWizard/installationWizardVariables';\nimport { IMQTTVariable, IBatterySystem } from '@/types/wizards/installationWizard.types';\nimport store from '@/store';\n\nexport function getSelectedSystem(controllerMappingsCopy: Record, allSystems: string[], fallback: string) {\n let selectedSystem = '';\n allSystems.forEach((system: string) => {\n if (system === fallback) return;\n if (!controllerMappingsCopy[system]) return controllerMappingsCopy[system] = { count: 0, components: {} };\n const dummyCount = Object.values(controllerMappingsCopy[system].components).filter((component: any) => component.external_energy_measurement).length;\n let amountOfNonConsumerHeatingPumps = 0;\n Object.values((controllerMappingsCopy[system].components)).forEach((component: any) => {\n if (component.power.includes('prgHP.lrPowerHP_')) {\n amountOfNonConsumerHeatingPumps++;\n }\n });\n const subtractValue = system === 'heating_pump' ? amountOfNonConsumerHeatingPumps : 0;\n if ((controllerMappingsCopy[system].count - dummyCount - subtractValue) > 0) {\n selectedSystem = system;\n }\n });\n if (selectedSystem === '') selectedSystem = fallback;\n return selectedSystem;\n}\n\nexport function resetEnergyDeviceMappings(energyDevice: IDevice, emsSystemsLimits: Record, wasInstallationWizardCompleted: boolean, projectSystemType: string, consumerOptionsEnabled: boolean, producerOptionsEnabled: boolean) {\n // filter out informations that we dont need inside the new ems and energyview object\n // to avoid ems and energyview having system that they shouldn't have\n if (projectSystemType === 'AIOS (Azzurro)') {\n const resetToZero = ['heating_pump', 'big_consumer', 'chp', 'generator'];\n allEnergyDevicesCircleTypes.forEach((systemType: string) => {\n if (!energyDevice.data.meta.controllerMappings[systemType]) return energyDevice.data.meta.controllerMappings[systemType] = { count: 0, components: {} };\n if (systemType === 'house') {\n energyDevice.data.meta.controllerMappings[systemType].count = 1;\n } else if (resetToZero.includes(systemType)) {\n energyDevice.data.meta.controllerMappings[systemType].count = 0;\n } else {\n if (systemType !== 'grid') {\n const key = (systemType as 'pv' | 'battery' | 'charge_station' | 'electric_heating');\n if (energyDevice.data.meta.controllerMappings[key]?.count >= emsSystemsLimits[key]) {\n energyDevice.data.meta.controllerMappings[key].count = emsSystemsLimits[key];\n }\n }\n }\n });\n } else {\n const controllerMappingsCopy = { ...energyDevice.data.meta.controllerMappings };\n\n const allConsumers = ['heating_pump', 'big_consumer', 'load_shedding'];\n const allProducers = ['ac_pv', 'chp', 'generator'];\n const selectedConsumer = consumerOptionsEnabled ? getSelectedSystem(controllerMappingsCopy, allConsumers, 'load_shedding') : '';\n const selectedProducer = producerOptionsEnabled ? getSelectedSystem(controllerMappingsCopy, allProducers, 'ac_pv') : '';\n\n allEnergyDevicesCircleTypes.forEach((systemType: string) => {\n if (!controllerMappingsCopy[systemType]) controllerMappingsCopy[systemType] = { count: 0, components: {} };\n if (allConsumers.includes(systemType)) {\n if (selectedConsumer !== systemType) {\n if (systemType === 'heating_pump') {\n let indexOfConsumerHeatingPump = 0;\n let hasConsumerHeatingPump = false;\n Object.values(controllerMappingsCopy[systemType].components).forEach((component: any, index: number) => {\n if (!component.power.includes('prgHP.lrPowerHP_') && !(component.external_energy_measurement && component.error === undefined)) {\n indexOfConsumerHeatingPump = index;\n hasConsumerHeatingPump = true;\n }\n });\n if (hasConsumerHeatingPump) {\n controllerMappingsCopy[systemType].count--;\n const newComponents: any = {};\n Object.entries(controllerMappingsCopy[systemType].components).forEach(([key, value]) => {\n if (key !== `heating_pump${indexOfConsumerHeatingPump}`) {\n newComponents[key] = value;\n }\n });\n controllerMappingsCopy[systemType].components = newComponents;\n }\n } else {\n controllerMappingsCopy[systemType].count = 0;\n controllerMappingsCopy[systemType].components = {};\n }\n }\n }\n if (allProducers.includes(systemType)) {\n if (selectedProducer !== systemType) {\n controllerMappingsCopy[systemType].count = 0;\n controllerMappingsCopy[systemType].components = {};\n }\n }\n /**\n * Add check for PV's that are connected via loggers.\n * These can be removed from the mappings and get added later again after the user has selected the correct logger.\n * This can be done because he logger info we need is saved in the project meta.\n */\n if (systemType === 'pv') {\n if (store.getters['projects/project'].meta.loggerInformation) {\n const countOfLoggers = store.getters['projects/project'].meta.loggerInformation.length ?? 0;\n\n for (let index = 0; index < countOfLoggers; index++) {\n delete controllerMappingsCopy[systemType].components[`pv${controllerMappingsCopy[systemType].count}`];\n controllerMappingsCopy[systemType].count--;\n }\n }\n }\n });\n energyDevice.data.meta.controllerMappings = controllerMappingsCopy;\n }\n return energyDevice;\n}\n\nexport function connectWithLineItems() {\n const noLineText = i18n.t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.noLine') as string;\n const lineText = i18n.t('installationWizard.defineComponents.componentsPage.systems.charge_station.texts.line') as string;\n return [\n { name: noLineText, value: 'noLine', disabled: false },\n { name: `${lineText} 1`, value: 1, disabled: false },\n { name: `${lineText} 2`, value: 2, disabled: false },\n { name: `${lineText} 3`, value: 3, disabled: false },\n { name: `${lineText} 4`, value: 4, disabled: false },\n ];\n}\n\nexport function overWriteVariableValuesWithMeasurements(defaultMap: Record | IBatterySystem, measurements: Record, page = 'batteryGridPage') {\n const defaultMapCopy: any = { ...defaultMap };\n Object.keys(defaultMapCopy).forEach((key: string) => {\n const variableKey = defaultMapCopy[key].variable ?? installationWizardVariables(key, page).variable;\n const measurement = measurements[variableKey];\n if ((measurement !== undefined) && !(key === 'priority' && measurement === 0)) {\n defaultMapCopy[key].value = measurement;\n }\n });\n return defaultMapCopy;\n}\n\nexport function setVariableValuesWithMeasurements(defaultMap: Map, measurements: Record) {\n const defaultMapCopy: Map = new Map(defaultMap);\n defaultMapCopy.forEach((variable: IMQTTVariable, key: string) => {\n const currentMeasurentValue = measurements[variable.variable];\n if (currentMeasurentValue !== undefined) {\n defaultMapCopy.set(key, {\n ...variable,\n value: (key.includes('priority') && currentMeasurentValue === 0) ? variable.value : currentMeasurentValue,\n });\n }\n });\n return defaultMapCopy;\n}\n","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=647f5e4e&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusIcon.vue?vue&type=style&index=0&id=16099ca8&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tooltip',_vm._b({attrs:{\"open-delay\":_vm.customOpenDelay},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({staticClass:\"activator\"},on),[_vm._t(\"activator\")],2)]}}],null,true)},\"v-tooltip\",_vm._d({},[_vm.position,true])),[_c('div',{staticClass:\"content\"},[_vm._t(\"content\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n @Component({})\nexport default class InfoTooltip extends Vue {\n @Prop({ default: 'top' }) position!: 'top' | 'bottom' | 'left' | 'right';\n @Prop({ default: 0 }) customOpenDelay!: number\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoTooltip.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoTooltip.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InfoTooltip.vue?vue&type=template&id=3f3a2541&scoped=true&\"\nimport script from \"./InfoTooltip.vue?vue&type=script&lang=ts&\"\nexport * from \"./InfoTooltip.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./InfoTooltip.vue?vue&type=style&index=0&id=3f3a2541&prod&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f3a2541\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PilotSpecification.vue?vue&type=style&index=0&id=084c2efe&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.$t('mlModel.EMS.previewName'), type: 'EMS' },\"is-preview\":true,\"is-charts\":true,\"device-icon\":\"energy_view\",\"device-size\":\"x5h\",\"settings-modal-width\":\"1200\",\"charts-modal-width\":\"1750\"},scopedSlots:_vm._u([{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"ems-device-basic-controls-wrapper\"},[_c('div',{staticClass:\"actual-view-wrapper\"},[_c('div',{staticClass:\"pt-2\"},[_c('div',{staticClass:\"view-title\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.actualView')))]),_c('div',{staticStyle:{\"padding-top\":\"54px\"}},[_c('ActualView',{attrs:{\"energyVisualisationHeight\":'642px',\"data\":_vm.localEmsMappingMock}})],1)]),_c('div',{staticClass:\"d-flex align-center justify-center\"},[_c('div',{staticClass:\"pr-2\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.serviceReady')))]),_c('ShowEventDotMock',{attrs:{\"color\":\"#30BF54\",\"is-active\":1,\"size\":\"15\"}})],1)]),_c('div',{staticClass:\"forecast-view-wrapper\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{on:{\"click\":function($event){return _vm.handleTab('energy_flow_view')}}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.energyFlowView')))]),_c('v-tab',{on:{\"click\":function($event){return _vm.handleTab('forecast_view')}}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.mainView.forecastView')))])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{style:(_vm.energyFlowContentMinHeight),attrs:{\"transition\":false}},[(_vm.tab === 0)?_c('div',{style:(_vm.energyFlowContentMinHeight)},[_c('EnergyFlowView',{ref:\"energy_flow_view\",staticClass:\"flowView\",attrs:{\"all-systems-data\":_vm.energyFlowData,\"energyVisualisationHeight\":'642px'},on:{\"created\":_vm.handleTab}})],1):_vm._e()]),_c('v-tab-item',{style:(_vm.energyFlowContentMinHeight),attrs:{\"transition\":false}},[(_vm.tab === 1)?_c('div',{style:(_vm.energyFlowContentMinHeight)},[_c('ForecastView',{ref:\"forecast_view\",staticClass:\"pt-13 forecast\",attrs:{\"group-slider-state\":_vm.groupSlider,\"forecast-data\":_vm.forecastData}}),_c('TimeSlider',{staticClass:\"timeslider\",attrs:{\"items\":_vm.forecastData.pv1},model:{value:(_vm.groupSlider),callback:function ($$v) {_vm.groupSlider=$$v},expression:\"groupSlider\"}})],1):_vm._e()])],1)],1)])]},proxy:true},{key:\"charts-view\",fn:function(){return [_c('EMSCharts')]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('Settings')]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-preview-settings\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(hItem,hIndex){return _c('v-tab',{key:hIndex},[_vm._v(\" \"+_vm._s(hItem.title)+\" \")])}),1),_c('v-tabs-items',{staticStyle:{\"background-color\":\"transparent\"},attrs:{\"touchless\":true},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('div',{staticClass:\"settings-ems-fields-wrapper\"},[_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuseChargingStation')))]),_c('div',{staticClass:\"value\"},[_c('v-dialog',{attrs:{\"max-width\":\"700\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"accent\",\"dark\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.openList'))+\" \")])]}}]),model:{value:(_vm.sizeMainFuseDialog),callback:function ($$v) {_vm.sizeMainFuseDialog=$$v},expression:\"sizeMainFuseDialog\"}},[_c('div',{staticClass:\"settings-ems-size-main-fuse-list\"},[(_vm.sizeMainFuseDialog)?_vm._l(([0, 1]),function(item,index){return _c('div',{key:index},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.sizeMainFuse')))]),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(index + 1))])]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"kW\")]},proxy:true}],null,true)})],1)}):_vm._e()],2)])],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.maxDephOfDischargeInEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveInBatteryForEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.priorityMinChargeBatterySOCInEmergencyPowerMode')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.reserveChargingFromGrid')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"%\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.updatingTimeEMS')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('InputFieldMock',{attrs:{\"description-styles\":{ width: '550px', paddingTop: '5px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '60px', textAlign: 'center', paddingTop: '5px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.inverterPower')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"sec\")]},proxy:true}])})],1),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.operationModeEMS')))]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":{},\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingOperation},on:{\"send\":function($event){return _vm.$emit('publish', $event)}}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\",staticStyle:{\"max-width\":\"60% !important\"}},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.messageEMSFunction')))]),_c('div',{staticClass:\"value\",staticStyle:{\"max-width\":\"40% !important\"}},[_c('DropDownBase',{staticStyle:{\"width\":\"100%\"},attrs:{\"variable-data\":{},\"instance\":\"DropDown\",\"label\":\"Drop Down\",\"textMapping\":_vm.textMappingMessage},on:{\"send\":function($event){return _vm.$emit('publish', $event)}}})],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.enableEMS')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.allowedChargingFromGrid')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})]),_c('div',{staticClass:\"settings-ems-field\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.settingsView.fields.mainFuseMonitoring')))]),_c('div',{staticClass:\"value\"},[_c('SwitchMock')],1),_c('div',{staticClass:\"placeholder\"})])])]),_c('v-tab-item',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"settings-ems-mode-wrapper\"},[_c('div',{staticClass:\"settings-mode-field\"},[_c('div',{staticClass:\"value\"},[_c('v-select',{attrs:{\"items\":_vm.emsSettingsModesItems,\"item-value\":\"value\",\"item-text\":\"name\",\"hide-details\":\"\",\"hide-selected\":\"\",\"label\":_vm.$t('mlModel.EMS.settingsView.workMode'),\"color\":\"accent\"},model:{value:(_vm.tariffMode),callback:function ($$v) {_vm.tariffMode=$$v},expression:\"tariffMode\"}})],1)]),_c('div',{staticClass:\"tariff-section\"},[_c('div',{staticClass:\"tariff-title\"},[_vm._v(_vm._s(_vm.$t('mlModel.EMS.electricTariff.title')))]),_c('div',{staticClass:\"d-flex mt-2\"},[_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.startLowTariff'),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\"},model:{value:(_vm.start_low),callback:function ($$v) {_vm.start_low=$$v},expression:\"start_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"value\":_vm.start_low,\"label\":_vm.$t('mlModel.EMS.electricTariff.startHighTariff'),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\",\"readonly\":\"\"}})],1)]),_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.endLowTariff'),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\"},model:{value:(_vm.end_low),callback:function ($$v) {_vm.end_low=$$v},expression:\"end_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"value\":_vm.end_low,\"label\":_vm.$t('mlModel.EMS.electricTariff.endHighTariff'),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\",\"readonly\":\"\"}})],1)]),_c('div',{staticClass:\"flex-grow-1 px-1\"},[_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.priceLowTariff', { count: 1 }),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\"},model:{value:(_vm.price_low),callback:function ($$v) {_vm.price_low=_vm._n($$v)},expression:\"price_low\"}})],1),_c('div',[_c('v-text-field',{attrs:{\"label\":_vm.$t('mlModel.EMS.electricTariff.priceHighTariff', { count: 2 }),\"outlined\":\"\",\"color\":\"accent\",\"required\":\"\"},model:{value:(_vm.price_high),callback:function ($$v) {_vm.price_high=_vm._n($$v)},expression:\"price_high\"}})],1)])]),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('TimezoneChooser',{staticClass:\"flex-grow-0\",attrs:{\"currentValue\":_vm.timezone}}),_c('v-btn',{staticClass:\"mb-2\",attrs:{\"color\":\"accent\"}},[_vm._v(\" \"+_vm._s(_vm.$t('uiComponents.buttons.updateTariff'))+\" \")])],1)])])])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport DropDownBase from '@/ui/components/devices/devices/base/DropDown.vue';\nimport TimezoneChooser from '@/ui/components/components/TimezoneChooser.vue';\n\n@Component({\n components: {\n InputFieldMock,\n SwitchMock,\n DropDownBase,\n TimezoneChooser,\n },\n})\nexport default class Settings extends Vue {\n tab = null\n sizeMainFuseDialog = false\n\n tariffMode: null | number = null\n\n start_low: any = null\n end_low: any = null\n price_low: any = null\n price_high: any = null\n timezone = '';\n\n get tabs() {\n return [\n {\n title: this.$t('mlModel.EMS.settingsView.tabs.emsSettings'),\n },\n {\n title: this.$t('mlModel.EMS.settingsView.tabs.modeSettings'),\n },\n ];\n }\n\n get textMappingOperation() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingOperation');\n return {\n 0: lang.allOff,\n 1: lang.selfConsumption,\n 2: lang.peakLoadCapping,\n 3: lang.loadManagement,\n };\n }\n get textMappingMessage() {\n const lang: any = this.$t('mlModel.EMS.settingsView.mappingMessage');\n return {\n 0: lang.disabled,\n 1: lang.enabled,\n 2: lang.allPrioritiesAtMinimum,\n 3: lang.allPrioritiesAtMaximum,\n 4: lang.missingPowerValuesOnDeviceSetup,\n 5: lang.tooManyFunctionsInThisProject,\n };\n }\n\n // mode settings\n get emsSettingsModesItems() {\n const lang: any = this.$t('mlModel.EMS.settingsView.tariffModes');\n return [\n { value: 0, name: lang.energyOptimized },\n { value: 1, name: lang.balancedOptimization },\n { value: 2, name: lang.tariffOptimized },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=f2e4ee0c&scoped=true&\"\nimport script from \"./Settings.vue?vue&type=script&lang=ts&\"\nexport * from \"./Settings.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=f2e4ee0c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f2e4ee0c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-settings\"},[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c(item.view,{tag:\"component\"}):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c('div',{staticClass:\"charts-prod-const-content-wrapper\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live', 'hour'],\"chartHeight\":550}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Inject } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class ChartProdCons extends Vue {\n @Inject({ from: 'chartColors' }) injectedChartColors!: string[];\n\n tab = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n if (this.tab === 0) {\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.actualPVPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.calculatedPVPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n } else {\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.actualPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.calculatedPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n }\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n get items() {\n return [\n {\n id: 'pvPower',\n title: this.$t('mlModel.EMS.charts.chartProdConst.powerPV.title'),\n },\n {\n id: 'consumptionPower',\n title: this.$t('mlModel.EMS.charts.chartProdConst.powerConsumption.title'),\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartProdCons.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartProdCons.vue?vue&type=template&id=12ed2f82&scoped=true&\"\nimport script from \"./ChartProdCons.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartProdCons.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartProdCons.vue?vue&type=style&index=0&id=12ed2f82&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12ed2f82\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-tabs',{key:_vm.$i18n.locale,attrs:{\"color\":\"accent\",\"background-color\":\"deviceBackground\",\"centered\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(item.title)+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.items),function(item,index){return _c('v-tab-item',{key:`t-${index}`,staticClass:\"primary\"},[(index === _vm.tab)?_c('div',{staticClass:\"chartForecastEMS\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":60,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"chartHeight\":700}})],1):_vm._e()])}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('div',{staticClass:\"d-flex justify-center pt-2\"},[_c('div',{staticClass:\"d-flex\"},_vm._l((_vm.systemSchema),function(group,groupIndex){return _c('div',{key:groupIndex},[_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"color\":\"accent\",\"small\":\"\"}},'v-btn',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.systems.${group[0]}.title`))+\" \")])]}}],null,true)},[(group[1].length)?_c('v-list',{attrs:{\"dense\":\"\"}},_vm._l((group[1]),function(arrayOfSystemInstanceNames,arrayOfSystemInstanceNamesIndex){return _c('v-list-item',{key:arrayOfSystemInstanceNamesIndex,attrs:{\"link\":\"\"},on:{\"click\":function($event){return _vm.handleCurrentChart(group[0], arrayOfSystemInstanceNames)}}},[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.systems.${group[0]}.title`))+\" \"+_vm._s(_vm.defineMenuItemName(arrayOfSystemInstanceNames))+\" \")])],1)}),1):_vm._e()],1)],1)}),0)]),(_vm.currentChart.system)?_c('div',{staticClass:\"content pt-2\"},[_c('OfflineChart',{key:_vm.reRenderKey,attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":0,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour'],\"showNavigationButtons\":false,\"chartHeight\":700}})],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Inject } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class TimeTable extends Vue {\n @Inject({ from: 'chartColors' }) injectedChartColors!: string[];\n\n reRenderKey = 0\n systems: any = ['battery', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer']\n systemsScaling: any = {\n battery: { min: -100, max: 100 },\n charge_station: { min: 0, max: 100 },\n electric_heating: { min: 0, max: 100 },\n heating_pump: { min: 0, max: 100 },\n big_consumer: { min: 0, max: 100 },\n }\n currentChart: any = {\n system: null,\n vars: [],\n }\n\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: 'var-1',\n scaling: {\n max: '100',\n min: '-100',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: 'var-2',\n scaling: {\n max: '100',\n min: '-100',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kW',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n get systemSchema() {\n return [\n ['battery', [['battery1', 'battery2']]],\n ['charge_station', [['charge_station1', 'charge_station2']]],\n ['electric_heating', [['electric_heating1', 'electric_heating2']]],\n ['heating_pump', [['heating_pump1', 'heating_pump2']]],\n ['big_consumer', [['big_consumer1', 'big_consumer2']]],\n ];\n }\n\n /**\n * Creates a name for the menu item from an array of instances.\n * @param {array} arr list on system instances names\n * @return {string} menu item name. Example: 1-9\n */\n defineMenuItemName(arr: any) {\n const filterFromNotNumber = (str: string) => +str.replace(/\\D+/g, '');\n if (!arr.length) return null;\n if (arr.length === 1) return filterFromNotNumber(arr[0]);\n else {\n const last: any = arr[arr.length - 1];\n return `1-${filterFromNotNumber(last)}`;\n }\n }\n\n handleCurrentChart(system: any, arr: any) {\n this.currentChart = { system, vars: arr };\n this.reRenderKey += 1;\n }\n\n mounted() {\n this.currentChart = { system: 'battery', vars: ['var-1', 'var-2'] };\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeTable.vue?vue&type=template&id=0c727b3f&scoped=true&\"\nimport script from \"./TimeTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0c727b3f\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Inject } from 'vue-property-decorator';\nimport TimeTable from '@/ui/components/devices/previews/mpc/EMS/charts/Forecast/TimeTable.vue';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n TimeTable,\n OfflineChart,\n },\n})\nexport default class Forecast extends Vue {\n @Inject({ from: 'chartColors' }) injectedChartColors!: string[];\n\n tab: any = null\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n if (this.tab === 0) {\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedEnergy'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.PVProductionService.settingsView.chartLabels.forecast.predictedPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n },\n ];\n } else if (this.tab === 1) {\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedEnergy'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.ConsumptionService.settingsView.chartLabels.forecast.predictedPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n },\n ];\n } else if (this.tab === 2) {\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedPVPower'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedConsumption'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.EMS.charts.forecast.difference.predictedGrid'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n },\n ];\n } else {\n currentChartOptions = [\n {\n agg: 'first',\n name: 'var-1',\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }, {\n agg: 'first',\n name: 'var-2',\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: 'kWh',\n var: '',\n }\n ];\n }\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n get mockMonth() {\n const series = [];\n let day = 0;\n let allDays = 28;\n while (allDays > 0) {\n day += 1;\n const d: any = new Date(2020, 1, day);\n series.push([Date.parse(d), Math.round(Math.random() * 100)]);\n allDays -= 1;\n }\n return series;\n }\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMS.charts.forecast.pv.title'),\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.consumption.title'),\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.difference.title'),\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.timeTableConsumer.title'),\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=04ccecaa&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=04ccecaa&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"04ccecaa\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Provide } from 'vue-property-decorator';\nimport ChartTimetableConsumer from '@/ui/components/devices/previews/mpc/EMS/charts/ChartTimetableConsumer.vue';\nimport ChartProdCons from '@/ui/components/devices/previews/mpc/EMS/charts/ChartProdCons.vue';\nimport Forecast from '@/ui/components/devices/previews/mpc/EMS/charts/Forecast/index.vue';\nimport EnergyFlow from '@/ui/components/devices/previews/mpc/EMS/charts/EnergyFlow/index.vue';\n\n@Component({\n components: {\n ChartTimetableConsumer,\n ChartProdCons,\n Forecast,\n EnergyFlow,\n },\n})\nexport default class EMSCharts extends Vue {\n tab = null\n\n @Provide('chartColors') provideColors = ['#6ca2d8', '#90ed7d', '#f7a35c', '#8085e9', '#f15c80', '#e4d354', '#2b908f', '#f45b5b', '#91e8e1'];\n\n get items() {\n return [\n {\n title: this.$t('mlModel.EMS.charts.chartDifference.title'),\n view: 'EnergyFlow',\n },\n {\n title: this.$t('mlModel.EMS.charts.chartProdConst.title'),\n view: 'ChartProdCons',\n },\n {\n title: this.$t('mlModel.EMS.charts.chartTimeTableConsumer.title'),\n view: 'ChartTimetableConsumer',\n },\n {\n title: this.$t('mlModel.EMS.charts.forecast.title'),\n view: 'Forecast',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cd5e2c04&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=cd5e2c04&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const forecastMockData = { 'pv1': [\n [1626165900, 99], [1626166800, 99], [1626167700, 99], [1626168600, 99], [1626169500, 99], [1626170400, 99], [1626171300, 98.9], [1626172200, 99], [1626173100, 98.9], [1626174000, 99], [1626174900, 99], [1626175800, 99], [1626176700, 99], [1626177600, 99], [1626178500, 99], [1626179400, 99], [1626180300, 99], [1626181200, 99], [1626182100, 99], [1626183000, 99], [1626183900, 99], [1626184800, 99], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 99], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 99], [1626193800, 99], [1626194700, 99], [1626195600, 99], [1626196500, 99], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 99], [1626208200, 99], [1626209100, 99], [1626210000, 99], [1626210900, 99], [1626211800, 99], [1626212700, 99], [1626213600, 99], [1626214500, 99], [1626215400, 99], [1626216300, 99], [1626217200, 99], [1626218100, 99], [1626219000, 98.9], [1626219900, 99], [1626220800, 99], [1626221700, 99], [1626222600, 99], [1626223500, 99], [1626224400, 99.1], [1626225300, 99.1], [1626226200, 99.1], [1626227100, 99.1], [1626228000, 99.1], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99.1], [1626234300, 99.1], [1626235200, 99.1], [1626236100, 99], [1626237000, 99], [1626237900, 99.1], [1626238800, 99.1], [1626239700, 99.1], [1626240600, 99.1], [1626241500, 99.1], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 99], [1626247800, 99], [1626248700, 99], [1626249600, 99], [1626250500, 99], [1626251400, 99]],\n'pv2': [[1626165900, 99], [1626166800, 99.1], [1626167700, 99], [1626168600, 99.1], [1626169500, 99], [1626170400, 99], [1626171300, 98.9], [1626172200, 99], [1626173100, 99], [1626174000, 99], [1626174900, 99], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 99], [1626183900, 99], [1626184800, 99], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 99], [1626188400, 99], [1626189300, 99], [1626190200, 99], [1626191100, 99], [1626192000, 99], [1626192900, 99], [1626193800, 99], [1626194700, 99], [1626195600, 99], [1626196500, 99], [1626197400, 99], [1626198300, 99], [1626199200, 99], [1626200100, 99], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 99], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 99], [1626211800, 99], [1626212700, 99], [1626213600, 99], [1626214500, 99], [1626215400, 99], [1626216300, 98.9], [1626217200, 99], [1626218100, 99], [1626219000, 98.9], [1626219900, 98.9], [1626220800, 99], [1626221700, 99], [1626222600, 99], [1626223500, 99], [1626224400, 99], [1626225300, 99], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 98.9], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 99], [1626247800, 99], [1626248700, 99.1], [1626249600, 99], [1626250500, 99], [1626251400, 99]],\n'grid1': [[1626165900, -394.4], [1626166800, -394.4], [1626167700, -394.5], [1626168600, -394.5], [1626169500, -394.3], [1626170400, -394.2], [1626171300, -394], [1626172200, -394.1], [1626173100, -393.9], [1626174000, -394.3], [1626174900, -394.3], [1626175800, -394.2], [1626176700, -394.2], [1626177600, -394.1], [1626178500, -394.2], [1626179400, -394.2], [1626180300, -394.1], [1626181200, -394.1], [1626182100, -394.1], [1626183000, -394.1], [1626183900, -394], [1626184800, -393.9], [1626185700, -393.6], [1626186600, -393.7], [1626187500, -393.7], [1626188400, -393.8], [1626189300, -393.9], [1626190200, -393.8], [1626191100, -393.8], [1626192000, -393.5], [1626192900, -393.9], [1626193800, -393.9], [1626194700, -393.9], [1626195600, -393.9], [1626196500, -393.9], [1626197400, -393.9], [1626198300, -393.8], [1626199200, -393.9], [1626200100, -394], [1626201000, -394], [1626201900, -393.8], [1626202800, -393.9], [1626203700, -393.9], [1626204600, -394.4], [1626205500, -394.4], [1626206400, -394.5], [1626207300, -394.5], [1626208200, -394.2], [1626209100, -394.3], [1626210000, -394.2], [1626210900, -394.6], [1626211800, -394.7], [1626212700, -394.7], [1626213600, -394.5], [1626214500, -394.5], [1626215400, -394.3], [1626216300, -394.2], [1626217200, -394.2], [1626218100, -394.1], [1626219000, -393.3], [1626219900, -393.8], [1626220800, -393.8], [1626221700, -393.9], [1626222600, -393.9], [1626223500, -393.8], [1626224400, -394.1], [1626225300, -394.2], [1626226200, -394.3], [1626227100, -394.2], [1626228000, -394.3], [1626228900, -394.2], [1626229800, -394.3], [1626230700, -394.4], [1626231600, -394.3], [1626232500, -394.3], [1626233400, -394.4], [1626234300, -394.3], [1626235200, -394.4], [1626236100, -394.2], [1626237000, -394.3], [1626237900, -394.6], [1626238800, -394.7], [1626239700, -394.6], [1626240600, -394.6], [1626241500, -394.6], [1626242400, -394.5], [1626243300, -394.2], [1626244200, -394.2], [1626245100, -394], [1626246000, -393.6], [1626246900, -393.9], [1626247800, -393.9], [1626248700, -393.9], [1626249600, -394], [1626250500, -394], [1626251400, -394.1]],\n'battery1': [[1626165900, 99], [1626166800, 98.9], [1626167700, 99], [1626168600, 99], [1626169500, 98.9], [1626170400, 98.9], [1626171300, 98.9], [1626172200, 98.9], [1626173100, 98.9], [1626174000, 98.9], [1626174900, 98.9], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 98.9], [1626183900, 98.9], [1626184800, 98.9], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 98.9], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 98.9], [1626193800, 98.9], [1626194700, 98.9], [1626195600, 98.9], [1626196500, 98.9], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.8], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 98.9], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 99], [1626211800, 99], [1626212700, 98.9], [1626213600, 98.9], [1626214500, 98.9], [1626215400, 98.9], [1626216300, 98.9], [1626217200, 98.9], [1626218100, 98.9], [1626219000, 98.8], [1626219900, 98.9], [1626220800, 98.9], [1626221700, 99], [1626222600, 99], [1626223500, 98.9], [1626224400, 99], [1626225300, 99], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 99], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 99], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 99], [1626243300, 99], [1626244200, 99], [1626245100, 99], [1626246000, 98.9], [1626246900, 98.9], [1626247800, 99], [1626248700, 99], [1626249600, 99], [1626250500, 98.9], [1626251400, 98.9]],\n'battery2': [[1626165900, 99], [1626166800, 99], [1626167700, 99], [1626168600, 99], [1626169500, 98.9], [1626170400, 98.9], [1626171300, 98.9], [1626172200, 98.9], [1626173100, 98.9], [1626174000, 99], [1626174900, 99], [1626175800, 98.9], [1626176700, 98.9], [1626177600, 98.9], [1626178500, 98.9], [1626179400, 98.9], [1626180300, 98.9], [1626181200, 98.9], [1626182100, 98.9], [1626183000, 99], [1626183900, 99], [1626184800, 98.9], [1626185700, 98.9], [1626186600, 98.9], [1626187500, 98.9], [1626188400, 98.9], [1626189300, 98.9], [1626190200, 98.9], [1626191100, 98.9], [1626192000, 98.9], [1626192900, 98.9], [1626193800, 98.9], [1626194700, 98.9], [1626195600, 98.9], [1626196500, 98.9], [1626197400, 98.9], [1626198300, 98.9], [1626199200, 98.9], [1626200100, 98.9], [1626201000, 98.9], [1626201900, 98.9], [1626202800, 98.9], [1626203700, 98.9], [1626204600, 99], [1626205500, 99], [1626206400, 99], [1626207300, 98.9], [1626208200, 98.9], [1626209100, 98.9], [1626210000, 98.9], [1626210900, 98.9], [1626211800, 98.9], [1626212700, 98.9], [1626213600, 98.9], [1626214500, 98.9], [1626215400, 98.9], [1626216300, 98.9], [1626217200, 98.9], [1626218100, 98.9], [1626219000, 98.8], [1626219900, 98.9], [1626220800, 98.9], [1626221700, 98.9], [1626222600, 98.9], [1626223500, 98.9], [1626224400, 98.9], [1626225300, 98.9], [1626226200, 99], [1626227100, 99], [1626228000, 99], [1626228900, 98.9], [1626229800, 99], [1626230700, 99], [1626231600, 99], [1626232500, 99], [1626233400, 99], [1626234300, 99], [1626235200, 99], [1626236100, 99], [1626237000, 99], [1626237900, 99], [1626238800, 99], [1626239700, 99], [1626240600, 99], [1626241500, 99], [1626242400, 98.9], [1626243300, 98.9], [1626244200, 98.9], [1626245100, 98.9], [1626246000, 98.8], [1626246900, 98.9], [1626247800, 98.9], [1626248700, 98.9], [1626249600, 99], [1626250500, 98.9], [1626251400, 98.9]],\n'heating_pump1': [[1626165900, 41.2], [1626166800, 39.6], [1626167700, 63.1], [1626168600, 63.2], [1626169500, 62.2], [1626170400, 60.6], [1626171300, 60.8], [1626172200, 60.1], [1626173100, 60.4], [1626174000, 60.9], [1626174900, 62.3], [1626175800, 61.9], [1626176700, 60.8], [1626177600, 59.6], [1626178500, 59.3], [1626179400, 59.1], [1626180300, 59], [1626181200, 56.1], [1626182100, 51.8], [1626183000, 46.8], [1626183900, 45.7], [1626184800, 45.9], [1626185700, 48.4], [1626186600, 49.3], [1626187500, 50.3], [1626188400, 50.8], [1626189300, 51.5], [1626190200, 49.9], [1626191100, 49.7], [1626192000, 50.7], [1626192900, 50.4], [1626193800, 51.9], [1626194700, 52.7], [1626195600, 53.1], [1626196500, 53.4], [1626197400, 52.6], [1626198300, 52.8], [1626199200, 52.2], [1626200100, 48.8], [1626201000, 43], [1626201900, 39.9], [1626202800, 38.3], [1626203700, 39.7], [1626204600, 39.4], [1626205500, 41.1], [1626206400, 42.2], [1626207300, 42.5], [1626208200, 43.1], [1626209100, 42.7], [1626210000, 42.2], [1626210900, 41.6], [1626211800, 40.4], [1626212700, 39.8], [1626213600, 38], [1626214500, 34.9], [1626215400, 33.8], [1626216300, 30.5], [1626217200, 30.2], [1626218100, 31.4], [1626219000, 34.9], [1626219900, 39.5], [1626220800, 44.7], [1626221700, 48.1], [1626222600, 54.1], [1626223500, 53.2], [1626224400, 52.6], [1626225300, 51.9], [1626226200, 56.9], [1626227100, 63.9], [1626228000, 69.2], [1626228900, 70.2], [1626229800, 71], [1626230700, 70.9], [1626231600, 72], [1626232500, 72.1], [1626233400, 73.6], [1626234300, 75.5], [1626235200, 78.6], [1626236100, 76.1], [1626237000, 72.5], [1626237900, 69.9], [1626238800, 66.3], [1626239700, 64.3], [1626240600, 61.1], [1626241500, 55.3], [1626242400, 51], [1626243300, 48.5], [1626244200, 50.9], [1626245100, 59.8], [1626246000, 64.3], [1626246900, 68.8], [1626247800, 71.2], [1626248700, 72.8], [1626249600, 70.9], [1626250500, 67.8], [1626251400, 65.4]],\n'heating_pump2': [[1626165900, 42.8], [1626166800, 42.9], [1626167700, 62.4], [1626168600, 63.2], [1626169500, 62], [1626170400, 60.4], [1626171300, 60.3], [1626172200, 59.9], [1626173100, 58.8], [1626174000, 59.9], [1626174900, 59.4], [1626175800, 58.8], [1626176700, 58.1], [1626177600, 57.8], [1626178500, 57.3], [1626179400, 57.8], [1626180300, 57.5], [1626181200, 55.8], [1626182100, 53.7], [1626183000, 52.5], [1626183900, 52.9], [1626184800, 52.2], [1626185700, 54], [1626186600, 53.8], [1626187500, 53.2], [1626188400, 52.5], [1626189300, 52.3], [1626190200, 50.4], [1626191100, 50.5], [1626192000, 50.1], [1626192900, 52.2], [1626193800, 50.3], [1626194700, 50.8], [1626195600, 51.9], [1626196500, 51.8], [1626197400, 51.1], [1626198300, 51.3], [1626199200, 49.6], [1626200100, 46.7], [1626201000, 41.2], [1626201900, 37.7], [1626202800, 36.9], [1626203700, 36.4], [1626204600, 35.9], [1626205500, 36.2], [1626206400, 36.6], [1626207300, 35.8], [1626208200, 36], [1626209100, 35.4], [1626210000, 36.2], [1626210900, 36.3], [1626211800, 37.5], [1626212700, 37.4], [1626213600, 39.8], [1626214500, 36.4], [1626215400, 34.4], [1626216300, 32], [1626217200, 30.7], [1626218100, 31.3], [1626219000, 34.1], [1626219900, 40.3], [1626220800, 44.8], [1626221700, 46.2], [1626222600, 51.7], [1626223500, 50.1], [1626224400, 49.4], [1626225300, 49.5], [1626226200, 55.1], [1626227100, 64.8], [1626228000, 68.1], [1626228900, 73.3], [1626229800, 73.5], [1626230700, 73.9], [1626231600, 73.8], [1626232500, 73.9], [1626233400, 74.9], [1626234300, 76.3], [1626235200, 79.1], [1626236100, 77.1], [1626237000, 74.6], [1626237900, 72.9], [1626238800, 71.2], [1626239700, 69.4], [1626240600, 62], [1626241500, 58.8], [1626242400, 54.6], [1626243300, 53.8], [1626244200, 55.2], [1626245100, 60.6], [1626246000, 64.2], [1626246900, 67.3], [1626247800, 67.8], [1626248700, 69.1], [1626249600, 68.2], [1626250500, 67.9], [1626251400, 65.4]],\n'electric_heating1': [[1626165900, 98.8], [1626166800, 98.9], [1626167700, 98.9], [1626168600, 98.9], [1626169500, 98.8], [1626170400, 98.8], [1626171300, 98.7], [1626172200, 98.8], [1626173100, 98.7], [1626174000, 98.8], [1626174900, 98.8], [1626175800, 98.7], [1626176700, 98.7], [1626177600, 98.7], [1626178500, 98.7], [1626179400, 98.7], [1626180300, 98.7], [1626181200, 98.7], [1626182100, 98.7], [1626183000, 98.7], [1626183900, 98.7], [1626184800, 98.7], [1626185700, 98.6], [1626186600, 98.6], [1626187500, 98.7], [1626188400, 98.7], [1626189300, 98.7], [1626190200, 98.7], [1626191100, 98.7], [1626192000, 98.7], [1626192900, 98.8], [1626193800, 98.7], [1626194700, 98.8], [1626195600, 98.8], [1626196500, 98.8], [1626197400, 98.8], [1626198300, 98.8], [1626199200, 98.8], [1626200100, 98.8], [1626201000, 98.7], [1626201900, 98.7], [1626202800, 98.7], [1626203700, 98.7], [1626204600, 98.8], [1626205500, 98.8], [1626206400, 98.8], [1626207300, 98.8], [1626208200, 98.7], [1626209100, 98.7], [1626210000, 98.6], [1626210900, 98.7], [1626211800, 98.8], [1626212700, 98.8], [1626213600, 98.7], [1626214500, 98.8], [1626215400, 98.7], [1626216300, 98.7], [1626217200, 98.7], [1626218100, 98.7], [1626219000, 98.6], [1626219900, 98.7], [1626220800, 98.7], [1626221700, 98.7], [1626222600, 98.7], [1626223500, 98.7], [1626224400, 98.8], [1626225300, 98.8], [1626226200, 98.8], [1626227100, 98.8], [1626228000, 98.8], [1626228900, 98.8], [1626229800, 98.8], [1626230700, 98.8], [1626231600, 98.8], [1626232500, 98.8], [1626233400, 98.9], [1626234300, 98.9], [1626235200, 98.9], [1626236100, 98.8], [1626237000, 98.8], [1626237900, 98.8], [1626238800, 98.8], [1626239700, 98.8], [1626240600, 98.8], [1626241500, 98.8], [1626242400, 98.8], [1626243300, 98.8], [1626244200, 98.8], [1626245100, 98.8], [1626246000, 98.7], [1626246900, 98.8], [1626247800, 98.8], [1626248700, 98.8], [1626249600, 98.8], [1626250500, 98.8], [1626251400, 98.8]],\n'electric_heating2': [[1626165900, 98.9], [1626166800, 98.9], [1626167700, 98.9], [1626168600, 98.9], [1626169500, 98.8], [1626170400, 98.8], [1626171300, 98.7], [1626172200, 98.7], [1626173100, 98.7], [1626174000, 98.8], [1626174900, 98.8], [1626175800, 98.8], [1626176700, 98.8], [1626177600, 98.8], [1626178500, 98.8], [1626179400, 98.8], [1626180300, 98.8], [1626181200, 98.8], [1626182100, 98.8], [1626183000, 98.8], [1626183900, 98.8], [1626184800, 98.8], [1626185700, 98.7], [1626186600, 98.7], [1626187500, 98.7], [1626188400, 98.7], [1626189300, 98.7], [1626190200, 98.7], [1626191100, 98.7], [1626192000, 98.8], [1626192900, 98.8], [1626193800, 98.8], [1626194700, 98.8], [1626195600, 98.7], [1626196500, 98.7], [1626197400, 98.8], [1626198300, 98.7], [1626199200, 98.7], [1626200100, 98.7], [1626201000, 98.7], [1626201900, 98.7], [1626202800, 98.7], [1626203700, 98.7], [1626204600, 98.9], [1626205500, 98.8], [1626206400, 98.8], [1626207300, 98.8], [1626208200, 98.7], [1626209100, 98.7], [1626210000, 98.7], [1626210900, 98.8], [1626211800, 98.9], [1626212700, 98.8], [1626213600, 98.8], [1626214500, 98.8], [1626215400, 98.8], [1626216300, 98.8], [1626217200, 98.8], [1626218100, 98.8], [1626219000, 98.7], [1626219900, 98.7], [1626220800, 98.7], [1626221700, 98.8], [1626222600, 98.8], [1626223500, 98.7], [1626224400, 98.8], [1626225300, 98.8], [1626226200, 98.8], [1626227100, 98.8], [1626228000, 98.8], [1626228900, 98.8], [1626229800, 98.8], [1626230700, 98.8], [1626231600, 98.8], [1626232500, 98.8], [1626233400, 98.8], [1626234300, 98.9], [1626235200, 98.9], [1626236100, 98.8], [1626237000, 98.8], [1626237900, 98.9], [1626238800, 98.9], [1626239700, 98.9], [1626240600, 98.9], [1626241500, 98.9], [1626242400, 98.8], [1626243300, 98.8], [1626244200, 98.8], [1626245100, 98.8], [1626246000, 98.7], [1626246900, 98.8], [1626247800, 98.9], [1626248700, 98.9], [1626249600, 98.8], [1626250500, 98.8], [1626251400, 98.8]],\n'charge_station1': [[1626165900, 99.7], [1626166800, 99.7], [1626167700, 99.7], [1626168600, 99.7], [1626169500, 99.7], [1626170400, 99.7], [1626171300, 99.7], [1626172200, 99.7], [1626173100, 99.7], [1626174000, 99.7], [1626174900, 99.7], [1626175800, 99.7], [1626176700, 99.7], [1626177600, 99.7], [1626178500, 99.7], [1626179400, 99.7], [1626180300, 99.7], [1626181200, 99.7], [1626182100, 99.7], [1626183000, 99.7], [1626183900, 99.7], [1626184800, 99.7], [1626185700, 99.7], [1626186600, 99.7], [1626187500, 99.7], [1626188400, 99.7], [1626189300, 99.7], [1626190200, 99.7], [1626191100, 99.7], [1626192000, 99.7], [1626192900, 99.7], [1626193800, 99.7], [1626194700, 99.7], [1626195600, 99.7], [1626196500, 99.7], [1626197400, 99.7], [1626198300, 99.7], [1626199200, 99.7], [1626200100, 99.7], [1626201000, 99.7], [1626201900, 99.7], [1626202800, 99.7], [1626203700, 99.7], [1626204600, 99.7], [1626205500, 99.7], [1626206400, 99.7], [1626207300, 99.7], [1626208200, 99.7], [1626209100, 99.7], [1626210000, 99.7], [1626210900, 99.7], [1626211800, 99.7], [1626212700, 99.7], [1626213600, 99.7], [1626214500, 99.7], [1626215400, 99.7], [1626216300, 99.7], [1626217200, 99.7], [1626218100, 99.7], [1626219000, 99.7], [1626219900, 99.7], [1626220800, 99.7], [1626221700, 99.7], [1626222600, 99.7], [1626223500, 99.7], [1626224400, 99.7], [1626225300, 99.7], [1626226200, 99.7], [1626227100, 99.8], [1626228000, 99.7], [1626228900, 99.7], [1626229800, 99.7], [1626230700, 99.8], [1626231600, 99.7], [1626232500, 99.7], [1626233400, 99.7], [1626234300, 99.7], [1626235200, 99.7], [1626236100, 99.7], [1626237000, 99.7], [1626237900, 99.8], [1626238800, 99.8], [1626239700, 99.7], [1626240600, 99.7], [1626241500, 99.7], [1626242400, 99.7], [1626243300, 99.7], [1626244200, 99.7], [1626245100, 99.7], [1626246000, 99.7], [1626246900, 99.7], [1626247800, 99.7], [1626248700, 99.7], [1626249600, 99.7], [1626250500, 99.7], [1626251400, 99.7]],\n'charge_station2': [[1626165900, 99.7], [1626166800, 99.7], [1626167700, 99.7], [1626168600, 99.7], [1626169500, 99.7], [1626170400, 99.7], [1626171300, 99.7], [1626172200, 99.7], [1626173100, 99.7], [1626174000, 99.7], [1626174900, 99.7], [1626175800, 99.7], [1626176700, 99.7], [1626177600, 99.7], [1626178500, 99.7], [1626179400, 99.7], [1626180300, 99.7], [1626181200, 99.7], [1626182100, 99.7], [1626183000, 99.7], [1626183900, 99.7], [1626184800, 99.7], [1626185700, 99.7], [1626186600, 99.7], [1626187500, 99.7], [1626188400, 99.7], [1626189300, 99.7], [1626190200, 99.7], [1626191100, 99.7], [1626192000, 99.7], [1626192900, 99.7], [1626193800, 99.7], [1626194700, 99.7], [1626195600, 99.7], [1626196500, 99.7], [1626197400, 99.7], [1626198300, 99.7], [1626199200, 99.7], [1626200100, 99.7], [1626201000, 99.7], [1626201900, 99.7], [1626202800, 99.7], [1626203700, 99.7], [1626204600, 99.8], [1626205500, 99.8], [1626206400, 99.8], [1626207300, 99.7], [1626208200, 99.7], [1626209100, 99.7], [1626210000, 99.7], [1626210900, 99.7], [1626211800, 99.7], [1626212700, 99.7], [1626213600, 99.7], [1626214500, 99.7], [1626215400, 99.7], [1626216300, 99.7], [1626217200, 99.7], [1626218100, 99.7], [1626219000, 99.7], [1626219900, 99.7], [1626220800, 99.7], [1626221700, 99.7], [1626222600, 99.7], [1626223500, 99.7], [1626224400, 99.7], [1626225300, 99.7], [1626226200, 99.7], [1626227100, 99.8], [1626228000, 99.8], [1626228900, 99.7], [1626229800, 99.7], [1626230700, 99.8], [1626231600, 99.7], [1626232500, 99.7], [1626233400, 99.7], [1626234300, 99.7], [1626235200, 99.7], [1626236100, 99.7], [1626237000, 99.7], [1626237900, 99.8], [1626238800, 99.8], [1626239700, 99.8], [1626240600, 99.7], [1626241500, 99.7], [1626242400, 99.7], [1626243300, 99.7], [1626244200, 99.7], [1626245100, 99.7], [1626246000, 99.7], [1626246900, 99.7], [1626247800, 99.7], [1626248700, 99.7], [1626249600, 99.7], [1626250500, 99.7], [1626251400, 99.7]],\n'big_consumer1': [[1626165900, 95.7], [1626166800, 95.7], [1626167700, 95.6], [1626168600, 95.7], [1626169500, 95.5], [1626170400, 95.1], [1626171300, 94.6], [1626172200, 95], [1626173100, 95.1], [1626174000, 95.4], [1626174900, 95.4], [1626175800, 95.2], [1626176700, 95.2], [1626177600, 95.2], [1626178500, 95.1], [1626179400, 95], [1626180300, 95.1], [1626181200, 94.9], [1626182100, 94.9], [1626183000, 94.8], [1626183900, 94.9], [1626184800, 94.9], [1626185700, 94.8], [1626186600, 94.7], [1626187500, 94.7], [1626188400, 94.5], [1626189300, 94.3], [1626190200, 94], [1626191100, 94], [1626192000, 94.1], [1626192900, 94.1], [1626193800, 94], [1626194700, 94.2], [1626195600, 94.2], [1626196500, 94.2], [1626197400, 94.2], [1626198300, 94.3], [1626199200, 94.1], [1626200100, 94.1], [1626201000, 94.2], [1626201900, 94.5], [1626202800, 94.9], [1626203700, 95.3], [1626204600, 95.5], [1626205500, 95.6], [1626206400, 95.7], [1626207300, 95.7], [1626208200, 95.4], [1626209100, 95.5], [1626210000, 95.5], [1626210900, 95.7], [1626211800, 95.8], [1626212700, 95.9], [1626213600, 95.5], [1626214500, 95.9], [1626215400, 95.7], [1626216300, 95.3], [1626217200, 95.6], [1626218100, 95.7], [1626219000, 95.4], [1626219900, 95.7], [1626220800, 95.8], [1626221700, 96.1], [1626222600, 96.1], [1626223500, 96], [1626224400, 96.1], [1626225300, 96.3], [1626226200, 96.4], [1626227100, 96.4], [1626228000, 96.3], [1626228900, 96.5], [1626229800, 96.5], [1626230700, 96.6], [1626231600, 96.5], [1626232500, 96.6], [1626233400, 96.6], [1626234300, 96.5], [1626235200, 96.5], [1626236100, 96.4], [1626237000, 96.3], [1626237900, 96.3], [1626238800, 96.3], [1626239700, 96.1], [1626240600, 95.9], [1626241500, 95.7], [1626242400, 95.5], [1626243300, 95.6], [1626244200, 95.4], [1626245100, 95.6], [1626246000, 95.1], [1626246900, 94.7], [1626247800, 95.5], [1626248700, 95.8], [1626249600, 95.9], [1626250500, 95.7], [1626251400, 95.5]],\n'big_consumer2': [[1626165900, 95.6], [1626166800, 95.7], [1626167700, 95.5], [1626168600, 95.4], [1626169500, 95], [1626170400, 94.9], [1626171300, 94.4], [1626172200, 94.7], [1626173100, 94.9], [1626174000, 95.3], [1626174900, 95.5], [1626175800, 95.4], [1626176700, 95.1], [1626177600, 95], [1626178500, 95.1], [1626179400, 95.1], [1626180300, 95], [1626181200, 94.8], [1626182100, 94.7], [1626183000, 94.5], [1626183900, 94.6], [1626184800, 94.5], [1626185700, 94.1], [1626186600, 94], [1626187500, 93.9], [1626188400, 94.1], [1626189300, 93.8], [1626190200, 93.5], [1626191100, 93.4], [1626192000, 93.4], [1626192900, 93.6], [1626193800, 93.6], [1626194700, 93.9], [1626195600, 93.9], [1626196500, 94], [1626197400, 93.9], [1626198300, 94], [1626199200, 93.9], [1626200100, 93.8], [1626201000, 93.8], [1626201900, 93.9], [1626202800, 94.6], [1626203700, 95.1], [1626204600, 95.4], [1626205500, 95.5], [1626206400, 95.7], [1626207300, 95.6], [1626208200, 95.5], [1626209100, 95.7], [1626210000, 95.7], [1626210900, 95.8], [1626211800, 96], [1626212700, 96], [1626213600, 95.4], [1626214500, 95.9], [1626215400, 95.8], [1626216300, 95.4], [1626217200, 95.4], [1626218100, 95.6], [1626219000, 95.1], [1626219900, 95.5], [1626220800, 95.6], [1626221700, 95.7], [1626222600, 95.7], [1626223500, 95.5], [1626224400, 95.9], [1626225300, 96.1], [1626226200, 96.1], [1626227100, 96.1], [1626228000, 96.1], [1626228900, 96.3], [1626229800, 96.3], [1626230700, 96.3], [1626231600, 96.2], [1626232500, 96.3], [1626233400, 96.3], [1626234300, 96], [1626235200, 96.1], [1626236100, 95.8], [1626237000, 95.8], [1626237900, 96], [1626238800, 96.1], [1626239700, 95.9], [1626240600, 95.7], [1626241500, 95.7], [1626242400, 95.4], [1626243300, 95.7], [1626244200, 95.8], [1626245100, 95.7], [1626246000, 95.2], [1626246900, 94.9], [1626247800, 95.4], [1626248700, 95.6], [1626249600, 95.3], [1626250500, 95.3], [1626251400, 95.1]],\n'house1': [[1626165900, 0.8], [1626166800, 0.8], [1626167700, 0.8], [1626168600, 0.8], [1626169500, 0.8], [1626170400, 0.8], [1626171300, 0.8], [1626172200, 0.8], [1626173100, 0.8], [1626174000, 0.8], [1626174900, 0.8], [1626175800, 0.8], [1626176700, 0.7], [1626177600, 0.8], [1626178500, 0.8], [1626179400, 0.8], [1626180300, 0.8], [1626181200, 0.8], [1626182100, 0.8], [1626183000, 0.9], [1626183900, 0.9], [1626184800, 0.9], [1626185700, 1], [1626186600, 1], [1626187500, 1], [1626188400, 1], [1626189300, 0.9], [1626190200, 0.9], [1626191100, 1], [1626192000, 1.1], [1626192900, 1], [1626193800, 1], [1626194700, 0.9], [1626195600, 0.9], [1626196500, 0.9], [1626197400, 0.9], [1626198300, 0.9], [1626199200, 0.9], [1626200100, 0.8], [1626201000, 0.8], [1626201900, 0.8], [1626202800, 0.9], [1626203700, 0.8], [1626204600, 0.8], [1626205500, 0.8], [1626206400, 0.7], [1626207300, 0.7], [1626208200, 0.7], [1626209100, 0.7], [1626210000, 0.7], [1626210900, 0.6], [1626211800, 0.6], [1626212700, 0.6], [1626213600, 0.6], [1626214500, 0.6], [1626215400, 0.7], [1626216300, 0.7], [1626217200, 0.7], [1626218100, 0.8], [1626219000, 1.1], [1626219900, 1], [1626220800, 1], [1626221700, 1], [1626222600, 1], [1626223500, 1], [1626224400, 0.9], [1626225300, 0.9], [1626226200, 0.9], [1626227100, 0.9], [1626228000, 0.9], [1626228900, 0.9], [1626229800, 0.8], [1626230700, 0.8], [1626231600, 0.8], [1626232500, 0.8], [1626233400, 0.9], [1626234300, 0.9], [1626235200, 0.9], [1626236100, 0.9], [1626237000, 0.8], [1626237900, 0.7], [1626238800, 0.7], [1626239700, 0.7], [1626240600, 0.7], [1626241500, 0.7], [1626242400, 0.7], [1626243300, 0.8], [1626244200, 0.9], [1626245100, 0.9], [1626246000, 1], [1626246900, 0.9], [1626247800, 1], [1626248700, 1], [1626249600, 1], [1626250500, 1], [1626251400, 0.9]],\n'house2': [[1626165900, 0.8], [1626166800, 0.8], [1626167700, 0.8], [1626168600, 0.8], [1626169500, 0.8], [1626170400, 0.8], [1626171300, 0.8], [1626172200, 0.9], [1626173100, 0.9], [1626174000, 0.8], [1626174900, 0.8], [1626175800, 0.8], [1626176700, 0.8], [1626177600, 0.8], [1626178500, 0.8], [1626179400, 0.8], [1626180300, 0.8], [1626181200, 0.8], [1626182100, 0.9], [1626183000, 0.9], [1626183900, 0.9], [1626184800, 1], [1626185700, 1], [1626186600, 1], [1626187500, 1], [1626188400, 1], [1626189300, 0.9], [1626190200, 0.9], [1626191100, 0.9], [1626192000, 1.1], [1626192900, 0.9], [1626193800, 0.9], [1626194700, 0.9], [1626195600, 0.9], [1626196500, 0.9], [1626197400, 0.9], [1626198300, 0.9], [1626199200, 0.9], [1626200100, 0.9], [1626201000, 0.8], [1626201900, 0.8], [1626202800, 0.9], [1626203700, 0.9], [1626204600, 0.8], [1626205500, 0.8], [1626206400, 0.8], [1626207300, 0.7], [1626208200, 0.7], [1626209100, 0.7], [1626210000, 0.7], [1626210900, 0.7], [1626211800, 0.7], [1626212700, 0.7], [1626213600, 0.7], [1626214500, 0.7], [1626215400, 0.8], [1626216300, 0.8], [1626217200, 0.8], [1626218100, 0.9], [1626219000, 1.1], [1626219900, 1], [1626220800, 1], [1626221700, 1], [1626222600, 1], [1626223500, 1], [1626224400, 0.9], [1626225300, 0.9], [1626226200, 0.9], [1626227100, 0.9], [1626228000, 0.9], [1626228900, 0.9], [1626229800, 0.8], [1626230700, 0.8], [1626231600, 0.9], [1626232500, 0.9], [1626233400, 0.9], [1626234300, 0.9], [1626235200, 0.8], [1626236100, 0.8], [1626237000, 0.8], [1626237900, 0.7], [1626238800, 0.7], [1626239700, 0.7], [1626240600, 0.7], [1626241500, 0.7], [1626242400, 0.7], [1626243300, 0.9], [1626244200, 0.9], [1626245100, 1], [1626246000, 1], [1626246900, 1], [1626247800, 1], [1626248700, 1], [1626249600, 1], [1626250500, 0.9], [1626251400, 0.9]],\n'consumption': [[1626165900, 338.9], [1626166800, 339], [1626167700, 425], [1626168600, 427.1], [1626169500, 425], [1626170400, 425], [1626171300, 427.5], [1626172200, 428.8], [1626173100, 430.1], [1626174000, 431.3], [1626174900, 434.2], [1626175800, 435], [1626176700, 433.5], [1626177600, 433.9], [1626178500, 434.5], [1626179400, 436.3], [1626180300, 436.3], [1626181200, 435.9], [1626182100, 436.3], [1626183000, 436.7], [1626183900, 438], [1626184800, 438.2], [1626185700, 438], [1626186600, 437.7], [1626187500, 437], [1626188400, 437.1], [1626189300, 437.3], [1626190200, 436.6], [1626191100, 434.8], [1626192000, 434.9], [1626192900, 434.7], [1626193800, 434.5], [1626194700, 434.6], [1626195600, 434], [1626196500, 433.7], [1626197400, 432.7], [1626198300, 432.3], [1626199200, 431.2], [1626200100, 430], [1626201000, 430], [1626201900, 429.6], [1626202800, 428.1], [1626203700, 428.3], [1626204600, 430.7], [1626205500, 430], [1626206400, 430.6], [1626207300, 430.3], [1626208200, 429.7], [1626209100, 429.7], [1626210000, 429.6], [1626210900, 429.8], [1626211800, 428.7], [1626212700, 428.2], [1626213600, 430.1], [1626214500, 427.2], [1626215400, 427.8], [1626216300, 428.7], [1626217200, 426.7], [1626218100, 424.9], [1626219000, 425.8], [1626219900, 426.5], [1626220800, 425.9], [1626221700, 424.6], [1626222600, 423.4], [1626223500, 422], [1626224400, 420.2], [1626225300, 420.2], [1626226200, 420.2], [1626227100, 420.6], [1626228000, 420.9], [1626228900, 421.1], [1626229800, 420], [1626230700, 418.9], [1626231600, 419.5], [1626232500, 420.7], [1626233400, 423.9], [1626234300, 426.4], [1626235200, 429], [1626236100, 429.4], [1626237000, 428.3], [1626237900, 427.7], [1626238800, 427.8], [1626239700, 427.6], [1626240600, 427.5], [1626241500, 427.8], [1626242400, 427.5], [1626243300, 429], [1626244200, 432], [1626245100, 432.7], [1626246000, 432], [1626246900, 430.2], [1626247800, 426.8], [1626248700, 423.5], [1626249600, 422.9], [1626250500, 419], [1626251400, 418.6]],\n'generator1': [[1626165900, 2], [1626166800, 2.1], [1626167700, 2.1], [1626168600, 2.1], [1626169500, 2.1], [1626170400, 2.2], [1626171300, 2.2], [1626172200, 2.4], [1626173100, 2.2], [1626174000, 2.1], [1626174900, 2.1], [1626175800, 2], [1626176700, 1.9], [1626177600, 1.9], [1626178500, 1.9], [1626179400, 1.9], [1626180300, 1.9], [1626181200, 2], [1626182100, 2], [1626183000, 2.2], [1626183900, 2.3], [1626184800, 2.5], [1626185700, 2.5], [1626186600, 2.6], [1626187500, 2.5], [1626188400, 2.5], [1626189300, 2.5], [1626190200, 2.4], [1626191100, 2.7], [1626192000, 3], [1626192900, 2.7], [1626193800, 2.5], [1626194700, 2.4], [1626195600, 2.5], [1626196500, 2.5], [1626197400, 2.5], [1626198300, 2.5], [1626199200, 2.5], [1626200100, 2.2], [1626201000, 2.2], [1626201900, 2.2], [1626202800, 2.2], [1626203700, 2.2], [1626204600, 2], [1626205500, 2], [1626206400, 1.9], [1626207300, 1.8], [1626208200, 1.8], [1626209100, 1.8], [1626210000, 1.7], [1626210900, 1.7], [1626211800, 1.7], [1626212700, 1.6], [1626213600, 1.6], [1626214500, 1.7], [1626215400, 2.1], [1626216300, 2], [1626217200, 2], [1626218100, 2.2], [1626219000, 3.1], [1626219900, 2.7], [1626220800, 2.8], [1626221700, 2.8], [1626222600, 2.8], [1626223500, 2.9], [1626224400, 2.4], [1626225300, 2.3], [1626226200, 2.4], [1626227100, 2.4], [1626228000, 2.4], [1626228900, 2.4], [1626229800, 2.2], [1626230700, 2.1], [1626231600, 2.1], [1626232500, 2.1], [1626233400, 2.1], [1626234300, 2.2], [1626235200, 2.3], [1626236100, 2.3], [1626237000, 2.1], [1626237900, 1.9], [1626238800, 1.9], [1626239700, 1.9], [1626240600, 1.8], [1626241500, 1.9], [1626242400, 2], [1626243300, 2.1], [1626244200, 2.2], [1626245100, 2.2], [1626246000, 2.4], [1626246900, 2.5], [1626247800, 2.6], [1626248700, 2.6], [1626249600, 2.4], [1626250500, 2.3], [1626251400, 2.2]],\n'generator2': [[1626165900, 0], [1626166800, 0], [1626167700, 0], [1626168600, 0], [1626169500, 0], [1626170400, 0], [1626171300, 0], [1626172200, 0], [1626173100, 0], [1626174000, 0], [1626174900, 0.1], [1626175800, 0.1], [1626176700, 0.1], [1626177600, 0.1], [1626178500, 0.1], [1626179400, 0.1], [1626180300, 0.1], [1626181200, 0.1], [1626182100, 0.1], [1626183000, 0.1], [1626183900, 0.1], [1626184800, 0.1], [1626185700, 0.1], [1626186600, 0.1], [1626187500, 0.2], [1626188400, 0.2], [1626189300, 0.2], [1626190200, 0.1], [1626191100, 0.1], [1626192000, 0.1], [1626192900, 0.1], [1626193800, 0.1], [1626194700, 0.1], [1626195600, 0.1], [1626196500, 0.1], [1626197400, 0], [1626198300, 0], [1626199200, 0], [1626200100, 0], [1626201000, 0], [1626201900, 0], [1626202800, 0.1], [1626203700, 0.1], [1626204600, 0.1], [1626205500, 0.1], [1626206400, 0.1], [1626207300, 0.1], [1626208200, 0.1], [1626209100, 0], [1626210000, 0], [1626210900, 0], [1626211800, 0], [1626212700, 0], [1626213600, 0], [1626214500, 0], [1626215400, 0], [1626216300, 0], [1626217200, 0], [1626218100, 0], [1626219000, 0], [1626219900, 0], [1626220800, 0], [1626221700, 0], [1626222600, 0], [1626223500, 0], [1626224400, 0], [1626225300, 0], [1626226200, 0], [1626227100, 0], [1626228000, 0], [1626228900, 0], [1626229800, 0], [1626230700, 0], [1626231600, 0], [1626232500, 0], [1626233400, 0], [1626234300, 0], [1626235200, 0], [1626236100, 0], [1626237000, 0], [1626237900, 0], [1626238800, 0], [1626239700, 0], [1626240600, 0], [1626241500, 0], [1626242400, 0], [1626243300, 0.1], [1626244200, 0.1], [1626245100, 0.1], [1626246000, 0.1], [1626246900, 0.1], [1626247800, 0.2], [1626248700, 0.3], [1626249600, 0.4], [1626250500, 0.3], [1626251400, 0.3]],\n};\n\nexport default forecastMockData;\n\n","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport PreviewActions from '@/ui/components/devices/actions/PreviewActions.vue';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\nimport SettingsView from '@/ui/components/devices/components/SettingsView.vue';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport TimeSlider from '@/ui/components/devices/components/EnergyParts/TimeSlider.vue';\nimport ActualView from '@/ui/components/devices/previews/devices/EMSV2/ActualView.vue';\nimport ForecastView from '@/ui/components/devices/previews/mpc/EMS/ForecastView.vue';\nimport EnergyFlowView from '@/ui/components/devices/previews/mpc/EMS/EnergyFlowView.vue';\nimport Settings from '@/ui/components/devices/previews/mpc/EMS/Settings.vue';\nimport EMSCharts from '@/ui/components/devices/previews/mpc/EMS/charts/index.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\nimport emsMappingMock from '@/ui/components/devices/previews/mockObjects/emsObject.json';\nimport forecastMockData from './forecastMockData';\n\n@Component({\n components: {\n PreviewActions,\n DeviceDescription,\n SettingsView,\n ShowEventDotMock,\n TimeSlider,\n ActualView,\n ForecastView,\n EnergyFlowView,\n Settings,\n EMSCharts,\n MPCLayout,\n },\n})\nexport default class EMSPreview extends Vue {\n @Prop({ default: false }) isPreviewManageModalOpen!: boolean;\n\n isSettingsView = false\n groupSlider = 0\n mpc: any = null\n tabsTimer: any = null\n tab = null\n localEmsMappingMock = emsMappingMock;\n\n energyFlowContentMinHeight = '680px';\n\n forecastData = forecastMockData;\n\n get description() {\n return this.$t('mlModelsDescriptions.EMS');\n }\n\n get predictedPower() {\n if (this.mpc?.data?.meta?.charts?.predictedPower) return this.mpc.data.meta.charts.predictedPower;\n else return null;\n }\n\n get energyFlowData() {\n const data: any = {};\n Object.entries(this.forecastData).forEach((system: any) => {\n if (system[0].includes('grid') || system[0].includes('battery')) {\n data[system[0]] = {\n producer: this.sum(system[1].filter((entry: any) => entry[1] < 0)),\n consumer: this.sum(system[1].filter((entry: any) => entry[1] > 0)),\n };\n } else {\n data[system[0]] = this.sum(system[1]);\n }\n });\n return data;\n }\n\n sum(arr: any) {\n let sum = 0;\n arr.forEach((entry: any) => {\n sum += entry[1];\n });\n return sum;\n }\n\n switchSettingsView(setting: boolean) {\n this.isSettingsView = setting;\n }\n\n async handleTab(el: string) {\n clearTimeout(this.tabsTimer);\n this.tabsTimer = setTimeout(() => {\n if (el === 'forecast_view') {\n this.$nextTick(() => {\n (this.$refs[el] as any)?.handleGetCoords();\n });\n }\n }, 500);\n }\n\n async rerenderDevice() {\n this.mpc = null;\n }\n\n async created() {\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=c0490202&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=c0490202&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/Robot.6255b15b.png\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ColdWater.vue?vue&type=style&index=0&id=6b6a4ceb&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultSchema.vue?vue&type=style&index=0&id=4b10fc38&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"lynus-chart\"},[(_vm.chart.customLoader)?_c('ChartLoader'):_vm._e(),_c('div',{ref:\"chart\",style:(_vm.chartStyles),attrs:{\"id\":\"fullscreen-div\"},on:{\"click\":_vm.chartClickHandler}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"chart-loader\"},[_c('CircleSpinner',{attrs:{\"color\":\"accent\"}}),_c('div',{staticClass:\"pt-2\"},[_vm._v(\" \"+_vm._s(_vm.loadingText)+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport CircleSpinner from '@/ui/components/components/CircleSpinner.vue';\nimport { TranslateResult } from 'vue-i18n';\n\n@Component({\n components: {\n CircleSpinner,\n },\n})\nexport default class ChartLoader extends Vue {\n\n timer: NodeJS.Timeout|undefined;\n loadingText: TranslateResult = '';\n\n created() {\n this.timer = setTimeout(() => {\n this.loadingText = this.$t('uiComponents.chartLoadingText.longLoading');\n }, 15000);\n }\n\n beforeDestroy() {\n clearTimeout(this.timer);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartLoader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartLoader.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartLoader.vue?vue&type=template&id=8d1f0a22&scoped=true&\"\nimport script from \"./ChartLoader.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartLoader.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartLoader.vue?vue&type=style&index=0&id=8d1f0a22&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8d1f0a22\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { Action, Getter, Mutation } from 'vuex-class';\nimport LynusChart from '@/ui/components/devices/charts/charts/LynusChart';\nimport ChartLoader from '@/ui/components/devices/charts/components/ChartLoader.vue';\nimport _ from 'lodash';\nimport { changeDate, toSeconds } from '@/utils/utilsFunctions';\nimport { envApi } from '@/utils/env';\nimport { calculate } from '@/ui/components/devices/charts/charts/ChartMath';\nimport { ChartClickCallbackFunction } from 'highcharts/highstock';\nimport { IMeasurements } from '@/types/measurements.types';\nimport { ChartData, ApproximationValue, ChartOption } from '@/types/chart.types';\nimport { Periods, getChartOptions, periodConfigurations, getDateBoundsByPeriod } from './ChartUtils';\nimport ChartColors from './ChartColors';\n\n@Component({\n components: {\n ChartLoader,\n },\n})\nexport default class LynusChartBasicView extends Vue {\n @Prop() chartData!: ChartData;\n @Prop() chartWidth!: number;\n @Prop({ default: undefined }) chartHeight!: number;\n @Prop({ default: false }) isThresholdLine!: boolean;\n @Prop({ default: 3 }) minNumberOfSeriesForWideChart!: number;\n @Prop({ default: false }) showTotalOfSeries!: number;\n @Prop({ default: Periods.DAY }) currentPeriod!: string;\n @Prop({ default: 0 }) startedAt!: number;\n @Prop({ default: () => ({ day: 4, week: 1, month: 1, year: 1 }) }) customApproximationValue!: ApproximationValue;\n @Prop() onMouseMove?: ChartClickCallbackFunction;\n @Getter('measurements/measurements') measurements!: IMeasurements;\n @Action('devices/updateDevice') updateDevice!: (data: {device: ChartData; skipReport: boolean}) => void;\n\n chart: any = null;\n localChartData: any = null;\n intervalTimer: any = null;\n chartContainerWidth = '100%';\n overflow = 'hidden';\n isChartInitDone = false;\n lineOption: 'default' | 'area' | 'line' = 'default';\n hasStackingOptionsChanged = false;\n hasLineOptionChanged = false;\n\n @Watch('chart.loadingError', { deep: true })\n handleError(val: boolean) {\n if (val) {\n this.$emit('onDataLoaded');\n }\n }\n\n @Watch('$vuetify.theme.dark')\n handleThemeChange(val: boolean) {\n this.chart?.setIsDarkTheme(val);\n const fistSeries: any = this.chartData.data.chartOptions[0];\n // if custom color is selected this handles the Theme change in order for the correct colors to be displayed\n if (fistSeries.seriesColor !== undefined) {\n let colorArray: any = [];\n this.chartData.data.chartOptions.forEach((element: any) => {\n colorArray.push(element.seriesColor);\n });\n colorArray = ChartColors.colorsByTheme(colorArray, val);\n this.chart?.setChartColors(colorArray);\n } else {\n this.chart?.setChartColors(this.chartColors);\n }\n this.chart?.onThemeChange(\n this.$vuetify.theme.currentTheme.deviceBackground?.toString() ?? '#ffffff'\n );\n }\n get chartColors() {\n return ChartColors.colors(this.$vuetify.theme.dark);\n }\n\n get chartStyles() {\n return {\n width: this.chartContainerWidth,\n height: `${this.chartHeight}px`,\n margin: '0 auto',\n };\n }\n\n // fullscreen logic\n get fullScreenNavigationButtons(): any {\n return {\n contextButton: {\n enabled: false,\n },\n yearButton: {\n text: this.$t('uiComponents.chartNavigation.YEAR'),\n onclick: async () => {\n await this.handleFullScreenNavigationButton(Periods.YEAR);\n },\n theme: { width: 50 },\n },\n monthButton: {\n text: this.$t('uiComponents.chartNavigation.MONTH'),\n onclick: async () => {\n await this.handleFullScreenNavigationButton(Periods.MONTH);\n },\n theme: { width: 50 },\n },\n weekButton: {\n text: this.$t('uiComponents.chartNavigation.WEEK'),\n onclick: async () => {\n await this.handleFullScreenNavigationButton(Periods.WEEK);\n },\n theme: { width: 50 },\n },\n dayButton: {\n text: this.$t('uiComponents.chartNavigation.DAY'),\n onclick: async () => {\n await this.handleFullScreenNavigationButton(Periods.DAY);\n },\n theme: { width: 50 },\n },\n hourButton: {\n text: this.$t('uiComponents.chartNavigation.HOUR'),\n onclick: async () => {\n await this.handleFullScreenNavigationButton(Periods.HOUR);\n },\n theme: { width: 50 },\n },\n liveButton: {\n text: this.$t('uiComponents.chartNavigation.LIVE'),\n onclick: async () => {\n clearInterval(this.intervalTimer);\n await this.chart?.switchPeriodAndLoad(Periods.LIVE, Vue.prototype.$keycloak.token);\n await this.$emit('handlePeriodInFullScreenView', Periods.LIVE);\n this.livePeriod();\n this.updateFullScreenNavigation(this.currentFullScreenNavigationButtonsList, true);\n },\n theme: { width: 50 },\n },\n prevHourButton: {\n text: 'prev hour',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('prev', 'hour');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n nextHourButton: {\n text: 'next hour',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('next', 'hour');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n prevDayButton: {\n text: 'prev day',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('prev', 'day');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n nextDayButton: {\n text: 'next day',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('next', 'day');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n prevWeekButton: {\n text: 'prev week',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('prev', 'week');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n nextWeekButton: {\n text: 'next week',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('next', 'week');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n prevMonthButton: {\n text: 'prev month',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('prev', 'month');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n nextMonthButton: {\n text: 'next month',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('next', 'month');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n prevYearButton: {\n text: 'prev year',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('prev', 'year');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n nextYearButton: {\n text: 'next year',\n onclick: async () => {\n this.handlePrevNextButtonCalendar('next', 'year');\n this.$emit('handlePeriodInFullScreenView', Periods.DAY);\n },\n theme: { width: 100 },\n },\n };\n }\n get fullScreenNavigationButtonsSchemas(): any {\n return {\n hour: ['prevHourButton', 'nextHourButton', 'liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n day: ['prevDayButton', 'nextDayButton', 'liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n week: ['prevWeekButton', 'nextWeekButton', 'liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n month: ['prevMonthButton', 'nextMonthButton', 'liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n year: ['prevYearButton', 'nextYearButton', 'liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n live: ['liveButton', 'hourButton', 'dayButton', 'weekButton', 'monthButton', 'yearButton', 'contextButton'],\n };\n }\n get currentFullScreenNavigationButtonsList() {\n const list: any = [...this.fullScreenNavigationButtonsSchemas[this.currentPeriod]].reverse();\n let res = {};\n list.forEach((period: string) => {\n res = { ...res, [period]: this.fullScreenNavigationButtons[period] };\n });\n return res;\n }\n async handlePrevNextButtonCalendar(direction: string, currentPeriod: string) {\n clearInterval(this.intervalTimer);\n const currentPeriodStart = this.chart.chartBounds.start;\n const newDate = changeDate(currentPeriodStart, direction, currentPeriod);\n const now = toSeconds(new Date().getTime());\n const { start } = getDateBoundsByPeriod(toSeconds(this.startedAt), currentPeriod);\n\n if (start <= newDate && newDate < now) {\n await this.chart?.loadCalendarRange(newDate, Vue.prototype.$keycloak.token);\n }\n }\n async handleFullScreenNavigationButton(period: string) {\n clearInterval(this.intervalTimer);\n await this.chart?.switchPeriodAndLoad(period, Vue.prototype.$keycloak.token);\n await this.$emit('handlePeriodInFullScreenView', period);\n this.updateFullScreenNavigation(this.currentFullScreenNavigationButtonsList, true);\n this.$emit('handleDataToExport', this.chart?.dataToExport);\n }\n handleFullScreen() {\n this.chart?.handleFullScreen();\n }\n updateFullScreenNavigation(navigation: any, exportingEnabled: boolean) {\n // before add new buttons list clean old buttons, found better way to clean buttons\n (this.chart?.chart as any).update({\n navigation: {\n buttonOptions: {\n enabled: true,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n },\n exporting: {\n buttons: null,\n enabled: false,\n },\n });\n // new buttons list\n (this.chart?.chart as any).update({\n navigation: {\n buttonOptions: {\n enabled: true,\n theme: {\n style: {\n color: this.$vuetify.theme.dark ? 'white' : 'black',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n fill: this.$vuetify.theme.currentTheme.deviceBackground,\n states: {\n hover: {\n fill: this.$vuetify.theme.dark ? '#535c7a' : '#dceffc',\n },\n },\n },\n },\n },\n },\n exporting: {\n buttons: navigation,\n enabled: exportingEnabled,\n },\n });\n }\n onFullScreenChange() {\n if ((this.chart as any).isFullScreenOpen) this.updateFullScreenNavigation(null, false);\n else this.updateFullScreenNavigation(this.currentFullScreenNavigationButtonsList, true);\n }\n\n toggleStacking() {\n this.chart?.toggleStacking();\n this.hasStackingOptionsChanged = true;\n }\n\n /**\n * @description - This function is used to toggle between line and area chart\n */\n async toggleLineOptionChange() {\n switch (this.lineOption) {\n case 'default':\n this.lineOption = 'area';\n break;\n case 'area':\n this.lineOption = 'line';\n break;\n default:\n this.lineOption = 'default';\n }\n this.hasLineOptionChanged = true;\n this.updateLineData();\n }\n\n updateLineData() {\n let chartDataUpdated: any;\n if (this.lineOption === 'default') {\n // set default chart options mapped by the user\n chartDataUpdated = [...this.chartData.data.chartOptions];\n } else {\n const targetType = this.lineOption === 'area' ? 'area' : 'line';\n chartDataUpdated = this.localChartData.data.chartOptions.map((chartOption: ChartOption) => {\n const chartOptionCopy = _.cloneDeep(chartOption);\n if (chartOptionCopy.seriesType !== 'Threshold') {\n chartOptionCopy.type = targetType;\n }\n return chartOptionCopy;\n });\n }\n\n // update chart series with updated types\n this.chart.chart.series.forEach((series: any, index: number) => {\n series.update({\n type: chartDataUpdated[index].type,\n });\n });\n }\n\n chartClickHandler() {\n this.chart?.updateTheme();\n }\n\n livePeriod() {\n this.intervalTimer = setInterval(() => {\n const variableValues = getChartOptions(this.localChartData).map((optionsItem: any, index: number) => {\n if (this.localChartData.data.chartOptions[index].seriesType === 'Threshold') {\n return null;\n } else if (this.localChartData.data.mappings || this.localChartData.data.chartOptions[index].seriesType === 'View') {\n // view\n // either old chart, or new chart of type view\n const variable = this.localChartData.data.mappings\n ? Object.values(this.localChartData.data.mappings)[index]\n : optionsItem.var;\n // view\n return this.measurements[variable];\n } else {\n // calculation\n return calculate(optionsItem.calculation.expression, this.measurements);\n }\n });\n this.chart?.liveUpdateAllVariables(variableValues);\n }, 1000);\n }\n\n initThresholdAxis() {\n if (!this.isThresholdLine) return;\n const thresholdAxis = [{\n var: '',\n unit: '',\n name: '',\n scaling: { min: 0, max: 100 },\n agg: 'avg',\n type: 'line',\n seriesType: 'Threshold',\n }];\n (this.localChartData.data as any).chartOptions = [...this.localChartData.data.chartOptions, ...thresholdAxis];\n }\n\n getChartObject() {\n return this.chart;\n }\n\n async handlePeriod(date: number) {\n await this.chart?.loadCalendarRange(date, Vue.prototype.$keycloak.token);\n }\n\n async renderChart() {\n await this.chart?.drawThreshold((this.localChartData.data as any)?.threshold);\n await this.chart?.switchPeriodAndLoad(this.currentPeriod, Vue.prototype.$keycloak.token);\n this.$emit('chartLoaded');\n this.$emit('handleDataToExport', this.chart?.dataToExport);\n }\n\n async initChart() {\n await this.chart?.setLocale(this.$i18n.locale);\n await this.chart?.buildChart(this.$refs.chart as HTMLElement);\n await this.renderChart();\n\n if (this.currentPeriod === Periods.LIVE) this.livePeriod();\n this.$emit('chartInitDone', true);\n\n if (this.chartData.data.selectedLineOptions) {\n this.lineOption = this.chartData.data.selectedLineOptions;\n this.updateLineData();\n }\n }\n\n created() {\n this.localChartData = _.cloneDeep(this.chartData);\n this.initThresholdAxis();\n this.chart = new LynusChart(\n this.localChartData,\n this.$route.params.id,\n envApi,\n this.$vuetify.theme.dark,\n this.startedAt,\n this.$vuetify.theme.currentTheme.deviceBackground?.toString() ?? '#ffffff',\n this.localChartData.data.selectedStackingOptions,\n periodConfigurations,\n this.chartColors,\n this.customApproximationValue,\n this.onMouseMove,\n this.onDataLoaded,\n );\n\n this.initChart();\n this.isChartInitDone = true;\n }\n async beforeDestroy() {\n const chartDataCopy = _.cloneDeep(this.chartData);\n if (this.hasStackingOptionsChanged) {\n // if the stacking options for charts have changed, update the device\n chartDataCopy.data.selectedStackingOptions = this.chart.stackingOptions;\n this.updateDevice({ device: chartDataCopy, skipReport: true });\n }\n if (this.hasLineOptionChanged) {\n // if the line options for charts have changed, update the device\n chartDataCopy.data.selectedLineOptions = this.lineOption;\n this.updateDevice({ device: chartDataCopy, skipReport: true });\n }\n\n (this.$refs.chart as any).removeEventListener('fullscreenchange', () => this.onFullScreenChange());\n clearInterval(this.intervalTimer);\n }\n onDataLoaded(data: any, chart: any, period: any) {\n this.$emit('onDataLoaded', data, chart, period);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LynusChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LynusChart.vue?vue&type=template&id=1b3dd40c&scoped=true&\"\nimport script from \"./LynusChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./LynusChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LynusChart.vue?vue&type=style&index=0&id=1b3dd40c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b3dd40c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"time-slider\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.groupSliderStartLabel))]),_c('div',{staticClass:\"time-slider-value\"},[_c('v-slider',{attrs:{\"value\":_vm.value,\"min\":0,\"max\":_vm.sliderMaxLength,\"step\":1,\"color\":\"accent\",\"hide-details\":\"\",\"track-color\":\"#dedede\",\"thumb-label\":\"always\",\"thumb-size\":\"50\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"thumb-label\",fn:function(){return [_c('div',{staticClass:\"d-flex flex-column align-center\",staticStyle:{\"font-size\":\"10px\"}},[_c('div',[_vm._v(_vm._s(_vm.groupSliderThumbLabelValue.start))]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.groupSliderThumbLabelValue.end),expression:\"groupSliderThumbLabelValue.end\"}],staticStyle:{\"height\":\"1px\",\"width\":\"10px\",\"background\":\"#fff\"}}),_c('div',[_vm._v(_vm._s(_vm.groupSliderThumbLabelValue.end))])])]},proxy:true}])})],1),_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.groupSliderEndLabel))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent range time slider.\n * Used in forecast views in EMS, Setpoint Optimizer\n */\n@Component\nexport default class TimeSlider extends Vue {\n @Prop({ default: null }) value!: any;\n @Prop({ default: [] }) items!: any;\n\n /**\n * Define langs locales for dates\n * @return {string} locale\n */\n get langSettingSting() {\n let langString = 'en-GB';\n if (this.$i18n.locale === 'de') {\n langString = 'de-GE';\n } else if (this.$i18n.locale === 'it') {\n langString = 'it-IT';\n }\n return langString;\n }\n\n /**\n * First time from this.items prop\n * @return {string} local time string\n */\n get groupSliderStartLabel() {\n if (!this.items?.length) return 'no data';\n\n // options object which show time string in specific format\n const options: any = {\n month: 'long',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n };\n const d: any = new Date(this.items[0][0] * 1000);\n return d.toLocaleTimeString(this.langSettingSting, options);\n }\n\n /**\n * Last time from this.items prop\n * @return {string} local time string\n */\n get groupSliderEndLabel() {\n if (!this.items?.length) return 'no data';\n\n // options object which show time string in specific format\n const options: any = {\n month: 'long',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n };\n const d: any = new Date(this.items[this.items.length - 1][0] * 1000);\n return d.toLocaleTimeString(this.langSettingSting, options);\n }\n\n /**\n * Current Thumb label value\n * @return {string} local time string\n */\n get groupSliderThumbLabelValue() {\n if (!this.items?.length) return 'no data';\n\n const options: any = {\n hour: '2-digit',\n minute: '2-digit',\n };\n const startValue = this.value;\n const endValue = this.value + 1;\n const defineTime = (value: number) => {\n if (this.items[value]) {\n return new Date(this.items[value][0] * 1000);\n } else {\n return null;\n }\n };\n\n const start: any = defineTime(startValue);\n const end: any = defineTime(endValue);\n return {\n start: start.toLocaleTimeString('de-GE', options),\n end: end ? end.toLocaleTimeString('de-GE', options) : end,\n };\n }\n\n get sliderMaxLength() {\n return this.items?.length ? this.items.length - 1 : 0;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeSlider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TimeSlider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TimeSlider.vue?vue&type=template&id=28271260&\"\nimport script from \"./TimeSlider.vue?vue&type=script&lang=ts&\"\nexport * from \"./TimeSlider.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TimeSlider.vue?vue&type=style&index=0&id=28271260&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefineLoggerIds.vue?vue&type=style&index=0&id=5ac70cb0&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY0AAAB7CAMAAAC/xSxTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC6FBMVEXy8vLJyclbFhb//6t+fn5wcHCjo6P///8WFhZvb2/k4+R8fHwWW6vU//8WNYKCNRb//9Q1Fhb/1YPs7OwyMjJWVlaC1f8WFjWsrazUgjWZmJkkJCM1gtX///impqb8/PzU1NRzc3Py16hbq/9NTU0ZGRlycXGVlpWenp6BgYHq6urw8vMeHh7y8u4XFyUtLCzz8/P29vba2trZ8fLg4ODx7+1yfaVBQUEaGhuLjIr4//+/v7/Nzc2FhYXyxptgo9j//e+qWhny8eHG8fIkHBZtbW1fX18+Fxa4urjy8NUWFhmRkI+55fgbFhYmFiK/8fIWF1pylMCAcZPwwI/d3d3n5+fF/v90ibH9vm0dJTo6Ojpouf8kFhnz5L0XR5NlZWWzsq9Cj+K6ZyH+q1sWIGfp8fKCcnvh9v9XNyL/8J3h8vIWKnN7e3tRoO308ceTcnLHx8c3Nzezs7ObiX3OtKIWMnlwdH04ebVOFhZ/dHGMgnhGQUap+f98dZqCqNaSvucWF064/P+d7//t8vKthHLP8vK0oZl3doSPRRZ8nsektMrl/f/d//+JiYl1gIv8zX0WFj6Yprt3d3eBjJ1zKRaImaf//8T//+SeeXKq2PGKcJPovZHYqIDbm1QteMr/4o/y8r8zSnyiZj+zz+GdThfw+/97hpah0vGrw9u8kHXQ4u+qkobEcynk0r7juX2to5mam6a/2OuUyfL/99U1JBrvr1+Ojo7//OCt//9SGhZZqfmQQxny4bF2c5PPoXxyj7rfsYiVstHyz6H2y5ZHgrfZpGjAeEXkkENxwv+GenL83Z7t4M6OVDX86L5Ul9EbQYVJl+vg7fKdfYQjPF6JnrzYwajAppDvnE5IKxzSlVE6NWqvXxmQ5P9jIhZ9MhYgaLoWVqXp6enP+f+Isd9zQjjp18eCUDNQgrxDfbfgx67KeC3//6+i0p3/7695y/YyQ0NFV2xhV0W1+dTK35CCq4KkpHC6/7qMfTJaDaZyAAAIPUlEQVR42u2ceXhU1RnGT3SSezIREjKJGTKZLJKF7DtZCYGGDAhJiYgGCwkJoRALMSwJm10oyqooO5YWWhEFQURAqUW729LWpbVuaNXu+77+2++ce+/sSUmfPt4T+r5/3Htm7j0X+H73O+/33RmGaZA6Ytr1190gBnGxY8eEPePgtoEx4nDRR+jFYrn9z7r+uptXiL27mw9xWWgENIx3hcY/+CNN613HU8T4U5/2nTM+6cahafCP3Ub7o55AGsNMga6KRvuCL4mkaOo4Tnky9r6rpPGnBStEaiRdAI3/msY3lrXcPH9KrRY/jnPzru5dd0TTTvf8a84X6dwj2vmHL3B5zlQ6hU/QtLk054fnNJoz5eGmOXcbNNZeouQ46lkrL/vSi018/sveKe4X3mqp/sLswClQMI0HPGuXuq8s6ArIjbjYjp0Ht3U8XXRZpsncjedqG6+0XjZv9HjP2p0Xp9IKFj+u6JtLvbmR0r5ghbu756/isnGxA7PdnxPJok95uvXl2r7YgdsCpkBBNNxTxWIvt340tNNz7qbo9q7r8tkGvTZD292zSeRPF4X2+34rVcrFSwN/83RJyO2t5P2Nj3Ts1Kcc3PYKrXfiTf8pkE6D6xo7Ji5WIvj2gzcG0KBCqr31clzsj9OmimXn/Mm/FLtaTBr0dq2mHdj3PoV2gj8NSiRXzyZJY7xcjE4TNjlFrHcmwAlAMFRuGMPFSYE0jnpSRDy7e/757vua9t1ni/68/x8ek8bvDJg3hNC4eIl36QvgO/opZDxySrxHf50CGsPRiHsvbG7EvdexjVaZxUl/H0fVVbdYrXwr1YF95onBNLT2tzfpNE4TB7+aqnddSpgp0BC+0SOi6KOhdRc1HREpUiU6D7la9T6boucQ2YFZwobQ8BYHb3rr2sUGwFrQGElN1fjIwE8bjxsnvclFC35gn+zofpv0R/eZt0Qv+EDrCnc+FUi/Xuo+8/Zjw9D4w7uvzNae+zlVxfqU8UVTjjdeoRIXNK6q3yB7WNbifQoS75G11DtcnHn+RWovfi9yo/FbTbzjPveZZS18/q92DkNDe+mXTbxINBjGlBcumG0NaATSgEADAg3QgEADNCDQAA0INEAD+oBppJWWMMhilZSmSRppCIUaIhwMMBTCwUoRBVVUqjF4hjreoSEGCgk0QAMCDdCAQAM0oBFpXm509iLQUES50aQ60FBCtwoY0TmgoRCNZNBQQ88IGhGgoYYqJy631cPFUeFC4XJjMnJDFeXAN9SRHTWVQipDv4FeHBpiqaLnVE64OCpcKFTpyal20FBETrKNPRWgoYR+ImuqiaCBChcKUmWGoLEINJRQSX92dHRNJWgoIofdjgoX/QYEGqAB/S9pVNo3G5tC+xJEx2IaX//4hxi76RbaPPeZDyM61tIoPNmWzwq//JUlrPCzt9+J6FhL4/Dzs2mz9SHKj48+hOBYSqNk4V2fZKzvEG1mHvpEPoJjbW7MnVTOWMOkeyk1hH9AltI43GYikZtrWzEFvLpTZRoyLRqel2WVhRWVPStKHyS7OL9jVbhDZZnVvKA5T4wSCzgv9n4VJsH4FfLEgGG4PyRzFZvFFylMo+/Qz8gy7iHLmHaPdb5Rv5HrIc/lsxx503lq6KEK18YK1u9aSf8ppdjlZHRS4DeT0nlGmGGI9mSlq1xTNejl1GNic86av1CEuJ2j9DzIFLvi4tBDMVyEcRanL104ysSpQQmQwdPDDIOXKj4MKCX6DdFqMNlqfNU654jQQ57K5Udj03l9yKFErr+YHj4B7AWZYYYxvL6KZ3U6yDCqHPIdp9IrlVFLSdOwsBePMBNghtjd779UGYc6ufxswMyI9JWugM/7J3NnmGEML3CyGl6dkVfG72d5k9OJd6raNG4xaSxUgIb80nCU4SL+h2bwTDuryNBp0Iqzsj/gAsUJ4YYxvExcoEZ4fTNzNFMdkK30SmUsUmJzWNRXqtJgq6hgcnWauWHPDLjJnT5P9xvS9bwXSEhUut+YuWXHD5jXwKkZl205+96Wrym5Uunq53uMkSOrym9+VYEjzHAU0fj8XZGDr91pFLfbaXOybQlbuDo7sk0BFy8bgkaO70WCb0FidT5Lr/N391GUG6fWR04ql92f8VCdHh/etD5yl4W5YVa4CaGHmOj72B0uuvEdFcG50eyraZv9y9vRQ4OxaWt2lzdQVrCG28uNzcKzxzZb6Bt699cZYAkmKJfsC2l8q2tleqBvGBCDhqOKRt+ru8sFkQ1b9z9Fbcfrq5fvPUafdDxxaruFNPQnI8I85lW7Ag5VNJtHSuqqqnmWfHzyjL6yxfjXtM5RSYN8I2PvrPWRpOxHc74j9pG7cjZY4xsjku+HAFOrY9gol0Fj2huSxOD+JzdIInud5OCCyIlR9G9JjLpGaNBXE15PzhFVbuETT+bsflxWtzlnn8pno+dDp4pixzVCo+/V14jAzDdsy/cSAfKP5Y+e2MwKf7N6O4Os8I3sXRvk4hS5tSZD7gdraPVqQ4gs8I010rkHdy+SfjG4f8apbOnoxxAiK3yD/OLsCXqcXviLLck7xMP0mWuSdzyOAFlDw1stlhg1Yz71G4iPhTQg0Pg/VWpubgRoKKJ6m82WCxqKqI5o2BygoYbmTbbZJiI3VJG9rr8SNFBTQSGZkUu2gV9EUkRlwsThG4oorwY0VBJogAYEGqABjdDFc6NAQ50K11YDGup0fzb8kp7KAg3QgEADNCDQAA0INEADAg3QgEADNCDQgIJplCAIqqhEY6WIgioq1VgaoqCK0jSmAYcyMIiGllYK77DeM0oJhqABKaN/Az5HtEmZp45lAAAAAElFTkSuQmCC\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasser.vue?vue&type=style&index=0&id=4b8e000f&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/EnergyViewV2.271b23a6.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightRGB.vue?vue&type=style&index=0&id=65b6c962&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithoutVFD.vue?vue&type=style&index=0&id=3bd403be&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ArrowOutBase.vue?vue&type=style&index=0&id=a52edc90&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallationSteps.vue?vue&type=style&index=0&id=2515bd44&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"mr-6\",staticStyle:{\"width\":\"150px\"}},[_c('v-select',{attrs:{\"items\":_vm.notificationTypes,\"label\":_vm.$t('modals.alertAction.notificationType'),\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"accent\",\"item-text\":\"state\",\"item-value\":\"abbr\"},model:{value:(_vm.params.type),callback:function ($$v) {_vm.$set(_vm.params, \"type\", $$v)},expression:\"params.type\"}})],1),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.alertAction.body'),\"outlined\":\"\",\"hide-details\":\"\",\"autocomplete\":\"off\",\"color\":\"accent\"},model:{value:(_vm.params.body),callback:function ($$v) {_vm.$set(_vm.params, \"body\", $$v)},expression:\"params.body\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Alert action component.\n * Manages actions.\n */\n@Component\nexport default class EmailAction extends Vue {\n @Prop({ default: {} }) params: any;\n\n get notificationTypes() {\n return [\n { state: this.$t('modals.alertAction.notificationTypes.info'), abbr: 0 },\n { state: this.$t('modals.alertAction.notificationTypes.warning'), abbr: 1 },\n { state: this.$t('modals.alertAction.notificationTypes.error'), abbr: 2 },\n ];\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertAction.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AlertAction.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AlertAction.vue?vue&type=template&id=077914b6&\"\nimport script from \"./AlertAction.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlertAction.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderBase.vue?vue&type=style&index=0&id=3687edec&prod&lang=scss&\"","export * from \"-!../../../../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=79d86cae&prod&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportMessage.vue?vue&type=style&index=0&id=402f749d&prod&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/delete.8f2e4fc0.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('MPCLayout',{attrs:{\"preview-data\":{ name: _vm.previewNameLang, type: 'HeatingCircuitOptimization' },\"is-preview\":true,\"is-charts\":false},scopedSlots:_vm._u([{key:\"custom-icon\",fn:function(){return [_c('v-icon',{attrs:{\"size\":\"25\"}},[_vm._v(\"fa-chart-bar\")])]},proxy:true},{key:\"basic-controls\",fn:function(){return [_c('div',{staticClass:\"heating-circuit-optimisation\"},[_c('div',{staticClass:\"d-flex justify-center align-center\"},[_c('ArrowButtonMock',{attrs:{\"icon\":\"minus\",\"active-color\":\"#9be0ed\",\"inactive-color\":\"#9be0ed\"}}),_c('div',{staticClass:\"actual-value d-flex px-2\"},[_c('div',[_vm._v(\"20 °C\")])]),_c('ArrowButtonMock',{attrs:{\"icon\":\"plus\",\"active-color\":\"#ed5a24\",\"inactive-color\":\"#ed5a24\"}})],1),_c('div',{staticClass:\"d-flex justify-space-between pt-2\"},[_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.heating`)))])],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\"}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.mpcReady`)))])],1),_c('div',{staticClass:\"d-flex align-center\"},[_c('ShowEventDotMock',{attrs:{\"size\":\"15\",\"color\":\"red\",\"is-active\":true}}),_c('span',{staticClass:\"pl-1\"},[_vm._v(_vm._s(_vm.$t(`${_vm.mainViewLang}.service.off`)))])],1)])])]},proxy:true},{key:\"settings-view\",fn:function(){return [_c('div',{staticClass:\"heating-circuit-optimization-preview-settings\"},[_c('div',{staticClass:\"heating-circuit-optimization-preview-form\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.loweringModeTabs`)[0])+\" \")]),_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.loweringModeTabs`)[1])+\" \")]),_c('v-tab',[_vm._v(\" \"+_vm._s(_vm.$t(`${_vm.settingsViewLang}.loweringModeTabs`)[2])+\" \")])],1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',[_c('div',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"min-height\":\"177px\"}},[_c('div',{staticStyle:{\"width\":\"50%\",\"margin-top\":\"10px\"}},[_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.on')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.h')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}])})],1),_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ flexGrow: '1' },\"input-field-styles\":{ flexGrow: '2' },\"unit-styles\":{ width: '50px' },\"icon-styles\":{ width: '50px', textAlign: 'center', paddingTop: '2px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.off')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(_vm._s(_vm.$t('uiComponents.form.min')))]},proxy:true},{key:\"icon\",fn:function(){return [_c('lynus-icon',{staticClass:\"icon\",attrs:{\"name\":\"time\",\"size\":\"20\"}})]},proxy:true}])})],1)])])]),_c('v-tab-item',[_c('div',{staticClass:\"d-flex justify-center\",staticStyle:{\"min-height\":\"177px\"}},[_c('div',{staticStyle:{\"width\":\"50%\",\"margin-top\":\"10px\"}},[_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"description-styles\":{ width: '300px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.HeatingCircuitOptimization.settingsView.loweringTemperature')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-field\"},[_c('InputFieldMock',{attrs:{\"is-submit-button\":false,\"small\":true,\"init-state\":15,\"description-styles\":{ width: '300px' },\"input-field-styles\":{ flexGrow: '1' },\"unit-styles\":{ width: '50px' }},scopedSlots:_vm._u([{key:\"textDescription\",fn:function(){return [_vm._v(_vm._s(_vm.$t('mlModel.HeatingCircuitOptimization.settingsView.serviceOffTemperature')))]},proxy:true},{key:\"unit\",fn:function(){return [_vm._v(\"°C\")]},proxy:true}])})],1),_c('div',{staticClass:\"d-flex justify-space-between heating-circuit-optimization-preview-settings-field\"},[_c('div',[_vm._v(_vm._s(_vm.$t(`${_vm.settingsViewLang}.activateLoweringMode`)))]),_c('div',[_c('v-switch',{attrs:{\"color\":\"accent\",\"inset\":\"\",\"hide-details\":\"\"}})],1)])])])]),_c('v-tab-item',[_c('div',{staticClass:\"d-flex justify-center\"},[_c('div',{staticClass:\"pt-2\",staticStyle:{\"min-height\":\"177px\",\"width\":\"300px\"}},[_c('v-select',{attrs:{\"items\":_vm.energySavingModesList,\"label\":\"Modes\",\"item-text\":\"title\",\"item-value\":\"value\",\"background-color\":\"#ffffff\",\"color\":\"accent\",\"hide-selected\":\"\",\"flat\":\"\",\"solo\":\"\"},model:{value:(_vm.energySavingMode),callback:function ($$v) {_vm.energySavingMode=$$v},expression:\"energySavingMode\"}})],1)])])],1),(_vm.tab !== 2)?_c('div',{staticClass:\"heating-circuit-optimization-preview-settings-form-button\"},[_c('div',{staticClass:\"pt-8\"},[_c('v-btn',{attrs:{\"depressed\":\"\",\"color\":\"accent\",\"rounded\":\"\"}},[_c('lynus-icon',{attrs:{\"name\":\"send\",\"size\":\"20\",\"color\":\"white\"}})],1)],1)]):_vm._e()],1),_c('div',{staticClass:\"bottom\"},[_c('SettingsCharts')],1)])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"heating-circuit-optimization-preview-charts\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c(item.component,{tag:\"component\"})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"forecast-mock\"},[_c('v-tabs',{attrs:{\"color\":\"accent\",\"background-color\":\"transparent\",\"fixed-tabs\":\"\",\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab',{key:index},[_vm._v(\" \"+_vm._s(_vm.$t(item.locale)[index])+\" \")])}),1),_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(item,index){return _c('v-tab-item',{key:index},[_c(item.component,{tag:\"component\",attrs:{\"chart-type\":item.chartType,\"series\":item.series,\"yAxis\":item.yAxis,\"chart-width\":item.chartWidth,\"chart-title\":item.title}})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"simple-chart\"},[_c('div',{staticClass:\"chart-instance-actions\"},[_c('DataExport',{attrs:{\"dataToExport\":_vm.series}}),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\"},on:{\"click\":_vm.handleFullScreen}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"fa-expand\")])],1)]}}])},[_c('span',[_vm._v(\"Full screen\")])])],1),_c('div',{staticStyle:{\"overflow-x\":\"auto\"}},[_c('div',{style:(`width: ${_vm.chartWidth}px`)},[_c('highcharts',{ref:\"hc\",style:(`height: ${_vm.chartHeight}px`),attrs:{\"constructor-type\":'stockChart',\"options\":_vm.chartOptions}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport DataExport from '@/ui/components/devices/charts/components/DataExport.vue';\nimport stockInit from 'highcharts/modules/stock';\nimport Highcharts from 'highcharts';\nimport { Chart } from 'highcharts-vue';\n\nstockInit(Highcharts);\n\n@Component({\n components: {\n highcharts: Chart,\n DataExport,\n },\n})\nexport default class SimpleChart extends Vue {\n @Prop() chartType!: string;\n @Prop() chartTitle!: string;\n @Prop() series!: any;\n @Prop() yAxis!: any;\n @Prop({ default: null }) chartWidth!: any;\n @Prop({ default: 400 }) chartHeight!: any;\n\n get chartOptions() {\n return {\n chart: {\n animation: false,\n backgroundColor: this.$vuetify.theme.currentTheme.deviceBackground?.toString(),\n width: null,\n height: null,\n events: {\n redraw: (e: any) => {\n this.handleFullScreenChartName(e);\n },\n },\n },\n exporting: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n navigator: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n series: this.series,\n legend: {\n enabled: true,\n itemStyle: {\n color: this.$vuetify.theme.dark ? '#fff' : '#000',\n },\n },\n plotOptions: {\n series: {\n connectNulls: true,\n },\n },\n xAxis: {},\n yAxis: this.yAxis,\n };\n }\n\n handleFullScreen() {\n const { chart } = this.$refs.hc as any;\n chart.fullscreen.open();\n }\n handleFullScreenChartName(e: any) {\n const { chart } = this.$refs.hc as any;\n if (!chart.fullscreen.isOpen) {\n chart.setTitle({ text: null });\n } else {\n chart.setTitle({ text: this.chartTitle });\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SimpleChart.vue?vue&type=template&id=a0a3b8cc&scoped=true&\"\nimport script from \"./SimpleChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SimpleChart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SimpleChart.vue?vue&type=style&index=0&id=a0a3b8cc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a0a3b8cc\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport SimpleChart from '@/ui/components/devices/previews/components/ChartsTypes/SimpleChart.vue';\n\n@Component({\n components: {\n SimpleChart,\n },\n})\nexport default class ForecastMock extends Vue {\n tab: any = null\n fullscreen = false\n\n tempValveYAxis = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#3450ae',\n labels: {\n format: '{value} °C',\n style: {\n color: '#3450ae',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#50ab7e',\n labels: {\n format: '{value}',\n style: {\n color: '#50ab7e',\n },\n },\n },\n ]\n weatherYAxis = [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: -20,\n max: 40,\n lineColor: '#ab5050',\n labels: {\n format: '{value} °C',\n style: {\n color: '#ab5050',\n },\n },\n },\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 1500,\n lineColor: '#ab8a50',\n labels: {\n format: '{value} W/m2',\n style: {\n color: '#ab8a50',\n },\n },\n },\n ]\n\n get tempValveSeries() {\n const lang: any = this.$t(`${this.settingsViewLang}.chartLabels.tempValve`);\n return [\n {\n name: lang.valvePosition,\n type: 'line',\n yAxis: 0,\n color: '#3450ae',\n data: [\n [1583100000000, 23],\n [1583103600000, 26],\n [1583107200000, 22],\n [1583110800000, 28],\n [1583114400000, 28],\n [1583118000000, 29],\n [1583121600000, 29],\n ],\n },\n {\n name: lang.roomTemp,\n type: 'line',\n yAxis: 1,\n color: '#50ab7e',\n data: [\n [1583100000000, 22],\n [1583103600000, 25],\n [1583107200000, 22],\n [1583110800000, 23],\n [1583114400000, 24],\n [1583118000000, 28],\n [1583121600000, 29],\n ],\n },\n ];\n }\n get weatherSeries() {\n const lang: any = this.$t(`${this.settingsViewLang}.chartLabels.weather`);\n return [\n {\n name: lang.air,\n type: 'line',\n yAxis: 0,\n color: '#ab5050',\n data: [\n [1583100000000, 20],\n [1583114400000, 25],\n [1583128800000, 22],\n [1583143200000, 22],\n [1583157600000, 22],\n [1583172000000, 27],\n [1583186400000, 30],\n ],\n },\n {\n name: lang.globalRadiation,\n type: 'line',\n yAxis: 1,\n color: '#ab8a50',\n data: [\n [1583100000000, 20],\n [1583114400000, 25],\n [1583128800000, 22],\n [1583143200000, 22],\n [1583157600000, 22],\n [1583172000000, 27],\n [1583186400000, 30],\n ],\n },\n ];\n }\n\n get settingsViewLang() {\n return 'mlModel.HeatingCircuitOptimization.settingsView';\n }\n\n get tabs() {\n return [\n {\n title: 'Temp/Valve',\n locale: `${this.settingsViewLang}.forecastTabs`,\n component: 'SimpleChart',\n chartType: 'line',\n source: 'endpoint 1',\n chartWidth: null,\n series: this.tempValveSeries,\n yAxis: this.tempValveYAxis,\n },\n {\n title: 'Weather',\n locale: `${this.settingsViewLang}.forecastTabs`,\n component: 'SimpleChart',\n chartType: 'line',\n source: 'endpoint 2',\n chartWidth: null,\n series: this.weatherSeries,\n yAxis: this.weatherYAxis,\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Forecast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Forecast.vue?vue&type=template&id=d365f7c8&\"\nimport script from \"./Forecast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Forecast.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Forecast.vue?vue&type=style&index=0&id=d365f7c8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"mqtt-charts-mock\"},[_c('OfflineChart',{attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":60,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live','hour','day'],\"chartHeight\":700}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\n\n@Component({\n components: {\n OfflineChart,\n },\n})\nexport default class ChartMock extends Vue {\n tab = null\n fullscreen = false\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.chart.roomTemp'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: '°C',\n var: '',\n }, {\n agg: 'first',\n name: this.$t('mlModel.HeatingCircuitOptimization.settingsView.chartLabels.chart.valvePosition'),\n scaling: {\n max: '100',\n min: '0',\n },\n seriesType: 'View',\n type: 'line',\n unit: '°C',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Chart.vue?vue&type=template&id=bfca29d0&\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts&\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Chart.vue?vue&type=style&index=0&id=bfca29d0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ForecastMock from '@/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Forecast.vue';\nimport ChartMock from '@/ui/components/devices/previews/mpc/HeatingCircuitOptimization/Chart.vue';\n\n@Component({\n components: {\n ForecastMock,\n ChartMock,\n },\n})\nexport default class SettingsCharts extends Vue {\n tab: any = null\n\n get settingsViewLang() {\n return 'mlModel.HeatingCircuitOptimization.settingsView.chartTabs';\n }\n get tabs() {\n return [\n {\n title: 'Chart',\n locale: this.settingsViewLang,\n component: 'ChartMock',\n },\n {\n title: 'Forecast',\n locale: this.settingsViewLang,\n component: 'ForecastMock',\n },\n ];\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SettingsCharts.vue?vue&type=template&id=c04f8b9e&\"\nimport script from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nexport * from \"./SettingsCharts.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SettingsCharts.vue?vue&type=style&index=0&id=c04f8b9e&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator';\nimport ShowEventDotMock from '@/ui/components/devices/previews/components/ShowEventDotMock.vue';\nimport InputFieldMock from '@/ui/components/devices/previews/components/InputFieldMock.vue';\nimport ArrowButtonMock from '@/ui/components/devices/previews/components/ArrowButtonMock.vue';\nimport SwitchMock from '@/ui/components/devices/previews/components/SwitchMock.vue';\nimport SettingsCharts from '@/ui/components/devices/previews/mpc/HeatingCircuitOptimization/SettingsCharts.vue';\nimport MPCLayout from '@/ui/components/devices/components/MPCLayout.vue';\n\n@Component({\n components: {\n SwitchMock,\n ShowEventDotMock,\n InputFieldMock,\n ArrowButtonMock,\n SettingsCharts,\n MPCLayout,\n },\n})\nexport default class HeatingCircuitOptimizationPreview extends Vue {\n tab: any = null\n energySavingMode = 1\n\n get energySavingModesList() {\n const t: any = this.$t('mlModel.HeatingCircuitOptimization.settingsView.energySavingModesList');\n return [\n { title: t.comfort, value: 0 },\n { title: t.balanced, value: 1 },\n { title: t.energySaving, value: 2 },\n ];\n }\n get mainViewLang() {\n return 'mlModel.HeatingCircuitOptimization.mainView';\n }\n get settingsViewLang() {\n return 'mlModel.HeatingCircuitOptimization.settingsView';\n }\n get previewNameLang() {\n return this.$t('mlModel.HeatingCircuitOptimization.previewName');\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=e766fcb8&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=e766fcb8&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmsModeIndicator.vue?vue&type=style&index=0&id=78ea5926&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LabelUnitWrapper.vue?vue&type=style&index=0&id=56cc6c0b&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=165ba0e4&prod&lang=scss&scoped=true&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._v(\" \"+_vm._s(_vm.localisation)+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent OutputField Basic Control\n */\n@Component\nexport default class OutputFieldBase extends BasicControl {\n @Prop() variableData!: any;\n @Prop() modificationFn?: Function;\n @Prop() instance!: string;\n @Prop() min!: number;\n @Prop() max!: number;\n @Prop({ default: false }) isDecimal?: boolean;\n @Prop({ default: false }) disableMinMaxFilter?: boolean;\n\n get actualValue(): any {\n return this.measurements.get(this.mappingsClean.actualValue);\n }\n\n /**\n * Round number\n */\n get mod() {\n if (!this.isDecimal) return Math.round(this.actualValue);\n // eslint-disable-next-line @typescript-eslint/ban-ts-ignore\n // @ts-ignore\n return +(`${Math.round(`${this.actualValue}e+3`)}e-3`);\n }\n\n /**\n * Left maximum two numbers after comma\n */\n get filtered(): any {\n return Number.isInteger(this.mod) ? this.mod : this.mod.toFixed(2);\n }\n\n /**\n * Converting number to locale format\n */\n get localisation() {\n const filteredByMinMax = () => {\n if (this.min > +this.filtered) return this.min;\n if (this.max < +this.filtered) return this.max;\n return this.filtered;\n };\n if (this.disableMinMaxFilter === false) {\n if (filteredByMinMax() !== 'NaN') {\n return Intl.NumberFormat('de-GE').format(filteredByMinMax());\n } else {\n return 0;\n }\n } else {\n return this.filtered;\n }\n }\n get isNotMapped(): boolean {\n return this.mappingsClean.actualValue === '';\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OutputFieldBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OutputFieldBase.vue?vue&type=template&id=a017fb66&\"\nimport script from \"./OutputFieldBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./OutputFieldBase.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gauge.vue?vue&type=style&index=0&id=18e48152&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentValueGaugeChartBase.vue?vue&type=style&index=0&id=0e7d1a16&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:['rotating-backlight', { 'rotating-backlight-disabled': _vm.noData }],style:(_vm.borderStyle)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Component that represent rotating backlight for Preview.vue, PreviewMQTTControls.vue\n */\n@Component\nexport default class RotatingBacklight extends Vue {\n @Prop({ default: '#dedede' }) color!: string;\n @Prop({ default: false }) noData!: boolean;\n\n get borderStyle() {\n return {\n borderTop: `2px solid ${this.color}`,\n };\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotatingBacklight.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RotatingBacklight.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RotatingBacklight.vue?vue&type=template&id=e6d65294&scoped=true&\"\nimport script from \"./RotatingBacklight.vue?vue&type=script&lang=ts&\"\nexport * from \"./RotatingBacklight.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RotatingBacklight.vue?vue&type=style&index=0&id=e6d65294&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e6d65294\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsCharts.vue?vue&type=style&index=0&id=c04f8b9e&prod&lang=scss&\"","export const circlesDisplayDataMock = [\n {\n 'id': 'pv',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'photovoltaic',\n },\n 'position': 0,\n 'systemCount': 2,\n 'spinnerColor': '#f3db04',\n },\n {\n 'id': 'chp',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'chp',\n },\n 'position': 0,\n 'systemCount': 1,\n 'spinnerColor': '#f3db04',\n },\n {\n 'id': 'generator',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'generator',\n },\n 'position': 0,\n 'systemCount': 2,\n 'spinnerColor': '#f3db04',\n },\n {\n 'id': 'grid',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'main-connection',\n },\n 'position': 2,\n 'systemCount': 1,\n 'spinnerColor': '#fc0328',\n },\n {\n 'id': 'battery',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'soc',\n 'value': 1,\n },\n 'position': 1,\n 'systemCount': 2,\n 'spinnerColor': '#fc0328',\n 'additionalDisplayData': { forceCharge: 1, calibrationCharge: 0, maintenanceCharge: 0, chargeMaintenance: 0, feedInLimitationActive: 0, p14aActive: 0, activeEmsMode: 1 },\n },\n {\n 'id': 'house',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'house-consumption',\n },\n 'position': 3,\n 'systemCount': 1,\n 'spinnerColor': '#29810e',\n },\n {\n 'id': 'charge_station',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'electric-charging-station',\n },\n 'position': 3,\n 'systemCount': 2,\n 'spinnerColor': '#29810e',\n },\n {\n 'id': 'electric_heating',\n 'centerContent': {\n 'type': 'icon',\n 'value': 'electric-charging-boiler',\n },\n 'position': 3,\n 'systemCount': 2,\n 'spinnerColor': '#29810e',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n },\n {\n 'id': 'heating_pump',\n 'centerContent': {\n 'type': 'icon',\n 'value': 'heating-capacity',\n },\n 'position': 3,\n 'systemCount': 2,\n 'spinnerColor': '#29810e',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n },\n {\n 'id': 'big_consumer',\n 'bottomValue': (Math.random() * 99 + 1).toFixed(1),\n 'centerContent': {\n 'type': 'icon',\n 'value': 'socket-switch',\n },\n 'position': 3,\n 'systemCount': 2,\n 'spinnerColor': '#29810e',\n },\n];\n\nexport const linesDisplayDataMock = [\n {\n 'id': 'pv',\n 'arrowDirection': 1,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#f3db04',\n },\n },\n {\n 'id': 'chp',\n 'arrowDirection': 1,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#f3db04',\n },\n },\n {\n 'id': 'generator',\n 'arrowDirection': 1,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#f3db04',\n },\n },\n {\n 'id': 'grid',\n 'arrowDirection': 1,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#fc0328',\n },\n },\n {\n 'id': 'battery',\n 'arrowDirection': 1,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#fc0328',\n },\n },\n {\n 'id': 'house',\n 'arrowDirection': 2,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#29810e',\n },\n },\n {\n 'id': 'charge_station',\n 'arrowDirection': 2,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#29810e',\n },\n },\n {\n 'id': 'electric_heating',\n 'arrowDirection': 2,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#29810e',\n },\n },\n {\n 'id': 'heating_pump',\n 'arrowDirection': 2,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#29810e',\n },\n },\n {\n 'id': 'big_consumer',\n 'arrowDirection': 2,\n 'colors': {\n 'colorAtCenter': '#2BAAE2',\n 'colorAtCircle': '#29810e',\n },\n },\n];\n","module.exports = __webpack_public_path__ + \"img/Gauge.cdb4975d.png\";","import store from '@/store';\nimport { IDevice } from '@/types/devices.types';\nimport { IMember } from '@/types/members.types';\nimport { IRoom } from '@/types/rooms.types';\nimport { IRule, IRuleActionsEmailParams } from '@/types/rules.types';\nimport i18n from '@/ui/plugins/i18n';\nimport { cloneDeep } from 'lodash';\nimport { UserRoleCode } from './userRoles';\n\n/**\n * @param member member object\n * @param rulesList list of rules as IRule[]\n * @param conModel connectivity Object from Project Meta\n * @returns return true if member is present in all rules as recipient and in connectivity check\n */\nexport function getIsMemberInRulesAsRecipient(member: IMember, rulesList: IRule[], conModel: any) {\n // checks if user is present in all rules as recipient\n const isPresentInRules = rulesList.every((currentRule: IRule) => {\n let ruleEmailActions = currentRule.actions.filter((action) => action.type === 'email');\n ruleEmailActions = ruleEmailActions.map((action: any) => {\n if (!(action.params as IRuleActionsEmailParams).recipients) {\n action.params.recipients = [];\n }\n return action;\n });\n return ruleEmailActions.some((action: any) => action.params.recipients.includes(member.email));\n });\n\n // checks if recipients array is present in actions\n conModel.actions.forEach((action: any) => {\n if (!(action.params as IRuleActionsEmailParams).recipients) {\n action.params.recipients = [];\n }\n });\n // checks if user is present inside connectivity check as recipient\n const isPresentInConnectivityCheck = conModel.actions.some((action: any) => action.params.recipients.includes(member.email));\n\n return isPresentInRules && isPresentInConnectivityCheck;\n}\n\n/**\n * @param rooms - array of rooms\n * Returns object with default room ids, based on the device type inside the room\n * Example:\n * - Rooms with EMSV2 or EMS devices will be visible for UserRoleCode.user\n * - Rooms with EnergyViewV2 or EnergyView devices will be visible for UserRoleCode.user and UserRoleCode.readOnly\n */\nexport function defaultRoomIdObject(rooms: IRoom[]) {\n const roomIdObject: Record = {\n 1001: [],\n 1002: [],\n };\n rooms.forEach((room) => {\n const devicesInRoom = store.getters['devices/devicesByRoom'](room.id);\n devicesInRoom.forEach((device: IDevice) => {\n if (device.data.type === 'EMSV2' || device.data.type === 'EMS') {\n roomIdObject[1001].push(room.id);\n }\n if (device.data.type === 'EnergyViewV2' || device.data.type === 'EnergyView') {\n roomIdObject[1001].push(room.id);\n roomIdObject[1002].push(room.id);\n }\n });\n });\n return roomIdObject;\n}\n\n/**\n * Adds default room access to user\n * @param {UserRoleCode} role user role\n * @param {IMember} newMember new member\n * @param {Record} defaultRoomIdObject default room id object\n * @param {string} project_id project id\n */\nexport async function addDefaultRoomToUser(role: UserRoleCode, newMember: IMember, defaultRoomIdObject: Record, project_id: string) {\n // contains the ids of the default rooms\n const roomsToAdd = defaultRoomIdObject[role];\n let collections = newMember.collections || [];\n\n // add the default rooms to the user if not allready present inside collections allready\n roomsToAdd.forEach((room: string) => {\n if (collections.includes(room)) {\n return;\n }\n collections.push(room);\n });\n // remove duplicates if there are somehow any inside the array\n collections = collections.filter((item, index) => collections.indexOf(item) === index);\n\n if (roomsToAdd.length === 0) return;\n\n store.dispatch('members/updateMemberCollections', {\n project_id,\n member: newMember,\n collectionsList: collections,\n });\n}\n\nexport function getMailSubject(rule: IRule) {\n const alertAction: any = rule.actions.find((action: any) => action.type === 'alert');\n let subject = '';\n const langPath = 'modals.manageRules.defaultMailSubjectTexts';\n if (alertAction !== undefined) {\n switch (alertAction.params?.type) {\n case 0: {\n subject = i18n.t(`${langPath}.info`) as string;\n break;\n }\n case 1: {\n subject = i18n.t(`${langPath}.warning`) as string;\n break;\n }\n case 2: {\n subject = i18n.t(`${langPath}.error`) as string;\n break;\n }\n default: {\n subject = i18n.t(`${langPath}.system`) as string;\n break;\n }\n }\n }\n return subject;\n}\n\nexport async function submitChanges(conModel: any) {\n const project = store.getters['projects/project'];\n const localProject = cloneDeep(project);\n localProject.connectivity = conModel;\n store.dispatch('projects/updateProject', localProject);\n store.dispatch('rules/loadRules', localProject.id);\n}\n\n/**\n * Update connectivity check recipient. Either the email get removed of added based on user input\n */\nexport async function updateConnectivityCheck(email: string, conModel: any) {\n const mailActionObject = {\n 'type': 'email',\n 'params': {\n 'recipients': [email],\n 'subject': 'Connectivity Check',\n 'type': 0,\n 'body': '{{rule}} - The Lynus System currently has no internet connection.',\n },\n };\n\n if (conModel.actions === null || conModel.actions === undefined) {\n conModel.actions = [];\n }\n\n // if connectivity check is disabled but there are actions, we allways enable it\n if (!conModel.enabled && conModel.actions.length > 0) {\n conModel.enabled = true;\n }\n\n if (!conModel.actions.some((action: any) => action.type === 'email')) {\n conModel.actions.push(mailActionObject);\n } else {\n conModel.actions.forEach((action: any, actionIndex: number) => {\n if (action.type === 'email') {\n if (!action.params.recipients) {\n action.params.recipients = [];\n }\n // check if member is already in recipients\n if (action.params.recipients.filter((recipient: any) => recipient === email).length === 0) {\n conModel.actions[actionIndex].params.recipients.push(email);\n }\n }\n });\n }\n\n const hasAlertAction = conModel.actions.some((action: any) => action.type === 'alert');\n if (!hasAlertAction) {\n // if the connectivity check has no alert action add a warning alert\n const alertActionObject = {\n 'type': 'alert',\n 'params': {\n 'type': 1,\n 'body': '{{rule}} - The Lynus System currently has no internet connection.',\n },\n };\n conModel.actions.push(alertActionObject);\n }\n\n await submitChanges(conModel);\n}\n\n/**\n * @param email email of the member\n * @param id project id\n * @param rulesWithEmailAction rules with email action as IRule[]\n * @param rulesWithNoMailAction rules without email action as IRule[]\n * @param conModel connectivity model\n * Updated all Rules with email action to add selected member to recipients\n */\nexport async function addMemberToRuleActions(email: string, id: string, rulesWithEmailAction: IRule[], rulesWithNoMailAction: (IRule | undefined)[], conModel: any) {\n // add selected member to all rules with email action\n rulesWithEmailAction.forEach((rule: any) => {\n const ruleCopy = cloneDeep(rule);\n ruleCopy.actions.forEach((action: any) => {\n if (action.type === 'email') {\n // check if member is already in recipients\n if (!action.params.recipients) {\n action.params.recipients = [];\n }\n if (action.params.recipients.filter((recipient: any) => recipient === email).length === 0) {\n action.params.recipients.push(email);\n }\n }\n });\n\n // if rule is not active, activate it and set timeout to 120\n if (!rule.active) {\n ruleCopy.active = true;\n ruleCopy.timeout = 120;\n }\n\n return store.dispatch('rules/modifyRule', {\n id,\n ruleModel: ruleCopy,\n rule_id: ruleCopy.id,\n });\n });\n\n rulesWithNoMailAction.forEach((rule: any) => {\n // add a email action to rule if it does not have one\n const mailActionObject = {\n 'type': 'email',\n 'params': {\n 'recipients': [email],\n 'subject': getMailSubject(rule),\n 'type': 0,\n 'body': '{{rule}}',\n },\n };\n const ruleCopy = cloneDeep(rule);\n ruleCopy.actions.push(mailActionObject);\n\n // if rule is not active, activate it and set timeout to 120\n if (!rule.active) {\n ruleCopy.active = true;\n ruleCopy.timeout = 120;\n }\n\n return store.dispatch('rules/modifyRule', {\n id,\n ruleModel: ruleCopy,\n rule_id: ruleCopy.id,\n });\n });\n\n await updateConnectivityCheck(email, conModel);\n email = '';\n}\n\n/**\n * @param email email of the member\n * @param id project id\n * @param rulesWithEmailAction rules with email action as IRule[]\n * @param conModel connectivity model\n * Updated all Rules with email action to remove selected member from recipients\n */\nexport async function deleteRecipientFromRules(recipient: string, id: string, rulesWithEmailAction: IRule[], conModel: any) {\n // eslint-disable-next-line no-restricted-syntax\n for (const rule of rulesWithEmailAction) {\n const ruleCopy = cloneDeep(rule);\n ruleCopy.actions.forEach((action: any, actionIndex: number) => {\n // remove recipient\n if (action.type === 'email') {\n if (!action.params.recipients) {\n action.params.recipients = [];\n }\n action.params.recipients = action.params.recipients.filter((name: string) => name !== recipient);\n }\n });\n await store.dispatch('rules/modifyRule', {\n id,\n ruleModel: ruleCopy,\n rule_id: ruleCopy.id,\n });\n }\n if (conModel.actions !== null && conModel.actions !== undefined) {\n conModel.actions.forEach((action: any, actionIndex: number) => {\n if (action.type === 'email') {\n if (!action.params.recipients) {\n action.params.recipients = [];\n }\n conModel.actions[actionIndex].params.recipients = conModel.actions[actionIndex].params.recipients.filter((name: string) => name !== recipient);\n }\n });\n await submitChanges(conModel);\n }\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY4AAAB8CAMAAABJ96foAAABLFBMVEUxMTH+/vuioqLHx8dRUlJttenp//8XFxfCwsL////s7OzptW3//9GVFxf/6bVJSEYYbbWU0P636v/R//++vr5tFxc8PkH9z5NmZmb//+sXF260tLS2bhcXF5XRlRl9fX1QT0yUlJX4+vjW19hJPzNASlL39vEXFzM4NDPS0dJDHRfw+/yFhIa4t7f//t34//+pqKjcpFGl1/YZldGcnJwxFxf/88Pj4+Kkd0x8vu9zc3MXF1COjo7b7foeHh4kM0LEgyDx4sWmWhyUTB3MnG5MerQ0U3tMl88dPZzwvn2vr68qJCoXNmeRvd9rodNaqeAXfL9rOx9cIBv68N59GRcXZK/fu5Dd+/z92qMXF4MXiMddXV3qzJ3fzLfE3/D/4qyHFxeensO5q9CdWpJIP8r/AAAJmElEQVR42u2bC1vaSBSGk4CEQEsEIqK0okG5CAiiiCLeVhG8V11L1bW73f7//7DnTBJIIAoqsrE93/MUcpkkk/POucxIOZHkIHFkAsLxKo19+Phmre007pkZJY5xjyRJyb318iA9G7ipodOzrMRfHyy+xO4SU2AiyO/aGng6NKltXEx9Yu1x93N4UjRdYMXR0E9sLP3R/bTpkuVY57qR4/CLqcMS7x8Ex8BNDRqh6/XFnfPspIXHGDOfnaZDgYk+rWxwjHuWRXGzJOG1bLtzJyuOm9akdu7vq4G96n/AAS8TXNofCMeATXVtTO1qX5/eEsdteLIMbpHEfl3oV9ni2Cyt/YlUPH7R2TjEu8IyvNHRWRZep75VgABTxnNfvxf4vT8sOFhTMdXYgii0Dh1HJ2dGWIGPYCAHV3y7tFoXL/wcxotXpBkxiDFoBi78F27x16XYOfU5DGcMQ7RxMNNg1Et+vdL3Uo2WxD9sTZqs/CWbB8OlgrAJTYw7jX34WYI3MMaPBgs/698LkvZmwcCPLckPXxNGaC3jU4zOMRypc9jb2x8djhvPEZhF78DXy9Q52nzcs3SweBha27fgwKZiQz1YPN2AWPwlO4OBAg5tgCWCmCjqesBggdz47uDQDT0m7a2f1D0QxzqnbL0DAWwGr9dTdXwww9EoHC0unGUnjaYwJC6WfoaPxNsQOAo2MbyDnzq4bIYnzQNqsxSY2Bx7uBQPS2v/AA5pDbMh4qhX1ss75+qu0bkWdI7hwLcFO/w5MhyaxY6gX2yAaZ+ao37JLltwYNPp0LdFkX3eghGarURgYhotEUR07Shy4zFwBCZ6cTA3wKz6CA6WydkI/whRH5tsgPkYnBIG//ZjcEikgoErOHqDI8GMA303FTTuyo42W0f6dejPYlCzcrsN643WObwabaA970t2d8Q4/J2QjB6t4TDGeG9TMfjhI461RqCe/NQML+sv9RwcK/zMIN7BDCc2wDy4Z+koCIb/begIT7F2ZhzsIW1TM/oNdq/Df7/7sgyHdpJ9nf5I+JIFv7lzaAPtec3W8oiDlb9j/ZVHcWBTfRN7fbG0H/RPh/x37Xdr2+npYKW9sTQQDr3qhUO4pz29gwOGRB26eqfuBjH8PIEDPF3z/vPC9cPqWReOm9bUQ/GHx2/uHNrgxqM93j/iVD6Qd2DTZts74A0Pwp/Ejb/P8C2tOOxTeZd37A6Co9Eus3Cv2eUdWBbAsG+Gv2LAfArHbehbE6IrFGMYbFe6cAQxtJmCFXYObdBs+UdbWW0G2zG8nTv+sc8drKmROyCm3oYrWNgkWZ1jxQEmxXCbwkKX3Tx1gThWLLlj33wq+AgOLBg6e8bT2zjuVB9cuFm6ZkUEu3PQFgc87wemau1VG904cLPZwYGdQxuwAmHE08CykRDMldXaOlQUgcuuaWDZVFkBOCyrbkPSci8O0zQQTHh1WCqgzTFizEPR89clFEtwM9OpjQ/7O/M2OKbhRuXDElS6zFAXPFQ6JamNo9li2xsSw8+aaHfqwXFXUDGegfNcnp515w6YJqXqWPVi5/axkitrQ3Js6gBe480rXesiiY5Dn3cs4rmHLVPVbl4k0ecdZRbW0AbM0btxmBdJ6i2YOJyjzTfPCtK3KwgweMR66hBmLcuPzTv4vXV9bxNnIe15Bz6RDYYVbdLCmmh36sFxG9YgjuO04rwLxynOUX4y71jKZKUpnOd05h0vW+sZ4hJi3xnp9sjWArfFUWl0Txo6jtEtzdICO+Ggv3cQDhLhIBEOwkEiHISDNCQc2ycc6X/XybaGY5tM4QxtIw6i4SAenEiRyjnxCnCQFZwjwkE4SISDcJAIB+EgEY73Ljkh8S6ZcDhEGfyNqZdwOEQ84vARDsJB6pULccQIh1MUSyaLVFlRoUuy9w6fQDicIoVyh5OkUmXlJEmEw0lK0KzcSXJXJClDa1ZU6JLsFHe54oTDKRIgdfA1wuEQJTGVVwgHFbqkXlUQR4ZwOEQ5iFa+KOFwiuRqlQpdmneQ3hyH1+s9vrc7EfV6laKbDDtiHFwkl7fFEePk1SIZdng40un0ADg4LhaNxlYVblVRVoFC0Xsc0XBwEW9EOyrEuWKVm8vNrR57V8nYL8ARWXCj5HR/HEI8qlS5eEyWY9WoEo0UazoOAKUdrdVmAUoxOpePuhUy9vNxaDBAs/N9cRTjaPu5OfyHWzmhg0M/KuRyMU5hbbxk7GfjWEAOaS4dASDzgwQrWxwQrLSj3LEwK+SKhONlOBY6EBae9g8tlaPt9WCVv5ePc51Urh3lirCVrxGOF+HYMbvEglvuW+iyyKSl8nzMK0RMhS47ytVqXATyC+F4CY6IezZtv9NX0RjZctg4LA6x0yd7EI63xzHPPbZHIhy/NY404SDvID2Coyt5P13pkt4aR4RwOMs7LDON5008HleV/vrxIhxd7vDkxMP2ZymPNLX8p5KE1O/Smo9w9MYqtmyVHszGz8ABUhJPOpOPcGg0unOF+3EeQ8Yh+EzeQzg4bW3dLPes+4lVdt3GMfWem1OjnKJKfAatKqh8vpaUXLid4XmX3jSmSsmcBUfOJ/ExTlbzHFdR8PeqbUbK+8RR9WYMuapDwWGj+adyRxxMmZFVgZOVOBdVVzlByrgFPnFfk2RO4ItyVD1mOGp8jiv6LDhUhauqOW6Or8Z8ssk73i2OvNSR6/U40hE79QtWVb7ChnW8qMBAR6vGJTwd1yyMloemroR2rIOjxkNkTCgcl6kAql8Bh5xo06jIr8fRXipJGx8DJQSvhJ5ZSbqKScUGh481TRjO1MYhsCOAw81+p/oL4Ojw8L18vtb70wVM3/2nHAaOKPOOuHTPcT4bHK6MhsPVncqFpL7j+lW8o83jFTR6cezgzxbcfSfkBo6KEoXcEZdyssJ34VDnuDicw6ZFtcrF82Yc93yRcytRrAMU6H+Nj8rvHofG4zU0bIJVhP2OpG+w0uZyeXj4MVRWLp5XerwjAQd1clB5qYIlldegssrI91gHwIUQzlT3u8eBPF5Fw/ZnbxF5GEu5wu84fZBXX7fO93Y/mRZ+49kc4SAcpFcp5/XmCIdT5HaB3ITDIYoiDvq/gU5ROuZyxdKEwymK5OIRyh1UWZFspEDqKA4Jh5fUV31MiJk8T97hFB0TDkcpTzgIB4lwEA7S81O595hwOEQAA4AQDgdNA10K4aBFEhLhIBwkwkE4SISDcJAIB+EgEQ4S4SAcJMJBOEhDwXFCVnCKTgDHNpnBKdoGHMTDOTQQh7hN8coJkQpoiP8BoBJKIJumEu4AAAAASUVORK5CYII=\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSwitchV2.vue?vue&type=style&index=0&id=8130f79e&prod&lang=scss&scoped=true&\"","\nimport { Component, Prop, Watch } from 'vue-property-decorator';\nimport { Getter, Action, State, Mutation } from 'vuex-class';\nimport { cloneDeep } from 'lodash';\nimport WebhookAction from '@/ui/components/modals/actions/WebhookAction.vue';\nimport AlertAction from '@/ui/components/modals/actions/AlertAction.vue';\nimport EmailAction from '@/ui/components/modals/actions/EmailAction.vue';\nimport DeleteModalForm from '@/ui/components/modals/DeleteModalForm.vue';\nimport { mixins } from 'vue-class-component';\nimport { Validation } from '@/ui/mixins/validation';\nimport { getSingleRuleObject } from '@/utils/utilsFunctions';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { IRule } from '@/types/rules.types';\nimport { IReportBox } from '@/types/app.types';\n\nenum timePeriods {\n sec = 'sec',\n min = 'min',\n hour = 'hour',\n day = 'day',\n}\n\n@Component({\n components: {\n email: EmailAction,\n webhook: WebhookAction,\n alert: AlertAction,\n DeleteModalForm,\n },\n})\nexport default class ManageRule extends mixins(Validation) {\n @Prop() rule!: any;\n\n @State('variables') variablesState!: IVariablesState;\n @Getter('variables/variablesForComboBox') variablesForComboBox!: [];\n @Mutation('app/setReport') setReport!: (payload: IReportBox) => void;\n @Action('variables/fetchVariables') fetchVariables!: (projectId: string) => Promise;\n @Action('rules/addRule') addRule!: (\n { id, ruleModel }: { id: string; ruleModel: Partial }\n ) => Promise;\n @Action('rules/modifyRule') modifyRule!: (\n payload: { id: string; rule_id: string; ruleModel: IRule }\n ) => Promise;\n @Action('rules/deleteRule') deleteRule!: any;\n\n valid = true;\n localRule = getSingleRuleObject('', '', '', 1);\n\n nameRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.nameRule1'),\n (v: any) => v.length <= 100 || this.$t('modals.manageReport.errorMessages.nameRule2'),\n ]\n onlyNumbersRule = [\n (v: any) => /^[+-]?\\d+(\\.\\d+)?$/.test(v) || this.$t('modals.manageReport.errorMessages.onlyNumbersRule'),\n ];\n variableRule = [(v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.variableNameRule')];\n conditionRule = [(v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.conditionRequiredRule')];\n\n // time options\n selectedTimeOption = timePeriods.sec;\n prevTimeOption = timePeriods.sec;\n isTimeoutRule = false;\n get minValueTimeout() {\n return this.selectedTimeOption === timePeriods.sec ? 10 : 1;\n }\n maxValueTimeout = 604800;\n secondsTimeoutRule = [\n (v: any) => /^[0-9]*$/.test(v) || this.$t('modals.manageReport.errorMessages.onlyNumbersRule'),\n (v: any) => v >= 10 || this.$t('modals.manageReport.errorMessages.secondsTimeoutRule'),\n ];\n otherTimeoutRule = [\n (v: any) => /^[0-9]*$/.test(v) || this.$t('modals.manageReport.errorMessages.onlyNumbersRule'),\n (v: any) => v >= 1 || this.$t('modals.manageReport.errorMessages.otherTimeoutRule'),\n ];\n @Watch('isTimeoutRule')\n handleIsTimeoutRuleChange() {\n if (!this.isTimeoutRule) {\n this.localRule.timeout = 0;\n this.localRule.active = false;\n } else if (this.localRule.timeout === 0) {\n this.localRule.timeout = 240;\n }\n }\n\n onTimeOptionsChange(period: timePeriods) {\n this.selectedTimeOption = period;\n switch (period) {\n case timePeriods.sec:\n if (this.prevTimeOption === timePeriods.min) {\n this.localRule.timeout *= 60;\n } else if (this.prevTimeOption === timePeriods.hour) {\n this.localRule.timeout *= 3600;\n } else if (this.prevTimeOption === timePeriods.day) {\n this.localRule.timeout *= 86400;\n }\n this.maxValueTimeout = 604800;\n break;\n case timePeriods.min:\n if (this.prevTimeOption === timePeriods.sec) {\n this.localRule.timeout /= 60;\n } else if (this.prevTimeOption === timePeriods.hour) {\n this.localRule.timeout *= 60;\n } else if (this.prevTimeOption === timePeriods.day) {\n this.localRule.timeout *= 1440;\n }\n this.maxValueTimeout = 10080;\n break;\n case timePeriods.hour:\n if (this.prevTimeOption === timePeriods.sec) {\n this.localRule.timeout /= 3600;\n } else if (this.prevTimeOption === timePeriods.min) {\n this.localRule.timeout /= 60;\n } else if (this.prevTimeOption === timePeriods.day) {\n this.localRule.timeout *= 24;\n }\n this.maxValueTimeout = 168;\n break;\n case timePeriods.day:\n if (this.prevTimeOption === timePeriods.sec) {\n this.localRule.timeout /= 86400;\n } else if (this.prevTimeOption === timePeriods.min) {\n this.localRule.timeout /= 1440;\n } else if (this.prevTimeOption === timePeriods.hour) {\n this.localRule.timeout /= 24;\n }\n this.maxValueTimeout = 7;\n break;\n }\n\n // rounding and replacing Value if timeout would be 0.\n // Because this would be out of the allowed values\n this.localRule.timeout = Math.round(this.localRule.timeout);\n if (this.localRule.timeout === 0) {\n if (this.selectedTimeOption === timePeriods.sec) {\n this.localRule.timeout = 10;\n } else {\n this.localRule.timeout = 1;\n }\n }\n // previous timeOption is needed to reCalculate the Time correctly,\n // it is always changed after the recalculation took place\n this.prevTimeOption = this.selectedTimeOption;\n }\n initSelectedTimeOption() {\n if (this.rule?.timeout % 86400 === 0) {\n this.selectedTimeOption = timePeriods.day;\n } else if (this.rule?.timeout % 3600 === 0) {\n this.selectedTimeOption = timePeriods.hour;\n } else if (this.rule?.timeout % 60 === 0) {\n this.selectedTimeOption === timePeriods.min;\n }\n }\n\n get andOR() {\n return [\n { state: this.$t('modals.manageRules.conditionsForm.andOr.and'), abbr: true },\n { state: this.$t('modals.manageRules.conditionsForm.andOr.or'), abbr: false },\n ];\n }\n get conditions() {\n return [\n { title: this.$t('modals.manageRules.conditions.less'), value: 'less' },\n { title: this.$t('modals.manageRules.conditions.lessEquals'), value: 'less_equals' },\n { title: this.$t('modals.manageRules.conditions.equals'), value: 'equals' },\n { title: this.$t('modals.manageRules.conditions.notEquals'), value: 'not_equals' },\n { title: this.$t('modals.manageRules.conditions.greaterEquals'), value: 'greater_equals' },\n { title: this.$t('modals.manageRules.conditions.greater'), value: 'greater' },\n ];\n }\n get timeOptions() {\n return [\n { title: this.$t('modals.manageRules.timeOptions.sec'), value: timePeriods.sec },\n { title: this.$t('modals.manageRules.timeOptions.min'), value: timePeriods.min },\n { title: this.$t('modals.manageRules.timeOptions.hour'), value: timePeriods.hour },\n { title: this.$t('modals.manageRules.timeOptions.day'), value: timePeriods.day },\n ];\n }\n\n get isEditRule() {\n return !!this.rule;\n }\n\n // Condition\n async deleteCondition(inx: number) {\n this.localRule.conditions.splice(inx, 1);\n await this.validate();\n }\n async addCondition() {\n this.localRule.conditions.push({\n and_or: false,\n target: 0,\n variable: '',\n condition: 'equals',\n });\n await this.validate();\n }\n\n // Action\n get createActionButtonsList() {\n return [\n { title: this.$t('modals.manageRules.buttons.addEmailAction'), actionType: 'email' },\n { title: this.$t('modals.manageRules.buttons.addWebhookAction'), actionType: 'webhook' },\n { title: this.$t('modals.manageRules.buttons.addAlertAction'), actionType: 'alert' },\n ];\n }\n async addAction(type: string) {\n const action: any = { 'type': type, params: {} };\n\n switch (type) {\n case 'webhook':\n action.params = {\n headers: {\n 'content-type': 'application/json',\n },\n method: 'POST',\n body: '{{rule}} - ',\n url: '',\n };\n break;\n case 'email':\n action.params = {\n recipients: ['example@mail.com'],\n subject: '',\n body: '{{rule}} - ',\n };\n break;\n case 'alert':\n action.params = {\n type: 0,\n body: '{{rule}} - ',\n };\n break;\n }\n\n this.localRule.actions.push(action);\n await this.validate();\n }\n async deleteAction(inx: number) {\n this.localRule.actions.splice(inx, 1);\n await this.validate();\n }\n\n async validate() {\n await this.$nextTick();\n (this.$refs.form as any).validate();\n }\n\n async handleRule() {\n const copy: any = cloneDeep(this.localRule);\n // converts the timeout (could be in min,hour,day)\n // into seconds for the api to store the value in seconds\n if (copy.timeout !== 0) {\n if (this.selectedTimeOption === timePeriods.min) {\n copy.timeout *= 60;\n } else if (this.selectedTimeOption === timePeriods.hour) {\n copy.timeout *= 3600;\n } else if (this.selectedTimeOption === timePeriods.day) {\n copy.timeout *= 86400;\n }\n copy.timeout = parseInt(copy.timeout, 10);\n }\n\n try {\n if (this.rule) {\n await this.modifyRule({ id: this.$route.params.id, ruleModel: copy, rule_id: this.rule.id });\n } else {\n await this.addRule({ id: this.$route.params.id, ruleModel: copy });\n this.$emit('closeRuleDialog');\n this.setReport({\n type: 'success',\n message: 'created',\n value: true,\n });\n }\n } catch (e) {\n this.setReport({\n type: 'error',\n message: e.message,\n value: true,\n });\n }\n }\n async deleteRuleLocal() {\n await this.deleteRule({ project_id: this.$route.params.id, rule_id: this.localRule.id });\n this.$emit('closePanel');\n }\n\n async created() {\n if (this.rule) { // when edit rule\n if (this.rule.timeout !== null && this.rule.timeout !== 0) {\n this.isTimeoutRule = true;\n }\n this.localRule = cloneDeep(this.rule);\n this.initSelectedTimeOption();\n this.onTimeOptionsChange(this.selectedTimeOption);\n } else { // when create rule\n this.isTimeoutRule = true;\n await this.fetchVariables(this.$route.params.id);\n }\n }\n async mounted() {\n await this.validate();\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-container',{class:{ 'create-rule': !_vm.isEditRule },attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('h2',{staticStyle:{\"padding-bottom\":\"10px\"}},[_vm._v(_vm._s(_vm.$t('modals.manageRules.titles.general')))]),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageRules.name'),\"rules\":_vm.nameRule,\"outlined\":\"\",\"color\":\"blue\"},model:{value:(_vm.localRule.name),callback:function ($$v) {_vm.$set(_vm.localRule, \"name\", $$v)},expression:\"localRule.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-divider'),_c('h2',{staticClass:\"pb-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageRules.titles.conditions')))]),_c('v-container',{attrs:{\"fluid\":\"\"}},_vm._l((_vm.localRule.conditions),function(condition,index){return _c('v-row',{key:index},[_c('v-col',{attrs:{\"cols\":\"3\",\"sm\":\"2\",\"md\":\"2\"}},[(index)?_c('v-select',{attrs:{\"items\":_vm.andOR,\"label\":_vm.$t('modals.manageRules.conditionsForm.case'),\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"color\":\"blue\",\"item-text\":\"state\",\"item-value\":\"abbr\"},model:{value:(condition.and_or),callback:function ($$v) {_vm.$set(condition, \"and_or\", $$v)},expression:\"condition.and_or\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"9\",\"sm\":\"3\",\"md\":\"4\"}},[_c('v-combobox',{attrs:{\"items\":_vm.variablesForComboBox,\"label\":_vm.$t('modals.manageRules.conditionsForm.variable'),\"rules\":_vm.variableRule,\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"item-text\":\"text\",\"item-value\":\"value\",\"return-object\":false},model:{value:(condition.variable),callback:function ($$v) {_vm.$set(condition, \"variable\", $$v)},expression:\"condition.variable\"}})],1),_c('v-col',{attrs:{\"cols\":\"4\",\"sm\":\"3\",\"md\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.conditions,\"label\":_vm.$t('modals.manageRules.conditionsForm.condition'),\"rules\":_vm.conditionRule,\"color\":\"blue\",\"outlined\":\"\",\"hide-selected\":\"\",\"item-value\":\"value\",\"item-text\":\"title\"},model:{value:(condition.condition),callback:function ($$v) {_vm.$set(condition, \"condition\", $$v)},expression:\"condition.condition\"}})],1),_c('v-col',{staticClass:\"d-flex\",attrs:{\"cols\":\"4\",\"sm\":\"3\",\"md\":\"3\"}},[_c('v-text-field',{class:{ 'mr-15': !index },attrs:{\"label\":_vm.$t('modals.manageRules.conditionsForm.target'),\"rules\":_vm.onlyNumbersRule,\"color\":\"blue\",\"outlined\":\"\"},model:{value:(condition.target),callback:function ($$v) {_vm.$set(condition, \"target\", _vm._n($$v))},expression:\"condition.target\"}}),(index)?_c('v-btn',{staticClass:\"mt-2 ml-6\",attrs:{\"text\":\"\",\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteCondition(index)}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1):_vm._e()],1)],1)}),1),_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"rounded\":\"\",\"elevation\":\"0\",\"color\":\"accent\"},on:{\"click\":_vm.addCondition}},[_c('lynus-icon',{attrs:{\"name\":\"plus\",\"size\":\"20\",\"color\":\"white\"}}),_c('span',{staticClass:\"btn-text\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.addCondition'))+\" \")])],1)],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-divider'),_c('h2',{staticClass:\"pb-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageRules.titles.actions')))]),_vm._l((_vm.createActionButtonsList),function(action,inx){return _c('v-btn',{key:inx,staticClass:\"accent lynus-small-btn mr-6\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){return _vm.addAction(action.actionType)}}},[_vm._v(\" \"+_vm._s(action.title)+\" \")])}),_vm._l((_vm.localRule.actions),function(action,index){return _c('div',{key:`${action.type}_${index}`},[_c('h3',{staticClass:\"py-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageRules.action'))+\" \"+_vm._s(index + 1))]),_c(action.type,{tag:\"component\",staticClass:\"pl-6\",attrs:{\"params\":action.params,\"enableNoRecipients\":true}}),_c('v-btn',{staticClass:\"lynus-small-btn mt-2\",attrs:{\"elevation\":\"0\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteAction(index)}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.deleteAction'))+\" \")])],1)})],2),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-divider'),_c('h2',{staticClass:\"pb-4\"},[_vm._v(_vm._s(_vm.$t('modals.manageRules.titles.otherOptions')))]),_c('v-checkbox',{attrs:{\"label\":_vm.$t('modals.manageRules.otherOptionsForm.activateTimeout'),\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.isTimeoutRule),callback:function ($$v) {_vm.isTimeoutRule=$$v},expression:\"isTimeoutRule\"}}),_c('div',{staticClass:\"d-flex mt-4\"},[(_vm.isTimeoutRule)?_c('div',[_c('v-checkbox',{attrs:{\"label\":_vm.$t('modals.manageRules.otherOptionsForm.active'),\"color\":\"blue\",\"true-value\":true,\"false-value\":false,\"hide-details\":\"\"},model:{value:(_vm.localRule.active),callback:function ($$v) {_vm.$set(_vm.localRule, \"active\", $$v)},expression:\"localRule.active\"}})],1):_vm._e(),(_vm.localRule.active)?_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"ml-6\"},[(_vm.selectedTimeOption === 'sec')?_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageRules.otherOptionsForm.timeout'),\"min\":_vm.minValueTimeout,\"max\":_vm.maxValueTimeout,\"rules\":_vm.secondsTimeoutRule,\"color\":\"blue\",\"outlined\":\"\"},model:{value:(_vm.localRule.timeout),callback:function ($$v) {_vm.$set(_vm.localRule, \"timeout\", $$v)},expression:\"localRule.timeout\"}}):_vm._e(),(_vm.selectedTimeOption !== 'sec')?_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.manageRules.otherOptionsForm.timeout'),\"min\":_vm.minValueTimeout,\"max\":_vm.maxValueTimeout,\"rules\":_vm.otherTimeoutRule,\"color\":\"blue\",\"outlined\":\"\"},model:{value:(_vm.localRule.timeout),callback:function ($$v) {_vm.$set(_vm.localRule, \"timeout\", $$v)},expression:\"localRule.timeout\"}}):_vm._e()],1),_c('div',{staticClass:\"d-flex\"},[_c('v-select',{staticClass:\"ml-6\",attrs:{\"value\":_vm.selectedTimeOption,\"items\":_vm.timeOptions,\"label\":_vm.$t('modals.manageRules.otherOptionsForm.timeOptions'),\"item-text\":\"title\",\"item-value\":\"value\",\"color\":\"blue\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\"},on:{\"change\":_vm.onTimeOptionsChange}}),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs, value }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mt-3\",attrs:{\"icon\":\"\"}},'v-btn',attrs,false),on),[_c('lynus-icon',{attrs:{\"name\":\"info-in-circle\",\"color\":value ? 'accent' : 'theme',\"size\":\"24\"}})],1)]}}],null,false,2783506126)},[_c('div',{staticStyle:{\"max-width\":\"400px\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.informationPopUp.infoText'))+\" \")])])],1)]):_vm._e()])],1)],1)],1),_c('div',[(!_vm.rule)?_c('v-btn',{staticClass:\"accent lynus-small-btn mr-6\",attrs:{\"elevation\":\"0\",\"disabled\":!_vm.valid},on:{\"click\":_vm.handleRule}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.createRule'))+\" \")]):[_c('v-btn',{staticClass:\"accent lynus-small-btn mr-6\",attrs:{\"elevation\":\"0\",\"disabled\":!_vm.valid},on:{\"click\":_vm.handleRule}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.modifyRule'))+\" \")]),_c('DeleteModalForm',{attrs:{\"deletedItemName\":`${_vm.localRule.name}`},on:{\"deleteHandler\":_vm.deleteRuleLocal}},[_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"error\",\"elevation\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.manageRules.buttons.deleteRule'))+\" \")])],1)]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=4f92d1ac&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=4f92d1ac&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f92d1ac\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocketSwitch.vue?vue&type=style&index=0&id=16e5a4d8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StatusIndicator.vue?vue&type=style&index=0&id=b17db72a&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ThermostatDigital.vue?vue&type=style&index=0&id=75406034&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MonitoringGauge.vue?vue&type=style&index=0&id=70156b0a&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/acpv_on_grid.3445b127.png\";","module.exports = \"data:image/png;base64,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\"","export interface IInverter {\n id: string;\n description: string;\n type: SerialNumberType;\n project_id: string | null;\n assigned_at: number | null;\n created_at: number;\n}\n\nexport enum SerialNumberType {\n HybridInverter,\n StringInverter,\n ChargeStation,\n}\n","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CalculationAggregationWindow.vue?vue&type=style&index=0&id=ff7473e0&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightDimmer.vue?vue&type=style&index=0&id=2b233fce&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RobotPreview.vue?vue&type=style&index=0&id=465e67f9&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=72bfd0c8&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/MotorWithoutVFD.47bf02da.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateTimePickerBase.vue?vue&type=style&index=0&id=232dc2ce&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddStringLoggersPage.vue?vue&type=style&index=0&id=b58a5868&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/HistoryAnomalyDetection.4024b98e.png\";","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CompareModal.vue?vue&type=style&index=0&id=24c25bfc&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"systems-instance-controls-template\"},[_c('div',{staticClass:\"left-side\"},[_vm._t(\"left-side\")],2),_c('div',{staticClass:\"right-side\"},[_vm._t(\"right-side\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport default class SystemsInstanceControlsTemplate extends Vue {\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsInstanceControlsTemplate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsInstanceControlsTemplate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SystemsInstanceControlsTemplate.vue?vue&type=template&id=7cbb2e22&\"\nimport script from \"./SystemsInstanceControlsTemplate.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemsInstanceControlsTemplate.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemsInstanceControlsTemplate.vue?vue&type=style&index=0&id=7cbb2e22&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Preview.vue?vue&type=style&index=0&id=1c53b8b8&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WizardContentView.vue?vue&type=style&index=0&id=18076822&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BillingAndDocumentOutput.vue?vue&type=style&index=0&id=7b9ef1c6&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ElectricChargingStation.vue?vue&type=style&index=0&id=c49226f2&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InviteUserToProject.vue?vue&type=style&index=0&id=df139980&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BatteryStatusBar.vue?vue&type=style&index=0&id=4bf7462f&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/MixingValve.77167e2e.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"animated-line-canvas\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();}}},[_c('canvas',{ref:\"line\",attrs:{\"width\":_vm.width,\"height\":_vm.height}}),(_vm.isLineActive)?_c('AnimatedLineArrow',{key:_vm.isMovementReverse,attrs:{\"width\":_vm.width,\"height\":_vm.height,\"center\":_vm.center,\"color1\":'#2BAAE2',\"color2\":_vm.isMovementReverse ? _vm.color2Reverse : _vm.color2,\"line-data\":_vm.lineData,\"is-movement-reverse\":_vm.isReverseMovementDefault ? !_vm.isMovementReverse : _vm.isMovementReverse,\"is-energy-flow\":_vm.isEnergyFlow},on:{\"changeDirection\":_vm.changeDirection}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ems-canvas-arrow\"},[_c('canvas',{ref:\"arrow\",attrs:{\"width\":_vm.width,\"height\":_vm.height}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Components that represents arrows for animated line\n */\n@Component\nexport default class EMSCanvasArrow extends Vue {\n @Prop({ default: null }) lineData: any;\n @Prop({ default: null }) width: any;\n @Prop({ default: null }) height: any;\n @Prop({ default: null }) center: any;\n @Prop({ default: false }) isMovementReverse: any;\n @Prop({ default: false }) isEnergyFlow: any;\n @Prop({ default: '#2BAAE2' }) color1!: string;\n @Prop({ default: '#525252' }) color2!: string;\n\n ctx: any = null\n reqFunc: any = null\n\n get speed() {\n return this.isEnergyFlow ? 300 : 600;\n }\n\n /**\n * Define line length\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @return {number} length\n */\n lineLength(x1: number, y1: number, x2: number, y2: number) {\n return Math.hypot(x2 - x1, y2 - y1);\n }\n\n /**\n * Define angle\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @return {object} angle in radians and degrees\n */\n currentAngle(x1: number, y1: number, x2: number, y2: number) {\n const radians: number = Math.atan2(y2 - y1, x2 - x1);\n const degrees: number = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;\n return { radians, degrees };\n }\n\n /**\n * Rotate arrow according to angle\n * @param {object} context canvas context object\n * @param {number} cx context x position\n * @param {number} cy context y position\n * @param {number} angle current angle\n */\n rotateArrow(context: any, cx: number, cy: number, angle: number) {\n context.translate(cx, cy);\n context.rotate(angle);\n context.translate(-cx, -cy);\n }\n\n /**\n * Define arrow movement speed\n * @param {number} lineLength line length\n * @return {number} speed\n */\n movementSpeed(lineLength: number) {\n return lineLength / this.speed;\n }\n\n /**\n * Set arrow color\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n arrowColor(context: any, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n const grad: any = context.createLinearGradient(x1, y1, x2, y2);\n grad.addColorStop(0, color1);\n grad.addColorStop(1, color2);\n context.strokeStyle = grad;\n context.lineWidth = 2;\n }\n\n /**\n * Draw arrow body\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} angle current angle\n */\n arrowBody(context: any, x1: number, y1: number, angle: number) {\n this.rotateArrow(context, x1, y1, angle);\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x1 - 10, y1 - 10);\n context.stroke();\n context.closePath();\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x1 - 10, y1 + 10);\n context.stroke();\n }\n\n /**\n * Draw arrow\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n * @param {number} angle current angle\n */\n drawArrow(context: any, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string, angle: any) {\n let mx: number = x1;\n let my: number = y1;\n let mx2: number = x1;\n let my2: number = y1;\n let mainStep = 0;\n let stepArrow1 = 0;\n let stepArrow2 = 0;\n\n const lineLength: number = this.lineLength(x1, y1, x2, y2);\n const speed = this.movementSpeed(lineLength);\n this.arrowColor(context, x1, y1, x2, y2, color1, color2);\n\n // function that defines the drawing location of arrow\n const run = () => {\n mainStep += 0.1;\n if (mainStep > 0) stepArrow1 += 1;\n if (mainStep > 30) stepArrow2 += 1;\n if (mainStep > 6000) {\n mainStep = 0;\n stepArrow1 = 0;\n stepArrow2 = 0;\n mx = x1;\n my = y1;\n mx2 = x1;\n my2 = y1;\n }\n\n context.clearRect(0, 0, this.width, this.height);\n context.lineWidth = 2;\n\n // draw first arrow\n context.save();\n if (stepArrow1 > 0) {\n this.arrowBody(context, mx, my, angle.radians);\n mx += speed * Math.cos(angle.radians);\n my += speed * Math.sin(angle.radians);\n }\n if (stepArrow1 > this.speed) {\n this.$emit('changeDirection');\n stepArrow1 = 0;\n mx = x1;\n my = y1;\n }\n context.restore();\n\n if (!this.isEnergyFlow) {\n // draw second arrow\n context.save();\n if (stepArrow2 > 0) {\n this.arrowBody(context, mx2, my2, angle.radians);\n mx2 += speed * Math.cos(angle.radians);\n my2 += speed * Math.sin(angle.radians);\n }\n if (stepArrow2 > this.speed) {\n stepArrow2 = 0;\n mx2 = x1;\n my2 = y1;\n }\n context.restore();\n }\n this.reqFunc = requestAnimationFrame(run);\n };\n\n // Indicates to the browser that you want to produce an animation.\n // Number of draws coincides with the refresh rate of the screen.\n this.reqFunc = requestAnimationFrame(run);\n }\n\n /**\n * Drawing arrow pointing in the opposite direction\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n * @param {number} angle current angle\n */\n drawArrowReverse(context: any, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string, angle: any) {\n let mx: number = x2;\n let my: number = y2;\n let mx2: number = x2;\n let my2: number = y2;\n let mainStep = 0;\n let stepArrow1 = 0;\n let stepArrow2 = 0;\n\n const lineLength: number = this.lineLength(x1, y1, x2, y2);\n const speed = this.movementSpeed(lineLength);\n this.arrowColor(context, x1, y1, x2, y2, color1, color2);\n\n // function that defines the drawing location of arrow\n const run = () => {\n mainStep += 0.1;\n if (mainStep > 0) stepArrow1 += 1;\n if (mainStep > 30) stepArrow2 += 1;\n if (mainStep > 6000) {\n mainStep = 0;\n stepArrow1 = 0;\n stepArrow2 = 0;\n mx = x1;\n my = y1;\n mx2 = x1;\n my2 = y1;\n }\n\n context.clearRect(0, 0, this.width, this.height);\n context.lineWidth = 2;\n\n context.save();\n if (stepArrow1 > 0) {\n this.arrowBody(context, mx, my, angle.radians + 180 * Math.PI / 180);\n mx -= speed * Math.cos(angle.radians);\n my -= speed * Math.sin(angle.radians);\n }\n if (stepArrow1 > this.speed) {\n this.$emit('changeDirection');\n stepArrow1 = 0;\n mx = x2;\n my = y2;\n }\n\n context.restore();\n\n if (!this.isEnergyFlow) {\n // draw second arrow\n context.save();\n if (stepArrow2 > 0) {\n this.arrowBody(context, mx2, my2, angle.radians + 180 * Math.PI / 180);\n mx2 -= speed * Math.cos(angle.radians);\n my2 -= speed * Math.sin(angle.radians);\n }\n if (stepArrow2 > this.speed) {\n stepArrow2 = 0;\n mx2 = x2;\n my2 = y2;\n }\n context.restore();\n }\n\n this.reqFunc = requestAnimationFrame(run);\n };\n\n // Indicates to the browser that you want to produce an animation.\n // Number of draws coincides with the refresh rate of the screen.\n this.reqFunc = requestAnimationFrame(run);\n }\n\n mounted() {\n const canvas: any = this.$refs.arrow;\n this.ctx = canvas.getContext('2d');\n const angle = this.currentAngle(this.center.x, this.center.y, this.lineData.x, this.lineData.y);\n if (this.isMovementReverse) {\n this.drawArrowReverse(\n this.ctx,\n this.center.x,\n this.center.y,\n this.lineData.x,\n this.lineData.y,\n this.color1,\n this.color2,\n angle,\n );\n } else {\n this.drawArrow(\n this.ctx,\n this.center.x,\n this.center.y,\n this.lineData.x,\n this.lineData.y,\n this.color1,\n this.color2,\n angle,\n );\n }\n }\n beforeDestroy() {\n cancelAnimationFrame(this.reqFunc);\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AnimatedLineArrow.vue?vue&type=template&id=e0c07694&scoped=true&\"\nimport script from \"./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"\nexport * from \"./AnimatedLineArrow.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AnimatedLineArrow.vue?vue&type=style&index=0&id=e0c07694&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e0c07694\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\nimport AnimatedLineArrow\n from '@/ui/components/devices/components/EnergyParts/AnimatedLine/AnimatedLineArrow.vue';\n\n/**\n * Component that represent Animated line.\n * Used in EMS, EnergyView device.\n */\n@Component({\n components: {\n AnimatedLineArrow,\n },\n})\nexport default class AnimatedLine extends Vue {\n @Prop({ default: null }) lineData: any;\n @Prop({ default: null }) width!: number;\n @Prop({ default: null }) height!: number;\n @Prop({ default: null }) center!: any;\n @Prop({ default: false }) isMovementReverse!: boolean;\n @Prop({ default: false }) isEnergyFlow!: boolean;\n @Prop({ default: true }) isLineActive!: boolean;\n @Prop({ default: false }) isReverseMovementDefault!: boolean;\n @Prop({ default: '#2BAAE2' }) color1!: string;\n @Prop({ default: '#525252' }) color2!: string;\n @Prop({ default: '#525252' }) color2Reverse!: string;\n\n ctx: any = null\n\n /**\n * Set line color\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n lineColor(context: any, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n const grad: any = context.createLinearGradient(x1, y1, x2, y2);\n grad.addColorStop(0, color1);\n grad.addColorStop(1, color2);\n context.strokeStyle = grad;\n context.lineWidth = 2;\n }\n\n /**\n * Draw line body\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n */\n lineBody(context: any, x1: number, y1: number, x2: number, y2: number) {\n context.beginPath();\n context.moveTo(x1, y1);\n context.lineTo(x2, y2);\n context.stroke();\n context.closePath();\n }\n\n /**\n * Draw line\n * @param {object} context canvas context object\n * @param {number} x1 start x position\n * @param {number} y1 start y position\n * @param {number} x2 end x position\n * @param {number} y2 end y position\n * @param {string} color1 start gradient color\n * @param {string} color2 end gradient color\n */\n drawLine(context: any, x1: number, y1: number, x2: number, y2: number, color1: string, color2: string) {\n this.lineColor(context, x1, y1, x2, y2, color1, color2);\n this.lineBody(context, x1, y1, x2, y2);\n }\n\n changeDirection() {\n this.$emit('changeDirection');\n }\n\n async mounted() {\n // gets line canvas context object\n const canvas: any = this.$refs.line;\n this.ctx = canvas.getContext('2d');\n\n if (this.isLineActive) {\n this.drawLine(\n this.ctx,\n this.center.x,\n this.center.y,\n this.lineData.x,\n this.lineData.y,\n '#2BAAE2',\n this.isMovementReverse ? this.color2Reverse : this.color2,\n );\n } else {\n this.drawLine(\n this.ctx,\n this.center.x,\n this.center.y,\n this.lineData.x,\n this.lineData.y,\n '#525252',\n '#525252',\n );\n }\n }\n}\n","import mod from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=44a6e1b8&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=44a6e1b8&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44a6e1b8\",\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationTab.vue?vue&type=style&index=0&id=853a9d6e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Information.vue?vue&type=style&index=0&id=6132c3f2&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HouseConsumption.vue?vue&type=style&index=0&id=f5f4135c&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EnergyChart.vue?vue&type=style&index=0&id=6d628808&prod&lang=scss&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AreaChart.vue?vue&type=style&index=0&id=3294cf70&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{ref:\"hc-wrapper\",staticClass:\"chart-rounded deviceBackground\",attrs:{\"flat\":\"\"}},[_c('div',{staticClass:\"chart-rounded__header\"},[_c('div',[_vm._v(_vm._s(_vm.$t('anomalyDetection.HistoryAnomalyDetection.previewName')))]),_c('DeviceDescription',_vm._b({},'DeviceDescription',{ description: _vm.description },false))],1),_c('highcharts',{ref:\"hc\",attrs:{\"constructor-type\":'stockChart',\"options\":_vm.chartOptions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator';\nimport { Chart } from 'highcharts-vue';\nimport stockInit from 'highcharts/modules/stock';\nimport Highcharts from 'highcharts';\nimport DeviceDescription from '@/ui/components/devices/actions/DeviceDescription.vue';\n\nstockInit(Highcharts);\n\n@Component({\n components: {\n highcharts: Chart,\n DeviceDescription,\n },\n})\nexport default class HistoryAnomalyDetection extends Vue {\n chartWidth: null | number = null\n\n get description() {\n return this.$t('anomalyDetectionDescriptions.HistoryAnomalyDetection');\n }\n\n get chartOptions() {\n return {\n chart: {\n animation: false,\n backgroundColor: this.$vuetify.theme.currentTheme.deviceBackground,\n width: this.chartWidth,\n },\n exporting: {\n enabled: false,\n },\n rangeSelector: {\n enabled: false,\n },\n navigator: {\n enabled: false,\n },\n scrollbar: {\n enabled: false,\n },\n series: [\n {\n name: 'Temperature',\n type: 'spline',\n yAxis: 0,\n color: '#0037FF',\n data: [\n [951861600000, 1200],\n [951948000000, 2000],\n [952034400000, 900],\n [952120800000, 1950],\n [952207200000, 600],\n [952293600000, 600],\n [952380000000, 1900],\n [952466400000, 800],\n [952552800000, 1900],\n [952639200000, 800],\n [952725600000, 1750],\n [952812000000, 500],\n [952898400000, 500],\n [952984800000, 1700],\n [953071200000, 1000],\n ],\n },\n {\n name: 'AnomalyScore',\n type: 'line',\n yAxis: 1,\n color: '#FF0000',\n data: [\n [951861600000, 5],\n [951948000000, 4],\n [952034400000, 6],\n [952120800000, 5],\n [952121200000, 5],\n [952207200000, 6],\n [952293000000, 22],\n [952293600000, 4],\n [952294000000, 5],\n [952380000000, 6],\n [952466400000, 7],\n [952552800000, 4],\n [952639200000, 6],\n [952725600000, 6],\n [952812000000, 6],\n [952898400000, 20],\n [952984800000, 4],\n [953071200000, 6],\n ],\n },\n ],\n legend: {\n enabled: true,\n itemStyle: {\n color: this.$vuetify.theme.dark ? '#ffffff' : '#000000',\n },\n },\n plotOptions: {\n series: {\n connectNulls: true,\n },\n },\n xAxis: {},\n yAxis: [\n {\n title: null,\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n min: 0,\n max: 2000,\n lineColor: '#0037FF',\n labels: {\n format: '{value} kW',\n style: {\n color: '#0037FF',\n },\n },\n },\n {\n title: null,\n plotLines: [{\n value: 25,\n color: '#cccc00',\n dashStyle: 'solid',\n width: 2,\n label: {\n text: 'Threshold (0-100%)',\n align: 'right',\n y: -5,\n x: -10,\n },\n }],\n opposite: false,\n showFirstLabel: true,\n showLastLabel: true,\n endOnTick: false,\n gridLineWidth: 0,\n min: 0,\n max: 100,\n lineColor: '#FF0000',\n labels: {\n format: '{value} %',\n style: {\n color: '#FF0000',\n },\n },\n },\n ],\n };\n }\n\n async mounted() {\n await this.$nextTick();\n this.chartWidth = (this.$refs['hc-wrapper'] as any).$el?.clientWidth;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HistoryAnomalyDetection.vue?vue&type=template&id=3e74b0a8&\"\nimport script from \"./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"\nexport * from \"./HistoryAnomalyDetection.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GridDrmSettings.vue?vue&type=style&index=0&id=4a013d80&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGLadestationNotAus.vue?vue&type=style&index=0&id=4597fb8b&prod&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/battery_on_1_input.57d38c7e.png\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteModalForm.vue?vue&type=style&index=0&id=436de48c&prod&lang=scss&scoped=true&\"","import { Component, Vue } from 'vue-property-decorator';\nimport { Action, Getter, State } from 'vuex-class';\nimport { IVariablesState } from '@/store/modules/measurements/types';\nimport { CanAccessCheck } from '@/types/members.types';\nimport { IPublish, IPublishRecord } from '@/types/mqtt.types';\n\nexport enum SendingState {\n Sending = 'sending',\n Success = 'success',\n Error = 'error',\n Finished = 'finished',\n None = 'none',\n}\n\n/**\n * BasicControl class.\n * Contains send method which used to send records from Basic Controls.\n * Also contains list of measurements.\n */\n@Component\nexport default class BasicControl extends Vue {\n @State('measurements') measurementsState!: IVariablesState;\n @Getter('members/canMemberAccess') canMemberAccess!: CanAccessCheck;\n @Action('mqttClient/publish') publish!: IPublish;\n\n sendingState: SendingState = SendingState.None;\n\n /**\n * Timeout for resetting the sending state.\n */\n private stateResetTimeout?: NodeJS.Timeout;\n\n get measurements() {\n return this.measurementsState.measurements;\n }\n\n /**\n * Clears variableData keys from Basic control name\n * Example:\n * - incoming variable data { Switch_on: \"variable\", Switch_off: \"variable\" }\n * - return variable data { on: \"variable\", off: \"variable\" }\n * @return {object}\n */\n get mappingsClean() {\n const { variableData, instance } = this as any;\n return Object.entries(variableData)\n .filter((mappings: [string, any]) => mappings[0].split('_')[0] === instance)\n .reduce((acc: { [key: string]: any }, el: [string, any]) => ({ ...acc, ...{ [el[0].split('_')[1]]: el[1] } }), {});\n }\n\n publishCallback() {\n return (error?: Error) => {\n if (error) {\n this.sendingState = SendingState.Error;\n }\n };\n }\n\n send(data: IPublishRecord[]) {\n this.publish({ records: data, callback: this.publishCallback() });\n }\n\n /**\n * Returns `true` if any of the required mappings is not set.\n * Needs to implemented by all non-abstract classes that extend from this.\n */\n get isNotMapped(): boolean {\n return false;\n }\n\n /**\n * Returns `true` if the device should be disabled.\n */\n get isDisabled(): boolean {\n return this.isNotMapped || !this.canMemberAccess('Devices', 'BasicControls');\n }\n\n /**\n * For handling the sending state when the message has been sent.\n */\n onSendStart() {\n this.sendingState = SendingState.Sending;\n }\n\n /**\n * Sets the sending state to success, and resets it after 2 seconds.\n */\n onSendSuccess() {\n this.setStateAndReset(SendingState.Success);\n }\n\n /**\n * Sets the sending state to error, and resets it after 2 seconds.\n */\n onSendError() {\n this.setStateAndReset(SendingState.Error);\n }\n\n /**\n * Sets the state to the given state, and resets it after 2 seconds.\n * @param state the desired `SendingState`\n */\n setStateAndReset(state: SendingState) {\n this.sendingState = state;\n this.stateResetTimeout = setTimeout(() => {\n this.sendingState = SendingState.None;\n }, 2000);\n }\n\n /**\n * Important: call super.destroyed() in child class\n */\n destroyed() {\n clearTimeout(this.stateResetTimeout);\n }\n}\n","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchMock.vue?vue&type=style&index=0&id=3af2c858&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:[`${_vm.warningClass}`, 'show-event-base']})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Prop, Vue } from 'vue-property-decorator';\nimport BasicControl from '@/ui/components/devices/devices/BasicControl';\n\n/**\n * Component that represent ShowEventBase component.\n * Looks like flashing frame.\n */\n@Component\nexport default class ShowEventBase extends Vue {\n @Prop() warningState!: number;\n\n get warningClass() {\n if (this.warningState === 1) return 'device-warning-state';\n if (this.warningState === 2) return 'device-error-state';\n return null;\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowEventBase.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ShowEventBase.vue?vue&type=template&id=40fc654e&scoped=true&\"\nimport script from \"./ShowEventBase.vue?vue&type=script&lang=ts&\"\nexport * from \"./ShowEventBase.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ShowEventBase.vue?vue&type=style&index=0&id=40fc654e&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"40fc654e\",\n null\n \n)\n\nexport default component.exports","export enum PlcPerformanceCategorie {\n low = 'low',\n medium = 'medium', // default\n high = 'high',\n}\n","module.exports = __webpack_public_path__ + \"img/regent.a680ed73.jpg\";","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GeneralSettingsEMS.vue?vue&type=style&index=0&id=55ccf3ec&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TSGBrauchwasserPreview.vue?vue&type=style&index=0&id=96b53124&prod&lang=scss&scoped=true&\"","import {\n BatteryType,\n deyeTypes,\n} from '@/ui/components/wizards/installationWizard/wizardSettings/systemTypes';\nimport { IIncludedSystemsTypesLogger, ILoggerBatteryDefinition, ILoggerGeneratorDefinition } from './wizards/loggerWizard.types';\nimport { WizardPath } from '@/types/wizards/installationWizard.types';\n\nexport interface IProject {\n id?: string;\n name: string;\n secret?: string;\n created_at?: Date;\n lat: number;\n lon: number;\n connectivity: IProjectConnectivity;\n limits: IProjectLimits;\n meta: IProjectMeta;\n owner_id: string;\n stats?: IProjectStats;\n started_at: string;\n joinable?: boolean;\n}\n\nexport interface IProjectExpert {\n name: string;\n country: string;\n zip: string;\n city: string;\n street: string;\n email: string;\n phone: string;\n employeeName?: string;\n}\n\nexport interface IProjectControl {\n type: string;\n serialNumber: string;\n projectId: string;\n batterySystemType: BatteryType;\n deyeType: deyeTypes | null;\n plcPerformanceLevel?: string;\n}\n\nexport interface IProjectMeta {\n plcLastUpdate: Date | undefined;\n description: string;\n expert: IProjectExpert;\n controller: IProjectControl;\n isDNDActive: boolean;\n isAreasMiniView: boolean;\n imageId?: string;\n location?: IProjectLocation;\n disableDevicesWhenOffline: boolean;\n roomsPositions: any;\n tags: string[];\n energyPrice: IEnergyPrice;\n projectCurrency?: '€' | 'CHF' | '';\n wasInstallationWizardCompleted?: boolean;\n wasTenantWizardCompleted?: boolean;\n wizardSettings?: IWizardSettings;\n wizard_completed_at?: string;\n disableInstallationWizardPopup?: boolean;\n checkProtocol?: {\n signature: string;\n timestamp: string;\n serialNumber: string;\n everyPointChecked: boolean;\n };\n loggerInformation?: { id: string; type: string }[];\n loggerType?: string[];\n solarmanLoggerInfo?: {\n battery: {\n definition: ILoggerBatteryDefinition[];\n };\n generator: {\n definition: ILoggerGeneratorDefinition[];\n };\n };\n overallProductionMeasurement?: string;\n hasLynusInverter?: boolean;\n}\n\nexport enum ChargeStationType {\n WebastoNext11 = 'WebastoNext11',\n WebastoNext22 = 'WebastoNext22',\n WebastoUnite11 = 'WebastoUnite11',\n WebastoUnite22 = 'WebastoUnite22',\n internalWeidmüller11 = 'internalWeidmüller11',\n internalWeidmüller22 = 'internalWeidmüller22',\n externalWeidmüller11 = 'externalWeidmüller11',\n externalWeidmüller22 = 'externalWeidmüller22',\n internalWeidmüllerMS11 = 'internalWeidmüllerMS11',\n internalWeidmüllerMS22 = 'internalWeidmüllerMS22',\n Schneider11 = 'Schneider11',\n Schneider22 = 'Schneider22',\n AmtronCC11 = 'AmtronCC11',\n AmtronPro11 = 'AmtronPro11',\n AmtronPro22 = 'AmtronPro22',\n AmtronTC22 = 'AmtronTC22',\n AmedioPro22 = 'AmedioPro22',\n Enercharge50 = 'Enercharge50',\n Enercharge100 = 'Enercharge100',\n}\n\nexport interface IChargeStationSetting {\n type: ChargeStationType;\n}\n\nexport interface IWizardSettings {\n producerOptionsEnabled: boolean;\n consumerOptionsEnabled: boolean;\n selectedHeatingPumps: string[];\n pvPerInverter: { [key: number]: number };\n isHybrid: boolean;\n wizardPath: WizardPath;\n hybridSettings: {\n useBothBatteryInputs: boolean;\n };\n chargeStationSettings: IChargeStationSetting[];\n}\n\nexport interface IEnergyPrice {\n buyPrice: number;\n sellPrice: number;\n}\n\nexport interface IProjectLocation {\n display_name: string;\n lat: string;\n lon: string;\n}\n\nexport interface IProjectStats {\n errors: number;\n warnings: number;\n}\n\nexport interface IProjectConnectivity {\n actions: any;\n enabled: boolean;\n}\n\nexport interface IProjectLimits {\n collections: number;\n devices: number;\n members: number;\n}\n\nexport interface IProjectMQTTInfo {\n hostname: string;\n password: string;\n port: string;\n topicPublish: string;\n topicSubscribe: string;\n username: string;\n}\n\nexport interface IProjectFilters {\n projectName: string;\n projectStatus: string | undefined;\n projectTags: string[];\n batterySystemType: string | undefined;\n systemType: string | undefined;\n}\n","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PumpWithVFD.vue?vue&type=style&index=0&id=e1bf498e&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemsNavigation.vue?vue&type=style&index=0&id=562f2548&prod&lang=scss&scoped=true&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Charts.vue?vue&type=style&index=0&id=f5c8442e&prod&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"max-width\":\"500\",\"overlay-opacity\":\"0.8\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('span',_vm._g(_vm._b({},'span',attrs,false),!_vm.disabled ? on : null),[_vm._t(\"default\")],2)]}}],null,true),model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',{staticClass:\"deviceBackground\",staticStyle:{\"border-radius\":\"20px\"}},[_c('v-toolbar',{staticClass:\"deviceBackground\",attrs:{\"flat\":\"\"}},[_c('v-toolbar-title',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.title'))+\" \")]),_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":_vm.deletionOnGoing,\"icon\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_c('v-icon',[_vm._v(\"mdi-close\")])],1)],1),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('img',{attrs:{\"width\":\"50px\",\"src\":require(\"../../assets/delete.png\"),\"alt\":\"delete\"}})])],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('p',[_vm._v(_vm._s(_vm.$t('modals.deleteModal.text', { name: `\"${_vm.deletedItemName.trim()}\"` }))+\"?\")])])],1),_c('v-row',[_c('v-col',{staticClass:\"text-center\"},[_c('p',[_vm._v(_vm._s(_vm.$t('modals.deleteModal.enterNameInfo', { name: `\"${_vm.deletedItemName.trim()}\"` }))+\":\")]),_c('v-text-field',{attrs:{\"label\":_vm.$t('modals.deleteModal.enterNameLabel'),\"outlined\":\"\",\"color\":\"accent\"},model:{value:(_vm.enteredName),callback:function ($$v) {_vm.enteredName=$$v},expression:\"enteredName\"}})],1)],1)],1),_c('v-card-actions',[(!_vm.showAbortDelete)?_c('v-spacer'):_vm._e(),(!_vm.showAbortDelete)?_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"elevation\":\"0\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnNo'))+\" \")]):_vm._e(),(!_vm.showAbortDelete)?_c('v-btn',{staticClass:\"lynus-small-btn\",attrs:{\"color\":\"error\",\"disabled\":!_vm.enteredNameEqualsDeletedItemName,\"elevation\":\"0\"},on:{\"click\":_vm.handleDelete}},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.btnYes'))+\" \")]):_vm._e(),(_vm.showAbortDelete)?_c('div',{staticStyle:{\"width\":\"100%\"}},[_c('div',{staticClass:\"text-center pa-2\"},[_vm._v(\" \"+_vm._s(_vm.$t('modals.deleteModal.countdown', { seconds: _vm.secondsLeft }))+\" \")]),_c('div',{staticClass:\"custom-button\",class:{'is-clickable': !_vm.deletionOnGoing},on:{\"click\":_vm.abortDeletion}},[_c('div',{staticClass:\"progress-bar\",class:{ 'progress-bar-animate': _vm.deletionOnGoing }}),_c('span',{staticClass:\"abort-text\"},[_vm._v(_vm._s(_vm.$t('modals.deleteModal.btnAbort')))])])]):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport { rules } from '@/store/modules/rules';\n\n/**\n * Component that allows to delete project\n */\n@Component({\n computed: {\n rules() {\n return rules;\n },\n },\n})\nexport default class DeleteModalForm extends Vue {\n @Prop({ default: '' }) deletedItemName!: string;\n @Prop({ default: false }) disabled?: boolean;\n\n dialog = false\n showAbortDelete = false;\n deletionWasAborted = false;\n deletionOnGoing = false;\n enteredName = '';\n totalSeconds = 5;\n secondsLeft = 5;\n progressBarWidth = 0;\n get enteredNameEqualsDeletedItemName() {\n // trim to remove whitespaces at the beginning and end. to avoid confusion\n return this.enteredName.trim() === this.deletedItemName.trim();\n }\n\n abortDeletion() {\n this.progressBarWidth = 0;\n this.showAbortDelete = false;\n this.deletionWasAborted = true;\n this.enteredName = '';\n this.secondsLeft = this.totalSeconds;\n this.dialog = false;\n this.deletionOnGoing = false;\n }\n\n resetAll() {\n this.showAbortDelete = false;\n this.enteredName = '';\n this.secondsLeft = this.totalSeconds;\n this.dialog = false;\n this.deletionOnGoing = false;\n this.deletionWasAborted = false;\n }\n\n handleDelete() {\n this.showAbortDelete = true;\n this.deletionOnGoing = true;\n this.progressBarWidth = 100;\n\n const interval = setInterval(() => {\n this.secondsLeft--;\n\n if (this.secondsLeft === 0 || this.deletionWasAborted) {\n clearInterval(interval);\n if (!this.deletionWasAborted) {\n this.$emit('deleteHandler');\n }\n this.resetAll();\n }\n }, 1000);\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteModalForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DeleteModalForm.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DeleteModalForm.vue?vue&type=template&id=436de48c&scoped=true&\"\nimport script from \"./DeleteModalForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./DeleteModalForm.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DeleteModalForm.vue?vue&type=style&index=0&id=436de48c&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"436de48c\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HourPickerMultiSelect.vue?vue&type=style&index=0&id=5874ae7e&prod&lang=scss&\"","export * from \"-!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Electricity.vue?vue&type=style&index=0&id=ab350120&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,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\"","import Unit from '@/utils/unit/unit';\n\n/**\n * Error/warning mode of the border of the circle.\n */\nexport enum ErrorWarningMode {\n none,\n warning,\n error,\n}\n\n/**\n * Describes in which row the circle is placed.\n */\nexport enum CirclePosition {\n top,\n middleLeft,\n middleRight,\n bottom,\n}\n\nexport type IconContent = { type: 'icon'; value: string };\nexport type SocContent = { type: 'soc'; value: number };\n\nexport interface EnergyCircleDisplayData {\n /**\n * Unique id (e.g. \"pv\", \"pv1\", can be used for testing)\n */\n id: string;\n /**\n * The main content of the circle. Can either be an icon (string) or the value for the battery SOC.\n */\n centerContent: IconContent | SocContent;\n /**\n * Value to display at the bottom of the circle (main value).\n */\n bottomValue?: number;\n /**\n * The unit used for top and bottom values.\n */\n unit?: Unit;\n /**\n * Number of systems for the given circle type. If not set, it is not displayed.\n */\n systemCount?: number;\n /**\n * System. If not set, it is not displayed.\n */\n title?: string;\n /**\n * Whether the circle is positioned in the top, middle (left/right) or bottom row.\n */\n position: CirclePosition;\n /**\n * Color of the rotating spinner around the circle. As a hex string.\n * If undefined, the spinner is not displayed.\n */\n spinnerColor?: string;\n /**\n * Disable spinner without changing color\n */\n disableSpinner?: boolean;\n /**\n * The error/warning mode of the circle's border.\n */\n errorWarningMode?: ErrorWarningMode;\n /**\n * Whether the bottom value should be highlighted.\n */\n highlightBottomValue?: boolean;\n /**\n * Used to let know that opposite dynamic bottomValue active\n */\n bottomDynamicValue?: boolean;\n\n /**\n * Alternative value to take into account for line movement,\n * if the bottomValue for a system is not set.\n */\n alternativeValue?: number;\n\n /**\n * Hide value display\n */\n hideValue?: boolean;\n\n /**\n * Additional Display Data\n * forceCharge: boolean is used to display the force charge icon next to the battery\n * showLoadingAnimationHouseCircle: boolean is used to display the loading animation for the house circle\n * forceAnimation: boolean is used to force the animation of the circle and line\n */\n additionalDisplayData?: {\n forceCharge?: boolean;\n calibrationCharge?: boolean;\n maintenanceCharge?: boolean;\n chargeMaintenance?: boolean;\n feedInLimitationActive: boolean;\n p14aActive: boolean;\n activeEmsMode: number;\n showLoadingAnimationHouseCircle?: boolean;\n forceAnimation?: boolean;\n };\n}\n\nexport interface IOEnergyCircleDisplayData {\n /**\n * Unique id (e.g. \"pv\", \"pv1\", can be used for testing)\n */\n id: string;\n /**\n * Define position by either passing inputs, outputs or hybrids\n */\n systemType: string;\n /**\n * Value to display at the bottom of the circle (main value).\n */\n bottomValue?: number;\n /**\n * The unit used for top and bottom values.\n */\n unit?: Unit;\n /**\n * Number of systems for the given circle type. If not set, it is not displayed.\n */\n systemCount?: number;\n /**\n * System. If not set, it is not displayed.\n */\n title?: string;\n /**\n * Color of the rotating spinner around the circle. As a hex string.\n * If undefined, the spinner is not displayed.\n */\n spinnerColor?: string;\n /**\n * Disable spinner without changing color\n */\n disableSpinner?: boolean;\n /**\n * The error/warning mode of the circle's border.\n */\n errorWarningMode?: ErrorWarningMode;\n /**\n * Whether the bottom value should be highlighted.\n */\n highlightBottomValue?: boolean;\n /**\n * Used to let know that opposite dynamic bottomValue active\n */\n bottomDynamicValue?: boolean;\n\n /**\n * Alternative value to take into account for line movement,\n * if the bottomValue for a system is not set.\n */\n alternativeValue?: number;\n\n /**\n * Hide value display\n */\n hideValue?: boolean;\n\n /**\n * Position in the circle grid\n */\n position: CirclePosition;\n}\n\n/**\n * Display data for a placeholder circle. Can be used for battery/grid to keep the flex\n * alignment of the middle row correct.\n */\nexport class PlaceholderEnergyCircleDisplayData implements EnergyCircleDisplayData {\n id = '';\n centerContent = { type: 'icon', value: '' } as IconContent;\n bottomValue = undefined;\n systemCount = 0;\n title = '';\n position = CirclePosition.top;\n spinnerColor = '';\n errorWarningMode = ErrorWarningMode.none;\n highlightBottomValue = false;\n}\n\nexport class PlaceholderIOEnergyCircleDisplayData implements IOEnergyCircleDisplayData {\n id = '';\n systemType = 'hybrids';\n centerContent = { type: 'icon', value: '' } as IconContent;\n bottomValue = undefined;\n systemCount = 0;\n title = '';\n spinnerColor = '';\n position = CirclePosition.top;\n errorWarningMode = ErrorWarningMode.none;\n highlightBottomValue = false;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"deviceBackground\"},[_c('SystemsNavigation',{attrs:{\"system-name\":\"EMS\",\"is-list-items-plural\":\"false\",\"items\":_vm.systemSchema},on:{\"handleCurrentChart\":function($event){return _vm.handleCurrentChart($event)}}}),(_vm.currentChart.system)?_c('div',{staticClass:\"content pt-2\"},[_c('OfflineChart',{key:_vm.reRenderKey,attrs:{\"chartData\":_vm.mockChartData,\"minValueMockData\":-100,\"maxValueMockData\":100,\"showKalendarButton\":false,\"navigationItemsToExclude\":['live', 'hour'],\"chartHeight\":700}})],1):_c('div',[_vm._v(\" \"+_vm._s(_vm.$t(`mlModel.EMS.charts.noDevicesConfigured`))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Inject } from 'vue-property-decorator';\nimport OfflineChart from '@/ui/components/devices/previews/charts/components/OfflineChart.vue';\nimport SystemsNavigation from '@/ui/components/devices/mpc/SetpointOptimizer/components/SystemsNavigation.vue';\n\n@Component({\n components: {\n SystemsNavigation,\n OfflineChart,\n },\n})\nexport default class ChartTimetableConsumer extends Vue {\n @Inject({ from: 'chartColors' }) injectedChartColors!: string[];\n\n reRenderKey = 0;\n systems: any = ['battery', 'charge_station', 'electric_heating', 'heating_pump', 'big_consumer'];\n systemsScaling: any = {\n battery: { min: -100, max: 100 },\n charge_station: { min: 0, max: 100 },\n electric_heating: { min: 0, max: 100 },\n heating_pump: { min: 0, max: 100 },\n big_consumer: { min: 0, max: 100 },\n };\n currentChart: any = {\n system: null,\n vars: [],\n };\n\n // contains Chart Object\n get mockChartData() {\n let currentChartOptions: any = [];\n currentChartOptions = [\n {\n agg: 'first',\n name: 'var-1',\n scaling: {\n max: '100',\n min: '-100',\n },\n seriesType: 'View',\n type: 'line',\n unit: '%',\n var: '',\n },\n {\n agg: 'first',\n name: 'var-2',\n scaling: {\n max: '100',\n min: '-100',\n },\n seriesType: 'View',\n type: 'line',\n unit: '%',\n var: '',\n },\n ];\n\n const currentData = {\n data: {\n chartOptions: currentChartOptions,\n selectedStackingOptions: 'normal',\n selectedWidth: 'full',\n type: 'chart',\n },\n created_at: '2021-10-07T07:43:33.554983Z',\n };\n return currentData;\n }\n\n get systemSchema() {\n return [\n ['battery', [['battery1', 'battery2']]],\n ['charge_station', [['charge_station1', 'charge_station2']]],\n ['electric_heating', [['electric_heating1', 'electric_heating2']]],\n ['heating_pump', [['heating_pump1', 'heating_pump2']]],\n ['big_consumer', [['big_consumer1', 'big_consumer2']]],\n ];\n }\n\n /**\n * Creates a name for the menu item from an array of instances.\n * @param {array} arr list on system instances names\n * @return {string} menu item name. Example: 1-9\n */\n defineMenuItemName(arr: any) {\n const filterFromNotNumber = (str: string) => +str.replace(/\\D+/g, '');\n if (!arr.length) return null;\n if (arr.length === 1) return filterFromNotNumber(arr[0]);\n else {\n const last: any = arr[arr.length - 1];\n return `1-${filterFromNotNumber(last)}`;\n }\n }\n\n handleCurrentChart(event: any) {\n this.currentChart = { system: event.system, vars: event.arr };\n this.reRenderKey += 1;\n }\n\n mounted() {\n this.currentChart = { system: 'battery', vars: ['var-1', 'var-2'] };\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTimetableConsumer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChartTimetableConsumer.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChartTimetableConsumer.vue?vue&type=template&id=12ad7f74&scoped=true&\"\nimport script from \"./ChartTimetableConsumer.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChartTimetableConsumer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChartTimetableConsumer.vue?vue&type=style&index=0&id=12ad7f74&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"12ad7f74\",\n null\n \n)\n\nexport default component.exports","import { Vue, Component } from 'vue-property-decorator';\n\n@Component\nexport class ReportFormRules extends Vue {\n nameRules = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.nameRule1'),\n (v: any) => v.length <= 100 || this.$t('modals.manageReport.errorMessages.nameRule2'),\n ]\n titleRules = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.titleRule1'),\n (v: any) => v.length <= 30 || this.$t('modals.manageReport.errorMessages.titleRule2'),\n ]\n streetRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.streetRule'),\n ]\n cityRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.cityRule'),\n ]\n countryRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.countryRule'),\n ]\n variableNameRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.variableNameRule'),\n ]\n unitCostRule = [\n (v: any) => /^\\d+(\\.\\d+)*$/.test(v) || this.$t('modals.manageReport.errorMessages.unitCostRule'),\n ]\n unitRule = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.unitRule1'),\n (v: any) => v.length <= 3 || this.$t('modals.manageReport.errorMessages.unitRule2'),\n ]\n timeSettingsRule = [\n (v: any) => /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$/.test(v) || 'only format HH:MM is allowed',\n ]\n meterIDRule =[\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.meterIDRule'),\n ]\n gridRule =[\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.gridRule'),\n ]\n usernameRules = [\n (v: any) => v.length !== 0 || this.$t('modals.manageReport.errorMessages.usernameRule'),\n ]\n}\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/error-page-bg-light.ef221061.png\";","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-select',{ref:\"customField\",staticClass:\"custom-select-field\",attrs:{\"value\":_vm.value,\"items\":_vm.items,\"item-value\":_vm.itemValue,\"item-text\":_vm.itemText,\"rules\":[_vm.customRules],\"label\":_vm.label,\"color\":\"accent\",\"hide-selected\":\"\",\"outlined\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component, Prop } from 'vue-property-decorator';\n\n/**\n * Select field component which used in manage modal forms\n */\n@Component\nexport default class SelectField extends Vue {\n @Prop() value!: any;\n @Prop({ default: null }) items!: any;\n @Prop({ default: null }) itemValue!: string;\n @Prop({ default: null }) itemText!: string;\n @Prop({ default: null }) label!: null | string;\n @Prop({ default: true }) optional!: boolean;\n\n get customRules() {\n if (!this.optional) return (value: number) => (value === 0 || !!value) || this.$t('validationRules.required');\n else return true;\n }\n\n mounted() {\n (this.$refs.customField as any).validate(true);\n }\n}\n","import mod from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SelectField.vue?vue&type=template&id=79add4be&\"\nimport script from \"./SelectField.vue?vue&type=script&lang=ts&\"\nexport * from \"./SelectField.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SelectField.vue?vue&type=style&index=0&id=79add4be&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = \"data:image/png;base64,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\"","export * from \"-!../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeatingMeter.vue?vue&type=style&index=0&id=5a8926a6&prod&lang=scss&scoped=true&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAY8AAAB7CAMAAAC7MPxuAAAA51BMVEUxMTH6+/rHx8fu7u6+vr7///9RUlEXFxeb4O3tWiTW1tZMSUZ+fn7p/f6ioaGGhoZutOf//+qzs7PU+/7RlRdHPTNHUVP639BZXFyX0+Po6Oi0bRg4QksXbrUwMz5pFxfjWCTptXD+6bdycnJoaGiYSib6zZb//tG36v/e396T0P6UGxddOigfJTbKUibWnmMcHCSUkpIXF5UXldEXF2punLXFxMI7Ghd1RC2IwNOpqayEt8ZjgpAXN2tTbXX93qeZaTzCgR1BmtT58uMZT6FEdqvl1LcwSXPK5vQXF30ghcWp3f2cb6BSwN5QAAAHuElEQVR42u2caUPiOhSGm6Yp2JaCZUTodUFZBEdFRsV9GXfv3P//e25OAsjSKoUWg3PeD6VlCc15epakAS2FUkna0NGv/JYKJ7W7vfkX8zhiPf1IikcOWn94PuO7/5L6kOnJb+Qx7h9H7MfM/pFb/ifsGHb3r14f/gn84HFjxP7IYw48UqnH/O0p8ojI44Sy5RY32z7fIc+1VGo90yqRnZ/wkGHbtac8E5f5dYkwUt/jb7zMMLJ6l9oVEY8/n+GhibfQPR5Es7tT4839gMb5Z57zPHLldn7+yvM37vxMPb0S0RDyGOBBtu/2hfXuSev0BS7c9QzZ2kvJh0d4/frP7WbqurF9l3rK8z3xxnR9s2v0p+bd6X4OssKYf/CH35KH+Mw5kTy6/rGf4/nl5Q8/Rh7vPOqnKWGyYzA6T75gwBa8xB9OueVu96QN75chD8MWjkbjk4h74zzgW6DxtwY0ftwY4tE9EXgn8hjKH2AyufeYb8kLWj4pTShsKCk8ZrY4s9X23oDRry8tStmHPB5F42M8boxXmkEegTzWM7IE3grhsSt4wPsPeS5gEPZ7SXv52b3IbH0Ur9YzQTzuyUPHLSGPQB6P/UrrM//gernMwFPC6JCzw+JVL5//CvKPN1F9YbwK5vHWqJ9+xKObP3qjOTDjkeQBthQ0jwLq3U2ZnBpg+j4P+Rn53ffII5AHN2GL10nPtRAe7/VV7uHu9BrCF8/4hysQk/ZP8pA/5PHgeBBs/V5flXr1Fd/U9lfeGttn1+eYP0J4wBBBjCOCebyPP8QO5I/jc8JuN6/ThK3+B+3I49H5Etl4LsNW233/eHllrMXp8gZzyOOr9Naop1BK8FhvnaU2ckFTicjjKwRTIyIYotSJVyjkgTxQyAN5oJAH8kDNh8ehhlJAh10eiEMdIBriUAoI54FmUEfIA3mgkAfyQCEP5IFCHsgDlYCqPiMe8lBGPqyBukAeisgRy6Mt5KGIKshDLTWBRxt5qCJbp7SN+RzrXVSYf/joH+rIwvyh1HAQ6yscf6DCRXF8rlbA4kCMhPP5zcl5KR2o0vnJzeLa7qx2UF4KVPmgdqZqvXsVwqLP5GoxadRCWPSZ1KZqNmt1qgnyKFymP9VlYfFo7B0sfaqDvejtGjx9kEpiPIql9AQqFRcOR3lpApUjAymK+kpPikdhIhwcSOE74pgCSML17mV6Ql0uFo+gYLVaDwpZUadLCPDwEuJxlZ5YC5XUa0G+wFaDno2a1NscSNNOiEdpch6lJAe9lDWrcTZYnphHuRy1bbNSTarevUlH0MzjEKdJGLFMMaiCXd3svUJcrSNCsuvz4qWZnXncsTS5fyzFMQ6JicdJFB4nM35Zm9EK3/hQpBC/ojnE7+dIcBFRSxpFrdJkbhLhKoxHTR0e51F4nM/4ZbYFVbvOHE3rMHCBi/40EJX+kZV1pO1XEsjmoTwO1OFRisIjngRiwMXvU1nK98rGrMwfglVi6SOMR1kdHiMWz7Ah5UdejsVUwuasKdOGP/yaT2JK56OF7nC/RsveBHismaa50tuRe1P4Rz4zpNcE/KPKwDW6jkHpCA+aTHlVXxViRD5uJe4fggJgkDsTA5lr/pCpQYSkEB40Lh5fnD82CpxAweSDFNhsiD316iuJQ9x5DotXcfH44vpK8FiTKISTTMpjvuMPzezi6OdzfTS3xDQo/OLxx9Q85js+r1LSrZ969a47OkKRN946M5dZk4/PY0kfYTwgf9iFCAl9nvNXDqG9y1+MB7Oj4QrW0himVrTG74cqNH8ViQff47Inb2iO87tGr950e/Ml4+d5Aav5x5ebxZPRA3kcaEny4B5i2ysRGvqb7n+0WnHckIrII6rw/qBaPPD+uWI8cH2Jajxw/ZVqPFDI4zvzMJGHQjw2CpIHAlGDx5qcIFmLME+CSo6HnETUNIxYivDo+QXfQcsowWMobqEwXiEPzOdK17umbWK9q9D43JwGR7HtGV67+O2sM/9+ja6/2lizo8eqrCGV/WY4vqBfcaxP7J12/8QrPmPWsJNZToUsKo5ev8RKbTq2RCKOu8Jx8iga75KuTT3btNwRHosXrEb7FcDDctXzj/bAebf7583lEfj9j9xyHkwzdB9WSumMUld9HsH94jwMwnsB/0bpWvADQMt1aIdR3lNG/CgLWtxOp5IAD2/gvMXP4Vy5iLNCqrblyW2XB3WqTGtTs7gIPMb6JX+B6TjUtH2n2uYdEf7BebALrenynppWBB4VXdc7CfAwBjXAAx5cS267PPjLcmstAI+xfnX9w5VLjZwLq8+DwhZ6akTg4XAc+toc/KMbrxadR3C/OA9xuXl+tjIbD9vQdXce+UOjhm02vYB4JXi41Kwscv6AHnm2bmgXVNM9u8/DIdViM0r+MLOVjbnUV916dzyfCx52k9HmAvAIra88yOcOIZxHlpA+D6hTrFkXqCYy/vgskWkmXYTyN3q/7Ahx2OzwfJ7M/ydGG8fC/z7p33F87gf8vv8D9+M4EskfOH81lWwvOR6oaYQ8kAcKeSAP1JT5vOMiD1VqN5i+0j3koYjEeFDH/0NWW8gDeaCQB/JAIQ/kgUIeyAOFPJAHCnmgkAfyQCEP5IGKhwcCUQeH4HGIhlBDh5IHAlEGR+p/gDcIfnzGoKEAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"img/TSGLadestationNotAus.fa2db77f.png\";","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ManageTask.vue?vue&type=style&index=0&id=6a50669a&prod&lang=scss&\"","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}